DankMaterialShell
DankMaterialShell copied to clipboard
scroll: add scroll window manager compositor support
Add Scroll Compositor Support
Closes #696
Overview
Implements support for the Scroll window manager using the i3 IPC binary protocol, as requested in #696.
Changes
- New:
Services/ScrollService.qml- Full i3 IPC protocol implementation- Binary message encoding/decoding (magic string "i3-ipc" + headers)
- Workspace management with per-monitor filtering
- Event subscriptions for workspace, window, mode, input, scroller, and trails
- Updated:
Services/CompositorService.qml- Scroll detection viaSCROLLSOCK - Updated:
Modules/DankBar/Widgets/WorkspaceSwitcher.qml- Scroll workspace integration
Implementation Details
Based on the gtkshell reference implementation:
- Uses Sway/i3-compatible IPC protocol with binary message format
- Two socket connections: one for requests, one for event subscriptions
- Workspaces identified by
num(integer) following i3/Sway conventions - Per-monitor workspace filtering when enabled in settings
Related
Follows architectural patterns from:
- Sway support: c87fa0d
- DWL support: aede6b0
I feel like this could be much simpler since this is based on sway and we already support sway. Like, it could just use the exact same path as the current sway support. I3.dispatch... path, and Quickshell.I3 path
Looks fine, could you resolve the conflicts (I created some for you I guess).
Closed for #959