Repository navigation
Add public NixOS and Home Manager modules - #356
Merged
Merged
Conversation
8 of 12 tasks
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
Export public NixOS and Home Manager modules under
services.lg-buddy, selecting matching user/config/runtime paths. Typed settings produce a Nix-attributed read-only overlay; ordinary preferences and native TV credentials remain writable user state outside the store.NixOS owns machine discovery, boot/shutdown, logind lifecycle and NetworkManager pre-down integration. The lifecycle service waits through fresh pairing. Ordinary rebuilds preserve the active boot oneshot without TV actions; module removal also avoids TV actions and removes the shutdown hook. Both machine services preserve literal config paths, including systemd percent specifiers. Home Manager publishes before user-unit activation and conditionally refreshes only an active monitor; disabling it removes its declaration while retaining writable state.
Machine/user masks stop retained application update units without clearing preferences. Unmanaged collisions use normal Home Manager policy: preserve/move foreign symlinks explicitly, since
backupFileExtensionapplies to regular files. Optional Plasma delivery builds the selected runtime's unchanged bridge with the host KWin/Qt; explicit user overrides win and a changed compositor/plugin needs a new session. Public docs cover install/update/activation/rollback/removal.Scope
CONTRIBUTING.mdand the relevant docs linked there.Relates to #253. The public modules are implemented; remaining physical lifecycle qualification keeps aggregate support acceptance open.
Validation
Head
20cd93956eca99e3b0e49da50515c531dd0ec5f7, basec102d93a97ab96a64be7d5a4b9738391d056f72e. All 24 checks in full CI passed on this head.%uconfig path reaches lifecycle/user command peers and installed root startup/shutdown unchanged; disabling both modules leaves the boot oneshot active without a TV action, and later stopping the removed unit causes no action. Tests use actual NixOS/Home Manager/systemd activation with recording TV/session command peers. Existing cases retain publication, update migration, active/inactive refresh, package/policy switches, rollback/removal and credential/preference preservation coverage.8e0aec7passed temporary Hearth activation, matching services/GUI/CLI and Complete setup, declared-edit refusal, updater masks, real brightness/volume reads and HDMI_3 blank/restore confirmed visually by the user. Hearth was restored with config/credential hashes and modes unchanged. That host run was not repeated for this corrective commit; no host activation, physical reboot/suspend or boot-generation change occurred in this follow-up.Remaining #253 acceptance: fresh physical-TV pairing, physical suspend/resume and configured startup/shutdown, and physical idle/input restore. Native aarch64 remains unqualified. Merged into
devas9b4a8369ea5862811ce3575ca15fbcc65dd96975; the remaining physical qualification stays tracked in #253.