From ae5f366ecba45a2a422aaa45ef6f9a9b9f68440a Mon Sep 17 00:00:00 2001 From: tangjie02 Date: Tue, 7 Feb 2023 20:32:24 +0800 Subject: [PATCH] Support wayland session by launching kwin as wayland server. Signed-off-by: tangjie02 --- ...Support-wayland-session-by-launching.patch | 124 ++++++++++++++++++ kiran-session-manager.spec | 9 +- 2 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 0001-feature-wayland-Support-wayland-session-by-launching.patch diff --git a/0001-feature-wayland-Support-wayland-session-by-launching.patch b/0001-feature-wayland-Support-wayland-session-by-launching.patch new file mode 100644 index 0000000..49633d0 --- /dev/null +++ b/0001-feature-wayland-Support-wayland-session-by-launching.patch @@ -0,0 +1,124 @@ +From 199320d7beec9ea0b80c3e7f331f3d269d68f493 Mon Sep 17 00:00:00 2001 +From: tangjie02 +Date: Tue, 7 Feb 2023 20:23:51 +0800 +Subject: [PATCH] feature(wayland): Support wayland session by launching kwin + as wayland server. +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +- 使用kwin来支持wayland会话 + +Signed-off-by: tangjie02 +--- + data/CMakeLists.txt | 32 +++++++++++++++-------------- + data/kiran-session-kwayland.in | 9 ++++++++ + data/kiran-session-wayland.in | 3 +++ + data/kiran-wayland.desktop.in | 4 ++-- + data/sessions/kiran-wayland.session | 2 +- + 5 files changed, 32 insertions(+), 18 deletions(-) + create mode 100644 data/kiran-session-kwayland.in + create mode 100644 data/kiran-session-wayland.in + +diff --git a/data/CMakeLists.txt b/data/CMakeLists.txt +index 8df02d5..83aed59 100644 +--- a/data/CMakeLists.txt ++++ b/data/CMakeLists.txt +@@ -1,27 +1,29 @@ + cmake_minimum_required(VERSION 3.2) + +-# gschema.xml +-file(GLOB SCHEMA_IN_FILES ./*.gschema.xml.in) +- +-foreach(SCHEMA_IN_FILE IN LISTS SCHEMA_IN_FILES) +- string(REGEX REPLACE ".+/(.+)\\..*" "\\1" SCHEMA_FILE ${SCHEMA_IN_FILE}) +- configure_file(${SCHEMA_IN_FILE} ${PROJECT_BINARY_DIR}/data/${SCHEMA_FILE}) ++# xxx.in -> xxx ++file(GLOB XXX_IN_FILES ./*.in) + +- install(FILES ${PROJECT_BINARY_DIR}/data/${SCHEMA_FILE} +- DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/glib-2.0/schemas/) ++foreach(XXX_IN_FILE IN LISTS XXX_IN_FILES) ++ string(REGEX REPLACE ".+/(.+)\\..*" "\\1" XXX_FILE ${XXX_IN_FILE}) ++ configure_file(${XXX_IN_FILE} ${PROJECT_BINARY_DIR}/data/${XXX_FILE} @ONLY) + endforeach() + ++# wayland executable file ++install(PROGRAMS ${PROJECT_BINARY_DIR}/data/kiran-session-wayland ++ ${PROJECT_BINARY_DIR}/data/kiran-session-kwayland ++ DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}/) ++ ++# gschema.xml ++install( ++ FILES ++ ${PROJECT_BINARY_DIR}/data/com.kylinsec.kiran.session-manager.gschema.xml ++ DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/glib-2.0/schemas/) ++ + # conf + install(FILES ${PROJECT_SOURCE_DIR}/data/90-lightdm-kiran-greeter.conf + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/lightdm/lightdm.conf.d) + +-# desktop.in +-file(GLOB DESKTOP_IN_FILES ./*.desktop.in) +-foreach(DESKTOP_IN_FILE IN LISTS DESKTOP_IN_FILES) +- string(REGEX REPLACE ".+/(.+)\\..*" "\\1" DESKTOP_FILE ${DESKTOP_IN_FILE}) +- configure_file(${DESKTOP_IN_FILE} ${PROJECT_BINARY_DIR}/data/${DESKTOP_FILE}) +-endforeach() +- ++# desktop + install(FILES ${PROJECT_BINARY_DIR}/data/kiran.desktop + DESTINATION ${CMAKE_INSTALL_FULL_DATADIR}/xsessions) + install(FILES ${PROJECT_BINARY_DIR}/data/kiran-wayland.desktop +diff --git a/data/kiran-session-kwayland.in b/data/kiran-session-kwayland.in +new file mode 100644 +index 0000000..91c2cf8 +--- /dev/null ++++ b/data/kiran-session-kwayland.in +@@ -0,0 +1,9 @@ ++#!/bin/sh ++ ++drs= ++ ++if [ -z "${DBUS_SESSION_BUS_ADDRESS}" ]; then ++ drs=dbus-run-session ++fi ++ ++exec ${drs} kwin_wayland --xwayland --drm --no-lockscreen --exit-with-session=@CMAKE_INSTALL_FULL_BINDIR@/kiran-session-wayland +\ No newline at end of file +diff --git a/data/kiran-session-wayland.in b/data/kiran-session-wayland.in +new file mode 100644 +index 0000000..4bd1de9 +--- /dev/null ++++ b/data/kiran-session-wayland.in +@@ -0,0 +1,3 @@ ++#!/bin/sh ++ ++exec @CMAKE_INSTALL_FULL_BINDIR@/kiran-session-manager --session-type=kiran-wayland +\ No newline at end of file +diff --git a/data/kiran-wayland.desktop.in b/data/kiran-wayland.desktop.in +index d98cd10..34c4781 100644 +--- a/data/kiran-wayland.desktop.in ++++ b/data/kiran-wayland.desktop.in +@@ -2,8 +2,8 @@ + Name=KIRAN + Comment=This session logs you into KIRAN + Comment[zh_CN]=此会话将您登录到 KIRAN +-Exec=@CMAKE_INSTALL_FULL_BINDIR@/kiran-session-manager --session-type=kiran-wayland +-TryExec=@CMAKE_INSTALL_FULL_BINDIR@/kiran-session-manager ++Exec=@CMAKE_INSTALL_FULL_BINDIR@/kiran-session-kwayland ++TryExec=@CMAKE_INSTALL_FULL_BINDIR@/kiran-session-kwayland + Type=Application + DesktopNames=KIRAN + Keywords=KIRAN;session; +diff --git a/data/sessions/kiran-wayland.session b/data/sessions/kiran-wayland.session +index 5292a1f..65bc4a6 100644 +--- a/data/sessions/kiran-wayland.session ++++ b/data/sessions/kiran-wayland.session +@@ -1,3 +1,3 @@ + [Kiran Session] + Name=Kiran Session +-RequiredComponents=kiran-session-idlemonitor;kiran-session-daemon;mate-settings-daemon;mutter;kiran-panel;caja ++RequiredComponents=kiran-session-idlemonitor;kiran-session-daemon;mate-settings-daemon;kiran-panel;caja +-- +2.36.1 + diff --git a/kiran-session-manager.spec b/kiran-session-manager.spec index 5274fc4..6757cb6 100644 --- a/kiran-session-manager.spec +++ b/kiran-session-manager.spec @@ -1,11 +1,13 @@ Name: kiran-session-manager Version: 2.4.0 -Release: 1 +Release: 2 Summary: Session manager for KIRAN desktop environment License: MulanPSL-2.0 Source0: %{name}-%{version}.tar.gz +Patch1001: 0001-feature-wayland-Support-wayland-session-by-launching.patch + BuildRequires: cmake >= 3.2 BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: gcc-c++ @@ -62,10 +64,15 @@ make %{?_smp_mflags} %{_bindir}/kiran-session-manager %{_bindir}/kiran-session-idlemonitor %{_bindir}/kiran-session-window +%{_bindir}/kiran-session-kwayland +%{_bindir}/kiran-session-wayland %changelog +* Tue Feb 07 2023 tangjie02 - 2.4.0-2 +- Support wayland session by launching kwin as wayland server. + * Fri Nov 04 2022 tangjie02 - 2.4.0-1 - KYOS-F: Init commit for v2.4 -- Gitee