diff --git a/Makefile b/Makefile index 1ba8620..419feb8 100644 --- a/Makefile +++ b/Makefile @@ -96,23 +96,8 @@ install: daemon install -m755 dolphin/ollie-actions.desktop ~/.local/share/kio/servicemenus/ sudo install -m755 dolphin/ollie-ask /usr/local/bin/ sudo install -m755 dolphin/ollie-session-here /usr/local/bin/ - # Service setup (detect init system) - @if [ -d /etc/user/init.d ] || rc-status --version 2>/dev/null | grep -q "0\.\(6[0-9]\|[7-9]\)"; then \ - echo "=== OpenRC detected (user services) ==="; \ - sudo install -m755 services/ollie-kde.openrc /etc/user/init.d/ollie-kde; \ - echo "Run: rc-update --user add ollie-kde default"; \ - echo "Run: rc-service --user ollie-kde start"; \ - elif [ -d /run/systemd/system ]; then \ - echo "=== systemd detected ==="; \ - mkdir -p ~/.config/systemd/user; \ - install -m644 services/ollie-kde.service ~/.config/systemd/user/; \ - echo "Run: systemctl --user enable --now ollie-kde"; \ - else \ - echo "=== WARNING: No supported init system detected ==="; \ - echo "Neither OpenRC (>=0.60) nor systemd found."; \ - echo "You will need to start ollie-kde manually or set up"; \ - echo "autostart for your session manager (e.g. XDG autostart)."; \ - fi + # XDG autostart (starts with Plasma session) + sudo install -m644 org.ollie.SessionManager.desktop /etc/xdg/autostart/ # Finalize sudo ldconfig kquitapp6 krunner 2>/dev/null; true @@ -122,10 +107,8 @@ install: daemon uninstall: @echo "=== Uninstalling ollie-kde ===" - # Stop service - rc-service --user ollie-kde stop 2>/dev/null; true - rc-update --user del ollie-kde 2>/dev/null; true - systemctl --user disable --now ollie-kde 2>/dev/null; true + # Stop daemon + pkill -u "$(shell id -u)" -x ollie-kde 2>/dev/null; true # Daemon + shared library sudo rm -f /usr/bin/ollie-kde /usr/bin/ollie-tray sudo rm -f /usr/lib64/libollie.so /usr/lib64/libollie-plasmoid-plugin.so @@ -140,9 +123,8 @@ uninstall: # Dolphin service menus + helpers rm -f ~/.local/share/kio/servicemenus/ollie-actions.desktop sudo rm -f /usr/local/bin/ollie-ask /usr/local/bin/ollie-session-here - # Service files - sudo rm -f /etc/user/init.d/ollie-kde - rm -f ~/.config/systemd/user/ollie-kde.service + # XDG autostart + sudo rm -f /etc/xdg/autostart/org.ollie.SessionManager.desktop # Finalize sudo ldconfig kquitapp6 krunner 2>/dev/null; true diff --git a/README.md b/README.md index 3614c1f..7c87113 100644 --- a/README.md +++ b/README.md @@ -72,19 +72,15 @@ sudo install -m755 build-cmake/ollie-tray /usr/bin/ ## Service Setup -### systemd (user unit) +The daemon starts automatically via XDG autostart when you log into a KDE Plasma +session. No manual service configuration is needed after `make install`. + +To disable autostart without uninstalling: ```sh -cp services/ollie-kde.service ~/.config/systemd/user/ -systemctl --user enable --now ollie-kde -``` - -### OpenRC (user service, 0.60+) - -```sh -sudo cp services/ollie-kde.openrc /etc/user/init.d/ollie-kde -rc-update --user add ollie-kde default -rc-service --user ollie-kde start +# Per-user override +cp /etc/xdg/autostart/org.ollie.SessionManager.desktop ~/.config/autostart/ +echo "Hidden=true" >> ~/.config/autostart/org.ollie.SessionManager.desktop ``` ### Manual @@ -212,8 +208,6 @@ ollie-kde/ │ ├── ollie-actions.desktop # Service menu entries │ ├── ollie-ask # One-shot helper script │ └── ollie-session-here # Session creation helper -├── services/ -│ ├── ollie-kde.service # systemd user unit -│ └── ollie-kde.openrc # OpenRC service +├── org.ollie.SessionManager.desktop # XDG autostart entry └── test-e2e.sh # End-to-end test script ``` diff --git a/lib/go.mod b/lib/go.mod index 53098ba..b02c17f 100644 --- a/lib/go.mod +++ b/lib/go.mod @@ -9,4 +9,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace ollie => ../../ollie/core +replace ollie => ../../core diff --git a/org.ollie.SessionManager.desktop b/org.ollie.SessionManager.desktop new file mode 100644 index 0000000..09b5752 --- /dev/null +++ b/org.ollie.SessionManager.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Type=Application +Name=Ollie Session Manager +GenericName=AI Agent D-Bus Daemon +Comment=D-Bus session manager for Ollie AI agent sessions +Exec=/usr/bin/ollie-kde +Icon=ollie +Terminal=false +Categories=Utility; +OnlyShowIn=KDE; +X-KDE-autostart-phase=1 +X-DBUS-ServiceName=org.ollie.SessionManager diff --git a/services/ollie-kde.openrc b/services/ollie-kde.openrc deleted file mode 100755 index 4c5db48..0000000 --- a/services/ollie-kde.openrc +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/openrc-run -# OpenRC user service for ollie-kde daemon -# Install: sudo cp to /etc/user/init.d/ollie-kde -# Enable: rc-update --user add ollie-kde default - -description="Ollie KDE Session Manager" -supervisor="supervise-daemon" -command="/usr/bin/ollie-kde" - -depend() { - need dbus -} diff --git a/services/ollie-kde.service b/services/ollie-kde.service deleted file mode 100644 index 206b9bf..0000000 --- a/services/ollie-kde.service +++ /dev/null @@ -1,12 +0,0 @@ -[Unit] -Description=Ollie KDE Session Manager -After=dbus.service - -[Service] -ExecStart=/usr/bin/ollie-kde -Restart=on-failure -RestartSec=3 -Environment=LD_LIBRARY_PATH=/usr/lib64 - -[Install] -WantedBy=default.target