DankMaterialShell icon indicating copy to clipboard operation
DankMaterialShell copied to clipboard

scroll: add scroll window manager compositor support

Open mecattaf opened this issue 1 month ago • 2 comments

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 via SCROLLSOCK
  • 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

mecattaf avatar Nov 12 '25 09:11 mecattaf

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

bbedward avatar Nov 12 '25 13:11 bbedward

Looks fine, could you resolve the conflicts (I created some for you I guess).

bbedward avatar Nov 17 '25 21:11 bbedward

Closed for #959

bbedward avatar Dec 09 '25 16:12 bbedward