You are not logged in.

#1 2021-03-10 16:47:25

Registered: 2012-02-21
Posts: 167

Guide: Full Wayland Setup

I recently switched to Sway, the process of which cascaded into running as much as possible on my machine through Wayland. I compiled everything I discovered and configured into this guide.

To give you a sample, the following are now running completely through Wayland on my machine: Sway itself, Waybar, the Wofi app launcher, browsers (and screen sharing), Emacs, all GTK apps, and most QT apps. I worked through some gotchas with Steam and Input Methods too. Overall things are much "snappier" and I'm quite happy with the result!

Please enjoy the guide, and do let me know if you notice any issues. Cheers!

Author of Aura


#2 2021-03-11 10:56:51

From: Netherlands, Europe
Registered: 2005-10-04
Posts: 10,766

Re: Guide: Full Wayland Setup

Interesting , a few comments :

- Maybe add sway to the title ?

- clarifying which parts are sway specific and which are valid for wayland in general would improve readability .

- Technically wayland is a display server protocol and doesn't have a concept of window managers .

Maybe you can use the description archlinux uses for sway package ?

$ pacman -Si sway | grep Description
Description     : Tiling Wayland compositor and replacement for the i3 window manager

- Several of the solutions / workarounds look like they come from other sources like archwiki .
If that's correct, could you add links to those sources ?

Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

(A works at time B)  && (time C > time B ) ≠  (A works at time C)


#3 2021-03-15 16:06:12

From: Ohio
Registered: 2021-02-27
Posts: 4

Re: Guide: Full Wayland Setup

Great guide! I followed this over the weekend to successfully get Wayland and Sway up and running. Thanks.


#4 2021-03-15 17:40:21

Stefan Husmann
From: Germany
Registered: 2007-08-07
Posts: 1,301

Re: Guide: Full Wayland Setup

Coincidence! I was hacking my own sway config in the last weeks without knowing your guide, and got pretty similar results.

  1. Regarding emacs, I use this one because I prefer self compiling and want native code compilation for elisp files

  2. I read somethig about xeyes, but your guide was the first one which told me everything to know abot how to use it for this purpose. But for cli enthusiasts, here is what I do:

     swaymsg -t get_tree | grep -A4 -B0 app_id
                  "app_id": "Alacritty",
                  "visible": true,
                  "max_render_time": 0,
                  "shell": "xdg_shell",
                  "inhibit_idle": false,
                  "app_id": null,
                  "visible": false,
                  "max_render_time": 0,
                  "shell": "xwayland",
                  "inhibit_idle": false,
                  "app_id": "python3",
                  "visible": false,
                  "max_render_time": 0,
                  "shell": "xdg_shell",
                  "inhibit_idle": false,
                  "app_id": "emacs",
                  "visible": false,
                  "max_render_time": 0,
                  "shell": "xdg_shell",
                  "inhibit_idle": false,

    will show me the programms runnig natively under wayland, and that one program (in this example) is not. To find the one which is not, I can use

    swaymsg -t get_tree | grep -A 4 -B 0 class
                    "class": "Fotoxx",
                    "instance": "fotoxx",
                    "title": "Fotoxx   470\/621  \/home\/haawda\/Desktop\/ciggypiggy\/Bilder\/  24_250614n0214.jpg  (undated)",
                    "transient_for": null,
                    "window_type": "normal"

  3. Random wallpapers: I do not use another seperate application for this, but an alias. I do not store my wallpapers in a seperate directory, but have file swaypool including the full paths.




    alias wcs='while read line ; do swaybg -o "*" -i $line -m fill; sleep 20;killall swaybg; done < swaypool&

Last edited by Stefan Husmann (2021-03-15 17:46:57)


Board footer

Powered by FluxBB