Tools: Fix Lubuntu's Broken Window Snapping — Why lxqt-rc.xml Doesn't Work and How to Actually Fix It (2026)

Tools: Fix Lubuntu's Broken Window Snapping — Why lxqt-rc.xml Doesn't Work and How to Actually Fix It (2026)

The Problem: Lubuntu's Default Window Snapping Simply Doesn't Work

Root Cause: The LXQt Global Actions Manager Hijacks Your Keys

The Fix: wmctrl + LXQt Global Actions Manager

Step 1 — Install wmctrl

Step 2 — Open the LXQt Global Actions Manager

Step 3 — Adjust the geometry for your screen

The Result

Bonus: The Accidental Feature

Why This Matters If you use Lubuntu because you want maximum performance and zero bloat,

you've probably already tried to set up window snapping — and hit a wall. Here's what happens every single time you try to configure it: You try every key combination imaginable: Super, Alt, Ctrl+Alt,Shift+Super, Ctrl+Shift — still nothing. The file looks correct,the syntax is valid, the system just ignores it. For a power user, this is unacceptable. I use Lubuntu precisely becauseI want my machine to get out of my way — and this silent failure does the opposite. The real problem is not the Openbox XML file. LXQt runs a Global Actions Manager that captures keyboard shortcutsbefore Openbox ever sees them. Any shortcut you define in lxqt-rc.xmlis silently ignored if the Global Actions Manager has already claimed thatkey combination — even partially. To see this for yourself: Menu → Preferences → LXQt Settings → Shortcut Keys You'll find entries like Super_L → Show/hide main menu that interceptthe Super key entirely, killing any Super+Arrow combination you try to set. Forget the XML file for window management. Use wmctrl — a tool thattalks directly to the X11 server and bypasses Openbox's key handling entirely. Menu → Preferences → LXQt Settings → Shortcut Keys Click Add and create the following shortcuts: "Fake Maximize" (Meta+I): Why "Fake Maximize"? Using the real maximize flag locks the window andprevents Meta+J / Meta+K from working until you manually restore it.By setting the geometry to full screen without the maximized flag, thewindow looks maximized but stays fully movable — you can snap it left orright instantly with no intermediate step. The numbers in -e 0,X,Y,WIDTH,HEIGHT assume: If your setup is different, adjust accordingly: During setup, I noticed that the snapped windows don't cover 100% of thedesktop area — leaving a small strip of the desktop visible at the bottom. Instead of fighting it, I turned it into a quick-access panel: I keepmy most-used .txt reference files as desktop icons in that strip.They're always one click away, no file manager needed, no minimizing required. Lubuntu gave me a bug. I gave it a purpose. Lubuntu is built for performance. The whole point is that your machinegets out of your way. Window snapping is not a luxury — it's a core productivity feature.The fact that it silently fails due to a key capture conflict betweenLXQt and Openbox is a genuine UX problem that wastes real time. wmctrl fills that gap completely. Once configured, it's faster and morereliable than native snapping on most other distros. Using Lubuntu to squeeze every bit of performance out of my machine

and documenting every friction point along the way. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install wmctrl -y -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install wmctrl -y -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install wmctrl -y wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,960,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,960,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,960,32,960,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,1920,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,1920,1016 wmctrl -r :ACTIVE: -b -weight: 500;">remove,maximized_vert,maximized_horz && wmctrl -r :ACTIVE: -e 0,0,32,1920,1016 - You edit ~/.config/openbox/lxqt-rc.xml with the correct keybind syntax - You run openbox --reconfigure — no errors - You press the shortcut — nothing happens - Resolution: 1920×1080 - Taskbar: 32px at the bottom - Y offset: 32px at the top (so the window titlebar stays visible) - WIDTH for snap = screen_width / 2 - HEIGHT = screen_height - taskbar_height - top_offset - Window snapping works on all applications — including Chrome, VS Code, and other external apps that ignore Openbox resize commands ✅ - Switching from full screen to left/right snap requires zero intermediate clicks — just press the shortcut ✅ - No conflicts with VS Code's internal shortcuts (Meta key is ignored by most apps) ✅ - Ctrl+Alt+L (lockscreen) remains untouched and safe ✅