lxqt-wayland-session/0004-configuration-adds-miriway-session.patch
Shawn Dunn 16aa50f074 - Add:
* 0002-configuration-changes-for-default-wayfire-session.patch
    - Sets openSUSE background for wayfire session
  * 0003-configuration-changes-for-default-niri-session.patch
    - Disables "natural scrolling" by default
  * 0004-configuration-adds-miriway-session.patch
    - Enables miriway as a compositor option, and adds
      configurations
- Minor specfile cleanup

OBS-URL: https://build.opensuse.org/package/show/X11:LXQt/lxqt-wayland-session?expand=0&rev=14
2025-01-17 02:09:54 +00:00

130 lines
4.2 KiB
Diff

From 0f6ac090dfa3767fec272fed0f1391db3b859ab8 Mon Sep 17 00:00:00 2001
From: "Shawn W. Dunn" <sfalken@cloverleaf-linux.org>
Date: Thu, 16 Jan 2025 16:12:51 -0800
Subject: [PATCH 4/4] configuration adds miriway session
Adds miriway session to package, currently being considered for
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(+)
create mode 100644 configurations/miriway/lxqt-miriway-wrapper
create mode 100644 configurations/miriway/miriway-shell.config
diff --git a/configurations/CMakeLists.txt b/configurations/CMakeLists.txt
index 02ab38d..153a7f1 100644
--- a/configurations/CMakeLists.txt
+++ b/configurations/CMakeLists.txt
@@ -17,6 +17,8 @@ install(FILES
install(DIRECTORY
labwc
firstrun
+ miriway
+ USE_SOURCE_PERMISSIONS
DESTINATION "${CMAKE_INSTALL_DATADIR}/lxqt/wayland"
COMPONENT Runtime
)
diff --git a/configurations/miriway/lxqt-miriway-wrapper b/configurations/miriway/lxqt-miriway-wrapper
new file mode 100644
index 0000000..85079c0
--- /dev/null
+++ b/configurations/miriway/lxqt-miriway-wrapper
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+unset WAYLAND_DISPLAY
+unset DISPLAY
+
+port=0
+while [ -e "${XDG_RUNTIME_DIR}/wayland-${port}" ]; do
+ let port+=1
+done
+wayland_display=wayland-${port}
+
+export WAYLAND_DISPLAY=${wayland_display}
+
+if command -v Xwayland > /dev/null
+then
+ export MIR_SERVER_ENABLE_X11=1
+ MIR_SERVER_XWAYLAND_PATH=$(which Xwayland)
+ export MIR_SERVER_XWAYLAND_PATH
+fi
+
+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" &
+miriway_pid=$!
+
+# Wait until the server starts
+until [ -O "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" ]
+do
+ if ! kill -0 ${miriway_pid} &> /dev/null
+ then
+ echo "ERROR: miriway-shell [pid=${miriway_pid}] is not running"
+ exit 1
+ fi
+ inotifywait -qq --timeout 5 --event create "$(dirname "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}")"
+done
+
+lxqt-session "$@"
+lxqt_session_exit_code=$?
+
+kill $miriway_pid
+
+exit $lxqt_session_exit_code
diff --git a/configurations/miriway/miriway-shell.config b/configurations/miriway/miriway-shell.config
new file mode 100644
index 0000000..9f4cf9e
--- /dev/null
+++ b/configurations/miriway/miriway-shell.config
@@ -0,0 +1,22 @@
+x11-window-title=LXQt (Miriway)
+idle-timeout=600
+
+shell-component=dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_SESSION_TYPE XDG_CURRENT_DESKTOP
+
+shell-alt=Space:lxqt-runner
+shell-alt=F2:lxqt-runner
+shell-meta=l:lxqt-leave --lockscreen
+
+meta=p:pcmanfm-qt
+meta=Return:qterminal
+meta=f:featherpad
+
+meta=Left:@dock-left
+meta=Right:@dock-right
+meta=Space:@toggle-maximized
+meta=Home:@workspace-begin
+meta=End:@workspace-end
+meta=Page_Up:@workspace-up
+meta=Page_Down:@workspace-down
+ctrl-alt=BackSpace:@exit
+
diff --git a/startlxqtwayland.in b/startlxqtwayland.in
index 64a2986..dd91eb4 100644
--- a/startlxqtwayland.in
+++ b/startlxqtwayland.in
@@ -140,6 +140,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
+elif [ "$COMPOSITOR" = "miriway" ]; then
+ export XDG_CURRENT_DESKTOP="LXQt:$COMPOSITOR:mir"
+ if [ ! -f "$XDG_CONFIG_HOME/lxqt/miriway-shell.config" ]; then
+ cp "$share_dir"/lxqt/wayland/miriway/miriway-shell.config "$XDG_CONFIG_HOME/lxqt/miriway-shell.config"
+ if echo "$valid_layouts" | grep -q "$trylayout"; then
+ echo "keymap=$trylayout" >> "$XDG_CONFIG_HOME/lxqt/miriway-shell.config"
+ fi
+ fi
+ exec "${share_dir}/lxqt/wayland/${COMPOSITOR}/lxqt-${COMPOSITOR}-wrapper"
+
elif [ "$COMPOSITOR" = "wayfire" ]; then
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.0