Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package lxqt-wayland-session for openSUSE:Leap:16.0 checked in at 2025-08-07 21:45:52 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:16.0/lxqt-wayland-session (Old) and /work/SRC/openSUSE:Leap:16.0/.lxqt-wayland-session.new.1085 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "lxqt-wayland-session" Thu Aug 7 21:45:52 2025 rev:2 rq:1298210 version:0.2.0 Changes: -------- --- /work/SRC/openSUSE:Leap:16.0/lxqt-wayland-session/lxqt-wayland-session.changes 2025-07-04 11:13:14.460660213 +0200 +++ /work/SRC/openSUSE:Leap:16.0/.lxqt-wayland-session.new.1085/lxqt-wayland-session.changes 2025-08-07 21:46:09.175017898 +0200 @@ -2 +2 @@ -Thu Jul 3 20:25:48 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> +Thu Jul 3 20:52:06 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> @@ -4,2 +4,34 @@ -- Added conditionals to remove hyprland and riverwm sessions from - Leap >= 16 +- Add conditionals to remove hyprland and river sessions from Leap, + restore hyprland session for Tumbleweed + +------------------------------------------------------------------- +Fri Jun 13 09:18:16 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> + +- Disable creation of lxqt-hyprland-session subpackage + * Hyprland just moves too quickly to reasonably support it as a + default option, from a maintenance perspective + +------------------------------------------------------------------- +Thu Apr 17 23:17:24 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> + +- Updated to version 0.2.0: + * Added manpages + * Support default compositor and screenlocker + * Search for compositor setting in fallback dirs + * Use predefined build values in the startup script + * Support full path of compositor + * R emoved obsolete mozilla env var + * Corrected D-Bus error message +- Refactor 0003-configuration-changes-for-default-niri-session.patch +- Refactor 0005-configuration-changes-for-default-hyprland-session.patch +- Refactor 0007-configuration-changes-for-default-sway-session.patch + +------------------------------------------------------------------- +Sat Mar 29 19:06:36 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> + +- Updated labwc config patch to include LABWC_CONFIG_DIR + +------------------------------------------------------------------- +Thu Mar 13 15:48:39 UTC 2025 - Shawn Dunn <sfal...@opensuse.org> + +- Updated miriway patch to fix Xwayland issues Old: ---- lxqt-wayland-session-0.1.1.tar.xz lxqt-wayland-session-0.1.1.tar.xz.asc New: ---- lxqt-wayland-session-0.2.0.tar.xz lxqt-wayland-session-0.2.0.tar.xz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ lxqt-wayland-session.spec ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.595035391 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.595035391 +0200 @@ -16,7 +16,7 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # -# Disable hyprland and River for SLE/Leap +# Disable hyprland and river for SLE/Leap %if 0%{?suse_version} && 0%{?suse_version} <= 1600 %bcond river_session 0 %bcond hyprland_session 0 @@ -26,7 +26,7 @@ %endif Name: lxqt-wayland-session -Version: 0.1.1 +Version: 0.2.0 Release: 0 Summary: Files needed for the LXQt Wayland Session License: BSD-3-Clause AND GPL-2.0-or-later AND LGPL-2.1-or-later AND GPL-3.0-or-later AND MIT AND CC-BY-SA-4.0 @@ -49,7 +49,7 @@ ## PATCH-CONFIGURATION-openSUSE 0007-configuration-changes-for-default-sway-session.patch Patch6: 0007-configuration-changes-for-default-sway-session.patch -BuildRequires: cmake +BuildRequires: cmake >= 3.5.0 BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: git-core @@ -199,6 +199,8 @@ %{_bindir}/startlxqtwayland %{_datadir}/lxqt/wayland/firstrun/autostart %{_datadir}/wayland-sessions/lxqt-wayland.desktop +%{_mandir}/man?/%{name}.?%{?ext_man} +%{_mandir}/man?/startlxqtwayland.?%{?ext_man} %if %{with hyprland_session} %files -n lxqt-hyprland-session ++++++ 0001-configuration-changes-for-default-labwc-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.619036390 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.623036557 +0200 @@ -1,4 +1,4 @@ -From d9a8f8fdce1100871026c578f58b79e236efc2aa Mon Sep 17 00:00:00 2001 +From 007181a21a5cfc57edd5028f1675cf0b60e4218b Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> Date: Wed, 8 Jan 2025 09:24:02 -0800 Subject: [PATCH 1/7] configuration changes for default labwc session @@ -9,11 +9,12 @@ - Adjusts the pointerspeed to make the default mouse pointer less twitchy - Moves user configs from default labwc locations, to avoid config conflicts +- Add LABWC_CONFIG_DIR env variable for labwc-tweaks compatibility --- - configurations/labwc/autostart | 2 +- - configurations/labwc/rc.xml | 2 +- - startlxqtwayland.in | 8 ++++---- - 3 files changed, 6 insertions(+), 6 deletions(-) + configurations/labwc/autostart | 2 +- + configurations/labwc/rc.xml | 2 +- + startlxqtwayland.in | 10 ++++++---- + 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/configurations/labwc/autostart b/configurations/labwc/autostart index fa49741..a756d24 100644 @@ -29,10 +30,10 @@ # Faster startup for GTK apps: dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY > /dev/null 2>&1 & diff --git a/configurations/labwc/rc.xml b/configurations/labwc/rc.xml -index 41d628c..07acc3c 100644 +index d30f842..b8ffd86 100644 --- a/configurations/labwc/rc.xml +++ b/configurations/labwc/rc.xml -@@ -607,7 +607,7 @@ +@@ -662,7 +662,7 @@ <device category="default"> <naturalScroll></naturalScroll> <leftHanded></leftHanded> @@ -42,10 +43,10 @@ <tap>yes</tap> <tapButtonMap></tapButtonMap> diff --git a/startlxqtwayland.in b/startlxqtwayland.in -index 64a2986..d46c317 100644 +index ca713c5..dda2ee5 100644 --- a/startlxqtwayland.in +++ b/startlxqtwayland.in -@@ -96,10 +96,10 @@ if [ -z "$COMPOSITOR" ]; then +@@ -97,10 +97,10 @@ if [ -z "$COMPOSITOR" ]; then elif [ "$COMPOSITOR" = "labwc" ]; then # Copy default configuration if not existing and set keyboard layout if different from us @@ -59,16 +60,18 @@ fi fi -@@ -109,7 +109,7 @@ elif [ "$COMPOSITOR" = "labwc" ]; then +@@ -110,7 +110,9 @@ elif [ "$COMPOSITOR" = "labwc" ]; then echo "Running on virtualized hardware" fi - exec $COMPOSITOR -C $XDG_CONFIG_HOME/labwc -S lxqt-session ++ # Set LABWC_CONFIG_DIR for labwc-tweaks compatibility ++ export LABWC_CONFIG_DIR=$XDG_CONFIG_HOME/lxqt/labwc + exec $COMPOSITOR -C $XDG_CONFIG_HOME/lxqt/labwc -S lxqt-session elif [ "$COMPOSITOR" = "niri" ]; then if [ ! -f "$XDG_CONFIG_HOME/lxqt/wayland/lxqt-niri.kdl" ]; then -- -2.48.1 +2.49.0 ++++++ 0002-configuration-changes-for-default-wayfire-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.639037223 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.643037390 +0200 @@ -1,4 +1,4 @@ -From fdfb717b39469b70248b485f24df4a8477851bca Mon Sep 17 00:00:00 2001 +From dd91a6500cd5218f257779640f11b6adc4b1efa4 Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> Date: Wed, 8 Jan 2025 10:47:45 -0800 Subject: [PATCH 2/7] configuration changes for default wayfire session @@ -22,6 +22,6 @@ # Output configuration -- -2.48.1 +2.49.0 ++++++ 0003-configuration-changes-for-default-niri-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.659038057 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.667038390 +0200 @@ -1,6 +1,6 @@ -From 561f2c47752217551787554890cd916a22272293 Mon Sep 17 00:00:00 2001 +From 7cf4afac1275b2413f215f5adde676eaa075ecbd Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> -Date: Wed, 8 Jan 2025 10:51:06 -0800 +Date: Thu, 17 Apr 2025 16:03:40 -0700 Subject: [PATCH 3/7] configuration changes for default niri session Disables "natural scrolling" for scrollwheel in default session @@ -9,19 +9,19 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configurations/lxqt-niri.kdl b/configurations/lxqt-niri.kdl -index 845a4d0..883eeac 100644 +index 9f2cc9d..59b51c3 100644 --- a/configurations/lxqt-niri.kdl +++ b/configurations/lxqt-niri.kdl -@@ -28,7 +28,7 @@ input { - tap +@@ -29,7 +29,7 @@ input { dwt dwtp + // drag-lock - natural-scroll + // natural-scroll accel-speed 0.6 // accel-profile "flat" // scroll-method "two-finger" -- -2.48.1 +2.49.0 ++++++ 0004-configuration-adds-miriway-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.679038890 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.683039056 +0200 @@ -1,4 +1,4 @@ -From 361a78fd482d6eff08f3f9ec27033e65065d0dbd Mon Sep 17 00:00:00 2001 +From f43d0b8fb35b07374ad3b1d623f107948ff3e431 Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> Date: Thu, 16 Jan 2025 16:12:51 -0800 Subject: [PATCH 4/7] configuration adds miriway session @@ -7,10 +7,10 @@ inclusion upstream @ https://github.com/lxqt/lxqt-wayland-session/pull/40 --- configurations/CMakeLists.txt | 2 + - configurations/miriway/lxqt-miriway-wrapper | 42 +++++++++++++++++++++ - configurations/miriway/miriway-shell.config | 22 +++++++++++ - startlxqtwayland.in | 10 +++++ - 4 files changed, 76 insertions(+) + configurations/miriway/lxqt-miriway-wrapper | 72 +++++++++++++++++++++ + configurations/miriway/miriway-shell.config | 22 +++++++ + startlxqtwayland.in | 10 +++ + 4 files changed, 106 insertions(+) create mode 100644 configurations/miriway/lxqt-miriway-wrapper create mode 100644 configurations/miriway/miriway-shell.config @@ -29,10 +29,10 @@ ) diff --git a/configurations/miriway/lxqt-miriway-wrapper b/configurations/miriway/lxqt-miriway-wrapper new file mode 100644 -index 0000000..85079c0 +index 0000000..d8d2e93 --- /dev/null +++ b/configurations/miriway/lxqt-miriway-wrapper -@@ -0,0 +1,42 @@ +@@ -0,0 +1,72 @@ +#!/bin/sh + +unset WAYLAND_DISPLAY @@ -46,6 +46,7 @@ + +export WAYLAND_DISPLAY=${wayland_display} + ++# Support Xwayland when available +if command -v Xwayland > /dev/null +then + export MIR_SERVER_ENABLE_X11=1 @@ -53,9 +54,22 @@ + export MIR_SERVER_XWAYLAND_PATH +fi + ++# Imperfect workaround for layer-shell-qt bug ++# Cf. https://bugs.kde.org/show_bug.cgi?id=500520 ++export MIR_ANCHOR_RECTANGLE_UNCONSTRAINED=1 ++ ++# Use server side decorations whenever possible ++export MIRIWAY_DECORATIONS="prefer-ssd" ++ ++# Look in the LXQt namespace for LXQt Miriway configuration +export MIRIWAY_CONFIG_DIR="lxqt" + -+miriway-shell --display-config=static="${XDG_CONFIG_HOME}/miriway-shell.display-config" --add-wayland-extensions=all --lockscreen-app="lxqt-leave --lockscreen" & ++# If enabling Xwayland, set up tmpfile to identify X11 DISPLAY ++if [ $MIR_SERVER_ENABLE_X11 -eq 1 ]; then ++ x11_display_file=$(mktemp --tmpdir="${XDG_RUNTIME_DIR}") ++fi ++ ++miriway-shell --display-config=static="${XDG_CONFIG_HOME}/miriway-shell.display-config" --add-wayland-extensions=all --lockscreen-app="lxqt-leave --lockscreen" --x11-displayfd 5 5>${x11_display_file} & +miriway_pid=$! + +# Wait until the server starts @@ -69,6 +83,22 @@ + inotifywait -qq --timeout 5 --event create "$(dirname "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}")" +done + ++# Grab the X11 DISPLAY and export it if needed ++if [ $MIR_SERVER_ENABLE_X11 -eq 1 ]; then ++ if inotifywait -qq --timeout 5 --event close_write "${x11_display_file}" && [ -s "${x11_display_file}" ] ++ then ++ # ${x11_display_file} contains the X11 display ++ DISPLAY=:$(cat "${x11_display_file}") ++ export DISPLAY ++ rm "${x11_display_file}" ++ else ++ echo "ERROR: Failed to get X11 display from miriway-shell [pid=${miriway-pid}]" ++ rm "${x11_display_file}" ++ kill ${miriway_pid} ++ exit 1 ++ fi ++fi ++ +lxqt-session "$@" +lxqt_session_exit_code=$? + @@ -104,10 +134,10 @@ +ctrl-alt=BackSpace:@exit + diff --git a/startlxqtwayland.in b/startlxqtwayland.in -index d46c317..e3df50b 100644 +index dda2ee5..f349985 100644 --- a/startlxqtwayland.in +++ b/startlxqtwayland.in -@@ -140,6 +140,16 @@ elif [ "$COMPOSITOR" = "kwin_wayland" ]; then +@@ -143,6 +143,16 @@ elif [ "$COMPOSITOR" = "kwin_wayland" ]; then # WARNING: Option '--no-kactivities' can result in crashes with animations and corner actions. exec ${COMPOSITOR}_wrapper --exit-with-session lxqt-session --xwayland @@ -125,6 +155,6 @@ if [ ! -f "$XDG_CONFIG_HOME/lxqt/wayland/lxqt-wayfire.ini" ]; then cp "$share_dir"/lxqt/wayland/lxqt-wayfire.ini "$XDG_CONFIG_HOME"/lxqt/wayland/ -- -2.48.1 +2.49.0 ++++++ 0005-configuration-changes-for-default-hyprland-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.699039723 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.699039723 +0200 @@ -1,6 +1,6 @@ -From 57b2c71a262b231cf0f9a45300e18026f5381812 Mon Sep 17 00:00:00 2001 +From 77369731b252276690d822d37b3b04c21f4a147a Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> -Date: Tue, 21 Jan 2025 15:56:25 -0800 +Date: Thu, 17 Apr 2025 16:06:12 -0700 Subject: [PATCH 5/7] configuration changes for default hyprland session - Set openSUSE background in default hyprland session @@ -9,19 +9,19 @@ 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configurations/lxqt-hyprland.conf b/configurations/lxqt-hyprland.conf -index f5450c3..95ab07e 100644 +index bc07fd1..24f40ec 100644 --- a/configurations/lxqt-hyprland.conf +++ b/configurations/lxqt-hyprland.conf @@ -39,7 +39,7 @@ env = QT_PLATFORM_PLUGIN,lxqt env = XDG_MENU_PREFIX,lxqt- # start and exit LXQt session: --exec-once=swaybg -i /usr/share/lxqt/wallpapers/origami-dark.png -+exec-once=swaybg -i /usr/share/wallpapers/openSUSEdefault/contents/images/default.png - exec-once=lxqt-session && hyprctl dispatch exit +-exec-once = swaybg -i /usr/share/lxqt/wallpapers/origami-dark.png ++exec-once = swaybg -i /usr/share/wallpapers/openSUSEdefault/contents/images/default.png + exec-once = lxqt-session && hyprctl dispatch exit # If not using lxqt-session uncomment components to autostart -- -2.48.1 +2.49.0 ++++++ 0006-configuration-changes-for-default-river-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.711040222 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.715040389 +0200 @@ -1,4 +1,4 @@ -From 7b37618c3bb2b7e986c2681821b65f0278829423 Mon Sep 17 00:00:00 2001 +From bd5e53d75d023e876b97a68578d3995e0b5201be Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> Date: Tue, 21 Jan 2025 16:21:14 -0800 Subject: [PATCH 6/7] configuration changes for default river session @@ -21,6 +21,6 @@ # Set keyboard repeat rate riverctl set-repeat 50 300 -- -2.48.1 +2.49.0 ++++++ 0007-configuration-changes-for-default-sway-session.patch ++++++ --- /var/tmp/diff_new_pack.TP6AzY/_old 2025-08-07 21:46:09.731041055 +0200 +++ /var/tmp/diff_new_pack.TP6AzY/_new 2025-08-07 21:46:09.739041389 +0200 @@ -1,36 +1,36 @@ -From 974373046fabc9fc6e1b6b1a9bd0211be477b279 Mon Sep 17 00:00:00 2001 +From adf7005960c3fb941f0c6b848d1b1846602fb31b Mon Sep 17 00:00:00 2001 From: "Shawn W. Dunn" <sfal...@cloverleaf-linux.org> -Date: Tue, 21 Jan 2025 17:23:47 -0800 +Date: Thu, 17 Apr 2025 16:08:44 -0700 Subject: [PATCH 7/7] configuration changes for default sway session - Set openSUSE desktop background in session -- Disable "include /etc/sway/config.d/*" It causes too many configs +- Disable "include /etc/sway/config.d/*" It causes too many configs from openSUSEway to be pulled in, and creates a broken session --- configurations/lxqt-sway.config | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configurations/lxqt-sway.config b/configurations/lxqt-sway.config -index f30047c..97f910e 100644 +index 3cd8c27..6c06321 100644 --- a/configurations/lxqt-sway.config +++ b/configurations/lxqt-sway.config -@@ -38,6 +38,9 @@ set $term qterminal - # your displays after another 300 seconds, and turn your screens back on when - # resumed. It will also lock your screen before your computer goes to sleep. +@@ -17,6 +17,9 @@ set $right l + # Your preferred terminal emulator + set $term qterminal +### Set background +exec swaybg -i /usr/share/wallpapers/openSUSEdefault/contents/images/default.png + - ### Input configuration + ### Output configuration # # Example configuration: -@@ -228,4 +231,4 @@ bindsym $mod+r mode "resize" - bindsym XF86AudioPrev exec playerctl previous - +@@ -232,4 +235,4 @@ bindsym $mod+r mode "resize" + # Special key to take a screenshot with grim + bindsym Print exec grim -include /etc/sway/config.d/* +# include /etc/sway/config.d/* -- -2.48.1 +2.49.0 ++++++ lxqt-wayland-session-0.1.1.tar.xz -> lxqt-wayland-session-0.2.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/CHANGELOG new/lxqt-wayland-session-0.2.0/CHANGELOG --- old/lxqt-wayland-session-0.1.1/CHANGELOG 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/CHANGELOG 2025-04-17 11:26:15.000000000 +0200 @@ -1,3 +1,17 @@ +lxqt-wayland-session-0.2.0 / 2025-04-17 +======================================= + * Fixes and updates for Hyprland 0.48. + * Made Hyprland use our cursor settings. + * Updated rc.xml for Labwc 0.8.2. + * Added 2 manpages. + * Support default compositor and screenlocker. + * Search for compositor setting in fallback dirs. + * Use predefined build values in the startup script. + * Support full path of compositor. + * Removed obsolete mozilla env var. + * Updated default configurations. + * Corrected D-Bus error message. + lxqt-wayland-session-0.1.1 / 2024-11-24 ======================================= * Fixed the issue which happened when full paths were used instead of the compositor's executable name. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/CMakeLists.txt new/lxqt-wayland-session-0.2.0/CMakeLists.txt --- old/lxqt-wayland-session-0.1.1/CMakeLists.txt 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/CMakeLists.txt 2025-04-17 11:26:15.000000000 +0200 @@ -16,7 +16,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Minimum Versions -set(LXQT_MINIMUM_VERSION "2.1.0") +set(LXQT_MINIMUM_VERSION "2.2.0") find_package(lxqt ${LXQT_MINIMUM_VERSION} REQUIRED) find_package(PkgConfig REQUIRED) @@ -25,8 +25,8 @@ find_package(XdgUserDirs REQUIRED) set(LXQT_WAYLAND_SESSION_MAJOR_VERSION 0) -set(LXQT_WAYLAND_SESSION_MINOR_VERSION 1) -set(LXQT_WAYLAND_SESSION_PATCH_VERSION 1) +set(LXQT_WAYLAND_SESSION_MINOR_VERSION 2) +set(LXQT_WAYLAND_SESSION_PATCH_VERSION 0) set(LXQT_WAYLAND_SESSION_VERSION ${LXQT_WAYLAND_SESSION_MAJOR_VERSION}.${LXQT_WAYLAND_SESSION_MINOR_VERSION}.${LXQT_WAYLAND_SESSION_PATCH_VERSION}) include(LXQtPreventInSourceBuilds) @@ -51,12 +51,8 @@ DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT Runtime ) -#install(FILES /// evt. TODO manpage -# startlxqt.1 -# DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" -# COMPONENT Runtime -#) +add_subdirectory(man) add_subdirectory(configurations) add_subdirectory(wallpaper) add_subdirectory(labwc-themes) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/README.md new/lxqt-wayland-session-0.2.0/README.md --- old/lxqt-wayland-session-0.1.1/README.md 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/README.md 2025-04-17 11:26:15.000000000 +0200 @@ -15,7 +15,14 @@ At startup a basic configuration file for those compositors will be copied to `$XDG_CONFIG_HOME/lxqt/wayland` directory if not existing already, except for labwc and `kwin_wayland` where their default configuration location is used. -If no compositor is already set in `lxqt-config-session` Labwc will be started opening "Session Settings". +If no compositor is set in `lxqt-config-session` the default configuration in `/usr/share/lxqt/session.conf` or `/usr/locale/share/lxqt/session.conf` will be used to configure the session, example: +``` +[General] +leave_confirmation=true +compositor=labwc +lock_command_wayland=swaylock +``` +If no compositor is found starting Labwc will be tried, opening "Session Settings" Please refer to each compositors documentation for tweaking. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/labwc/environment new/lxqt-wayland-session-0.2.0/configurations/labwc/environment --- old/lxqt-wayland-session-0.1.1/configurations/labwc/environment 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/labwc/environment 2025-04-17 11:26:15.000000000 +0200 @@ -1,18 +1,78 @@ -# LXQt labwc environment file +## LXQt labwc environment file +## Example ~/.config/labwc/environment file. +## Uncomment lines starting with one '#' to suit your needs. +## -# This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording) -# XDG_CURRENT_DESKTOP is set to LXQt:labwc:wlroots at startup. -# XDG_CURRENT_DESKTOP=wlroots - -# Disable hardware cursors. Most users wouldn't want to do this, but if you -# are experiencing issues with disappearing cursors, this might fix it. -# Autodetected at startup on virtualized hardware which use systemd -#WLR_NO_HARDWARE_CURSORS=1 - -# For Java applications such as JetBrains/Intellij Idea, set this variable -# to avoid menus with incorrect offset and blank windows -# See https://github.com/swaywm/sway/issues/595 -_JAVA_AWT_WM_NONREPARENTING=1 +## +## Cursor theme and size are set by LXQt and can be configured in"Appearance → Cursor". +## No need to edit. +# XCURSOR_THEME= +# XCURSOR_SIZE= -# Cursor theme and size are imported from LXQt at login. Configure under LXQt in "Appearance → Cursor". -# Keyboard layout and toggle options are imported only once from LXQt, edit here to change +## Disable hardware cursors. Most users wouldn't want to do this, but if you +## are experiencing issues with disappearing cursors, this might fix it. +## Autodetected at startup on virtualized hardware which use systemd. + +# WLR_NO_HARDWARE_CURSORS=1 + +## +## In order for labwc to work out of the box, the environment variable below +## is set to "1" by default to avoid menus with incorrect offset and blank +## windows with Java applications such as JetBrains and Intellij Idea. +## See https://github.com/swaywm/sway/issues/595 +## labwc will not override any already set environment variables, so if you for +## some reason do not want this, then just set it to "0" (not recommended, but +## mentioned here for completeness). +## + +# _JAVA_AWT_WM_NONREPARENTING=0 + +## +## This allows xdg-desktop-portal-wlr to function (e.g. for screen-recording). +## It is automatically set to "LXQt:labwc:wlroots" by LXQt though, so it is only +## included here for completeness. Again, labwc will not over-write an +## already set environment variable, so if you need it set to something else, +## then uncomment and adjust. +## + +# XDG_CURRENT_DESKTOP=labwc:wlroots + +## +## This causes a virtual output to be created automatically whenever there +## are no outputs around. This helps for cases like wayvnc so there is always +## an output available to connect to. The name can be chosen freely but there +## must be no duplicate output names, for this reason using VIRTUAL-x or a +## physical connector name like HDMI-A-1 is not recommended as wlroots may +## want to create outputs with those names later on which would then fail. +## +## Using an output name that starts with NOOP- has the additional benefit +## that wayvnc will detect it being a virtual output and allow clients to +## resize the output to match the client resolution. +## + +# LABWC_FALLBACK_OUTPUT=NOOP-fallback + +## +## LXQt tries to set keyboard layout the first login, edit here to change and/or complete. +## Use the XKB_DEFAULT_LAYOUT variable to set the keyboard layout. For example +## to start with Swedish keyboard layout set it to 'se'. If you are unsure what +## your country code is, refer to the layout section of: +## /usr/share/X11/xkb/rules/evdev.lst +## +## Multiple keyboard layouts can be set by comma-separating the country codes. +## If a variant layout is needed, the syntax is layout(variant) +## If multiple layouts are used, specify the toggle-keybind using +## XKB_DEFAULT_OPTIONS as show below. For possible values refer to the +## refer to the option section of: +## /usr/share/X11/xkb/rules/evdev.lst +## +## Compose Key: For possible values refer to the "Compose key - Position of Compose key" +## in: /usr/share/X11/xkb/rules/evdev.lst +## +## For further details, see xkeyboard-config(7) +## + +# XKB_DEFAULT_LAYOUT=se +# XKB_DEFAULT_LAYOUT=se,us(intl) +# XKB_DEFAULT_OPTIONS=grp:alt_shift_toggle +# XKB_DEFAULT_OPTIONS=grp:shift_caps_toggle,compose:ralt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/labwc/menu.xml new/lxqt-wayland-session-0.2.0/configurations/labwc/menu.xml --- old/lxqt-wayland-session-0.1.1/configurations/labwc/menu.xml 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/labwc/menu.xml 2025-04-17 11:26:15.000000000 +0200 @@ -1,16 +1,79 @@ -<?xml version="1.0"?> +<?xml version="1.0" encoding="UTF-8"?> <openbox_menu> +<!-- Note: for localization support of menu items "client-menu" has to be removed here --> +<menu id="client-menu"> + <item label="Minimize"> + <action name="Iconify" /> + </item> + <item label="Maximize"> + <action name="ToggleMaximize" /> + </item> + <item label="Fullscreen"> + <action name="ToggleFullscreen" /> + </item> + <item label="Roll Up/Down"> + <action name="ToggleShade" /> + </item> + <item label="Decorations"> + <action name="ToggleDecorations" /> + </item> + <item label="Always on Top"> + <action name="ToggleAlwaysOnTop" /> + </item> + <!-- + Any menu with the id "workspaces" will be hidden + if there is only a single workspace available. + --> + <menu id="workspaces" label="Workspace"> + <item label="Move Left"> + <action name="SendToDesktop" to="left" /> + </item> + <item label="Move Right"> + <action name="SendToDesktop" to="right" /> + </item> + <separator /> + <item label="Always on Visible Workspace"> + <action name="ToggleOmnipresent" /> + </item> + </menu> -<menu id="root-menu" label=""> - <item label="QTerminal"><action name="Execute" command="qterminal" /></item> - <item label="Filemanager"><action name="Execute" command="pcmanfm-qt"/></item> - <item label="Start LXQt Session"><action name="Execute" command="lxqt-session"/></item> + <!-- + openbox default workspace selector + to use replace above workspace menu with the example below + the label is required, but you can change the text. + + <menu id="client-send-to-menu" label="Send to..." /> + --> + <item label="Close"> + <action name="Close" /> + </item> +</menu> + +<menu id="root-menu"> + <item label="QTerminal" icon="qterminal"><action name="Execute" command="qterminal" /></item> + <item label="Filemanager" icon="pcmanfm-qt" ><action name="Execute" command="pcmanfm-qt" /></item> + <item label="Start LXQt Session" icon="lxqt" ><action name="Execute" command="lxqt-session"/></item> <separator /> - <item label="LXQt Settings"><action name="Execute" command="lxqt-config" /></item> - <item label="Reconfigure Labwc"><action name="Reconfigure" /></item> + <item label="LXQt Settings" icon="preferences-desktop" ><action name="Execute" command="lxqt-config" /></item> + <item label="Reconfigure Labwc" icon="labwc" ><action name="Reconfigure" /></item> <separator /> - <item label="Logout"><action name="Exit" /></item> + <item label="Logout" icon="system-log-out" ><action name="Exit" /></item> +</menu> + +<menu id="some-custom-menu"> + <!-- + Creates menu title. + To create an empty header with no text, + set label=" ", not label="" + --> + <separator label="custom menu" /> + <item label="Reconfigure"> + <action name="Reconfigure" /> + </item> + <item label="Exit"> + <action name="Exit" /> + </item> </menu> </openbox_menu> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/labwc/rc.xml new/lxqt-wayland-session-0.2.0/configurations/labwc/rc.xml --- old/lxqt-wayland-session-0.1.1/configurations/labwc/rc.xml 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/labwc/rc.xml 2025-04-17 11:26:15.000000000 +0200 @@ -1,24 +1,24 @@ <?xml version="1.0"?> <!-- - This file contains all supported config elements & attributes with + This file contains all supported Labwc v0.8.3 config elements & attributes with default values. Some LXQt specific settings have been added. You may have a updated version in /usr/share/docs/labwc/rc.xml.all --> <labwc_config> - <core> <decoration>server</decoration> <gap>0</gap> <adaptiveSync>no</adaptiveSync> <allowTearing>no</allowTearing> + <autoEnableOutputs>yes</autoEnableOutputs> <reuseOutputMode>no</reuseOutputMode> - <xwaylandPersistence>no</xwaylandPersistence> + <xwaylandPersistence>yes</xwaylandPersistence> </core> <placement> - <policy>center</policy> + <policy>cascade</policy> <!-- When <placement><policy> is "cascade", the offset for cascading new windows can be overwritten like this: @@ -29,7 +29,14 @@ <!-- <font><theme> can be defined without an attribute to set all places --> <theme> <name>Vent</name> + <icon>breeze</icon> + <fallbackAppIcon>labwc</fallbackAppIcon> + <titlebar> + <layout>icon:iconify,max,close</layout> + <showTitle>yes</showTitle> + </titlebar> <cornerRadius>10</cornerRadius> + <keepBorder>yes</keepBorder> <dropShadows>yes</dropShadows> <font place="ActiveWindow"> <name>sans</name> @@ -43,6 +50,12 @@ <slant>normal</slant> <weight>bold</weight> </font> + <font place="MenuHeader"> + <name>sans</name> + <size>12</size> + <slant>normal</slant> + <weight>normal</weight> + </font> <font place="MenuItem"> <name>sans</name> <size>12</size> @@ -118,6 +131,16 @@ <popupShow>Never</popupShow> <!-- Let client redraw its contents while resizing --> <drawContents>yes</drawContents> + <!-- Borders are effectively 8 pixels wide regardless of visual appearance --> + <minimumArea>8</minimumArea> + + <!-- + Set cornerRange to a positive value to increase the size of corner + regions for mouse actions and diagonal window resizing. When omitted, + the default size of the corner region is half of the titlebar height. + + <cornerRange>8</cornerRange> + --> </resize> <focus> @@ -218,7 +241,10 @@ your favourite terminal or application launcher. See rc.xml for an example. --> <keyboard> - <numlock>on</numlock> + <!-- + # Numlock is not set by default + <numlock>on|off</numlock> + --> <layoutScope>global</layoutScope> <repeatRate>25</repeatRate> <repeatDelay>600</repeatDelay> @@ -260,6 +286,9 @@ <keybind key="A-Tab"> <action name="NextWindow" /> </keybind> + <keybind key="A-S-Tab"> + <action name="PreviousWindow" /> + </keybind> <keybind key="W-Return"> <action name="Execute" command="alacritty" /> </keybind> @@ -297,7 +326,10 @@ <action name="SnapToEdge" direction="down" /> </keybind> <keybind key="A-Space"> - <action name="ShowMenu" menu="client-menu" /> + <action name="ShowMenu" menu="client-menu" atCursor="no" /> + </keybind> + <keybind key="C-Space"> + <action name="ShowMenu" menu="applications" atCursor="yes" /> </keybind> <keybind key="XF86_AudioLowerVolume"> <action name="Execute" command="amixer sset Master 5%-" /> @@ -344,6 +376,16 @@ <action name="SnapToRegion" region="bottom-right" /> </keybind> --> + <!-- keybind for client-list-combined-menu - will center in middle of screen --> + <!-- + <keybind key="W-Space"> + <action name="ShowMenu" menu="client-list-combined-menu" /> + <position> + <x>center</x> + <y>center</y> + </position> + </keybind> + --> </keyboard> <!-- @@ -465,10 +507,19 @@ <context name="WindowMenu"> <mousebind button="Left" action="Click"> - <action name="ShowMenu" menu="client-menu" /> + <action name="ShowMenu" menu="client-menu" atCursor="no" /> </mousebind> <mousebind button="Right" action="Click"> - <action name="ShowMenu" menu="client-menu" /> + <action name="ShowMenu" menu="client-menu" atCursor="no" /> + </mousebind> + </context> + + <context name="Icon"> + <mousebind button="Left" action="Click"> + <action name="ShowMenu" menu="client-menu" atCursor="no" /> + </mousebind> + <mousebind button="Right" action="Click"> + <action name="ShowMenu" menu="client-menu" atCursor="no" /> </mousebind> </context> @@ -520,6 +571,8 @@ </mousebind> <mousebind button="Middle" action="Press"> <action name="ShowMenu" menu="root-menu" /> + <!-- openbox default, swap with above line to activate --> + <!-- <action name="ShowMenu" menu="client-list-combined-menu" /> --> </mousebind> <mousebind direction="Up" action="Scroll"> <action name="GoToDesktop" to="left" wrap="yes" /> @@ -540,8 +593,10 @@ Direct cursor movement to a specified output. If the compositor is running in nested mode, this does not take effect. + If mouseEmulation is enabled, all touch up/down/motion events are + translated to mouse button and motion events. --> - <touch deviceName="" mapToOutput="" /> + <touch deviceName="" mapToOutput="" mouseEmulation="no"/> <!-- The tablet cursor movement can be restricted to a single output. @@ -631,8 +686,9 @@ # - Criteria can also contain `matchOnce="true"` meaning that the rule # must only apply to the first instance of the window with that # particular 'identifier' or 'title'. - # - Matching against patterns with '*' (wildcard) and '?' (joker) is - # supported. Pattern matching is case-insensitive. + # - Matching is case-insensitive and is performed using shell wildcard + # patterns (see glob(7)) so '\*' (not between brackets) matches any string + # and '?' matches any single character. <windowRules> <windowRule identifier="*"><action name="Maximize"/></windowRule> @@ -667,6 +723,7 @@ <menu> <ignoreButtonReleasePeriod>250</ignoreButtonReleasePeriod> + <showIcons>yes</showIcons> </menu> <!-- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/lxqt-hyprland.conf new/lxqt-wayland-session-0.2.0/configurations/lxqt-hyprland.conf --- old/lxqt-wayland-session-0.1.1/configurations/lxqt-hyprland.conf 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/lxqt-hyprland.conf 2025-04-17 11:26:15.000000000 +0200 @@ -1,4 +1,4 @@ -# This is the example Hyprland config file with some additions for LXQt. +# This is the example Hyprland v0.48.0 config file with some additions for LXQt. # A newer version may be available in /usr/share/hyprland/hyprland.conf. # Refer to the wiki for more information. # https://wiki.hyprland.org/Configuring/Configuring-Hyprland/ @@ -39,14 +39,15 @@ env = XDG_MENU_PREFIX,lxqt- # start and exit LXQt session: -exec-once=swaybg -i /usr/share/lxqt/wallpapers/origami-dark.png -exec-once=lxqt-session && hyprctl dispatch exit +exec-once = swaybg -i /usr/share/lxqt/wallpapers/origami-dark.png +exec-once = lxqt-session && hyprctl dispatch exit # If not using lxqt-session uncomment components to autostart -#exec-once=lxqt-notificationd -#exec-once=sleep 2 && lxqt-powermanagement -#exec-once=lxqt-policykit -#exec-once=pcmanfm-qt --desktop +#exec-once = lxqt-notificationd +#exec-once = sleep 2 && lxqt-powermanagement +#exec-once = lxqt-policykit +#exec-once = pcmanfm-qt -- +#exec-once = lxqt-panel bind = Alt, F2, exec, $menu bind = Alt, SPACE, exec, $menu @@ -57,16 +58,31 @@ bindr = SUPER, Super_L, exec, qdbus org.kde.StatusNotifierWatcher /global_key_shortcuts/panel/fancymenu/show_hide org.lxqt.global_key_shortcuts.client.activated # Floating windows: -windowrule = float,^(?!lxqt-archiver)(lxqt-.*|pavu.*|.*copyq|sddm-conf|qarma|.*portal-lxqt)$ -windowrule = float,title:^(Preferen.*)$ -windowrulev2 = dimaround,floating:1 -# No animations for lxqt-runner +windowrule = float,class:^(lxqt-.*|pavu.*|.*copyq|sddm-conf|qarma|.*portal-lxqt)$ +windowrule = tile,class:lxqt-archiver +windowrule = float,title:^(.*Preferen.*)$ +windowrule = dimaround,floating:1 +# No animation for lxqt-runner results layerrule = noanim, launcher -layerrule = dimaround, ^(launcher|dialog)$ - -# Brightness -bind=,XF86MonBrightnessUp,exec, lxqt-config-brightness -i -bind=,XF86MonBrightnessDown,exec, lxqt-config-brightness -d +# Animations for leave dialog, lxqt-runner, dropdown terminal +layerrule = dimaround, ^(launcher|dialog|dropdown_terminal)$ +layerrule = animation slide top, dropdown_terminal +layerrule = animation popin 80%, dialog + +# Laptop multimedia keys for volume and LCD brightness +# Requires wireplumber +bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ +bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle +bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle +bindel =,XF86MonBrightnessUp,exec, lxqt-config-brightness -i +bindel =,XF86MonBrightnessDown,exec, lxqt-config-brightness -d + +# Requires playerctl +bindl = , XF86AudioNext, exec, playerctl next +bindl = , XF86AudioPause, exec, playerctl play-pause +bindl = , XF86AudioPlay, exec, playerctl play-pause +bindl = , XF86AudioPrev, exec, playerctl previous ############################# ### ENVIRONMENT VARIABLES ### @@ -74,11 +90,10 @@ # See https://wiki.hyprland.org/Configuring/Environment-variables/ # Env vars can also be set in LXQt Session Settings → Advanced +# XCURSOR_SIZE and XCURSOR_THEME are imported by startlxqtwayland from LXQt Settings -env = XCURSOR_SIZE,24 env = HYPRCURSOR_SIZE,24 - ##################### ### LOOK AND FEEL ### ##################### @@ -108,6 +123,7 @@ # https://wiki.hyprland.org/Configuring/Variables/#decoration decoration { rounding = 10 + rounding_power = 2 # Change transparency of focused and unfocused windows active_opacity = 1.0 @@ -165,15 +181,12 @@ # Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/ # "Smart gaps" / "No gaps when only" # uncomment all if you wish to use that. -# workspace = w[t1], gapsout:0, gapsin:0 -# workspace = w[tg1], gapsout:0, gapsin:0 +# workspace = w[tv1], gapsout:0, gapsin:0 # workspace = f[1], gapsout:0, gapsin:0 -# windowrulev2 = bordersize 0, floating:0, onworkspace:w[t1] -# windowrulev2 = rounding 0, floating:0, onworkspace:w[t1] -# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tg1] -# windowrulev2 = rounding 0, floating:0, onworkspace:w[tg1] -# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1] -# windowrulev2 = rounding 0, floating:0, onworkspace:f[1] +# windowrule = bordersize 0, floating:0, onworkspace:w[t1] +# windowrule = rounding 0, floating:0, onworkspace:w[t1] +# windowrule = bordersize 0, floating:0, onworkspace:f[1] +# windowrule = rounding 0, floating:0, onworkspace:f[1] # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more dwindle { @@ -229,9 +242,9 @@ } -#################### -### KEYBINDINGSS ### -#################### +################### +### KEYBINDINGS ### +################### # See https://wiki.hyprland.org/Configuring/Keywords/ # See https://github.com/lxqt/lxqt/wiki/Wayland#global-shortcuts @@ -301,17 +314,15 @@ # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more # See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules -# Example windowrule v1 -# windowrule = float, ^(kitty)$ -# Example windowrule v2 -# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$ +# Example windowrule +# windowrule = float,class:^(kitty)$,title:^(kitty)$ # Ignore maximize requests from apps. You'll probably like this. -windowrulev2 = suppressevent maximize, class:.* +windowrule = suppressevent maximize, class:.* # Fix some dragging issues with XWayland -windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 +windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0 misc { disable_hyprland_logo = true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/lxqt-niri.kdl new/lxqt-wayland-session-0.2.0/configurations/lxqt-niri.kdl --- old/lxqt-wayland-session-0.1.1/configurations/lxqt-niri.kdl 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/lxqt-niri.kdl 2025-04-17 11:26:15.000000000 +0200 @@ -1,4 +1,4 @@ -// Default niri config (v0.1.9) with some additions and modifications +// Default niri config (v25.02) with some additions and modifications // for LXQt. You may find a more recent version in // /usr/share/doc/niri/default-config.kdl. // This config is in the KDL format: https://kdl.dev @@ -28,6 +28,7 @@ tap dwt dwtp + // drag-lock natural-scroll accel-speed 0.6 // accel-profile "flat" @@ -43,6 +44,16 @@ // scroll-method "no-scroll" } + trackpoint { + // off + // natural-scroll + // accel-speed 0.2 + // accel-profile "flat" + // scroll-method "on-button-down" + // scroll-button 273 + // middle-emulation + } + // Uncomment this to make the mouse warp to the center of newly focused windows. // warp-mouse-to-focus @@ -101,7 +112,7 @@ // - "always", the focused column will always be centered. // - "on-overflow", focusing a column will center it if it doesn't fit // together with the previously focused column. - center-focused-column "never" + center-focused-column "on-overflow" // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. preset-column-widths { @@ -141,7 +152,7 @@ // off // How many logical pixels the ring extends out from the windows. - width 4 + width 2 // Colors can be set in a variety of ways: // - CSS named colors: "red" @@ -184,6 +195,44 @@ // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" } + // You can enable drop shadows for windows. + shadow { + // Uncomment the next line to enable shadows. + // on + + // By default, the shadow draws only around its window, and not behind it. + // Uncomment this setting to make the shadow draw behind its window. + // + // Note that niri has no way of knowing about the CSD window corner + // radius. It has to assume that windows have square corners, leading to + // shadow artifacts inside the CSD rounded corners. This setting fixes + // those artifacts. + // + // However, instead you may want to set prefer-no-csd and/or + // geometry-corner-radius. Then, niri will know the corner radius and + // draw the shadow correctly, without having to draw it behind the + // window. These will also remove client-side shadows if the window + // draws any. + // + // draw-behind-window true + + // You can change how shadows look. The values below are in logical + // pixels and match the CSS box-shadow properties. + + // Softness controls the shadow blur radius. + softness 40 + + // Spread expands the shadow. + spread 5 + + // Offset moves the shadow relative to the window. + offset x=0 y=5 + + // You can also change the shadow color and opacity. + color "#00000064" + inactive-color "#00000034" + } + // Struts shrink the area occupied by windows, similarly to layer-shell panels. // You can think of them as a kind of outer gaps. They are set in logical pixels. // Left and right struts will cause the next window to the side to always be visible. @@ -206,7 +255,9 @@ // Uncomment this line to ask the clients to omit their client-side decorations if possible. // If the client will specifically ask for CSD, the request will be honored. -// Additionally, clients will be informed that they are tiled, removing some rounded corners. +// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. +// This option will also fix border/focus ring drawing behind some semitransparent windows. +// After enabling or disabling this, you need to restart the apps for this to take effect. // prefer-no-csd // You can change the path where screenshots are saved. @@ -242,6 +293,21 @@ default-column-width {} } +// Open the Firefox picture-in-picture player as floating by default. +window-rule { + // This app-id regular expression will work for both: + // - host Firefox (app-id is "firefox") + // - Flatpak Firefox (app-id is "org.mozilla.firefox") + match app-id=r#"firefox$"# title="^Picture-in-Picture$" + + // Floating windows for LXQt: + match app-id=r#"^lxqt-.*|pavu.*|.*copyq|qarma|.*portal-lxqt.*|.*conf$"# + // You may need to localize some of those: + match title=r#"^Preferen.*|.*file.*|Password.*|Prop.*|Close.*|Select.*$"# + exclude app-id="lxqt-archiver" + open-floating true +} + // Example: block out two password managers from screen capture. // (This example rule is commented out with a "/-" in front.) /-window-rule { @@ -254,6 +320,12 @@ // block-out-from "screencast" } +// enable rounded corners for all windows. +window-rule { + geometry-corner-radius 8 + clip-to-geometry true +} + binds { // Keys consist of modifiers separated by + signs, followed by an XKB key name // in the end. To find an XKB name for a particular key, you may use a program @@ -270,12 +342,12 @@ Mod+Shift+A { show-hotkey-overlay; } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+T { spawn "qterminal"; } - F12 { spawn "qterminal" "-d"; } - Alt+Space { spawn "lxqt-runner"; } - Mod+P { spawn "pcmanfm-qt"; } - Super+Alt+L { spawn "lxqt-leave"; } - Super+Shift+Escape { spawn "lxqt-leave" "--lockscreen"; } + Mod+T hotkey-overlay-title="QTerminal" { spawn "qterminal"; } + F12 hotkey-overlay-title="Dropdown QTerminal" { spawn "qterminal" "-d"; } + Alt+Space hotkey-overlay-title="lxqt-runner" { spawn "lxqt-runner"; } + Mod+P hotkey-overlay-title="Filemanager" { spawn "pcmanfm-qt"; } + Super+Alt+L hotkey-overlay-title="Exit Options" { spawn "lxqt-leave"; } + Super+Shift+Escape hotkey-overlay-title="Lock Screen" { spawn "lxqt-leave" "--lockscreen"; } // You can also use a shell. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument in the end. @@ -432,19 +504,27 @@ // Switches focus between the current and the previous workspace. // Mod+Tab { focus-workspace-previous; } + // The following binds move the focused window in and out of a column. + // If the window is alone, they will consume it into the nearby column to the side. + // If the window is already in a column, they will expel it out. + Mod+BracketLeft { consume-or-expel-window-left; } + Mod+BracketRight { consume-or-expel-window-right; } + // Consume one window from the right to the bottom of the focused column. Mod+Comma { consume-window-into-column; } + // Expel the bottom window from the focused column to the right. Mod+Period { expel-window-from-column; } - // There are also commands that consume or expel a single window to the side. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } Mod+R { switch-preset-column-width; } Mod+Shift+R { switch-preset-window-height; } Mod+Ctrl+R { reset-window-height; } Mod+F { maximize-column; } Mod+Shift+F { fullscreen-window; } + + // Expand the focused column to space not taken up by other fully visible columns. + // Makes the column "fill the rest of the space". + Mod+Ctrl+F { expand-column-to-available-width; } Mod+C { center-column; } // Finer width adjustments. @@ -462,6 +542,15 @@ Mod+Shift+Minus { set-window-height "-10%"; } Mod+Shift+Equal { set-window-height "+10%"; } + // Move the focused window between the floating and the tiling layout. + Mod+V { toggle-window-floating; } + Mod+Shift+V { switch-focus-between-floating-and-tiling; } + + // Toggle tabbed column display mode. + // Windows in this column will appear as vertical tabs, + // rather than stacked on top of each other. + Mod+W { toggle-column-tabbed-display; } + // Actions to switch layouts. // Note: if you uncomment these, make sure you do NOT have // a matching layout switch hotkey configured in xkb options above. @@ -474,8 +563,19 @@ Ctrl+Print { screenshot-screen; } Alt+Print { screenshot-window; } + // Applications such as remote-desktop clients and software KVM switches may + // request that niri stops processing the keyboard shortcuts defined here + // so they may, for example, forward the key presses as-is to a remote machine. + // It's a good idea to bind an escape hatch to toggle the inhibitor, + // so a buggy application can't hold your session hostage. + // + // The allow-inhibiting=false property can be applied to other binds as well, + // which ensures niri always processes them, even when an inhibitor is active. + Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } + // The quit action will show a confirmation dialog to avoid accidental exits. Mod+Shift+E { quit; } + Ctrl+Alt+Delete { quit; } // Powers off the monitors. To turn them back on, do any input like // moving the mouse or pressing any other key. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/configurations/lxqt-sway.config new/lxqt-wayland-session-0.2.0/configurations/lxqt-sway.config --- old/lxqt-wayland-session-0.1.1/configurations/lxqt-sway.config 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/configurations/lxqt-sway.config 2025-04-17 11:26:15.000000000 +0200 @@ -1,4 +1,4 @@ -# Default config for sway with additions for LXQt. There may be a newer default file in /etc/sway/config. +# Default config for sway v1.10.1 with additions for LXQt. There may be a newer default file in /etc/sway/config. # # Location is ~/.config/lxqt/wayland/lxqt-sway.config # @@ -216,16 +216,20 @@ } bindsym $mod+r mode "resize" -# Multimedia - bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5% - bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5% - bindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle - bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle +# +# Utilities: +# + # Special keys to adjust volume via PulseAudio + bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + bindsym --locked XF86AudioMicMute exec pactl set-source-mute \@DEFAULT_SOURCE@ toggle + # Special keys to adjust brightness via brightnessctl + #bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + #bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ bindsym XF86MonBrightnessDown exec lxqt-config-brightness -d bindsym XF86MonBrightnessUp exec lxqt-config-brightness -i - bindsym XF86AudioPlay exec playerctl play-pause - bindsym XF86AudioNext exec playerctl next - bindsym XF86AudioPrev exec playerctl previous - + # Special key to take a screenshot with grim + bindsym Print exec grim include /etc/sway/config.d/* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/man/CMakeLists.txt new/lxqt-wayland-session-0.2.0/man/CMakeLists.txt --- old/lxqt-wayland-session-0.1.1/man/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/man/CMakeLists.txt 2025-04-17 11:26:15.000000000 +0200 @@ -0,0 +1,8 @@ +# install manpages + +install(FILES + lxqt-wayland-session.1 + startlxqtwayland.1 + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1" + COMPONENT Runtime +) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/man/lxqt-wayland-session.1 new/lxqt-wayland-session-0.2.0/man/lxqt-wayland-session.1 --- old/lxqt-wayland-session-0.1.1/man/lxqt-wayland-session.1 1970-01-01 01:00:00.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/man/lxqt-wayland-session.1 2025-04-17 11:26:15.000000000 +0200 @@ -0,0 +1,46 @@ +.TH lxqt-wayland-session "1" "January 2025" "LXQt 2.1.0" "LXQt Session Module" +.SH NAME +\fBlxqt-wayland-session\fR \- Wayland session for \fBLXQt\fR +.br +.SH DESCRIPTION +This module provides the files needed for the Wayland session of the \fBLXQt\fR desktop +environment and enables the Wayland settings page in \fBlxqt-config-session\fR. +.SH FILES +\fBstartlxqtwayland\fR: Script which starts the compositor and sets the keyboard layout. +.P +Desktop entry file stating \fBstartlxqtwayland\fR as binary needed to start LXQt Wayland +sessions. +Sourced e. g. by display managers. +.P +Basic configuration files for supported compositors where needed: Hyprland, kwin_wayland, +labwc, niri, river, sway, wayfire. +.SH UNSUPPORTED COMPOSITORS +Any compositor can be launched by \fBstartlxqtwayland\fR but for starting and exiting +the LXQt session a line \fBlxqt-session && <exit_compositor_command>\fR has to be added to +its autostart configuration. +.SH NOTES +Some lxqt-configuration tools currently do not support Wayland and those settings have to +be configured in the compositor's configuration: +.P +* lxqt-globalkeys +.P +* lxqt-config-monitor (though kwin_wayland is mostly supported) +.P +* lxqt-config-input +.P +Limitations in lxqt-panel: +.P +* Workspace support in lxqt-panel's taskbar plugin is supported +only in kwin_wayland. +.P +* Showdesktop plugin and workspace switcher ar currently supported only in kwin_wayland. +.P +* kbindicator and qeyes plugin are currently not supported under Wayland. +.SH "REPORTING BUGS" +Report bugs to https://github.com/lxqt/lxqt-wayland-session/issues +.SH "SEE ALSO" +.BR startlxqtwayland(1) +.BR lxqt-session(1) +.BR lxqt-config-session(1) +.BR lxqt-config(1) +.BR lxqt-leave(1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/man/startlxqtwayland.1 new/lxqt-wayland-session-0.2.0/man/startlxqtwayland.1 --- old/lxqt-wayland-session-0.1.1/man/startlxqtwayland.1 1970-01-01 01:00:00.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/man/startlxqtwayland.1 2025-04-17 11:26:15.000000000 +0200 @@ -0,0 +1,28 @@ +.TH STARTLXQTWAYLAND "1" "January 2025" "LXQt 2.1.0" "LXQt Wayland session" +.SH NAME +startlxqtwayland \- script to initialize and launch LXQt Wayland sessions +.SH SYNOPSIS +.B startlxqtwayland +.SH DESCRIPTION +\fBstartlxqtwayland\fR is a shell script meant to initialize and launch LXQt Wayland +sessions. +.P +Its main tasks are exporting environment variables, partly after performing +corresponding checks, and launching the configured compositor which will launch +\fBlxqt-session\fR, the LXQt session manager. It copies the basic configuration file(s) to +$XDG_CONFIG_USER for the compositor configured in \fBlxqt-config-session\fR if not present +and tries to set the keyboard layout accordingly to $LANG. +.P +It can be run directly from tty but rather it is invoked by display +managers like SDDM or LightDM. +.P +Display managers are making use of scripts like \fBstartlxqtwayland\fR automatically. +Information about available desktop environments is provided by files +\fI$XDG_DATA_DIRS/wayland-sessions/*.desktop\fR, typically +\fI/usr/share/wayland-sessions/*.desktop\fR. +.SH BUGS + Bugs can be reported on https://github.com/lxqt/lxqt-wayland-session/issues. +.SH SEE ALSO +.BR lxqt-wayland-session (1) +.BR startlxqt (1) +.BR sddm (1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lxqt-wayland-session-0.1.1/startlxqtwayland.in new/lxqt-wayland-session-0.2.0/startlxqtwayland.in --- old/lxqt-wayland-session-0.1.1/startlxqtwayland.in 2024-11-24 19:38:26.000000000 +0100 +++ new/lxqt-wayland-session-0.2.0/startlxqtwayland.in 2025-04-17 11:26:15.000000000 +0200 @@ -16,19 +16,19 @@ fi if [ -z "$XDG_DATA_DIRS" ]; then - XDG_DATA_DIRS="$XDG_DATA_HOME:/usr/local/share:/usr/share" + XDG_DATA_DIRS="@PREDEF_XDG_DATA_DIRS@" else - if ! contains "$XDG_DATA_DIRS" "/usr/share"; then - XDG_DATA_DIRS="$XDG_DATA_DIRS:/usr/share" + if ! contains "$XDG_DATA_DIRS" "@LXQT_DATA_DIR@"; then + XDG_DATA_DIRS="$XDG_DATA_DIRS:@LXQT_DATA_DIR@" fi fi export XDG_DATA_DIRS if [ -z "$XDG_CONFIG_DIRS" ]; then - export XDG_CONFIG_DIRS="/etc:/etc/xdg:/usr/share" + export XDG_CONFIG_DIRS="@PREDEF_XDG_CONFIG_DIRS@" else - if ! contains "$XDG_CONFIG_DIRS" '/etc/xdg'; then - XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS:/etc/xdg" + if ! contains "$XDG_CONFIG_DIRS" '@LXQT_ETC_XDG_DIR@'; then + XDG_CONFIG_DIRS="$XDG_CONFIG_DIRS:@LXQT_ETC_XDG_DIR@" fi fi @@ -47,7 +47,7 @@ # Launch DBus if needed if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then if [ -z "$XDG_RUNTIME_DIR" ] || ! [ -S "$XDG_RUNTIME_DIR/bus" ] || ! [ -O "$XDG_RUNTIME_DIR/bus" ]; then - eval "$(dbus-launch --sh-syntax --exit-with-session)" || echo "startlxqt: error executing dbus-launch" >&2 + eval "$(dbus-launch --sh-syntax --exit-with-session)" || echo "startlxqtwayland: error executing dbus-launch" >&2 fi fi @@ -65,20 +65,21 @@ # use lxqt-applications.menu for main app menu export XDG_MENU_PREFIX="lxqt-" +share_dir="$(dirname $(dirname "$0"))"/share + if [ ! -d "$XDG_CONFIG_HOME/lxqt/wayland" ]; then mkdir -p $XDG_CONFIG_HOME/lxqt/wayland/ fi - -if grep -q "compositor" "$XDG_CONFIG_HOME/lxqt/session.conf"; then - COMPOSITOR=`cat "$XDG_CONFIG_HOME"/lxqt/session.conf|grep compositor |awk -F'=' '{sub(".*/", "", $2); print $2}'` -fi +# Check for compositor in user config file and fallback dirs +for d in $(echo "$XDG_CONFIG_HOME:$XDG_CONFIG_DIRS" | tr : '\n'); do + config_file="$d/lxqt/session.conf" + [ -f "$config_file" ] && [ -r "$config_file" ] || continue + COMPOSITOR="$(sed -nre '/^compositor\s*=/ { s@^[^=]+=\s*(/|\S+.*/)?([^/]+)?$@\2@; p; }' "$config_file")" + [ -z "$COMPOSITOR" ] || break +done export XDG_CURRENT_DESKTOP="LXQt:$COMPOSITOR:wlroots" -export MOZ_ENABLE_WAYLAND=1 - -share_dir="$(dirname $(dirname "$0"))"/share - valid_layouts=$(grep -A98 '! layout' /usr/share/X11/xkb/rules/base.lst | awk '{print $1}' | grep -v '!') trylayout=$(echo $LANG | cut -c 1,2) @@ -170,6 +171,9 @@ sed -i "s/kb_layout = us/$layout/" "$XDG_CONFIG_HOME/lxqt/wayland/lxqt-hyprland.conf" fi fi + # workaround for cursor + export X$(cat $XDG_CONFIG_HOME/lxqt/session.conf|grep cursor_size| tr 'a-z' 'A-Z') + export X$(cat $XDG_CONFIG_HOME/lxqt/session.conf|grep cursor_theme| tr 'a-z' 'A-Z') exec $COMPOSITOR -c $XDG_CONFIG_HOME/lxqt/wayland/lxqt-hyprland.conf elif [ "$COMPOSITOR" = "river" ]; then