libcosmic/src
James Tucker 2af4cff958
desktop: add systemd service spawn option alongside scope
Per systemd's desktop environment recommendations [1], transient .service
units are preferred over .scope units when launching applications. This
ensures the systemd user session is the direct parent of launched processes.

The previous approach (desktop-systemd-scope) spawned processes via
double-fork (orphaning them to PID 1), then moved them into a scope.
Security tools like 1Password that verify parent process lineage rejected
these processes because their ancestor chain led to PID 1 rather than
systemd --user.

This commit adds a new 'desktop-systemd-service' feature that uses
StartTransientUnit with ExecStart to let systemd spawn the process
directly, giving launched applications a proper parent lineage.

Feature behavior:
- desktop-systemd-service only: Uses transient .service units
- desktop-systemd-scope only: Uses transient .scope units (existing behavior)
- Both enabled: Tries .service first, falls back to .scope, then double-fork
- Neither enabled: Uses double-fork directly

Also fixes typo: SystemdManger -> SystemdManager

[1] https://systemd.io/DESKTOP_ENVIRONMENTS/
2026-02-08 20:01:32 -08:00
..
app improv: remove double coloring of content_container windows 2026-01-27 18:07:35 -07:00
applet feat(applets): configurable applet overlap and padding increases 2025-11-11 21:04:09 +01:00
config fix: don't error when default config for toolkit settings is not present 2025-08-22 22:41:12 +02:00
dialog chore: apply clippy suggestions 2025-10-05 04:40:51 +02:00
executor chore: improve documentation 2023-08-16 16:59:15 +02:00
surface cargo fmt 2025-09-30 10:59:51 -04:00
theme improv: remove double coloring of content_container windows 2026-01-27 18:07:35 -07:00
widget fix(segmented_button): dnd hover 2026-01-29 00:07:00 +01:00
action.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
command.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
core.rs perf: reduce memory allocations 2025-10-22 04:30:57 +02:00
dbus_activation.rs feat: add dbus_connection() method to app::Application trait 2025-07-21 22:59:09 +02:00
desktop.rs desktop: add systemd service spawn option alongside scope 2026-02-08 20:01:32 -08:00
ext.rs feat: Tooltips and Better Surface Management 2025-03-14 16:56:21 +01:00
font.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
icon_theme.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
keyboard_nav.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
lib.rs Add helper for accumulating scroll into discrete delta 2025-12-06 20:00:59 -08:00
localize.rs feat: add i18n support for libcosmic widgets 2025-09-05 18:50:25 +02:00
malloc.rs perf: inline public getters/setters, and use non-generic inner functions 2025-03-21 13:31:34 +01:00
process.rs tests: fix env guard and pipe read for tab dnd 2025-11-20 22:33:13 +01:00
scroll.rs Add helper for accumulating scroll into discrete delta 2025-12-06 20:00:59 -08:00
task.rs chore(task): add none function 2025-04-22 14:37:58 +02:00