Skip to content

stefonarch/LXQt-Wayland-files

Repository files navigation

LXQt Desktop under Wayland

General files and dotfiles for configuring a LXQt Wayland session. LXQt 2.1 has native wayland support in all its elements and content here is somehow outdated, except for some hacks and tricks.

Folder/Content

  • start_scripts: startlxqt<compositor> : ENV variables, import settings, start compositor
  • wayland-sessions: <compositor>_lxqt.desktop : Entry in SDDM
  • scripts: some tools for autostart and else
  • config : configurations for LXQt < 2.0 and other components

lxqt-panel

Working in labwc, sway, hyrpland, kwin_wayland, wayfire, river, niri and most probably with all compositors which support wrloots protocols.

For more details and workarounds see lxqt-panel page and the Wayland Wiki.

Starting LXQt Session

  • Copy the desired file(s) from wayland-sessions to /usr/share/wayland-sessions/ (if using a display manager like SDDM). Copy the desired scripts from startup_scripts to /usr/bin/ or /usr/local/bin and make them executable.

  • Labwc and kwin_wayland start scripts will start lxqt-session automatically; in other compositors executing lxqt-session or some of its components has to be configured in their settings file. For both complete installation setups are available, see "Screenshots" below. To exit also the compositor after exiting LXQt && <exit_command> should be used.

  • startlxqt<compositor> scripts can be executed also directly in tty.

  • $XDG_CURRENT_DESKTOP is now set to LXQt:<compositor including also :wlroots if not kwin-wayland.

  • Basically similar script could work for any compositor, see their last line.

  • The provided startup scripts use the default configuration files for the compositors. All wlroots-based compositors have options to use different location if different settings are desired.

Notes and News

  • lxqt-wayland-session is available in most distributions now.
  • There is a LXQt Wayland Wiki
  • Multiple user session are possible alongside a normal session started by sddm by simply login on tty and using one of the start scripts. Probably using different sessions types with the same user is not a good idea. Using kwin_wayland multiple user sessions are fully supported.
  • Some applications in autostart may not work under wayland and/or can cause high cpu usage - see "scripts" folder for a selective autostart of applications depending on session type x11/wayland. For wayland-only applications useing the autostart settings from the compositor is recommended. Using Git packages autostart for apps can be limited to X11 only now.
  • Qterminal's dropdown mode is supported now. Adding manually a hotkey for qterminal -d in compositor settings is needed.
  • LXQt screenlock settings are supported now in wayland. Using kwin_wayland screenlocking is provided by the compositor while swaylock, waylockand hyprlock can be used in wlroots-based compositors.

In ~/.config/lxqt/session.conf:

[General]
__userfile__=true
...

lock_command=slock
lock_command_wayland=swaylock

For kwin_wayland the setting is loginctl lock-session.

Screenshots and Annotations

Labwc (stacking)

Screenshot labwc

See: lxqt-labwc-session.

Kwin_wayland (stacking)

Screenshot kwin_wayland

See lxqt-kwin-session.

Wayfire (stacking)

Basic settings in wayfire.ini:

[autostart]
autostart_wf_shell = false
background = swaybg -i /usr/share/lxqt/wallpapers/origami-dark.png
lxqt_session = lxqt-session && killall wayfire

[command]
command_launcher = lxqt-runner
binding_launcher = <alt> KEY_SPACE

Exists a configation GUI tool WCM (wayfire configuration manager). In wayfire 0.8.1 lxqt-runner doesn't get focus automatically.

Niri

Basic Settings:

spawn-at-startup "sh" "-c" "lxqt-session && niri msg action quit -s"

    Mod+Shift+A { show-hotkey-overlay; }
    Mod+T { spawn "qterminal"; }
    F12 { spawn "qterminal" "-d"; }
    Alt+Space { spawn "lxqt-runner"; }
    Mod+P { spawn "pcmanfm-qt"; }
    Super+Alt+L { spawn "lxqt-leave"; }

Note: "add to favorites" in fancy menu is broken atm. Favorites have to be configured editing panel.conf or better in another session type.

Sway (tiling)

Basic Settings:

exec lxqt-session && sway exit

for_window [app_id="^lxqt-.*$"] floating enable
for_window [app_id="^lxqt-.*$"] floating enable

bindsym alt+space exec lxqt-runner

In sway 1.9 lxqt-runner and qterminal's dropdown don't get keyboard focus automatically.

River (tiling)

Screenshot River

The taskbar of lxqt-panel is most useless in river as it can't focus tags except when on tag 0, so lxqt-panel v.2.0 is fine. "Custom Command Plugin" allows building a tag switcher in the panel and much more.

Basic Settings:

riverctl spawn "lxqt-session && riverctl exit"

# Powerbutton
for mode in normal
do
    riverctl map $mode None XF86PowerOff spawn lxqt-leave
done

Hyprland (tiling)

Screenshot Hyprland

Basic settings needed in hyprland.conf:

monitor=,preferred,auto,1

env = QT_QPA_PLATFORMTHEME,lxqt
env = QT_PLATFORM_PLUGIN,lxqt
env = XDG_MENU_PREFIX,lxqt-
env = XDG_CURRENT_DESKTOP,LXQt:Hyprland:wlroots

exec-once=lxqt-session && hyprctl dispatch exit

windowrule = float,^(?!lxqt-archiver)(lxqt-.*|pavu.*|.*copyq|sddm-conf|qarma|.*portal-lxqt|Preferen|cryptHider|meteo-qt.*|python3)$
windowrule = float,title:^(Preferen.*|Crea.*|Search.*|Password.*|Elimina.*|Close.*|Execute.*)$
windowrulev2 = dimaround,floating:1
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.

layerrule = noanim, launcher
layerrule = dimaround, ^(launcher|dialog|dropdown_terminal)$
layerrule = animation slide top, dropdown_terminal
layerrule = animation popin 80%, dialog

Note: DND to quicklaunch is broken atm, another DE is needed for it.

3rd party tools

  • swaybg : background image (below desktop)
  • swayidle; swaylock : lock screen
  • Panels/bars:
  • sfwbar : Source taskbar and much more
  • yatbfw Source: taskbar, clock, quicklaunch
  • waybar : taskbar, notification area, cpu/#windowrule = float,^(cmst)$ windowrule = float,io.github.martinrotter.rssguardram/temp monitor, keyboard layout display For keyboard-state working make sure your user is member of the "input" group. Some icons need "font-icon" and "font-awesome" to be displayed.
  • wlrctr and wtype : for some keybindings - especially open applications menu in lxqt-panel
  • wdisplay: Screen management GUI, see wdisplay
  • clipman, dmenu, wl-clipboard : cliboard manager (configuration see wayfire.ini)
  • grim,slurp : screenshots Example configuration
  • wshot GUI for screenshots, see wshot
  • wev : xev for wayland
  • wayfire plugin for per application keyboard layout switch
  • gammastep replacement for redshift
  • wvkbd virtual keyboard

Tipps and Tricks

  • Swipe to change workspace ~/.config/libinput-gestures.conf (for shortcuts "C-A-left|right" in labwc)
gesture: swipe left 3	wtype  -M ctrl -M alt -P right
gesture: swipe right 3 wtype  -M ctrl -M alt -P left

Using Sway swaymsgcan be used:

gesture: swipe left 3   swaymsg -t command workspace next_on_output
gesture: swipe right 3  swaymsg -t command workspace prev_on_output

Add libinput-gestures-setup start to autostart.

  • Screensaver:

In autostart:

swayidle before-sleep swaylock timeout 300 'feh -rzsZFD 8 --draw-exif --draw-tinted ~/path/to/folder' resume 'killall feh'

  • Dim inactive windows: see scripts.

  • Exit gently also applications started by shortcut by the compositor when exiting lxqt-session. Example for labwc:

    <keybind key="W-k">
      <action name="Execute" command="pcmanfm-qt '/usr/share/applications/org.keepassxc.KeePassXC.desktop'" />
    </keybind>
  • Featherpad single window doesn't focus if already open: copy featherpad.desktop from /usr/share/applications to to ~/.local/share/applications and changed the line
Exec=bash -c "featherpad %U && wlrctl window focus featherpad"
  • Telegram does not open multimedia files

If images and video do not open: unset "animation" and eventually "opengl" in Preferences > Advanced.

About

LXQt implementation in Wayland compositors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published