Skip to content
/ shod Public

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

License

Notifications You must be signed in to change notification settings

phillbush/shod

Repository files navigation

                                  shod

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

shod is a mouse-based X11 window manager which 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 “container”, and it can float around
on the screen.

shod automatically tabs related windows together on the same container.
Dialogs and tornoff menus are only visible when their parent window is
active, and are hidden otherwise.

shod works via mouse (optionally 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 displays for each container titlebars with two buttons.  The right
button closes the active window.  The left button calls a command named
shodmenu.  This command is not provided with shod, it should be created
by the user; as, for example, a xmenu script to control the window.

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

shod can be customized by setting X resources.

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

shod was made after studying the code of the following window managers.
I'd like to thank their authors for the work, that helped me understand
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.