You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
daemon: forward GUI envs; use user XDG config; (#333)
- Forward essential X/Wayland env vars from client to daemon-launched apps:
DISPLAY, WAYLAND_DISPLAY, XAUTHORITY, XDG_RUNTIME_DIR, XDG_CONFIG_HOME,
XDG_SESSION_TYPE, MOZ_ENABLE_WAYLAND, QT_QPA_PLATFORM, GTK_MODULES, GTK3_MODULES, I3SOCK.
Default XDG_RUNTIME_DIR to /run/user/<uid> when missing.
- Extend DaemonRequest to carry the forwarded env map; merge into child env in daemon path.
- Respect XDG_CONFIG_HOME in daemon mode: add thread-local config_dir override
and set it per client to forwarded XDG_CONFIG_HOME (if it exists) or fall back
to ~/.config of the connecting user. Clear the override when the handler exits.
This fixes false “config files … do not exist” when the daemon runs under systemd.
- Demote noisy “Could not get PULSE_SERVER from host” to debug in daemon mode
(still warn in non-daemon). Daemon continues to set PULSE_SERVER to
unix:/run/user/<uid>/pulse/native for the connecting user.
- Add daemon mode flag in core (set_daemon_mode/is_daemon_mode); mark daemon context
in main and use it for conditional logging.
- Avoid interactive auto-sync in daemon mode: setup_namespace now accepts
auto_sync_if_missing; daemon passes false (bails with a clear message if configs
are missing), CLI path passes true (preserving previous behavior).
- Pass env and stdio consistently for both TTY and non-TTY client cases.
Result:
- GUI apps launched via the daemon get correct X/Wayland/desktop env and no longer fail with
“no DISPLAY”.
- Daemon resolves configs from the user’s XDG config dir instead of /root/.config under
systemd.
- Systemd logs are quieter; no spurious PULSE warnings or “not a terminal” from attempted
interactive sync.
Copy file name to clipboardExpand all lines: USERGUIDE.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -31,7 +31,7 @@ vopono now supports a persistent root daemon that handles all privileged work. R
31
31
32
32
Signals (e.g., Ctrl+C, Ctrl+Z) and interactive TTY behavior work cleanly via the daemon. The daemon listens on `/run/vopono.sock` and cleans it up on exit.
33
33
34
-
Example systemd unit for the root daemon (`/etc/systemd/system/vopono-daemon.service`):
34
+
Example systemd unit for the root daemon (`/etc/systemd/system/vopono.service`):
35
35
36
36
```
37
37
[Unit]
@@ -54,8 +54,8 @@ WantedBy=multi-user.target
54
54
Check status and logs:
55
55
56
56
```
57
-
sudo systemctl status vopono-daemon
58
-
sudo journalctl -u vopono-daemon -e
57
+
sudo systemctl status vopono
58
+
sudo journalctl -u vopono -e
59
59
```
60
60
61
61
Note there is a known issue that when using tmux, etc. - sometimes the
0 commit comments