Using Wayland: Difference between revisions
(→Sway) |
(→Tools) |
||
(14 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
The goal of this page is to relate experiences using Wayland working implementations, software replacement from the X11 world and so on. |
The goal of this page is to relate experiences using Wayland working implementations, software replacement from the X11 world and so on. |
||
Duck: also please |
Duck: also please note I'm an AwesomeWM user so I'm not looking into major desktop implementations like GNOME or KDE but more on mixing interesting pieces to fit your needs better. You can have a look at my configuration [https://vcs-git-viewer.duckcorp.org/?p=people/duck/duckland-infra.git;a=tree in my repository] (Ansible rules). |
||
== Compositors == |
== Compositors == |
||
Line 16: | Line 16: | ||
Problems: |
Problems: |
||
* DRM issues when switching VT or when going out from idle (DPMS off and on) ( |
* <del>DRM issues when switching VT or when going out from idle (DPMS off and on)</del> (disappeared when switching to kernel 5.0, probably a driver issue) |
||
* [https://github.com/swaywm/sway/issues/3395 damage tracking issues with xwayland] (ugly but not not annoying with most applications) |
* [https://github.com/swaywm/sway/issues/3395 damage tracking issues with xwayland] (ugly but not not annoying with most applications) |
||
* contextual windows in need of relative positioning are not displayed or not at the right location (tray contextual menu, IM selections) |
* contextual windows in need of relative positioning are not displayed or not at the right location (tray contextual menu, IM selections) |
||
* games under Wine may not draw or grab input correctly if run fullscreen (but windowed using the full screen size is fine and anyway often better especially with older games when you switch back and forth between workspaces) |
|||
* <del>tabbed mode switch tab if mouse over</del> (fixed in 1.1) |
|||
Packaging: not ready in Debian yet but [https://salsa.debian.org/swaywm-team WIP in Salsa]: wlroots builds fine, Sway 1.0 final needs a patch (added ''-Wno-error=date-time'' to ''meson.build'' build options to work around a failure because some macro uses the build time and makes the build unreproducible) |
Packaging: not ready in Debian yet but [https://salsa.debian.org/swaywm-team WIP in Salsa]: wlroots builds fine, Sway 1.0 final needs a patch (added ''-Wno-error=date-time'' to ''meson.build'' build options to work around a failure because some macro uses the build time and makes the build unreproducible) |
||
Line 24: | Line 26: | ||
Tools: |
Tools: |
||
* swaybar (display workspaces, current window title, tray, time, CPU infos…) |
* swaybar (display workspaces, current window title, tray, time, CPU infos…) |
||
** integrated with sway |
** integrated with sway, can use various commands to display stuff (i3status works fine and is packaged in Debian) |
||
** Status: works fine but [https://github.com/swaywm/sway/issues/3799 tray support is limited] (icon may be missing, contextual menu not working, WIP) |
** Status: works fine but [https://github.com/swaywm/sway/issues/3799 tray support is limited] (icon may be missing, contextual menu not working, WIP) |
||
⚫ | |||
** not packaged in Debian |
** not packaged in Debian |
||
⚫ | |||
** Status: tested only a short time, tray working better than swaybar but contextual menu currently displayed in the middle of the screen, [https://github.com/Alexays/Waybar/issues/223 passing TZ to clock widget is not yet implemented] |
** Status: tested only a short time, tray working better than swaybar but contextual menu currently displayed in the middle of the screen, [https://github.com/Alexays/Waybar/issues/223 passing TZ to clock widget is not yet implemented] |
||
* swaylock (lock screen) |
* swaylock (lock screen) |
||
** packaged in Debian |
** packaged in Debian |
||
** Status: works fine |
** Status: works fine |
||
* swayidle (run custom actions on idle and back from idle) |
|||
* swayidle |
|||
** packaged in Debian |
** packaged in Debian |
||
** Status: works fine but stopped using it because of the DRM issues listed above |
** Status: works fine but stopped using it because of the DRM issues listed above |
||
* remote desktop |
|||
** integrated with sway |
|||
** Status: [https://github.com/swaywm/wlroots/pull/1578 wlroots support has been implement], [https://github.com/swaywm/sway/issues/2939 Sway now needs to make use of it] |
|||
=== [http://way-cooler.org/ Way Cooler] (spiritual successor of AwesomeWM) === |
=== [http://way-cooler.org/ Way Cooler] (spiritual successor of AwesomeWM) === |
||
Line 41: | Line 46: | ||
== Tools == |
== Tools == |
||
=== Display Manager === |
|||
* lightdm: |
|||
** packaged in Debian |
|||
** Status: works fine to run Wayland sessions but runs on X11 itself |
|||
=== Application Menu Runner === |
=== Application Menu Runner === |
||
Line 66: | Line 77: | ||
* fcitx4: |
* fcitx4: |
||
** packaged in Debian |
** packaged in Debian |
||
** Status: untouched config from X11 works but completion menu |
** Status: untouched config from X11 works but completion menu may not be displayed (it works on one machine and not another but I could not figure out why yet) |
||
* fcitx5: |
* fcitx5: |
||
** has Wayland support |
** has Wayland support |
||
** only the core is packaged in Debian |
** only the core is packaged in Debian |
||
** Status: i was not able to make it work |
** Status: i was not able to make it work and quit |
||
* ibus: |
|||
** packaged in Debian |
|||
** Status: ibus-wayland is available and was switched to using a newer version of the wayland input protocol (see [https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=905001 Debian#905001] and linked upstream BR) but Sway use an even newer version (and this one only); anyway these changes are mostly untested so I would not have too much hopes; without this plugin I was not able to make completion work at all, even when forcing the engine on the command-line |
|||
So here are the various protocols: |
|||
* wl_input_method: [https://gitlab.freedesktop.org/wayland/weston/commit/b57f472c84592b0ec64c39d2e707892e58587aea seems it was an old draft added to Weston but not part of the Wayland protocols] |
|||
* zwp_input_method_v1: current Wayland unstable protocol, implemented by Weston, ibus-wayland and fcitx5 |
|||
* zwp_input_method_v2: [https://patchwork.freedesktop.org/patch/254850/ WIP to be integrated in Wayland unstable protocols], implemented by Wlroots/Sway |
|||
=== Terminal === |
|||
* termite: (native Wayland support) |
|||
** not packaged in Debian |
|||
** works fine |
|||
* xfce4-terminal: |
|||
** packaged in Debian |
|||
** Status: works fine |
|||
* terminator: |
|||
** packaged in Debian |
|||
** Status: works fine (with Sway >=1.1) |
|||
=== Screen Capture === |
=== Screen Capture === |
||
* grim (screenshot) |
* grim: (screenshot) |
||
** packaged in Debian |
** packaged in Debian |
||
** Status: works fine |
** Status: works fine |
||
=== Screen Brightness === |
|||
* brightnessctl: |
|||
** packaged in Debian (brightness-udev is needed to be usable as non-root) |
|||
** Status: works fine |
|||
=== Browser === |
|||
* firefox: |
|||
** packaged in Debian |
|||
** Status: works fine on XWayland, seems to be ok so far on Wayland but [https://bugzilla.mozilla.org/show_bug.cgi?id=635134 officially it is still WIP] |
|||
* chromium: |
|||
** packaged in Debian |
|||
** Status: works fine on XWayland, [https://bugs.chromium.org/p/chromium/issues/detail?id=578890 native Wayland support is WIP] |
|||
== Workarounds == |
|||
=== GTK Applications === |
|||
GTK uses GDK to draw and support for Wayland exists but [https://wiki.gnome.org/Initiatives/Wayland/GTK%2B a few things are missing] thus it is not enabled by default. Currently you have to set this variable to enable it: |
|||
export GDK_BACKEND=wayland |
|||
=== Java Applications === |
|||
Set ''_JAVA_AWT_WM_NONREPARENTING=1'' in your environment and menu and always on top issues (and maybe others) will be fixed. |
|||
== Readings == |
|||
* [https://wiki.archlinux.org/index.php/Wayland Wayland (Arch Linux documentation)] |
|||
* [https://www.phoronix.com/scan.php?page=news_item&px=Vulkan-1.1-Wayland-Compositor With Vulkan 1.1 It's Technically Possible To Write A Pure Wayland Compositor] |
Revision as of 06:36, 6 June 2019
Introduction
The goal of this page is to relate experiences using Wayland working implementations, software replacement from the X11 world and so on.
Duck: also please note I'm an AwesomeWM user so I'm not looking into major desktop implementations like GNOME or KDE but more on mixing interesting pieces to fit your needs better. You can have a look at my configuration in my repository (Ansible rules).
Compositors
There's many Wayland compositor projects around but a lot are very experimental and many even already abandoned.
Working or prospective compositors follows.
Sway
Status: very active project, create a wlroots framework to share with other compositors, version 1.0 is usable with some glitches, seamless xwayland integration
Problems:
DRM issues when switching VT or when going out from idle (DPMS off and on)(disappeared when switching to kernel 5.0, probably a driver issue)- damage tracking issues with xwayland (ugly but not not annoying with most applications)
- contextual windows in need of relative positioning are not displayed or not at the right location (tray contextual menu, IM selections)
- games under Wine may not draw or grab input correctly if run fullscreen (but windowed using the full screen size is fine and anyway often better especially with older games when you switch back and forth between workspaces)
tabbed mode switch tab if mouse over(fixed in 1.1)
Packaging: not ready in Debian yet but WIP in Salsa: wlroots builds fine, Sway 1.0 final needs a patch (added -Wno-error=date-time to meson.build build options to work around a failure because some macro uses the build time and makes the build unreproducible)
Tools:
- swaybar (display workspaces, current window title, tray, time, CPU infos…)
- integrated with sway, can use various commands to display stuff (i3status works fine and is packaged in Debian)
- Status: works fine but tray support is limited (icon may be missing, contextual menu not working, WIP)
- Waybar (more fancy bar)
- not packaged in Debian
- Status: tested only a short time, tray working better than swaybar but contextual menu currently displayed in the middle of the screen, passing TZ to clock widget is not yet implemented
- swaylock (lock screen)
- packaged in Debian
- Status: works fine
- swayidle (run custom actions on idle and back from idle)
- packaged in Debian
- Status: works fine but stopped using it because of the DRM issues listed above
- remote desktop
- integrated with sway
- Status: wlroots support has been implement, Sway now needs to make use of it
Way Cooler (spiritual successor of AwesomeWM)
Status: being rewritten on top of wlroots, far from being usable yet (as of early 2019)
Tools
Display Manager
- lightdm:
- packaged in Debian
- Status: works fine to run Wayland sessions but runs on X11 itself
Application Menu Runner
- j4-dmenu-desktop + bemenu:
- j4-dmenu-desktop only is packaged in Debian
- Status: works fine
- Usage: j4-dmenu-desktop --dmenu='bemenu --list 10 --wrap --ignorecase --no-overlap --prompt "Run:" --fn "pango:DejaVu Sans Mono 12"' --term=x-terminal-emulator
- dmenu:
- packaged in Debian (suckless-tools)
- Status: works fine but impossible to switch back to it if you loose focus (need to kill it in a term)
- Usage: dmenu_path | dmenu -p "Run:" -l 10 | xargs swaymsg exec
Notifications
- mako:
- not packaged in Debian
- works fine
- xfce4-notifyd:
- packaged in Debian
- Status: works fine but display in the middle of the screen thus not very practical
Input Method
- fcitx4:
- packaged in Debian
- Status: untouched config from X11 works but completion menu may not be displayed (it works on one machine and not another but I could not figure out why yet)
- fcitx5:
- has Wayland support
- only the core is packaged in Debian
- Status: i was not able to make it work and quit
- ibus:
- packaged in Debian
- Status: ibus-wayland is available and was switched to using a newer version of the wayland input protocol (see Debian#905001 and linked upstream BR) but Sway use an even newer version (and this one only); anyway these changes are mostly untested so I would not have too much hopes; without this plugin I was not able to make completion work at all, even when forcing the engine on the command-line
So here are the various protocols:
- wl_input_method: seems it was an old draft added to Weston but not part of the Wayland protocols
- zwp_input_method_v1: current Wayland unstable protocol, implemented by Weston, ibus-wayland and fcitx5
- zwp_input_method_v2: WIP to be integrated in Wayland unstable protocols, implemented by Wlroots/Sway
Terminal
- termite: (native Wayland support)
- not packaged in Debian
- works fine
- xfce4-terminal:
- packaged in Debian
- Status: works fine
- terminator:
- packaged in Debian
- Status: works fine (with Sway >=1.1)
Screen Capture
- grim: (screenshot)
- packaged in Debian
- Status: works fine
Screen Brightness
- brightnessctl:
- packaged in Debian (brightness-udev is needed to be usable as non-root)
- Status: works fine
Browser
- firefox:
- packaged in Debian
- Status: works fine on XWayland, seems to be ok so far on Wayland but officially it is still WIP
- chromium:
- packaged in Debian
- Status: works fine on XWayland, native Wayland support is WIP
Workarounds
GTK Applications
GTK uses GDK to draw and support for Wayland exists but a few things are missing thus it is not enabled by default. Currently you have to set this variable to enable it:
export GDK_BACKEND=wayland
Java Applications
Set _JAVA_AWT_WM_NONREPARENTING=1 in your environment and menu and always on top issues (and maybe others) will be fixed.