Overview
ShojiWM is configured entirely from TypeScript/TSX. Your config is a normal
Default config
ShojiWM ships with a complete default config (packages/config/src/index.tsx,
Lifecycle & Events
Lifecycle hooks
Outputs (Displays)
COMPOSITOR.output controls monitor layout — resolution, refresh rate, scale,
Input devices
COMPOSITOR.input configures keyboards, pointers (mice), and touchpads. As with
Keybindings & Pointer
Keyboard shortcuts
Processes & Environment
Spawning processes
Window composition
COMPOSITOR.window.composition is the heart of ShojiWM's customization. Assign a
SSD Components
These are the building blocks you assemble inside
State & Signals
ShojiWM's composition is reactive: when a value your code read changes, the
Effects
ShojiWM can run GPU shader effects in four places, configured via
Animations
ShojiWM offers two ways to animate, with different trade-offs: