mouse-based window manager that can tile windows inside floating containers https://seninha.org/projects/shod.html
  • C 85.4%
  • Roff 14.2%
  • Makefile 0.4%
Find a file
Lucas de Sena 1fd0c06194 refactor bar.c; remove unused dock.c; fix multiple docks
bar.c:
• Unused .mon member removed; function monitor_delete() removed by consequence.
• Function is_bar_at_mon(), now set_gaps(), rewritten with cleaner code.
• Function monitor_reset() simplified.
• Function managed() adapted to C23's unamed/unused parameter.

dock.c:
• File removed; it got unused since merged within dockapp.c.

dockapp.c:
• Only manage dock once; fix bug listing dock multiple times.
2026-03-08 11:43:15 +00:00
control add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
demos it's "dock", not "docker" 2023-04-24 13:23:16 -03:00
examples Left button does not stretch the window anymore 2023-07-15 20:16:56 -03:00
bar.c refactor bar.c; remove unused dock.c; fix multiple docks 2026-03-08 11:43:15 +00:00
color.c add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
color.h add titlebar; change tab style; derive shadow colors from background 2025-10-22 23:17:35 +00:00
container.c fix null dereferencing 2026-03-07 22:42:30 +00:00
dockapp.c refactor bar.c; remove unused dock.c; fix multiple docks 2026-03-08 11:43:15 +00:00
draw.c add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
LICENSE bump copyright year; add project's webpage to README 2025-08-27 15:12:53 +00:00
Makefile add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
menu.c fix null dereference 2026-01-21 14:26:24 +00:00
notification.c add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
prompt.c add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
README maximized row on README illustration 2025-09-25 14:41:32 +00:00
shod.1 manual wording; initial rewriting in shodc.c 2026-02-07 00:42:55 +00:00
shod.c handle focus loss 2026-03-07 22:51:35 +00:00
shod.h add and document window-specific resources 2026-01-11 17:33:30 +00:00
shodc.c manual wording; initial rewriting in shodc.c 2026-02-07 00:42:55 +00:00
splash.c add control/resources.{c,h}; delete config.c 2025-12-21 20:57:01 +00:00
TODO TODO 2026-02-24 00:53:47 +00:00
util.c util.c: minor control flow refactoring 2026-02-07 00:42:35 +00:00
util.h do not set WM_STATE in every window 2026-02-24 00:10:37 +00:00

                                  shod
                <https://seninha.org/projects/shod.html>

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

Shod is a mouse-based X11 window manager which can tile and tab windows
together into stacking containers.  Shod is controlled by responding to
client messages sent by the `shodc` utility (shod's remote controller).
Shod does no keybinding by itself, and depends on programs like `sxhkd`
for that.

Application windows can be tiled and tabbed together into a meta-window
called “container”.  Containers float around on the screen and stack on
top of each other just like in other stacking window managers.

To tile or tab windows together, drag-and-drop the titlebar of a window
into the border or titlebar of the other with the middle or right mouse
button.

Shod automatically tabs related windows together on the same container.
Supporting dialog windows, palettes, and tornoff menus are only visible
when their respective leader window is active, and are hidden otherwise
to not clutter the screen.

Shod has no desktop panel or bar; but it features 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 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:   http://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

See <https://seninha.org/projects/shod.html> for screenshots.

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.