cloud storage client
git clone https://git.lucas.co/cce-cloud.git
cce-cloud.service (1.8K)
1 [Unit]
2 Description=CCE Cloud Menu Daemon
3 # Bound to ONE compositor's life, like cce-grid: startcce starts
4 # cce-session.target after the compositor is up and stops it when it exits.
5 # It was graphical-session.target until 2026-09-25, which does not reliably
6 # stop at logout (a queued start job elsewhere, dropbox's, made the stop
7 # transaction "destructive" and systemd skipped it), so the daemon outlived
8 # the compositor, still holding its dead Wayland connection, and panicked
9 # on the next session's first popup. After changing [Install], re-enable:
10 # `systemctl --user reenable cce-cloud.service`.
11 After=cce-session.target
12 PartOf=cce-session.target
13
14 [Service]
15 Type=simple
16 ExecStart=%h/.local/bin/cce-cloud --daemon
17 Restart=on-failure
18 RestartSec=3
19 # Launches run in their own transient scopes (PartOf=cce-session.target, see
20 # spawn_detached), so they are outside this cgroup and a restart cannot reach
21 # them. KillMode=process stays for anything still here from before that --
22 # with the default control-group mode a restart would kill those.
23 KillMode=process
24 Environment=RUST_LOG=info
25 # App launches inherit this PATH; without %h/.local/bin, desktop entries
26 # with bare Exec names fail to spawn.
27 # LOAD-BEARING. A systemd user service inherits PATH=/usr/local/bin:/usr/bin,
28 # and every cce binary is installed to ~/.local/bin. This daemon LAUNCHES
29 # things — .desktop entries whose Exec= is a bare name by DE convention
30 # (`Exec=cce-browser %u`), and the apps the launcher spawns inherit this
31 # environment. Drop this line and every one of them fails with ENOENT, from a
32 # launcher that looks like it did nothing. cce-grid had no equivalent, which
33 # is exactly how its context menu shipped silently broken.
34 Environment=PATH=%h/.local/bin:/usr/local/bin:/usr/bin
35
36 [Install]
37 WantedBy=cce-session.target