ConfigWaylandSettings - lxqt/lxqt GitHub Wiki
For an overall Wayland support, LXQt 2.1.x or -git is required, while most components already support Wayland in V2.0.x.
lxqt-wayland-session has to be installed for enabling "Wayland Settings" in "Session Settings". The panel can choose a specific backend for each compositor to enable workspace switcher, other workspace related menu-items, and more. At the moment the available backends are X11 (xcb), a general one for wlroots-based compositors, and another for kwin_wayland.
Some components cannot be used under Wayland, and an information dialog will be shown if they are launched there. This includes "Keyboard and Mouse", "Shortcut Keys", power key settings in "Power Management", and "Monitor Settings" which works only under kwin_wayland. Those settings are handled directly by the compositor now and can be configured in its settings. Some panel widgets are not supported at all (Keyboard State) or not on every compositor (Desktop Switcher, Show Desktop), depending on whether there is a dedicated backend available or not. Some right click menu-items of task-bar buttons are grayed out if unavailable.
Note that also ScreenGrab does not support Wayland either.
The compositor can be chosen in the settings. The supported stacking compositors are labwc, Wayfire and kwin_wayland, while the tiling ones are Hyprland, Niri, River and Sway. For a working taskbar the compositor should support wlr-foreign-toplevel-management-unstable-v1
protocol. For starting an LXQt session under other compositors, the command lxqt-session && <logout_command>
has to be added in the autostart setting of the compositor.
For the supported compositors, minimal default settings based on their default settings are shipped and will be installed in ~/.config/lxqt/wayland/
folder at the first start, except for kwin_wayland
and labwc, where the default configurations are used. A GUI configuration tool is available for labwc (labwc-tweaks) and Wayfire (wcm).
Type | Gui config | Animations/Effects | Titlebar Menu | Config File | Magnifier | Notes/Issues | |
---|---|---|---|---|---|---|---|
Hyprland | Tile | - | yes | - | custom | yes | --- |
labwc | Stack | partial | Shadows only | Custom | xml | yes | |
Kwin | Stack | yes | yes | Default | ini | yes | Kwin has its own lock settings, consider disabling it. |
Niri | Tile | - | yes | - | kdl | - | --- |
River | Tile | - | - | - | script | - | Taskbar cannot activate windows on other tags |
Sway | Tile | - | - | - | custom/sh | - | runner broken |
Wayfire | Stack | yes | yes | - | ini | yes |
Consider disabling the shortcut for exiting the compositor to avoid accidental killing of the session.
As of May 2025, two Wayland backends are available: kwin_wayland and one for wlroots-compatible compositors, which will be automatically detected for all seven supported compositors.
For special cases the backend to load can be forced manually for any desktop specified in XDG_CURRENT_DESKTOP
by a comma-separated list in ~/.config/lxqt/panel.conf
:
[General]
…
preferred_backend=labwc:wlroots, niri:wlroots, xyz:my_own_backend
…
Supported/tested screenlockers are swaylock
, waylock
and hyprlock
. On kwin_wayland loginctl lock-session
has to be set in the mask. Other Wayland screenlockers may work as well.
Shortcuts are handled exclusively by the compositor. Because of that, applications launched by such shortcuts might not exit decently on logging out if they are running before the session ends. That might result in unsaved settings on logging out. The reason is that their processes are not controlled by LXQt Session.
As a workaround, you can use shortcuts that launch applications through lxqt-session's D-BUS interface (with lxqt-session ≥ 2.2.0 or git), which makes them exit gracefully when the session ends. An example for labwc:
Instead of
<action name="Execute" command="featherpad"/>
Use
<action name="Execute" command="qdbus6 org.lxqt.session /LXQtSession execDesktopFile featherpad.desktop"/>
It is longer but safer.
The names of desktop files can be found in /usr/share/applications/
. The general command is
qdbus6 org.lxqt.session /LXQtSession execDesktopFile DESKTOP_FILE_NAME_OR_PATH
Also, a desktop file can be made for any executable file, and its full path can be used in a command like above. But, for a desktop file inside $XDG_DATA_DIRS/applications/
, the file name is enough.
The global screen scaling of "LXQt Session Settings" is only for X11 and should not be used on Wayland. Wayland supports per-monitor scaling, and best results can be achieved in the settings of the compositor, if existing. Examples:
Hyprland: monitor=,preferred,auto,1.2
Sway: Output eDP-1 scale 1.2
With all compositors that support wlr-output-management protocol
, kanshi can be configured. With kwin_wayland, KDE's systemsettings
is the best tool.
Please check your compositor configuration if some of them aren't working. Sway, for example, uses pactl
(part of libpulse) for volume, while labwc and Wayfire use pamixer
by default, which may not be present in your installation.
-
swayidle
Screen blanking/monitor off in combination withwlopm
-
swaybg
Background below desktop (splash) -
lswt
list Wayland toplevels (windows), useful for window rules -
wlrctl
Command line utility for miscellaneous wlroots extensions -
wlopm
Turn off monitor(s) -
wtype
Sending keystrokes (p.e. in custom command plugin or shortcuts) -
kanshi
Monitor settings -
wdisplay
Monitor settings on the fly -
copyQ
Clipboard manager; works fine under kwin_wayland as well as wlroots -
wvkbd
Virtual keyboard -
wev
List keypress and mouse events -
grim
andslurp
Screenshot -
wf-recorder
Screencast -
wshot
GUI for screenshots
- On bottom and right panels some tooltips and some popups align to screen border.
See https://github.com/lxqt/lxqt-panel/issues/2092 for status.
Check "Use icons by window class" in taskbar settings.
Read https://github.com/lxqt/pcmanfm-qt/wiki#using-desktop-under-wayland
- Element (electron):
.config/electron-flags.conf
:
--enable-features=UseOzonePlatform
--ozone-platform=wayland
- Darktable:
GDK_BACKEND=wayland darktable
(can be added in the.desktop
file)
LXQt's power manager settings for turning off the monitor will work fine under kwin_wayland
if you add this line to ~/.config/lxqt/power.conf
:
monitorOffCommand=kscreen-doctor --dpms off
Make sure you have kscreen-doctor
. It is provided by libkscreen
in Arch.
The other actions of the idleness watcher work in all supported compositors, but this one only works with kwin_wayland
for now, and you can control it in the right-click menu of the battery tray icon, as in X11. Use swayidle
with other compositors.
`~/.config/libinput-gestures.conf :
# Add this to auto-start in compositor: libinput-gestures-setup start
# https://github.com/bulletmark/libinput-gestures
# sway
gesture: swipe left 3 swaymsg -t command workspace next_on_output
gesture: swipe right 3 swaymsg -t command workspace prev_on_output
# labwc (with C-A-right configured in rc.xml)
gesture: swipe left 3 wtype -M ctrl -M alt -P right
gesture: swipe right 3 wtype -M ctrl -M alt -P left
Save to executable files screenshot_full
and `screenshot_area and set shortcuts like Alt+Print/Ctrl+Print.
grim /tmp/screen_full_$(date +'%a_%T_.png') &&
notify-send -a grim -i screengrab -t 2000 "Full screenshot saved"
lximage-qt /tmp/screen_full_$(date +'%a_%T_.png')
grim -g "$(slurp -d)" - | wl-copy -t image/png && notify-send -a grim -i screengrab -t 2000 "Screenshot saved to clipboard"
Custom command plugin can trigger actions for which shortcuts are configured, using wtype
. Example: Go to workspace right|left.
Add to XKB_DEFAULT_OPTIONS: grp_led:scroll
, example labwc:
XKB_DEFAULT_OPTIONS=grp:caps_toggle,grp_led:scroll
Add if [ "$(cat /sys/class/leds/input3\:\:scrolllock/brightness)" == "1" ]; then echo "US";else echo "DE"; fi
as command. Repeat every second. /sys/class/leds/input3
can be different on different OS.
/etc/sddm.conf
[General]
...
DisplayServer=wayland
[Wayland]
...
SessionLogFile=/tmp/wayland-session.log
CompositorCommand=labwc
SDDM uses /var/lib/sddm/
as home directory where the compositor should be configured, otherwise default settings will be applied:
/var/lib/sddm/.config/labwc/rc.xml
<?xml version="1.0"?>
<labwc_config>
<keyboard>
<keybind key="A-Space">
<action name="ShowMenu" menu="client-menu" />
</keybind>
<keybind key="A-k">
<action name="Execute">
<command>wvkbd-mobintl</command>
</action>
</keybind>
</keyboard>
<mouse>
<default />
</mouse>
<libinput>
<device category="default">
<naturalScroll>no</naturalScroll>
<pointerSpeed>0.8</pointerSpeed>
<accelProfile>adaptive</accelProfile>
<tap>yes</tap>
<disableWhileTyping>yes</disableWhileTyping>
</device>
</libinput>
</labwc_config>