Fix breadcrumbs.service: default.target not graphical-session.target
All checks were successful
Mirror to GitHub / mirror (push) Successful in 1s
release / build (push) Successful in 35s
Build and publish package / package (push) Successful in 44s

graphical-session.target ships RefuseManualStart=yes and BOS has no
session manager to activate it properly (the same issue worked around
for breadclipd) - breadcrumbs doesn't need a Wayland session anyway,
so default.target avoids the problem entirely.
This commit is contained in:
Breadway 2026-07-03 17:59:38 +08:00
parent 2418cb900c
commit b8121ae00f
3 changed files with 13 additions and 5 deletions

2
Cargo.lock generated
View file

@ -54,7 +54,7 @@ dependencies = [
[[package]] [[package]]
name = "breadcrumbs" name = "breadcrumbs"
version = "2.1.2" version = "2.1.3"
dependencies = [ dependencies = [
"clap", "clap",
"serde", "serde",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "breadcrumbs" name = "breadcrumbs"
version = "2.1.2" version = "2.1.3"
edition = "2021" edition = "2021"
description = "Profile-aware Wi-Fi state machine with Tailscale handling and self-healing watch daemon" description = "Profile-aware Wi-Fi state machine with Tailscale handling and self-healing watch daemon"
license = "MIT" license = "MIT"

View file

@ -1,11 +1,12 @@
[Unit] [Unit]
Description=breadcrumbs Wi-Fi state machine watcher Description=breadcrumbs Wi-Fi state machine watcher
Documentation=https://git.breadway.dev/Breadway/breadcrumbs Documentation=https://git.breadway.dev/Breadway/breadcrumbs
After=network.target NetworkManager.service graphical-session.target After=network.target NetworkManager.service
Wants=network.target graphical-session.target Wants=network.target
[Service] [Service]
Type=simple Type=simple
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# ExecStart is rewritten at install time by bakery to point at the real # ExecStart is rewritten at install time by bakery to point at the real
# bin_dir (patch_exec_start in bakery's install.rs) — this path is only a # bin_dir (patch_exec_start in bakery's install.rs) — this path is only a
# placeholder for local testing. # placeholder for local testing.
@ -19,4 +20,11 @@ StandardOutput=journal
StandardError=journal StandardError=journal
[Install] [Install]
WantedBy=graphical-session.target # default.target, not graphical-session.target: breadcrumbs is a headless
# network daemon with no Wayland/GUI dependency, and graphical-session.target
# ships with RefuseManualStart=yes (only a session manager like uwsm can
# activate it — BOS doesn't use one, which is why breadclipd needs a manual
# `systemctl --user start` in hyprland.lua's exec-once instead of relying on
# WantedBy). default.target activates normally with the user session, no
# workaround needed.
WantedBy=default.target