Replace OpenRC/systemd services with XDG autostart

- Remove services/ollie-kde.openrc and services/ollie-kde.service
- Add org.ollie.SessionManager.desktop for XDG autostart (KDE-only)
- Fix lib/go.mod replace path to ../../core (monorepo-relative)
- Update Makefile install/uninstall targets
- Update README service setup section
This commit is contained in:
Levi Neely 2026-07-06 00:50:35 +02:00
parent f9e902a2ad
commit e1f066f650
6 changed files with 27 additions and 63 deletions

View File

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

View File

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

View File

@ -9,4 +9,4 @@ require (
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace ollie => ../../ollie/core
replace ollie => ../../core

View File

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

View File

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

View File

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