/shod

mouse-based window manager that can tile windows inside floating containers

Primary LanguageCMIT LicenseMIT

                                  shod

                             ┌───────────────────────┐
                             │                       │
                       ┌─────┼─────┬───────────┐     │
                       ├─────┴─────┼───────────┤     │
                 ┌─────┤           │           │     │
                 │     │           │           │     │
                 │     │           ├───┬───┬───┤     │
                 │     │           ├───┴───┴───┤     │
                 │     │           │           ├─────┘
                 │     │           │           │
                 │     └───────────┴─────┬─────┘
                 │                       │
                 └───────────────────────┘

shod is a mouse-based X11 window manager that can tile and tab windows
inside floating containers. To tile windows, drag-and-drop the titlebar
of one window into the border of the other with the right mouse button.
The entire grid of tiles is called a "container", and can float around
on the screen.

shod works via mouse, possibly with a given modifier (Alt by default),
and by responding to client messages sent by the shodc utility (shod's
remote controller).  With the exception of the alt-tab combination for
cycling windows, shod does no keybinding by itself and relies on other
applications (such as sxhkd) for that.

shod has no default bar.  However shod has a dock where dockapps (small
windows commonly used on other window managers like Window Maker) can
be on.  The dock does not appear unless a dockapp is spawned.

shod can be customized by setting X resources.

shod was inspired by the following programs and window managers.  I'd
like to thank their authors for their work that helped me developing
shod.
• notion: https://github.com/raboof/notion
• wmii:   https://github.com/0intro/wmii
• acme:   http://acme.cat-v.org/

shod was developed after studying the code of the following window
managers.  I'd like to thank their authors for their work that helped
me understanding how a X Window Manager works.
• dwm:      https://dwm.suckless.org
• katriawm: https://www.uninformativ.de/git/katriawm/file/README.html

Screenshots:
See the images in the demos/ directory.

Changelog:
• 2.6.2 (2023-04-24): Bugfixes (wait for children processes).
• 2.6.1 (2023-04-23): Bugfixes (dockupdate).
• 2.6.0 (2023-04-22): Added auto tabbing, resource reloading, shodc exit.
• 2.5.0 (2022-09-22): Added dockapp state, rio-like hiding, alttab, -d, -t.
• 2.4.0 (2022-02-11): Added window rules, dockapp ordering, -s, -m;
• 2.3.0 (2022-02-11): Added tornoff menu.
• 2.2.0 (2021-12-31): Added dock, -c, snapping, shading, transparency, etc.
• 2.1.4 (2021-09-28): Bugfixes (container placement, manual, shodc).
• 2.1.3 (2021-09-21): Bugfixes (set container properties).
• 2.1.2 (2021-09-20): Bugfixes (dialogs).
• 2.1.1 (2021-09-19): Bugfixes (focus, grabbing and tab attatching).
• 2.1.0 (2021-09-18): Added LICENSE.
• 2.0.0 (2021-09-18): First version with floating tiled containers
• 1.X.X (2020-??-??): First version, no floating tiled containers.