update kde plasmoid and build config
This commit is contained in:
parent
f8b923ea13
commit
e79cb33adb
|
|
@ -1,2 +1,3 @@
|
|||
build/
|
||||
build-cmake/
|
||||
build-kf5/
|
||||
|
|
|
|||
262
CMakeLists.txt
262
CMakeLists.txt
|
|
@ -1,6 +1,13 @@
|
|||
cmake_minimum_required(VERSION 3.20)
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(kde-ollie VERSION 0.1.0 LANGUAGES CXX)
|
||||
|
||||
option(OLLIE_KF5 "Build against KF5/Qt5 (Plasma 5.27)" OFF)
|
||||
|
||||
# Suppress CMP0160 warnings from KF5 cmake files (read-only IMPORTED property)
|
||||
if(OLLIE_KF5)
|
||||
cmake_policy(SET CMP0160 OLD)
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
|
|
@ -14,100 +21,189 @@ include(KDECompilerSettings NO_POLICY_SCOPE)
|
|||
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core DBus Widgets Quick)
|
||||
find_package(KF6StatusNotifierItem REQUIRED)
|
||||
find_package(KF6 REQUIRED COMPONENTS Runner Notifications CoreAddons Config)
|
||||
find_package(Plasma REQUIRED)
|
||||
|
||||
# libollie.so built by Go (expected in build/ after `make lib`)
|
||||
set(OLLIE_LIB "${CMAKE_SOURCE_DIR}/build/libollie.so")
|
||||
set(OLLIE_HEADER "${CMAKE_SOURCE_DIR}/build/libollie.h")
|
||||
|
||||
# --- Daemon ---
|
||||
if(OLLIE_KF5)
|
||||
# --- Qt5 / KF5 ---
|
||||
find_package(Qt5 REQUIRED COMPONENTS Core DBus Widgets Quick Qml)
|
||||
find_package(KF5 REQUIRED COMPONENTS
|
||||
Notifications
|
||||
Runner
|
||||
CoreAddons
|
||||
Config
|
||||
Plasma
|
||||
TextEditor
|
||||
)
|
||||
|
||||
qt6_add_dbus_adaptor(DBUS_ADAPTOR_SRCS
|
||||
daemon/org.ollie.SessionManager.xml
|
||||
daemon/session_manager.h SessionManager)
|
||||
# --- Daemon ---
|
||||
qt5_add_dbus_adaptor(DBUS_ADAPTOR_SRCS
|
||||
daemon/org.ollie.SessionManager.xml
|
||||
daemon/session_manager.h SessionManager)
|
||||
|
||||
add_executable(ollie-kde
|
||||
daemon/main.cpp
|
||||
daemon/session_manager.cpp
|
||||
${DBUS_ADAPTOR_SRCS}
|
||||
)
|
||||
target_include_directories(ollie-kde PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/build
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-kde
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
${OLLIE_LIB}
|
||||
)
|
||||
add_executable(ollie-kde
|
||||
daemon/main.cpp
|
||||
daemon/session_manager.cpp
|
||||
${DBUS_ADAPTOR_SRCS}
|
||||
)
|
||||
target_include_directories(ollie-kde PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/build
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-kde
|
||||
Qt5::Core
|
||||
Qt5::DBus
|
||||
${OLLIE_LIB}
|
||||
)
|
||||
|
||||
# --- System Tray ---
|
||||
# --- System Tray ---
|
||||
add_executable(ollie-tray
|
||||
tray/main.cpp
|
||||
tray/ollie_tray.cpp
|
||||
)
|
||||
target_include_directories(ollie-tray PRIVATE
|
||||
${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-tray
|
||||
Qt5::Core
|
||||
Qt5::DBus
|
||||
Qt5::Widgets
|
||||
KF5::Notifications
|
||||
)
|
||||
|
||||
add_executable(ollie-tray
|
||||
tray/main.cpp
|
||||
tray/ollie_tray.cpp
|
||||
)
|
||||
target_include_directories(ollie-tray PRIVATE
|
||||
${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-tray
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
KF6::StatusNotifierItem
|
||||
)
|
||||
# --- KRunner Plugin ---
|
||||
kcoreaddons_add_plugin(krunner_ollie SOURCES krunner/ollie_runner.cpp INSTALL_NAMESPACE "kf5/krunner")
|
||||
target_link_libraries(krunner_ollie
|
||||
KF5::Runner
|
||||
Qt5::Core
|
||||
Qt5::DBus
|
||||
Qt5::Widgets
|
||||
)
|
||||
|
||||
# --- KRunner Plugin ---
|
||||
# --- Kate Plugin ---
|
||||
kcoreaddons_add_plugin(ollie_kate SOURCES kate/ollie_kate.cpp INSTALL_NAMESPACE "kf5/ktexteditor")
|
||||
target_link_libraries(ollie_kate
|
||||
KF5::TextEditor
|
||||
Qt5::Core
|
||||
Qt5::DBus
|
||||
Qt5::Widgets
|
||||
)
|
||||
|
||||
kcoreaddons_add_plugin(krunner_ollie SOURCES krunner/ollie_runner.cpp INSTALL_NAMESPACE "kf6/krunner")
|
||||
target_link_libraries(krunner_ollie
|
||||
KF6::Runner
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
# --- Kate Plugin ---
|
||||
|
||||
find_package(KF6TextEditor REQUIRED)
|
||||
|
||||
kcoreaddons_add_plugin(ollie_kate SOURCES kate/ollie_kate.cpp INSTALL_NAMESPACE "kf6/ktexteditor")
|
||||
target_link_libraries(ollie_kate
|
||||
KF6::TextEditor
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
# --- Plasmoid QML Plugin ---
|
||||
|
||||
qt6_add_qml_module(ollie-plasmoid-plugin
|
||||
URI org.ollie.private
|
||||
VERSION 1.0
|
||||
SOURCES
|
||||
plasmoid/plugin/olliedbusclient.h
|
||||
# --- Plasmoid QML Plugin (manual for Qt5) ---
|
||||
add_library(ollie-plasmoid-plugin SHARED
|
||||
plasmoid/plugin/olliedbusclient.cpp
|
||||
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/org/ollie/private
|
||||
)
|
||||
target_link_libraries(ollie-plasmoid-plugin PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Quick
|
||||
)
|
||||
target_include_directories(ollie-plasmoid-plugin PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/plasmoid/plugin
|
||||
)
|
||||
plasmoid/plugin/qmlplugin.cpp
|
||||
)
|
||||
target_link_libraries(ollie-plasmoid-plugin
|
||||
Qt5::Core
|
||||
Qt5::DBus
|
||||
Qt5::Quick
|
||||
Qt5::Qml
|
||||
)
|
||||
target_include_directories(ollie-plasmoid-plugin PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/plasmoid/plugin
|
||||
)
|
||||
set_target_properties(ollie-plasmoid-plugin PROPERTIES
|
||||
OUTPUT_NAME "ollieprivateplugin"
|
||||
)
|
||||
|
||||
# --- Plasmoid Package ---
|
||||
# --- Plasmoid Package ---
|
||||
plasma_install_package(plasmoid org.ollie.plasmoid)
|
||||
|
||||
plasma_install_package(plasmoid org.ollie.plasmoid)
|
||||
# --- Install ---
|
||||
install(TARGETS ollie-kde ollie-tray DESTINATION ${KDE_INSTALL_BINDIR})
|
||||
install(TARGETS ollie-plasmoid-plugin
|
||||
DESTINATION ${KDE_INSTALL_QMLDIR}/org/ollie/private)
|
||||
install(FILES plasmoid/plugin/qmldir
|
||||
DESTINATION ${KDE_INSTALL_QMLDIR}/org/ollie/private)
|
||||
|
||||
# --- Install ---
|
||||
else()
|
||||
# --- Qt6 / KF6 ---
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core DBus Widgets Quick)
|
||||
find_package(KF6StatusNotifierItem REQUIRED)
|
||||
find_package(KF6 REQUIRED COMPONENTS Runner Notifications CoreAddons Config)
|
||||
find_package(Plasma REQUIRED)
|
||||
|
||||
install(TARGETS ollie-kde ollie-tray DESTINATION ${KDE_INSTALL_BINDIR})
|
||||
install(TARGETS ollie-plasmoid-plugin
|
||||
DESTINATION ${KDE_INSTALL_QMLDIR}/org/ollie/private)
|
||||
# --- Daemon ---
|
||||
qt6_add_dbus_adaptor(DBUS_ADAPTOR_SRCS
|
||||
daemon/org.ollie.SessionManager.xml
|
||||
daemon/session_manager.h SessionManager)
|
||||
|
||||
add_executable(ollie-kde
|
||||
daemon/main.cpp
|
||||
daemon/session_manager.cpp
|
||||
${DBUS_ADAPTOR_SRCS}
|
||||
)
|
||||
target_include_directories(ollie-kde PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/build
|
||||
${CMAKE_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-kde
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
${OLLIE_LIB}
|
||||
)
|
||||
|
||||
# --- System Tray ---
|
||||
add_executable(ollie-tray
|
||||
tray/main.cpp
|
||||
tray/ollie_tray.cpp
|
||||
)
|
||||
target_include_directories(ollie-tray PRIVATE
|
||||
${CMAKE_SOURCE_DIR}
|
||||
)
|
||||
target_link_libraries(ollie-tray
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
KF6::StatusNotifierItem
|
||||
)
|
||||
|
||||
# --- KRunner Plugin ---
|
||||
kcoreaddons_add_plugin(krunner_ollie SOURCES krunner/ollie_runner.cpp INSTALL_NAMESPACE "kf6/krunner")
|
||||
target_link_libraries(krunner_ollie
|
||||
KF6::Runner
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
# --- Kate Plugin ---
|
||||
find_package(KF6TextEditor REQUIRED)
|
||||
kcoreaddons_add_plugin(ollie_kate SOURCES kate/ollie_kate.cpp INSTALL_NAMESPACE "kf6/ktexteditor")
|
||||
target_link_libraries(ollie_kate
|
||||
KF6::TextEditor
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Widgets
|
||||
)
|
||||
|
||||
# --- Plasmoid QML Plugin ---
|
||||
qt6_add_qml_module(ollie-plasmoid-plugin
|
||||
URI org.ollie.private
|
||||
VERSION 1.0
|
||||
SOURCES
|
||||
plasmoid/plugin/olliedbusclient.h
|
||||
plasmoid/plugin/olliedbusclient.cpp
|
||||
OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/org/ollie/private
|
||||
)
|
||||
target_link_libraries(ollie-plasmoid-plugin PRIVATE
|
||||
Qt6::Core
|
||||
Qt6::DBus
|
||||
Qt6::Quick
|
||||
)
|
||||
target_include_directories(ollie-plasmoid-plugin PRIVATE
|
||||
${CMAKE_SOURCE_DIR}/plasmoid/plugin
|
||||
)
|
||||
|
||||
# --- Plasmoid Package ---
|
||||
plasma_install_package(plasmoid org.ollie.plasmoid)
|
||||
|
||||
# --- Install ---
|
||||
install(TARGETS ollie-kde ollie-tray DESTINATION ${KDE_INSTALL_BINDIR})
|
||||
install(TARGETS ollie-plasmoid-plugin
|
||||
DESTINATION ${KDE_INSTALL_QMLDIR}/org/ollie/private)
|
||||
endif()
|
||||
|
|
|
|||
19
Makefile
19
Makefile
|
|
@ -23,12 +23,11 @@ daemon: lib
|
|||
cmake --build $(BUILD_DIR)
|
||||
|
||||
# Step 2b: Build using KF5/Qt5 (for Plasma 5.27)
|
||||
KF5_BUILD_DIR := build-kf5
|
||||
|
||||
kf5: lib
|
||||
@cp CMakeLists.txt CMakeLists.txt.kf6.bak && \
|
||||
trap 'mv -f CMakeLists.txt.kf6.bak CMakeLists.txt' EXIT && \
|
||||
cp CMakeLists-kf5.txt CMakeLists.txt && \
|
||||
cmake -B $(BUILD_DIR) -S . --fresh && \
|
||||
cmake --build $(BUILD_DIR)
|
||||
cmake -B $(KF5_BUILD_DIR) -S . -DOLLIE_KF5=ON
|
||||
cmake --build $(KF5_BUILD_DIR)
|
||||
|
||||
# --- KF6 Install (default) ---
|
||||
|
||||
|
|
@ -133,21 +132,21 @@ plasmoid-uninstall:
|
|||
kf5-install: kf5
|
||||
@echo "=== Installing ollie-kde (KF5) ==="
|
||||
# Daemon + tray binaries
|
||||
install -m755 $(BUILD_DIR)/ollie-kde /usr/bin/
|
||||
install -m755 $(BUILD_DIR)/ollie-tray /usr/bin/
|
||||
install -m755 $(KF5_BUILD_DIR)/ollie-kde /usr/bin/
|
||||
install -m755 $(KF5_BUILD_DIR)/ollie-tray /usr/bin/
|
||||
# Go shared library
|
||||
install -m755 $(LIB_DIR)/libollie.so /usr/lib/x86_64-linux-gnu/
|
||||
# KRunner plugin
|
||||
mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner
|
||||
install -m755 $(BUILD_DIR)/lib/krunner_ollie.so \
|
||||
install -m755 $(KF5_BUILD_DIR)/lib/krunner_ollie.so \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/plugins/kf5/krunner/
|
||||
# Kate plugin
|
||||
mkdir -p /usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor
|
||||
install -m755 $(BUILD_DIR)/lib/ollie_kate.so \
|
||||
install -m755 $(KF5_BUILD_DIR)/lib/ollie_kate.so \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/plugins/ktexteditor/
|
||||
# Plasmoid QML plugin
|
||||
mkdir -p /usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private
|
||||
install -m755 $(BUILD_DIR)/lib/libollieprivateplugin.so \
|
||||
install -m755 $(KF5_BUILD_DIR)/lib/libollieprivateplugin.so \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/
|
||||
install -m644 plasmoid/plugin/qmldir \
|
||||
/usr/lib/x86_64-linux-gnu/qt5/qml/org/ollie/private/
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ Item {
|
|||
Layout.fillWidth: true
|
||||
elide: Text.ElideRight
|
||||
font.family: "monospace"
|
||||
font.pixelSize: Kirigami.Theme.defaultFont.pixelSize
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize
|
||||
visible: !sessionDelegate.renaming
|
||||
}
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ Item {
|
|||
id: inlineRenameField
|
||||
Layout.fillWidth: true
|
||||
font.family: "monospace"
|
||||
font.pixelSize: Kirigami.Theme.defaultFont.pixelSize
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize
|
||||
visible: sessionDelegate.renaming
|
||||
onAccepted: {
|
||||
var newName = text.trim()
|
||||
|
|
@ -195,7 +195,7 @@ Item {
|
|||
Label {
|
||||
text: modelData.agent
|
||||
opacity: 0.7
|
||||
font.pixelSize: Kirigami.Theme.smallFont.pixelSize
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize
|
||||
visible: !sessionDelegate.renaming
|
||||
}
|
||||
|
||||
|
|
@ -232,7 +232,7 @@ Item {
|
|||
? "(waiting for output...)"
|
||||
: "Select or create a session")
|
||||
font.family: "monospace"
|
||||
font.pixelSize: Kirigami.Theme.defaultFont.pixelSize
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize
|
||||
color: dbus.chatText
|
||||
? Kirigami.Theme.textColor
|
||||
: Kirigami.Theme.disabledTextColor
|
||||
|
|
@ -283,7 +283,7 @@ Item {
|
|||
Layout.fillWidth: true
|
||||
Layout.leftMargin: 8
|
||||
Layout.bottomMargin: 4
|
||||
font.pixelSize: Kirigami.Theme.smallFont.pixelSize
|
||||
font.pointSize: Kirigami.Theme.defaultFont.pointSize
|
||||
opacity: 0.6
|
||||
text: {
|
||||
var id = dbus.activeSessionId
|
||||
|
|
|
|||
Reference in New Issue