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