settings: add safe Startup Apps manager - #3422
Open
alamin147 wants to merge 1 commit into
Open
Conversation
Manage XDG autostart entries and conservatively classified user systemd application services without changing current process state. Protect desktop and session infrastructure in backend mutations, add Settings UI and search integration, and cover classification and persistence behavior with tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add a Startup Apps page that manages normal per-user login applications without exposing DMS or desktop/session infrastructure as a generic service manager.
/etc--now, so running applications are not started or stoppedSafety
Systemd units are excluded by default. A service must be a persistent, loaded
.service, use an allowed login target, avoid protected identities and critical session dependencies, and match a visible desktop application. Socket, timer, target, template, transient, generated, masked, static, DMS, compositor, audio, bus, portal, keyring, and session infrastructure is rejected.The backend repeats classification before every systemd mutation. Protected entries therefore cannot be changed by calling the CLI directly. User-authored XDG files can be toggled but only entries created by DMS can be deleted.
Validation
go test ./internal/startup ./cmd/dmsgo test -race ./internal/startupgo vet ./internal/startup ./cmd/dmsgolangci-lint v2.13.1 run ./...— 0 issuesmake buildqmlformatandqmllintThe complete
go test ./...run passes Startup Apps and the rest of the reported packages, but still hits the existing unrelatedinternal/screenshotTestWaylandOutputBoundsScaledfailure.make test-qmlcould not run locally becauseqmltestrunneris not installed.