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:
Àlex Fiestas 2014-12-09 22:07:22 +01:00
parent f204faeae9
commit ffc74bf10b
2 changed files with 26 additions and 5 deletions

View file

@ -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)

View 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