How zhmylove/korgwm works
korgwm is a Perl tiling window manager. Its principal workflow is managing X11 windows across screens and tags, with tiling or floating layouts, then responding to keyboard, mouse, and API control; a GTK panel presents status. The README documents additional EWMH, expose, notification, and plugin capabilities. Source excerpts were unavailable, so relationships are limited to documented runtime responsibilities rather than inferred module-to-module calls.
Main entry points: korgwm korgwm launcher · korgwm.pm Window manager · Hotkeys.pm Hotkeys · Mouse.pm Mouse controls
Components 21
Window manager
- korgwm launcher
script/korgwm - Window manager
lib/X11/korgwm.pm - YAML config
lib/X11/korgwm/Config.pm - Event loop
lib/X11/korgwm/Executor.pm
Windows and screens
- Window state
lib/X11/korgwm/Window.pm - Screen state
lib/X11/korgwm/Screen.pm - Tags
lib/X11/korgwm/Tag.pm - Layouts
lib/X11/korgwm/Layout.pm - EWMH support
lib/X11/korgwm/EWMH.pm
User control
- Hotkeys
lib/X11/korgwm/Hotkeys.pm - Mouse controls
lib/X11/korgwm/Mouse.pm - TCP API
lib/X11/korgwm/API.pm - Expose mode
lib/X11/korgwm/Expose.pm
Panel and integrations
- Notifications
lib/X11/korgwm/Notifications.pm - GTK panel
lib/X11/korgwm/Panel.pm - Battery plugin
lib/X11/korgwm/Panel/Battery.pm - Clock plugin
lib/X11/korgwm/Panel/Clock.pm - XKB language plugin
lib/X11/korgwm/Panel/Lang.pm
Other components
- User
- X11 server
- D-Bus
Connections 8
- User → korgwm launcher: starts
- korgwm launcher → Window manager: starts
- Window manager → X11 server: controls X11
- User → Hotkeys: uses
- User → Mouse controls: uses
- User → TCP API: controls
- User → Expose mode: switches windows
- D-Bus → Notifications: sends notifications