Sway is the Right Foundation
When it comes to Wayland compositors, I initially had so much hope for Hyprland. The animations are fluid, the blurs are beautiful, and it truly feels like "the future." However, after a few days of daily driving, the "eye candy" started to feel like a distraction, and the frequent crashes and lost sessions became frustrating.
For a production environment, I am more than happy to sacrifice rounded corners and animations for a system that is incredibly stable. Sway is rock-solid and boring in the best way possible.
IPC Protocol
Both Sway and Hyprland feature a mature IPC (Inter-Process Communication) protocol. IPC allows you to send commands and receive events via Unix sockets. This was a massive relief; I initially thought I would have to rely on CLI tools like swaymsg to send commands (which, as it turns out, just uses the IPC protocol under the hood anyway). The existence of a robust IPC protocol means it's possible to actively listen for events, rather than just blindly executing commands.
As I dug into the documentation, I realized that taming the IPC unlocks incredible possibilities. You don't necessarily need to write a window manager from scratch in a high-level language. If the IPC is robust enough, you can treat the compositor as a "display server" and move all the logic to handle window management, tiling algorithms, and workspace behavior into a separate process. And what better language to handle that logic than Guile Scheme?
The Way Forward
I actually created a small, working prototype for both Sway and Hyprland. I won't lie Hyprland crashed multiple times during testing, which made me decide to develop the Guile IPC bindings specifically for Sway. It proved to be highly stable and offers exactly what is needed to build a fully hackable scripting environment.
Sway is the Right Foundation
When it comes to Wayland compositors, I have to say I had some much hope in Hyprland. The animations are fluid, the blurs are beautiful, and it feels like "the future". however, after a few days of daily driving, the "eye candy" started to feel like a distraction, and the frequent crashes and loss of session begun to be annoying.
For a production environment, I am more than happy to sacrifice rounded corners and animations for a system that's very stable. Sway is rock-solid, boring in the best way possible.
IPC Protocol
Both Sway and Hyprland have a mature IPC (Inter-Process Communication) protocol. IPC allows you to send commands and receive events via Unix Sockets. This is such a relief, I initially thought I was going to have to use something like swaymsg to send commands (which turned out to use the IPC protocol as well). The existing of the IPC protocol means it's possible to also listen for events, not only execute commands.
As I dug into the documentation and I started realizing that taming IPC might allow anyone to have You don't necessarily need to write a window manager from scratch in a high-level language. If the IPC is robust enough, you can treat the compositor as a "display server" and move all the logic of the window management, the tiling algorithms, the workspace behavior into a separate process. And what better language to handle that logic than Guile Scheme?
The Way Forward
I have indeed created a small working prototype for both Both Sway and Hyprland. I can't hide that Hyprland crashed multiple time which is the reason why I decided to develop the guile IPC keybindings for Sway. It provided to be very stable and offers what's needed to develop the scripting environment.
