u/QuadraTech

I replaced KDE Plasma's KWin with (a) Sway (fork).
▲ 29 r/swaywm

I replaced KDE Plasma's KWin with (a) Sway (fork).

Whenever someone asks about this on a forum the response always seems to be 'KDE uses its own custom protocols, it's not possible'. I wondered how many of the protocols are actually needed. Turns out that properly implementing two functions(set_position, set_role) gets you 95% of the way there.

Other things I did:

  • Advertise a separate entry in the login manager called 'Sway Plasma'. The startup script switches out KWin's systemd unit with a Sway replacement, and everything else in Plasma's startup is untouched.
  • Add stub implementations for some DBus services
    • Makes screen dimming inhibition and session logout work properly
  • Write a panel widget for showing Sway Workspaces

Some known issues:

  • Screen locking doesn't work. Swaylock probably still functions, but good luck integrating that with Plasma's screen dimming / sleep.
  • You can floating-modifier-drag notifications.
  • Focus-follows-mouse doesn't play well with floating applets. Turns out standard Plasma has the same issue.

Why?

I chose Sway because I wanted productivity and configurability. I didn't want:

  • My laptop unexpectedly dying multiple times because I didn't set up a script that warns me about low battery
  • Being paranoid that I may be missing other critical notifications of the above sort
  • Installing / learning about a thousand million programs to configure
    • Wifi
    • Bluetooth
    • Printers
    • ...
  • Debugging swayidle and learning about flaws with Wayland's idle-inhibit protocol

A real desktop environment would be real nice, but I don't want to rely on tiling scripts that lack features and seem to go out of maintenance every 3 months.

https://github.com/quadratech188/sway-plasma
AI use: Debugging, Learning QML

u/QuadraTech — 9 days ago