First release candidate for fifth-generation tiling daemon — rewritten in optimized C with direct Xlib/Xinerama calls.
No Python, no external tools, no flicker. Fast, minimal, multi-monitor aware. No need for Xcape and added even more features, also needs installing .config at $HOME/.setuzuna/xakar/.config
- Pure C++17 implementation — replaces the Python daemon from v3.x
- Direct Xlib/Xinerama — zero dependencies beyond
libX11andlibXinerama - Multi-monitor smart tiling:
- Detects the monitor of the active window
- Moves windows across monitors with preserved geometry or preserved size
- Neighbor monitor detection (left/right/up/down aware)
- New commands:
preserve_geom <dir>→ Move to another monitor, keep window position & size if possiblepreserve_size <dir>→ Move to another monitor, preserve size, reapply tiling modewm_fullscreen→ Toggle WM-managed fullscreen (uses_NET_WM_STATE_FULLSCREEN)
- KHotKeys integration — automatic shortcut setup with
config.py - Autostart support — installs
.desktopfiles into TDE's autostart folder
- Now with completely automatic uninstaller
sudo apt update
sudo apt install -y build-essential libx11-dev libxinerama-devgit clone https://codeberg.org/Setuzuna/Xakar.git
cd Xakar
makemake installThis will:
-
Install the binary
xakardinto/usr/local/bin -
Generate KHotKeys bindings (
~/.trinity/share/apps/khotkeys/setuzuna_xakar.khotkeys) -
Create autostart entries for:
xakard(the tiling daemon)xcape(optional Win key rebind)
make uninstallThis will remove:
/usr/local/bin/xakard- Autostart
.desktopentries - Custom KHotKeys config (
setuzuna_xakar)
Run manually:
xakardIt listens on:
$HOME/.xakar.sock
Send actions to it with:
echo left > ~/.xakar.sock
echo fullscreen > ~/.xakar.sock
echo preserve_geom right > ~/.xakar.sockInstalled automatically by config.py.
| Keys | Action |
|---|---|
| Win+Up | up (top half / quarter) |
| Win+Down | down (bottom half / quarter) |
| Win+Left | left (left half / quarter) |
| Win+Right | right (right half / quarter) |
| Win+Return | center (3/4 centered) |
| Win+Space | fullscreen (fill monitor) |
| Win+Shift+Space | wm_fullscreen (toggle WM fullscreen) |
| Win+Alt+[Arrows] | preserve_geom move to neighbor monitor preserving geometry |
| Win+Ctrl+[Arrows] | preserve_size move to neighbor monitor perserving tile mode |
- Win+Left → Snap active window to left half of current monitor
- Press again → Push to the right half of neighbor monitor
- Win+Alt+Right → Move window to right monitor, preserving geometry
- Win+Ctrl+Right → Move window to right monitor, preserving size
Rebuild cleanly:
make clean && make