Add an alternative way of executing kdeconnectd via autostart
We are currently using KDED only to start the daemon which makes little sense. The reason for this was so we can start/stop the service at will via KDED startup interface. This sucks, it is a horrible interface for starting/disabling kdeconnect and makes us depend on KDED for no good reason. So what this patch does is make use of XDG autostart which is supported in all major desktops (GNOME/UNITY/XFACE/KDE...). KDE has an interface to disable autostarted programs (although the interface sucks).
This commit is contained in:
parent
f204faeae9
commit
ffc74bf10b
2 changed files with 26 additions and 5 deletions
|
@ -3,14 +3,25 @@ include_directories(${CMAKE_SOURCE_DIR})
|
|||
add_definitions(-DTRANSLATION_DOMAIN="kdeconnect-kded")
|
||||
|
||||
configure_file(config-kded.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kded.h)
|
||||
add_library(kded_kdeconnect MODULE kded.cpp)
|
||||
target_link_libraries(kded_kdeconnect KF5::Service KF5::DBusAddons)
|
||||
install(TARGETS kded_kdeconnect DESTINATION ${PLUGIN_INSTALL_DIR})
|
||||
install(FILES kdeconnect.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)
|
||||
|
||||
add_executable(kdeconnectd kdeconnectd.cpp)
|
||||
target_link_libraries(kdeconnectd kdeconnectcore KF5::DBusAddons KF5::ConfigWidgets)
|
||||
|
||||
set(NEW_DAEMON_STARTUP_DESC "WIP: Start kdeconnectd without kded")
|
||||
option(WITH_AUTOSTART NEW_DAEMON_STARTUP_DESC Off)
|
||||
add_feature_info(WITH_AUTOSTART WITH_AUTOSTART NEW_DAEMON_STARTUP_DESC)
|
||||
|
||||
if (NOT WITH_AUTOSTART)
|
||||
add_library(kded_kdeconnect MODULE kded.cpp)
|
||||
target_link_libraries(kded_kdeconnect KF5::Service KF5::DBusAddons)
|
||||
install(TARGETS kded_kdeconnect DESTINATION ${PLUGIN_INSTALL_DIR})
|
||||
install(FILES kdeconnect.desktop DESTINATION ${SERVICES_INSTALL_DIR}/kded)
|
||||
else()
|
||||
configure_file(kdeconnectd.desktop.cmake ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectd.desktop)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kdeconnectd.desktop DESTINATION ${AUTOSTART_INSTALL_DIR})
|
||||
endif()
|
||||
|
||||
install(TARGETS kdeconnectd DESTINATION ${LIBEXEC_INSTALL_DIR})
|
||||
|
||||
include(DbusActivationMacros)
|
||||
dbus_add_activation_service(org.kde.kdeconnect.service.in)
|
||||
dbus_add_activation_service(org.kde.kdeconnect.service.in)
|
10
kded/kdeconnectd.desktop.cmake
Normal file
10
kded/kdeconnectd.desktop.cmake
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Desktop Entry]
|
||||
Type=Service
|
||||
Exec=${CMAKE_INSTALL_PREFIX}/${LIBEXEC_INSTALL_DIR}/kdeconnectd
|
||||
X-KDE-StartupNotify=false
|
||||
X-KDE-autostart-phase=0
|
||||
X-GNOME-Autostart-enabled=true
|
||||
OnlyShowIn=KDE;GNOME;Unity;XFCE
|
||||
NoDisplay=true
|
||||
|
||||
Name=KDEConnect daemon
|
Loading…
Reference in a new issue