openbox

Standards-compliant, fast, light-weight and extensible window manager. Works standalone or alongside desktop environments like XFCE, GNOME, or KDE.

Why this build?

Debian 12 and Ubuntu 26.04 both ship openbox 3.6.1 — the 2015 upstream release, unchanged for a decade. The NetLinux build is made from netlinux-ai/openbox for both suites, and adds:

Compared to the distro package

Distro openbox 3.6.1NetLinux build
Zone picker on maximize buttonYes, on hover
Built-in snap layouts6 templates
User-defined zones<snapLayouts> in rc.xml
Maximize horizontally / verticallyYesYes
Upstream release3.6.1 (2015)3.6 branch, current tree
Suitesper-distrobookworm + resolute

Package details

Version3.6-844netlinux1~bookworm1-1
Architectureamd64
Componentmain
Suitesstable (Debian 12) and resolute (Ubuntu 26.04)
Downloadopenbox_3.6-844netlinux1~bookworm1-1_amd64.deb
Upstreamopenbox.org
Sourcegithub.com/netlinux-ai/openbox

Install

sudo apt install openbox
Note: the distro ships version 3.6.1, which apt sorts above this build's 3.6-844netlinux1, so a plain apt install openbox will prefer the distro package. To get the NetLinux build, pin it:
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 openbox
Or install the .deb directly with sudo dpkg -i. The download above is the Debian 12 build; the matching ~resolute1 build sits in this same pool directory and is what the resolute suite serves to Ubuntu 26.04.

Using snap layouts

Hover the maximize button and hold for a moment; the layout grid appears below it. Move onto a zone to highlight it, click to place the window there. Any keypress, a right-click, or clicking elsewhere dismisses it.

To change the delay or define your own zones, add to ~/.config/openbox/rc.xml and 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>

Listing any <layout> replaces the built-in set entirely.

See the main page for repository setup instructions.