While Wayland offers several tooling solutions for managing display outputs, it often seems that each solution lacks certain features found in others.
wayland-displays aims to address this gap by integrating the best aspects of existing tools. The focus is on:
- Intuitive user experience similar to that of built-in settings on both Windows and MacOS.
- User-friendly GUI for easy configuration.
- Feature-complete CLI tool capable of adjusting any setting.
- Ensuring compatibility across various window managers through comprehensive VM-based testing.
Project | Support | GUI | Persistence | Profiles |
---|---|---|---|---|
way-displays | wayland (wl-roots) | ❌ Issue | ✅ yaml | Issue |
wdisplays | wayland | ✅ | ❌ | ❌ |
nwg-displays | sway, Hyprland | ✅ | ✅ | ❌ |
wlay | Wayland | ✅ | ✅ | ❌ |
kanshi | wayland | ❌ | ✅ custom | ✅ |
autorandr | X11 | ❌ | ✅ ini | ✅ |
alex-courtis/way-displays is a CLI-based tool that is the wayland successor to alex-courtis/xlayoutdisplay, which is inspired by emersion/kanshi.
- It works as a single binary client-server model, where the server is a daemon that responds to configuration changes, while the client allows for high flexibility of configuration.
- Unlike the rest of the tools here, it does not directly allow configuration of display positions. Instead, the suser sets
ARRANGE
,ALIGN
,ORDER
andSCALE
parameters, and the tool does the necessary computations. This allows it to make sensible changes when displays are added and removed.
artizirk/wdisplays is a fork of the unmaintained MichaelAquilina/wdisplays, a GTK3 GUI application with code borrowed from emersion/kanshi.
- Uses the
wlr-output-management-unstable-v1 protocol
nwg-piotr/nwg-displays is a GUI tool inspired by artizirk/wdisplays and atx/wlay.
- Unlike the rest of the tools here, it only supports sway and hyprland. The tool takes configurations the user and converts it into compositor-specific config files meant for the two compositors to source, hence providing a form of persitence indirectly.
atx/wlay is a simple GUI app that allows configuration of the most basic of settings.
- It can generate sway config, kanshi config or wlr-randr script.
- I'd recommend using wdisplays or nwg-displays, unless kanshi support is required
emersion/kanshi is a CLI tool that has inspired many other tools listed here.
- Uses the
wlr-output-management protocol
phillipberndt/autorandr is a Python rewrite of wertarbyte/autorandr meant for X11. Under the hood, they both use xrandr. Even though these tools have existed for many years, they support the feature of profiles. It can still be informative to see how displays were managed in the X11 days.
We use cmake to configure the project.
Dependencies:
- GTK3
- Cairo
- Wayland
wayland-scanner
(generates headers from wayland xml spec files)
make
For Nix users
Just nix run
will suffice!