A fork of danakj/openbox packaged for the NetLinux package repository, carrying a snap layouts patch on top of upstream.
This package:
https://packages.netlinux.co.uk/debian/pool/main/o/openbox/ — built for both
stable (Debian 12) and resolute (Ubuntu 26.04) from the netlinux branch.
All NetLinux packages: https://packages.netlinux.co.uk/ — browse the full package set, and the apt source and GPG key needed to install any of them.
Set up the apt source and GPG key as described on packages.netlinux.co.uk, then:
sudo apt install openboxNote that the distros ship openbox 3.6.1, which apt sorts above this build's
3.6-<build>netlinux1, so a plain install prefers the distro package. Pin it to
get this one:
sudo tee /etc/apt/preferences.d/netlinux-openbox >/dev/null <<'EOF'
Package: openbox
Pin: release o=NetLinux
Pin-Priority: 1001
EOF
sudo apt update && sudo apt install openboxHovering a window's maximize button pops up a grid of layout templates, in the manner of Windows 11. Each template is a miniature of the monitor split into zones; the zone under the pointer highlights, and clicking it moves and resizes the window to fill that part of the monitor's usable area.
Six layouts ship by default — halves, thirds, two-thirds + third, half + two stacked, quadrants, and top/bottom. Zones are measured against the monitor the window is on, minus any panels or docks reserving space there.
Configure it with a <snapLayouts> block in ~/.config/openbox/rc.xml, then
run openbox --reconfigure:
<snapLayouts>
<enabled>yes</enabled>
<delay>400</delay>
<layout>
<zone x="0" y="0" width="50" height="100"/>
<zone x="50" y="0" width="50" height="100"/>
</layout>
</snapLayouts>Zone positions and sizes are percentages of the monitor's usable area. Listing
any <layout> replaces the built-in set entirely. The implementation lives in
openbox/snap.c.
| Branch | Purpose |
|---|---|
netlinux |
The packaged branch. Upstream plus the snap layouts patch and the NetLinux CI workflows; every push builds and publishes both suites. |
upstream-snap-layouts |
The same patch rebased onto current upstream master, without the CI commits — the form intended for submission upstream. |
./bootstrap
./configure --prefix=/usr --sysconfdir=/etc
makeUpstream's original README, covering the project itself, is in
README; see also README.GIT and
README.NLS.