Compare commits

..
Author SHA1 Message Date
Benedikt RipsandAustin Horstman 079a3b5d1a sshAuthSock: for Zsh, initialize in .zprofile and .zshenv 2026-07-24 12:12:39 -05:00
Benedikt RipsandAustin Horstman 40d502faf2 sshAuthSock: indent initialization code 2026-07-24 12:12:39 -05:00
Marius BärandRobert Helgesson 32de400b6a direnv: fix nushell integration failing to unset variables
The nushell pre_prompt hook applied direnv's export diff with `load-env`,
which cannot remove a variable. Variables direnv marks for removal (null
values) were left behind as empty ghosts. Hide those keys explicitly and
drop them before `load-env`.
2026-07-24 09:16:45 +02:00
Eman ResuandRobert Helgesson 3b0e6bbd65 modules: partially apply .nix suffix check
hasSuffix runs some checks on the suffix, that can be done all at once
rather than every single time.
2026-07-23 08:47:55 +02:00
Eman ResuandRobert Helgesson cbfe673271 modules: stop filtering files starting with _
There are no instances of this in-tree.
2026-07-23 08:47:55 +02:00
YethalandAustin Horstman 041a999e8c modules/misc/ssh-auth-sock: correct nushell init 2026-07-22 08:08:47 -05:00
Sebastián EstrellaandAustin Horstman 6d8d615678 herdr: Use the binary outside Nix to reload the config when package is unset 2026-07-21 22:14:27 -05:00
abba1081f5 rclone: add nfsmount mount type
Add a per-mount 'mountType' option ('mount' | 'nfsmount') selecting
which rclone command performs the mount. 'nfsmount' runs rclone's
in-process NFS server and mounts it via the system NFS client, so no
FUSE driver is needed — on macOS this removes the module's documented
macFUSE requirement (and the kernel-extension approval plus Reduced
Security boot policy that come with it).

When 'nfsmount' is selected, 'nfs-cache-type = "disk"' is merged
into the mount's options (user-overridable, mirroring the existing
'vfs-cache-mode' defaulting) so NFS file handles survive rclone
restarts; with the in-memory default, every service restart would
leave the kernel client with stale handles.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:13:44 -05:00
yaaaarnandAustin Horstman a2a9fec572 senpai: use correct config directory on darwin systems 2026-07-21 22:13:04 -05:00
Matt SchreiberandRobert Helgesson deeb6b7eb7 files: fix unintended subshell expansion 2026-07-21 00:53:36 +02:00
Arnaud VenturiandRobert Helgesson cbcbd8b043 kanshi: Fix scale example values from int to float 2026-07-21 00:24:25 +02:00
JessandRobert Helgesson 7e2199f4bc rclone: set programs.fuse.enable to fix integration tests 2026-07-21 00:23:33 +02:00
DimaniojkandRobert Helgesson 56ccab8918 programs.claude-code: avoid watching the Nix store 2026-07-21 00:19:38 +02:00
AstreaprtclandRobert Helgesson a02190edf9 wlsunset: add duration option
Add an option to set the easing duration if the times have been set
manually.
2026-07-20 23:18:26 +02:00
Eman ResuandRobert Helgesson 411408f523 lib/file-type: partially apply hasPrefix and removePrefix 2026-07-20 23:17:54 +02:00
reducedradiusandRobert Helgesson 7834e3fb36 Translate using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: reducedradius <137701630+flytothehighest@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translation: Home Manager/Home Manager CLI
2026-07-20 23:00:06 +02:00
Artur SannikovandRobert Helgesson 7d7a2566f6 Translate using Weblate (Italian)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Italian)

Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Russian)

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Russian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Artur Sannikov <weblate.rbpxz@8shield.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-07-20 23:00:06 +02:00
greenpsiandMatthieu Coudron e3dea8e479 tirith: zsh initExtra -> initContent
Migrate usage of zsh initExtra to initContent because initExtra is
deprecated.
2026-07-20 13:17:44 +02:00
diniamoandMatthieu Coudron 3139deb8ca maintainers: remove diniamo 2026-07-19 21:31:31 +02:00
Jason BowmanandRobert Helgesson 39411a8e12 syncthing: use localhost authority for unix-socket REST calls
When services.syncthing.guiAddress is a unix socket, curlAddressArgs built
`--unix-socket <sock> http://.<path>`. curl >= 8.21 tightened URL parsing and
rejects the bare-dot authority with "URL rejected: Bad hostname" (exit 3), so
every REST call in the merge script fails. Combined with `--retry 1000
--retry-delay 1 --retry-all-errors`, syncthing-init.service retries until
systemd terminates it at the start timeout and Home Manager activation fails.

Use `localhost` as the placeholder authority; --unix-socket still routes the
request to the socket, and localhost is accepted by all curl versions. Add a
regression test asserting the unix-socket path uses http://localhost.
2026-07-18 22:41:57 +02:00
Sebastián EstrellaandAustin Horstman 460108009c herdr: Automatically reload config 2026-07-18 00:08:44 -05:00
Mike ThaiandAustin Horstman 18f9047340 navi: update url for config file docs 2026-07-18 00:04:03 -05:00
home-manager-ci[bot]andAustin Horstman c71e83ef50 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 0 maintainers
**Total:** 305 → 307 maintainers

** Added:** ReeSilva, ratakor

Generated by: lib/python/generate-all-maintainers.py
2026-07-18 00:02:55 -05:00
Austin Horstman 165228b0ef launchd: restore gui domain defaults
User-domain agents are not rediscovered from the user LaunchAgents directory after reboot. Let built-in agents inherit the GUI default while keeping explicit user-domain configuration available.
2026-07-15 10:29:26 -05:00
6dc9e081ba docs: fix cross-page links broken by mdbook migration
The mdBook migration split the manual into one HTML page per section,
but same-page fragment links (e.g. [Standalone setup](#sec-flakes-standalone))
were left pointing at anchors that now live on other pages, so they
silently do nothing when clicked.

Rewrite all cross-page fragment links in docs/manual and
docs/release-notes to page-qualified relative links. Option anchor
links (#opt-*, #nixos-opt-*, #nix-darwin-opt-*) are untouched since
convert-markup.py rewrites those at build time.

Also give the previously empty-label [](#sec-tests) link in the 25.05
release notes a "Tests" label, since the mdBook renderer does not
auto-fill labels from the target heading.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 08:56:06 -05:00
Thierry DelafontaineandMatthieu Coudron a45a7c4514 opencode: use meta.mainProgram to wrap the main binary
Resolves #9640
2026-07-13 19:22:27 +02:00
David ThievonandAustin Horstman 7566825d46 swayimg: support new lua config
Closes: #9479
2026-07-11 21:30:09 -05:00
port22exposedandAustin Horstman ae6f976083 psd: remove aliased packages
aliased packages result in breakage on systems with them disabled and home-manager set to use global nixpkgs
2026-07-11 20:49:16 -05:00
Thierry DelafontaineandAustin Horstman c74f4f6cdd opencode: document plugin option usage in settings description 2026-07-11 19:45:00 -05:00
pancho horrilloandAustin Horstman e473bdcd87 home-cursor: update URL to Freedesktop.org specs
The old one returns a `404 - Page not found` error.

Located the content via archive.org¹ and a quick search yielded the
current URL for the spec.

¹: https://web.archive.org/web/20161024065530/https://specifications.freedesktop.org/icon-theme-spec/latest/ar01s03.html
2026-07-11 18:57:34 -05:00
Rachit Kumar VermaandAustin Horstman 564bc37de5 kitty: fix diff.conf being generated regardless of user config
'cfg.diffConfig' is an implicit submodule with sub-options that carry
their own defaults, so it never actually equals `{ }` - the previous
`cfg.diffConfig != { }` check was always true. This caused
'kitty/diff.conf' to be written (and clobber any existing unmanaged file)
even when the user configured nothing under `programs.kitty.diffConfig`.
2026-07-11 18:56:44 -05:00
csanthiagoandAustin Horstman 0992a29487 television: add extraPackages option with default dependencies
Add an extraPackages option to the television module that wraps the `tv`
binary with additional packages in PATH. Defaults to fd, bat, and ripgrep
which are the dependencies required by television's default channels.

Existing tests updated to set extraPackages = [ ] since they test config
generation, not binary wrapping.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-11 15:00:36 -05:00
Austin Horstman 2afec152df tests/darwinScrublist: add podman
podman pulls in vfkit on darwin, which fails to build on
aarch64-darwin with the current nixpkgs pin (cctools ld crashes
with 'Trace/BPT trap: 5'). The podman darwin tests reference the
real package through the machine watchdog script, establishing a
build dependency. Stub it on darwin test runs.
2026-07-10 23:35:26 -05:00
dependabot[bot]andAustin Horstman d29a1c0f34 flake: bump nixpkgs from 9e92285 to 767b0d3
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `9e92285` to `767b0d3`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/9e92285f211dad236540fd617d7e30e0b99bc0e1...767b0d3ec98a143ad9ed7dfc0d5553510ac27133)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 767b0d3ec98a143ad9ed7dfc0d5553510ac27133
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 23:35:26 -05:00
Austin Horstman 3e2af6c9e5 tests/darwinScrublist: add colima, gurk-rs
Both fail to build on aarch64-darwin with the current nixpkgs pin
(cctools ld crashes with 'Trace/BPT trap: 5'): gurk-rs directly, and
vfkit as a colima dependency. Stub them on darwin test runs.
2026-07-10 23:06:34 -05:00
Austin Horstman f938277527 claude-code: tighten module implementation
Remove redundant option machinery, centralize skills shape checks, and use narrower list composition while preserving generated behavior.
2026-07-10 14:19:11 -05:00
Austin Horstman 437ae5be42 claude-code: test plugin collisions
Cover duplicate personal-plugin directory names and collisions between managed plugins and configured skills.
2026-07-10 14:19:11 -05:00
Austin Horstman 5c7199cd3b claude-code: split module files
Move public option declarations and file-entry helpers into dedicated files while keeping module assembly in default.nix. Update the AI labeler for the new module directory.
2026-07-10 14:19:11 -05:00
Austin Horstman 1c029fb0dc claude-code: load plugins without wrapper
Persist managed plugins in Claude Code's personal skills directory so strict-parser subcommands do not receive injected --plugin-dir arguments. Retain version-gated legacy behavior for older and unversioned packages.
2026-07-10 14:19:11 -05:00
Eason20000andAustin Horstman 79e6082586 launchd: treat absent domain as harmless in bootoutAgent
When an agent's launchd.agents.<name>.domain is changed from gui to
user (or the agent is newly installed on a headless macOS system
where the gui/<UID> domain never existed), bootoutAgent attempts to
unload the agent from the old domain first. On such systems, this
fails with: Boot-out failed: 125: Domain does not support specified
action.

The bootoutAgent function only treated "No such process" as a
non-fatal condition (return 2). This change adds the domain-not-exist
error to the same handling path: the agent wasn't running in a domain
that doesn't exist, so we can safely skip the boot-out and proceed
with bootstrap into the new domain.
2026-07-10 08:22:30 -05:00
Austin Horstman 144f4e36d0 files: respect executable for recursive directories
Apply explicit executable settings to recursive directory leaves so directory sources behave like documented file sources.
2026-07-09 12:27:58 -05:00
reesilvaandAustin Horstman f4d01c1d87 posting: add module
posting: add news
2026-07-08 17:33:28 -05:00
reesilvaandAustin Horstman a1fc9a1cc3 maintainers: add reesilva 2026-07-08 17:33:28 -05:00
Austin Horstman 1aac8895fe home-cursor: warn before removing implicit enable
Follow up on home-cursor: remove legacy enable by preserving the implicit enable path that was not covered by the earlier deprecation warning.

Configurations that set home.pointerCursor without top-level enable now continue to work and emit a warning asking users to set home.pointerCursor.enable explicitly.
2026-07-08 10:46:52 -05:00
Austin Horstman cee3f0e7fe yubikey-agent: switch to gui domain for hardware key PIN prompts
yubikey-agent triggers OS-level CCID/PIV PIN entry dialogs when SSH
authentication is requested. These system security prompts require
access to the macOS Aqua session (window server). Running in the user
domain (LimitLoadToSessionType=Background) blocks these prompts,
causing authentication to fail or hang.

Revert to the default gui domain so PIN prompts can render in the
graphical login session.
2026-07-07 22:02:13 -05:00
Austin Horstman 7a62d63707 gpg-agent: switch to gui domain for graphical pinentry support
gpg-agent is commonly configured with graphical pinentry programs
(pinentry-mac, pinentry-gnome3) on macOS that need access to the Aqua
session to display passphrase prompts. Running in the user domain
(LimitLoadToSessionType=Background) prevents these prompts from
rendering, causing passphrase entry to fail silently or hang.

Revert to the default gui domain so the agent runs in the graphical
login session where pinentry can interact with the window server.
2026-07-07 22:02:13 -05:00
Thierry DelafontaineandAustin Horstman 53ebbdc405 proton-pass-agent: switch to gui domain to prevent error accessing keyring
Fixes the following accessing issue:

```
Error accessing credential on keyring: PlatformFailure(Error { code: -25308, message: "User interaction is not allowed." })
```
2026-07-07 16:08:19 -05:00
isabelandAustin Horstman 2ad49968c3 home-cursor: remove legacy enable
its been 482 days since this was merged. users should have had enough
time to migrate
2026-07-07 15:47:40 -05:00
Batuhan Baserdem, Ph.D.andGitHub 3c6f1244ed firefox: allow setting persistent StoreID
Added a new config option programs.firefox.profiles.<name>.storeId.
Setting this option now writes the StoreID both to the profiles.ini
and to the settings."toolkit.profiles.storeID" of the profile.
Firefox has two different profile implementations;
- the old one that home-manager module can declare
- the new "Selectable Profile Service" introduced in 150
The new profiles are managed in a runtime db, and reads from profiles.ini
Migration without database operations is not possible right now,
but when it becomes available, this option will stop home-manager from
clobbering the linked storeIDs.
2026-07-07 15:46:26 -05:00
Thierry DelafontaineandAustin Horstman f09af49406 opencode: assume most recent version when package=null
Resolves #9589
2026-07-07 09:54:30 -05:00
Austin Horstman cd863288d4 codex: stop duplicating hook script deployment
Write path-backed hook bundles only under the active Codex home so XDG mode no longer mirrors scripts into ~/.codex.
2026-07-07 09:53:53 -05:00
RatakorandAustin Horstman 52f93adbac walker: fix systemd dependency cycle with elephant
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
RatakorandAustin Horstman 16acb8c7ff maintainers: add ratakor to walker & elephant
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
RatakorandAustin Horstman 8de7488af2 elephant: fix service unit
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
Saad NadeemandAustin Horstman ed10fd394e clipse: support store paths for theme option 2026-07-07 09:50:12 -05:00
Leon SchwarzäuglandAustin Horstman 63d02d1c19 attic-client: init module 2026-07-06 20:46:24 -05:00
Austin Horstman 0d33882bd4 codex: support path-backed hooks
Allow path-backed hook bundles to provide both hooks.json and supporting scripts through programs.codex.hooks.
2026-07-06 12:20:20 -05:00
Austin Horstman a1645f4077 maintainers: regenerate all-maintainers
Regenerate all-maintainers.nix from module metadata after removing duplicate yarn maintainer entry.
2026-07-04 22:28:41 -05:00
Austin Horstman cf0c5c3e9f maintainers: drop duplicate yarn entry
Remove HM-only yarn maintainer definition and keep module references aligned with nixpkgs maintainer data.
2026-07-04 22:28:41 -05:00
dependabot[bot]andAustin Horstman 40545758d8 flake: bump nixpkgs from 89570f2 to 9e92285
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `89570f2` to `9e92285`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/89570f24e97e614aa34aa9ab1c927b6578a43775...9e92285f211dad236540fd617d7e30e0b99bc0e1)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 9e92285f211dad236540fd617d7e30e0b99bc0e1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 22:28:41 -05:00
pancho horrilloandAustin Horstman bfb67e07a3 difftastic: fix jujutsu integration
Don’t append `--color=always` and `--sort-paths` unconditionally, since
`difftastic` doesn’t like repeated arguments, and the user might have
already set them (via `config.programs.difftastic.options`).

To clarify, if `difft` gets called with any parameter repeated, it will
croak:

    difft --color=always --color=always
    error: the argument '--color <WHEN>' cannot be used multiple times

    Usage: difft [OPTIONS] OLD-PATH NEW-PATH

    For more information, try '--help'.

By patching `cfg.options` we ensure that the parameters are defined, and
have the required value, since the user might have selected differently
for their general setup (again, via `config.programs.difftastic.options`).
2026-07-04 22:13:42 -05:00
SigheryandAustin Horstman a7209b6794 syncthing: fix badly escaped ignore patterns test
The previous test would pass no matter what the `ignoreString` was. I
don't know enough Bash/Grep to explain it, but it was easy to test by
just changing the pattern to have `WRONG` instead of `val1`, and that
would still pass the `assertFileContains` test.

I've hopefully fixed it now, by using `lib.escapeShellArg` before
passing it to `assertFileContains`, and I've also added a negative test
case, to ensure that a bad ignore string is _not_ found in the merge
script.
2026-07-04 22:02:21 -05:00
b885baad53 syncthing: add option for ignore patterns
Taken from this nixpkgs commit by @zorrobert:
https://github.com/NixOS/nixpkgs/commit/7a223b26858aaebb44009c8966a1756918e936e3

Syncthing shared folders can be configured to ignore paths. These
changes add support for this functionality.

Co-authored-by: zorrobert <118135271+zorrobert@users.noreply.github.com>
2026-07-03 22:08:35 -05:00
Ben BrownandAustin Horstman b2e4390ff3 kanshi: Add test to check service when settings are unset 2026-07-03 12:27:00 -05:00
Ben BrownandAustin Horstman 1c9ddc707c kanshi: fix check for empty settings
Fixes regression introduced by me in 74b3817.
2026-07-03 12:27:00 -05:00
isabelandAustin Horstman 3a60d513d0 clipse: use rfc 042 style settings 2026-07-03 12:26:19 -05:00
Austin Horstman a4d410db95 fzf: group related module attributes
Group repeated attr prefixes so the fzf module and new tests are easier to scan without changing behavior.
2026-07-02 15:28:15 -05:00
Austin Horstman 0396024ea5 fzf: warn on conflicting ctrl-r bindings
Detect active fzf and history-manager Ctrl-R bindings by their configured values, warn with the winning precedence, and let the normal binding options silence the warning.
2026-07-02 15:28:15 -05:00
Austin Horstman f15a4bf065 fzf: add per-shell widget overrides
Allow each shell integration to override widget commands and options before fzf is sourced, so users can disable or tune bindings only where needed.
2026-07-02 15:28:15 -05:00
Austin Horstman 2d92f5398d fzf: export environment variables to nushell
Pure Nushell sessions do not source hm-session-vars, so feed the same FZF_* values through programs.nushell.environmentVariables before sourcing fzf integration.
2026-07-02 15:28:15 -05:00
Austin Horstman fe3ce0a527 fzf: add historyWidget.command option
Expose FZF_CTRL_R_COMMAND again so users can disable fzf's Ctrl-R binding explicitly, and warn when the configured package is too old to support it.
2026-07-02 15:28:15 -05:00
Austin Horstman cde77509b6 fzf: restructure widget options
Move widget settings under nested option groups while preserving behavior through rename aliases, and centralize FZF environment variable rendering for later reuse.
2026-07-02 15:28:15 -05:00
Austin Horstman 31ca071a7d fzf: remove legacy shell integration fallback
fzf 0.48.0 embeds shell integration scripts, so keep only the supported fzf --bash, --zsh, and --fish paths and assert that integrations use a new enough package.
2026-07-02 15:28:15 -05:00
Austin Horstman 2fca6a7372 atuin: order nushell integration after fzf
Source the Nushell integration at order 2000 so fzf can keep chaining carapace at mkAfter while Atuin still wins Ctrl-R like it does in other shells.

Users who used programs.nushell.extraConfig = lib.mkAfter ... to beat Atuin now need lib.mkOrder 2001 or later.
2026-07-02 15:28:15 -05:00
Benedikt RipsandAustin Horstman f469c79b95 home: document defaults inherited from NixOS/nix-darwin 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman 7b64c06f1d home: use lib.literalMD 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman 937e85df03 home: check username being non-empty through its type 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman c0b7cadd81 home: remove redundant non-emptiness assertion
The option type `path` checks that the path starts with a slash, hence
it can not be empty.
2026-07-02 10:19:51 -05:00
andre4ik3andAustin Horstman ebc87daabc launchd: only use --wait on macOS 26 and later 2026-07-01 22:54:10 -05:00
Ben BrownandAustin Horstman 74b38179ac kanshi: Reload on config change 2026-07-01 15:07:43 -05:00
_andAustin Horstman d32537981c lib: escape backslash in lib.hm.generators.toKDL 2026-06-30 23:49:47 -05:00
Austin Horstman 2f3da3d45f launchd: fix user domain agents
User-domain agents need the Background session type to bootstrap into user/501, and activation should fail rather than silently unloading services when launchctl bootstrap fails.
2026-06-30 23:39:07 -05:00
Amadej KastelicandAustin Horstman 2a37d71bbe herdr: add module 2026-06-30 12:14:44 -05:00
Matej BlagšičandGitHub 5d72a29fc3 hyprpaper: add system target option
Adding option `systemdTarget` to hyprpaper to match other
wayland/hyprland modules. This allows easy fixup of startup dependencies
for the service, depending on system.
2026-06-29 11:13:51 -05:00
Austin Horstman 8f096963ae maintainers: regenerate all-maintainers
Regenerate the combined maintainer list with the lock-aware extractor so migrated nixpkgs maintainers and Home Manager source labels are correct.
2026-06-29 11:12:43 -05:00
Austin Horstman 7042d2b31b lib/nix: use locked nixpkgs for maintainer extraction
Importing <nixpkgs> tied extraction to the caller's NIX_PATH. When that
channel lacks a maintainer referenced through `with lib.maintainers`
(such as sherlock's `_74k1`, which exists in the locked nixpkgs but not
in an older channel), evaluation fails outright and the generated list
varies by machine. Resolve nixpkgs from flake.lock so extraction matches
what Home Manager builds with.

Also classify maintainers by identity (github/name) rather than attribute
name so renamed entries like `_9p4` still match, and correct the
arguments passed to the manual derivation so its maintainer is collected.
2026-06-29 11:12:43 -05:00
Austin Horstman 9eec3ef087 maintainers: remove quoted names in set
Prefer underscore to match nixpkgs.
2026-06-29 11:12:43 -05:00
Austin Horstman 789a35fbde maintainers: remove duplicate maintainers 2026-06-28 22:04:23 -05:00
dependabot[bot]andAustin Horstman 2c661cc960 flake: bump nixpkgs from 3e41b24 to 89570f2
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `3e41b24` to `89570f2`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/3e41b24abd260e8f71dbe2f5737d24122f972158...89570f24e97e614aa34aa9ab1c927b6578a43775)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 89570f24e97e614aa34aa9ab1c927b6578a43775
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 22:04:23 -05:00
Felix StuppandGitHub 1cba40f931 vscode: refactor profile paths to use unified profileDir helper
Refactor code to remove duplicated code. The location of the profile directory dependent on the profile name was duplicated over several locations. This PR unifies this into one single helper function profileDir.
2026-06-28 21:50:51 -05:00
Felix StuppandGitHub abeeea1221 vscode: fix userMcp option example syntax
literalExample with JSON code is wrong, changed to direct Nix attr
2026-06-28 21:50:04 -05:00
Jure VarlecandAustin Horstman 4ad9aaae70 generic-linux-gpu: add EGL support for Nvidia 2026-06-28 09:30:28 -05:00
Joshua FergusonandAustin Horstman 8d8a6cc50d gpg: make package optional 2026-06-26 20:08:58 -05:00
Peter BittnerandAustin Horstman 6eba758fee uv: prune Python versions and tools by diff
The prune option uninstalled all managed Python versions (and tools)
and reinstalled them on every activation, which is slow. Instead,
resolve each requested version to the install target uv would produce
and uninstall only the difference; already-correct versions are left
untouched. Resolving to the install target (not every installed match)
also prunes superseded patch releases, which uv retains on upgrade.

Tools are diffed by PEP 503-normalized package name: requested names
are extracted and normalized at build time, and the installed set is
read from uv's tool directory, whose entries are already normalized, so
no uv output is parsed. Pruning to an empty set still removes everything.
2026-06-26 20:08:04 -05:00
Vinicius DeolindoandAustin Horstman 5d320ab301 fzf: source nushell integration after carapace 2026-06-25 16:45:22 -05:00
Austin Horstman 19d7472aca codex: reorganize module files
Move option definitions and helper functions into dedicated files while keeping module assembly in default.nix.
2026-06-25 14:21:12 -05:00
Austin Horstman 2ebe9c0fe7 codex: sanitize plugin cache paths
Use sanitized plugin name and version components for cache targets while preserving manifest names in Codex config.
2026-06-25 14:21:12 -05:00
Austin Horstman 64221f9c87 codex: add lifecycle hooks option
Manage CODEX_HOME/hooks.json directly while covering the generated file in the existing TOML test.
2026-06-25 14:21:12 -05:00
Austin Horstman 1c64122e70 codex: add context override file
Expose AGENTS.override.md declaratively and cover it in the existing TOML generation test.
2026-06-25 14:21:12 -05:00
Austin Horstman 01e23f497c codex: update upstream config reference
Use the current Codex configuration docs URL and snake_case model provider keys in examples and fixtures.
2026-06-25 14:21:12 -05:00
Austin Horstman 9e3e1d95be codex: add maintainer khaneliman 2026-06-25 14:21:12 -05:00
Austin Horstman 3d8f49f360 alacritty: normalize key binding escape sequences
`pkgs.formats.toml` escapes backslashes and cannot emit raw control
characters, so key-binding `chars` written as escape text (e.g.
"\uXXXX" or the "\^[" caret form) ended up as invalid literals in the
generated config. Rewrite each escape to a placeholder before
generation and restore it to "\u" afterward.

Use `builtins.split` so escapes are handled anywhere in the value,
including when repeated or mixed with other text.
2026-06-25 14:20:58 -05:00
085e92b04a github-copilot-cli: preserve args for local-type MCP servers
forCopilotFormat only checked for type == "stdio" to add back args,
missing the case where a server already has type = "local" (e.g. set
directly by a third-party module). This caused args to be absent in the
generated mcp-config.json, failing validation.

Also, running forCopilotFormat as an extraTransform meant it ran inside
transformMcpServer, which then filtered out args = [] in its cleanup
pass. Move forCopilotFormat to run after transformMcpServer so the
empty args list is preserved in the output.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 14:16:07 -05:00
Dionisie StratulatandGitHub 3b3ff17621 firefox: legacyUserProfileCustomizations when userChrome is present
When a user configures the userChrome option, automatically enable the
`toolkit.legacyUserProfileCustomizations.stylesheets` preference with
`mkDefault` priority so that the user chrome CSS is actually loaded.
The user can still override this in the settings option if needed.
2026-06-25 14:15:06 -05:00
r-vdpandAustin Horstman 3a70e333f2 fish: extract completion generator from the fish binary
fish 4.8.0 stops installing share/fish/tools/ and embeds the script
in the binary instead. Instead we use `status get-file` to extract it,
which works for fish >= 4.1.

See NixOS/nixpkgs#534907.
2026-06-24 22:36:00 -05:00
Austin Horstman a9232b8b10 launchd: use user domain for background agents
Move non-graphical Darwin services out of the GUI launchd domain so they can be managed from non-Aqua contexts such as SSH sessions.
2026-06-24 20:38:38 -05:00
Austin Horstman dc89b0c0bb launchd: add agent domain option
Allow Darwin LaunchAgents to target either the GUI or user launchd domain while preserving gui as the compatibility default.
2026-06-24 20:38:38 -05:00
Austin Horstman 062581938b claude-code: reject disabled mcp servers instead of dropping
Filtering disabled shared servers out of `.mcp.json` (#9457) collapsed
"present but disabled" and "absent" into the same output, so a server
set
`enabled = false` for OpenCode could no longer remain present in Claude
Code. `.mcp.json` has no per-server `enabled` field, but settings.json
does via `disabledMcpjsonServers`.

Keep disabled servers in `.mcp.json` and list them under
`disabledMcpjsonServers` (merged with any user-set value). This honors
the
disabled intent without dropping the server, and covers both shared and
Claude Code-native servers.
2026-06-23 11:54:25 -05:00
Benedikt RipsandAustin Horstman 1ac720f007 home: document the 'home.profileDirectory' default 2026-06-23 11:11:50 -05:00
ReStrangerandAustin Horstman d6b7bf1695 hyprland-qt-support: add news entry
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 16fdc3504e hyprland-qt-support: add test case
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 83c0e03687 hyprland-qt-support: init module 2026-06-23 11:10:25 -05:00
Bruno BELANYIandAustin Horstman 4b0b947474 zsh: add 'fastSyntaxHighlighting' 2026-06-23 08:09:29 -05:00
leiserfgandAustin Horstman 471a1d2f84 news: Add devenv entry 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 6cb9da2a4d devenv: init module 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 351959fcdb fzf: Add tests 2026-06-22 15:17:52 -05:00
leiserfgandAustin Horstman cb6bcc43e7 fzf: add nushell integration 2026-06-22 15:17:52 -05:00
mikaeladevandAustin Horstman af11a877f2 nvibrant: add module 2026-06-22 13:55:29 -05:00
Austin Horstman 66eb0fc116 docs: clarify new module news conditions
Clarify that new-module news should remain visible to users who have not enabled the new module yet.
2026-06-22 12:35:03 -05:00
leiserfgandAustin Horstman 979bfee6e1 vicinae: add firefox mesaging host 2026-06-22 08:19:19 -05:00
Austin Horstman d8dac1f668 ci: build docs in buildbot output
GitHub Actions runners lack a reusable /nix/store, so rendering the full
manual, options JSON, and manpages on every docs PR pays that cost
uncached. buildbot has a persistent store, so expose the docs outputs
there instead and leave the GHA docs step at the lightweight maintainers
check.
2026-06-21 23:44:06 -05:00
Austin Horstman f3dc0b8583 docs: update platform module guidance
Program and service modules are auto-imported now, so contributor docs should point platform-specific work at guarded module behavior and tests instead of loadModule.
2026-06-21 22:58:48 -05:00
Austin Horstman db97e414d5 docs: describe embedded module integration
Document the extra module arguments, shared modules hook, and NixOS activation modes so embedded Home Manager setup matches the current integration code.
2026-06-21 22:51:39 -05:00
Austin Horstman e731ff60ec docs: correct test command guidance
Document list and run commands separately, keep test runner usage through the flake wrapper, and avoid stale legacy full-suite commands.
2026-06-21 22:43:01 -05:00
Austin Horstman e45cc6e15a docs: fix manpage path
The generated home-configuration manpage is not compressed, so point contributors at the file that docs.manPages actually creates.
2026-06-21 22:20:43 -05:00
Austin Horstman 8f3bc61192 news: remove duplicate module announcements
Drop sparse duplicate entries for amberol and mpdscribble while keeping the richer platform-gated announcements.
2026-06-21 22:07:39 -05:00
Austin Horstman 5bf17310cf docs: preserve legacy manual links
Generate XHTML-safe redirect shims that route old single-page manual anchors to their mdBook pages.
2026-06-21 22:02:16 -05:00
Thierry DelafontaineandAustin Horstman d1ccd0721e news: add podman registries v2 entry 2026-06-21 09:20:14 -05:00
Thierry DelafontaineandAustin Horstman e3e24bfd0f podman: generate v2 registries.conf
Convert `services.podman.settings.registries` output to v2 format.
Keep legacy `insecure` and `block` inputs, add `registry` entries,
and warn when legacy options are used.

Update podman configuration tests and expected registries.conf output.

Resolves #9501
2026-06-21 09:20:14 -05:00
Austin Horstman 78e7d8b13e ci: checkout base ref for backports
Checkout v7 still treats the pull_request_target default ref as fork PR code, so pin the backport checkout to the trusted base SHA.
2026-06-20 16:06:13 -05:00
Austin Horstman ee6b160bcb ci: avoid fork head checkout in backport
Checkout v7 blocks fork PR head checkouts in pull_request_target workflows, so keep backport on the trusted base checkout and let the backport action fetch PR commits itself.
2026-06-20 16:01:01 -05:00
Anton MosichandAustin Horstman 61157d3c01 pimsync: have type be the first directive in storage blocks
pimsync 0.5.10 introduced a change to config parsing which now mandates
that the type directive is the first one in each storage block.
2026-06-20 15:54:19 -05:00
Austin Horstman 8695ecb389 tests/firefox: avoid building librewolf
Stub the Librewolf package in module tests so shared Firefox logic still runs without evaluating or building the insecure nixpkgs package.
2026-06-20 13:40:22 -05:00
Austin Horstman 8762262054 tests/darwinScrublist: add parallel-full
Scrub the default GNU Parallel package on Darwin so the module test does not build the failing DBD::CSV dependency.
2026-06-20 13:40:22 -05:00
dependabot[bot]andAustin Horstman 72a8bf11c8 flake: bump nixpkgs from ffa10e2 to 3e41b24
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `ffa10e2` to `3e41b24`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/ffa10e26ae11d676b2db836259889f1f571cb14f...3e41b24abd260e8f71dbe2f5737d24122f972158)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 3e41b24abd260e8f71dbe2f5737d24122f972158
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 13:40:22 -05:00
Juan C NunoandAustin Horstman a4ee5403ca home-manager: Pass extraArgs to nix-instantiate
My NIX_PATH is empty because of the new system.nix NixOS entry point.
I've been relying on -I options more and here they're not being passed
to nix-instantiate.
2026-06-20 12:38:59 -05:00
dependabot[bot]andAustin Horstman c3dfce6c63 ci: bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 12:35:00 -05:00
Robert Helgesson 37f21dfa5d tests: fix integration tests
This updates the integration tests so that they pass. Also prevent
auto-fixing some integration test files.
2026-06-20 00:05:51 +02:00
Austin Horstman 153bad8fb5 qt: stop rewriting platformTheme name gtk to gtk2
Setting `qt.platformTheme.name = "gtk"` silently rewrote the
QT_QPA_PLATFORMTHEME session variable to `gtk2` and pulled in the
qtstyleplugins and qt6gtk2 packages, which is not what users asked for
and relies on unmaintained packages. There is no `gtk` Qt platform
theme, so `gtk` now maps to Qt's built-in `gtk3` platform-theme plugin
and installs no extra packages.

Users who want the previous behavior can set
`qt.platformTheme.name = "gtk2"` explicitly, which keeps
QT_QPA_PLATFORMTHEME=gtk2 and installs qtstyleplugins and qt6gtk2. The
`qt.useGtkTheme` -> `qt.platformTheme` migration now maps the legacy
option to `{ name = "gtk2"; }` so existing configs are unaffected.

Fixes #8663
2026-06-19 12:28:04 -05:00
Austin Horstman e061b00885 broot: fix nushell integration br command
broot 1.51 renamed the printed nushell entry point from `br` to `main`,
intended to be loaded with `use` where the command takes the module's
name. Home Manager sources the snippet with `source`, so it began
defining a global `main` instead of `br`, breaking the `br` command in
nushell.

Rewrite the definition line back to `br` for the nushell shell function
so `source` keeps exposing `br` globally. Other shells are unaffected.

Fixes #9392
2026-06-19 10:53:03 -05:00
Austin Horstman 55730a2e34 ssh: document DAG ordering patterns
Expand the settings example so users can discover stable headers and list-shaped DAG helpers for ordered Host and Match blocks.
2026-06-19 10:13:44 -05:00
Austin Horstman fea021792d treefmt: format Python with ruff
Add ruff to the tree formatter so Python sources are kept consistently
formatted by 'nix fmt' and the CI format check. Test fixtures under
tests/modules are excluded since some are intentionally invalid Python.
Reformats the existing lib/python and tests scripts accordingly.
2026-06-19 10:00:25 -05:00
Austin Horstman 6aaf73d18d docs: build manual with mdbook
Switch the HTML manual renderer to mdBook while preserving existing docs package outputs and legacy redirect paths.
2026-06-19 10:00:25 -05:00
Austin Horstman 9b2afbdd47 docs: add contributing pointer
Point contributors at the manual contribution guidelines from the
repository root.
2026-06-19 10:00:10 -05:00
Austin Horstman 0043376f4e docs: clarify module contribution guidance
Document reviewer expectations for new modules so contributors can align option design, news, test organization, and commit structure before review.
2026-06-19 10:00:10 -05:00
mikaeladevandAustin Horstman 43f9f0abc6 misc: move modules spanning multiple files into subdirs
- modules/misc/qt.nix -> modules/misc/qt/default.nix
- modules/misc/gtk.nix -> modules/misc/gtk/default.nix
- modules/misc/news.nix -> modules/misc/news/default.nix
- modules/misc/xdg*.nix -> modules/misc/xdg/...
- modules/misc/nix*.nix -> modules/misc/nix/...
2026-06-19 08:59:16 -05:00
pancho horrilloandAustin Horstman c804fab681 difftastic: fix typo in example
The "dark" value actually applies to the `background` setting (which
I’ve omitted here since "dark" is its default value.)

I’ve given `color` the value "always", which will preserve colorization
when using `less` as a pager.

Extracted from `difft --help`¹:

Options:
...
        --color <WHEN>
            When to use color output.

            [env: DFT_COLOR=]
            [default: auto]
            [possible values: always, auto, never]

        --background <BACKGROUND>
            Set the background brightness. Difftastic will prefer brighter colours on dark backgrounds.

            [env: DFT_BACKGROUND=]
            [default: dark]
            [possible values: dark, light]

¹: which seems to be the authoritative source of documentation, as per
https://difftastic.wilfred.me.uk/usage.html#configuration-options
2026-06-18 23:47:04 -05:00
DrymarchonShaunandGitHub 266211649f hyprland: fix plugin loading when using lua
Move plugin loading to the top of the rendered ~/.config/hypr/hyprland.lua as plugins must be loaded before hl.config can be called with config keys added by the plugin, (binds using dispatchers added by plugins also fail if they are defined before the plugin is loaded)

This also switches over to using the (undocumented?) hl.plugin.load("/path/to/plugin.so") to load plugins, which has solved some strange race condition weirdness caused by using exec_cmd with hyprctl plugin load (I first tried moving renderStartHook to the top of the rendered config, but sometimes it seemed the hyprctl plugin load wouldn't finish loading the plugin before the rest of the config was loaded, causing the same errors about unknown config keys)
2026-06-18 22:39:21 -05:00
Dietrich DarochandAustin Horstman 3abeedcf40 zellij: Avoid starting on dumb terminals
This avoids https://github.com/zellij-org/zellij/issues/3824
2026-06-18 21:57:40 -05:00
0f4a317c06 lib.hm.dag: performance improvements
Avoid repeated attribute lookups and unnecessary intermediate allocations in
DAG helpers. Cache DAG names while normalizing before-edges to improve topoSort
performance on large DAGs.

Co-authored-by: Eman Resu <78693624+quatquatt@users.noreply.github.com>
2026-06-18 21:53:23 -05:00
Benedikt RipsandAustin Horstman c8f0b8ed44 fontconfig: add RFC42-style config file settings 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4441446672 fontconfig: generate config with pkgs.formats.xml 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 27a3154f42 fontconfig: disallow null as config file source
This brings `fonts.fontconfig.configFile.*.source` in line with
`home.file.*.source` and the like.
2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4ce682641d fontconfig: add 'configFile.<name>.target' option
This brings `fonts.fontconfig.configFile` in line with `home.file` and
the like.
2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4666af39e9 fontconfig: clarify 'configFile.<name>.*' descriptions 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 82432731d3 fontconfig: check warning in legacy default test 2026-06-18 14:16:03 -05:00
Austin Horstman a786067676 mkFirefoxModule: assert managed package for global extensions
Reject globalExtensions when Home Manager has no browser-managed policy
carrier. This follows up the global extension policy work with a clear
failure mode, a regression test, and a news entry so affected users know
how to fix package = null setups.
2026-06-18 12:53:30 -05:00
9f9b23ae21 mkFirefox: add policy to accept added extensions
This commit adds extensions added via
profiles.<name>.globalExtensions to the policy.
In consequence the extensions are added without complaint and don't need
to be enabled manually.

Co-authored-by: khaneliman <khaneliman@users.noreply.github.com>
2026-06-18 12:38:01 -05:00
glmlmandAustin Horstman 8af17160d1 nixgl: preserve __functionArgs when forwarding .override
Forwarding `.override` calls strips the attached metadata, which leads to unexpected behavior in some modules.

Closes #9494
2026-06-18 12:01:25 -05:00
Austin Horstman d456f483f1 codex: add profile config support
Codex 0.134.0 stopped reading profile settings from [profiles.<name>] in config.toml and no longer supports the top-level profile selector.

Add a dedicated programs.codex.profiles option so Home Manager can write CODEX_HOME/<name>.config.toml files that match the current CLI --profile behavior. For Codex 0.134.0 and later, legacy programs.codex.settings.profiles entries are migrated into profile files with a warning, and removed legacy profile keys are omitted from config.toml so strict config loading keeps working. Older Codex versions keep the legacy config shape.
2026-06-18 08:19:47 -05:00
glmlmandGitHub 6274683ee4 mkFirefoxModule: add warning for dropped options on wrapped packages
Warns only if the package lacks a `cfg` override and relevant options are configured.

References
https://github.com/nix-community/home-manager/pull/9486
2026-06-18 08:17:43 -05:00
Austin Horstman 5ccd408ca7 dunst: use DAG ordered generator helper 2026-06-18 07:59:18 -05:00
Austin Horstman b9a29e51c5 opencode: support ordered settings entries
Use the shared DAG-aware JSON generator for programs.opencode.settings so order-sensitive permission rules can be expressed with lib.hm.dag entries.

Add a focused NMT test for last-match-wins permission output and news for existing opencode users.
2026-06-18 07:59:18 -05:00
Austin Horstman 6716d811e5 lib: add DAG-aware format generators
Add reusable Home Manager generator helpers for rendering freeform attrsets that contain lib.hm.dag entries.

This keeps ordering support available to JSON and future generated formats without forcing each module to carry its own DAG sorting boilerplate.
2026-06-18 07:59:18 -05:00
Austin Horstman 652f754686 difftastic: support difftool-only git integration
Splitting git diff tools into the separate programs.difftastic module
made it impossible to register difftastic as a git difftool without also
forcing it as diff.external, since the boolean git.diffToolMode only
toggled between "external" and "external + difftool".

Replace git.diffToolMode with a git.mode enum ("external", "difftool",
"both") so difftastic can be wired as the difftool only, leaving
`git diff` untouched. The deprecated boolean is migrated automatically
via mkChangedOptionModule (true -> "both", false -> "external"),
preserving existing behavior.

Fixes #8592
2026-06-18 07:45:53 -05:00
Fida Waseque ChoudhuryandAustin Horstman 5bcff43156 antigravity-cli: fix mcp validation error for remote/local servers
Do not serialize null/empty fields (command, args, env) for remote servers.
Also fix 'isRemote' check to check for non-null url fields instead of
using the ? operator, which evaluates to true even if the key is null.
2026-06-17 21:59:28 -05:00
csanthiagoandAustin Horstman c187002980 television: add themes option
Add a `themes` option to the television module, allowing users to define
custom themes that are written to `$XDG_CONFIG_HOME/television/themes/`
as individual TOML files. This follows the same pattern used by the
halloy and helix modules.


💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-06-17 19:16:21 -05:00
csanthiagoandAustin Horstman eb0eb170bb television: add csanthiago as maintainer 2026-06-17 19:16:21 -05:00
csanthiagoandAustin Horstman a20c21b2fe maintainers: add csanthiago
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-06-17 19:16:21 -05:00
Peter BittnerandAustin Horstman c51ac59e59 uv: manage Python versions and tools
Add programs.uv.python.{versions,default,prune} and
programs.uv.tool.{packages,prune} to install uv-managed Python versions
and tools during activation.

Install requests are passed verbatim to uv. Unpinned entries track the
latest release on each activation while pinned ones stay put: Python
requests without a patch component are installed with `uv python install
--upgrade` (exact patches, which uv refuses to upgrade, get a plain
install), and tools are refreshed with `uv tool upgrade <packages>`
scoped to the configured list. Both upgrades are scoped to the managed
entries, so installs Home Manager does not own are left untouched. prune
makes a set declarative by running `uv ... uninstall --all` before
reinstalling the listed entries.

The activation blocks run after linkGeneration so uv sees the freshly
linked uv.toml, and a null programs.uv.package is rejected once the
module emits activation commands.
2026-06-17 15:47:24 -05:00
Peter BittnerandAustin Horstman a69317872e uv: add bittner as a maintainer 2026-06-17 15:47:24 -05:00
Peter BittnerandAustin Horstman bfc003171b maintainers: add bittner 2026-06-17 15:47:24 -05:00
Austin Horstman ea0bf49c9d thunderbird: merge account prefs with mergeAttrsList
The SMTP, identity, and profile pref sets were combined with linear foldl'
of //. mergeAttrsList performs the equivalent right-biased shallow merge and
scales with the account/address count without quadratic recopies.
2026-06-17 13:04:43 -05:00
Austin Horstman 50978d4bf6 neomutt: merge account rc files with mergeAttrsList
Per-account rc files were combined with a linear foldl' of //. mergeAttrsList
is the equivalent shallow merge without the quadratic accumulator recopy.
2026-06-17 13:04:43 -05:00
Austin Horstman b3f454e5c2 zsh: merge plugin home.file entries with mergeAttrsList
Plugin source links were combined with a linear foldl' of //. mergeAttrsList
performs the equivalent shallow merge and scales with the plugin count.
2026-06-17 13:04:43 -05:00
Austin Horstman cbbddc4a6f go: merge package src links with mergeAttrsList
The GOPATH src symlinks were combined with a linear foldl' of //.
mergeAttrsList is the equivalent shallow merge and scales with the package
count without quadratic recopies.
2026-06-17 13:04:43 -05:00
Austin Horstman b06723c4d4 getmail: merge home.file entries with mergeAttrsList
Per-account config files were combined with a linear foldl' of //.
mergeAttrsList performs the equivalent shallow merge without the quadratic
accumulator recopy.
2026-06-17 13:04:43 -05:00
Austin Horstman 9b262cb738 browserpass: merge home.file entries with mergeAttrsList
The native-messaging host files were combined with a linear foldl' of //,
which recopies the accumulator on every step (O(n^2)). mergeAttrsList does
the same right-biased shallow merge with a balanced binary merge.
2026-06-17 13:04:43 -05:00
Austin Horstman 71b4b46f23 thunderbird: use foldl' for profiles.ini merge
profilesIni folded recursiveUpdate over the profile list with the
non-strict foldl, building a thunk chain over the growing accumulator.
Use the strict foldl'.
2026-06-17 13:04:43 -05:00
Austin Horstman b8818d5a65 neovim: collect plugin configs with filter and map
generatedConfigs built its list with a non-strict foldl that appended via
acc ++ [ p.config ], an O(n^2) pattern. Filtering out null configs and
mapping is equivalent, order-preserving, and avoids the repeated list
copies.
2026-06-17 13:04:43 -05:00
Austin Horstman ce68ac6958 lib/generators: short-circuit important-field check with any
toHyprconf' tested every important prefix with a non-strict foldl that
always scanned the full list. lib.any expresses the same any-prefix-matches
intent and stops at the first match. Runs once per attribute in the
Hyprland generator.
2026-06-17 13:04:43 -05:00
Austin Horstman a69e55d05b fusuma: use lib.makeBinPath for service PATH
The local makeBinPath helper reimplemented lib.makeBinPath with a
non-strict foldl accumulator. Use the stdlib function instead: it is
strict and removes the duplicated logic.
2026-06-17 13:04:43 -05:00
K900andAustin Horstman fa4e2f7e10 modules/kdeconnect: stop overriding PATH, remove support for prehistoric versions
Bad. No. Why.
2026-06-17 10:48:18 -05:00
adisbladisandAustin Horstman d2d79394a4 maintainers: remove adisbladis
I haven't even used home-manager in a very long time, much less maintained it.
2026-06-17 10:48:10 -05:00
0xda157andAustin Horstman a2e23ee8f8 helix: make package nullable 2026-06-17 09:32:40 -05:00
Austin Horstman 89fda2248e mise: add usage dependency for shell completions
The generated script calls the separate `usage` CLI at completion time,
so add `pkgs.usage` to `home.packages` whenever mise is installed.
Stub it on Darwin test runs via `tests/darwinScrublist.nix`.
2026-06-17 09:32:24 -05:00
Austin Horstman 524d73a903 mise: add bash completion to bash integration
The bash integration previously only ran `mise activate bash`, so tab
completion for `mise` was never set up. Source the generated completion
script via `mise completion bash --include-bash-completion-lib`; the
flag self-bundles the bash-completion helpers so it also works on
systems whose bash-completion predates `_comp_initialize`.

Fixes #8539
2026-06-17 09:32:24 -05:00
ErinaYipandAustin Horstman 7664e05e24 maintainers: add ErinaYip 2026-06-16 22:42:18 -05:00
ErinaYipandAustin Horstman 2a7b54df12 prismlauncher: add themes option 2026-06-16 22:42:18 -05:00
0xda157andAustin Horstman 45e97d1e88 television: remove da157 from maintainers 2026-06-16 22:32:46 -05:00
Pat L.andGitHub df4e046571 codex: Add support for installing plugins and marketplaces
Install the referenced plugins into $CONFIG_DIR/plugins and add them to
the marketplace file in `~/.agents/plugins/marketplace.json`. The
plugins are then enabled in `$CONFIG_DIR/config.toml`.

Also add support for custom plugin marketplaces via the `marketplaces`
option. Each marketplace entry is a local directory (or fetched package)
that Codex can browse to discover additional plugins. Marketplaces are
registered in `$CONFIG_DIR/config.toml` under [marketplaces.<name>] with
`source_type = "local"` pointing at the provided path. Setting either
`plugins` or `marketplaces` automatically enables the `features.plugins`
flag in the generated config.

Warn that if a derivation is being used as the source of the plugin, the
name of the derivation needs to match the plugin name in the manifest.
2026-06-16 15:35:13 -05:00
Austin Horstman 34dd288e65 antigravity-cli: update skills deployment path
The skills folder deployment path has been updated to
'~/.gemini/antigravity-cli/skills/' to align with the application's
configuration path structure from docs. I think the other path is just a
weird compatibility shim that app supports. strace shows it will search
it, but it also checks the documented path.
2026-06-16 08:06:05 -05:00
Ihar HrachyshkaandAustin Horstman c03e475289 programs/thunderbird: stop writing directory prefs
Thunderbird prefers[1] directory-rel for account local paths and only
falls back to directory when the relative pref is absent. To add, the
generated directory values were home-relative paths while the app
expects absolute paths when reading the setting. Instead of fixing
these, just drop the redundant settings.

[1] https://searchfox.org/comm-central/source/mailnews/base/src/nsMsgIncomingServer.cpp#745
2026-06-15 16:01:52 -05:00
home-manager-ci[bot]andAustin Horstman 2d4f4e2788 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 300 → 301 maintainers

** Added:** superflash41

Generated by: lib/python/generate-all-maintainers.py
2026-06-15 15:53:00 -05:00
glmlmandGitHub 8aec76cc1e mkFirefoxModule: fix unexpected argument error on derivatives
Fix a compilation error when using a wrapper package that does not accept the `cfg` argument in its override.

Closes #9485
2026-06-15 09:26:48 -05:00
Fida Waseque ChoudhuryandAustin Horstman a813a04113 antigravity-cli: fix programs.mcp.servers integration for remote servers
Do not rename url to serverUrl in transformMcpServer's extraTransforms.
This caused the core library to incorrectly default the server type to stdio,
and subsequently erase the serverUrl attribute entirely during cleanup.

The renaming is already handled at the end by the transformMcpServers helper.
2026-06-15 09:25:46 -05:00
Changseo JangandAustin Horstman 1285cd3d68 keepassxc: Support macOS KeePassXC configuration
Refactor configuration for KeePassXC settings based on platform.
2026-06-14 23:23:24 -05:00
Cody ShearerandAustin Horstman ed8263e7d7 voxtype: fix output mode paste
Voxtype requires the command `cat` from
`coreutils` when using the output mode `paste`,
but fails with the current configuration because
it cannot find `cat`.

```
WARN paste (clipboard + keystroke) failed: Text
injection failed: wl-copy exited with error,
trying next
```

This commit adds `coreutils` to the runtime path
to resolve the path to `cat`.
2026-06-14 17:58:52 -05:00
Aguirre MatteoandAustin Horstman 1b7fb5e6b4 maintainers: dump aguirre-matteo from almost all modules 2026-06-14 17:57:38 -05:00
EdontinandAustin Horstman 5b6f573372 zed-editor: fix programs.mcp.servers compatibility
Default args to an empty list on stdio servers as it's a Vec<String>,
and loading the configuration fails if it's missing. This cannot be done
in extraTransforms due to the final filterAttrs.

Remove addType call as ContextServerSettings doesn't use type to
differentiate server types.

Link: https://github.com/zed-industries/zed/blob/601ecb3ee5c16940191818ee7f244837abf6983c/crates/settings_content/src/project.rs#L484
Link: https://github.com/zed-industries/zed/blob/601ecb3ee5c16940191818ee7f244837abf6983c/crates/project/src/project_settings.rs#L182
2026-06-13 10:42:15 -05:00
Tommaso SoncinandAustin Horstman c87a39aa97 Translate using Weblate (Italian)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Italian)

Currently translated at 93.7% (15 of 16 strings)

Co-authored-by: Tommaso Soncin <soncintommaso@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-06-12 18:04:56 -05:00
blokykandAustin Horstman 486595d2cf zsh: make sure siteFunction names don't contain slashes 2026-06-11 09:45:14 -05:00
blokykandAustin Horstman 19c41a5a6d zsh: escape siteFunction names 2026-06-11 09:45:14 -05:00
blokykandAustin Horstman d29e0ab7c2 zsh: correctly handle autoloading functions starting with '-' 2026-06-11 09:45:14 -05:00
Austin Horstman bb68a1a2e7 docs: add release notes contributing guidance 2026-06-11 09:05:37 -05:00
toastalandRobert Helgesson 7dbd305f8b darcs: add defaults
This adds support for specifying default values for Darcs commands.
2026-06-11 00:13:36 +02:00
Austin Horstman f96f717a47 vscode: support path literals in userSettings
programs.vscode.profiles.<name>.userSettings accepts either JSON settings or a path to a settings.json file. The update-check defaults were merged into userSettings before deciding whether to generate JSON or link a source file, so path values failed when Nix tried to apply // to them.

Skip those merges for path-like values and use the shared isPathLike helper for VS Code's source-or-generated JSON options so Nix paths, store path strings, and derivation outputs are handled consistently.

Fixes #7726
2026-06-10 13:10:31 -05:00
Austin Horstman 2b394beca7 docs: fix sshAuthSock reference in rl-2605
The link to `#opt-sshAuthSock.enable` broke the manual build on
release-26.05, where the `enable` option does not exist. Drop the
broken reference and the inaccurate "enabled and" wording.
2026-06-10 13:05:30 -05:00
superflash41andAustin Horstman 74887eaee2 kiro-cli: add module 2026-06-10 09:48:41 -05:00
superflash41andAustin Horstman 6cf5b64c12 maintainers: add superflash41 2026-06-10 09:48:41 -05:00
Austin Horstman cadadbc6f4 claude-code: omit unsupported mcp enabled field 2026-06-10 08:38:54 -05:00
MalikandAustin Horstman 1ffdc28076 news: add entry for programs.mcp typed schema 2026-06-09 23:03:52 -05:00
MalikandAustin Horstman ebc55fd103 claude-code, codex, antigravity-cli, github-copilot-cli, opencode, vscode, zed-editor: use mcp lib
- use lib.hm.mcp.transformMcpServer for MCP integration
- Update tests to reflect new merged server configuration
2026-06-09 23:03:52 -05:00
MalikandAustin Horstman 6a66db1360 mcp: extract helper functions into lib/mcp.nix
Extract MCP-related helper functions (renderEnv, mkEnvFilesWrapper,
wrapEnvFilesCommand, addType, transformMcpServer) into a new shared
library module at modules/lib/mcp.nix.
- Add lib.hm.mcp for sharing transformMcpServer logic across consumers
- Add enabled/disabled conflict detection assertion
- Add tests for new library functions
2026-06-09 23:03:52 -05:00
Austin Horstman c30f177760 docs: update release notes for 26.05
Lots of missing information about major changes throughout the last
release.
2026-06-09 22:44:48 -05:00
Austin Horstman bd4277722d tests: add nixpkgs-disabled warning/assertion coverage
Evaluate `nixpkgs-disabled.nix` standalone (the harness always loads the
real `nixpkgs.nix`) to verify the warning and assertion report the offending
`nixpkgs.config`/`nixpkgs.overlays` definition locations.
2026-06-09 17:15:30 -05:00
Austin Horstman d6f3413874 nixpkgs-disabled: show offending definition locations in warning
Surface the files that defined `nixpkgs.config`/`nixpkgs.overlays` in the
`useGlobalPkgs` warning and assertion, so users can find what set them
without inspecting `options.*.files` in the repl.
2026-06-09 17:15:30 -05:00
Austin Horstman 408a6918a0 docs: advise contributors to generate module news entries
The news section told module contributors they did not need to add a
news entry because the merger would create one, contradicting the
earlier instruction to use the create-news-entry generator. Point
contributors at the generator so new modules ship with their own entry.
2026-06-09 16:40:46 -05:00
0xda157andAustin Horstman 8ff67d938c i18n/inputMethod: remove da157 as maintainer 2026-06-09 16:28:30 -05:00
Austin Horstman c58ead12ef voxtype: assert full service file in test
Replace the piecemeal assertFileRegex checks with a single
assertFileContent against the normalized unit, so the test pins the
entire generated service file rather than a handful of lines.
2026-06-09 07:49:19 -05:00
Austin Horstman 449012836e voxtype: restart service when configuration changes
Add the rendered config path to X-Restart-Triggers so the service restarts
whenever the configuration changes.
2026-06-09 07:49:19 -05:00
Austin Horstman df39142474 nushell: remove redundant abbreviations option
Nushell abbreviations are regular config settings, so users can already express them through programs.nushell.settings.abbreviations. Keep test coverage on that native path instead of maintaining a second option.
2026-06-08 13:35:42 -05:00
Austin Horstman e9cbe69850 sshAuthSock: avoid cycles for socket providers
PR #9420 added set-SSH_AUTH_SOCK.service and ordered it before sshAuthSock.systemd.socketProviderUnit. When that provider is a socket unit, systemd default dependencies already order the socket before sockets.target while service defaults place set-SSH_AUTH_SOCK.service after basic.target. That creates a sockets.target -> basic.target -> set-SSH_AUTH_SOCK.service -> provider.socket -> sockets.target cycle.

For gpg-agent this makes systemd drop gpg-agent-ssh.socket, leaving SSH_AUTH_SOCK pointing at the expected S.gpg-agent.ssh path but with no socket listening there.

Only order and install the environment service against non-socket providers. Socket providers still get SSH_AUTH_SOCK imported through default.target.

Fixes #9432.
2026-06-08 12:04:33 -05:00
Perchun PakandAustin Horstman 301871cd96 zellij: add support for plugins 2026-06-08 11:16:17 -05:00
Perchun PakandAustin Horstman ec56189b4f zellij: add myself to maintainers 2026-06-08 11:16:17 -05:00
azahiandAustin Horstman 78da10c4af zed-editor: wrap meta.mainProgram 2026-06-08 10:56:10 -05:00
home-manager-ci[bot]andAustin Horstman 5c34a3c759 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 0 maintainers
**Total:** 298 → 300 maintainers

** Added:** kayskayskays, semi710

Generated by: lib/python/generate-all-maintainers.py
2026-06-08 09:37:01 -05:00
Austin Horstman 4fe95527cb pi-coding-agent: scrub package in Darwin tests 2026-06-07 21:22:10 -05:00
Austin Horstman 0c42c7a66f darkman: replace removed python2 in test 2026-06-07 21:22:10 -05:00
Austin Horstman aa14fc7b46 tests: update generated TOML expectations 2026-06-07 21:22:10 -05:00
dependabot[bot]andAustin Horstman e4b8f8c8bf flake: bump nixpkgs from 4100e83 to ffa10e2
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `4100e83` to `ffa10e2`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/4100e830e085863741bc69b156ec4ccd53ab5be0...ffa10e26ae11d676b2db836259889f1f571cb14f)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: ffa10e26ae11d676b2db836259889f1f571cb14f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-07 21:22:10 -05:00
Dzming LiandAustin Horstman d4d5d9bb4a nushell: add abbreviations option
Add `programs.nushell.abbreviations`, mirroring `shellAliases`, to
declaratively configure fish-style abbreviations (nushell 0.113.0+).
The set is emitted as `$env.config.abbreviations = { ... }` after the
aliases so it survives a wholesale `$env.config = { ... }` written in
`extraConfig`.

Unlike aliases, abbreviations expand inline in the line editor, so the
expanded command is what ends up in history.
2026-06-07 21:06:57 -05:00
Ben BaldwinandAustin Horstman ddb7082625 lib: separate eval config file
Move the `homeManagerConfiguration` function into its own file to allow
importing without passing an unused `lib` argument.
2026-06-07 21:04:30 -05:00
Austin Horstman b2b7db486e antigravity-cli: robust rename support
Handle module system merge priority resolution issues with suboptions.
2026-06-05 12:15:34 -05:00
Austin Horstman e621f12c02 pi-coding-agent: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman c321a1c8a7 opencode: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 6d4fb02e34 github-copilot-cli: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 4b9a995519 codex: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 09ff165ba6 claude-code: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 3a647b158e antigravity-cli: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman d33c97ec1b lib/strings: add isPathLike helper 2026-06-05 11:39:28 -05:00
Austin Horstman eaca478c95 antigravity-cli: add migration news 2026-06-05 11:39:28 -05:00
Austin Horstman ff77a72fe5 antigravity-cli: rename gemini-cli module 2026-06-05 11:39:28 -05:00
Austin Horstman 0450574818 flake: gate development outputs to supported systems
Keep the home-manager package exposed for all nixpkgs flakeExposed systems, but only expose formatter, devShell, docs, tests, CI helpers, and legacy test packages on supported Home Manager systems.

This prevents nix flake check --all-systems from forcing unavailable formatter toolchains such as GHC on riscv64-linux and x86_64-freebsd.

Fixes #9389.
2026-06-05 11:33:38 -05:00
Nikhil SinghandAustin Horstman 37e8eef933 pi-coding-agent: add module 2026-06-05 11:13:52 -05:00
Nikhil SinghandAustin Horstman 5fadbec07a maintainers: add semi710 2026-06-05 11:13:52 -05:00
Benedikt RipsandAustin Horstman 447fd9ff62 sshAuthSock: add news entry 2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman f1d5aa6f69 sshAuthSock: set in systemd
`SSH_AUTH_SOCK` is exported in shells only, which systemd does not
inherit from. With this commit, it is also set in systemd such that
systemd-managed applications can access the SSH agent by declaring
dependencies onto 'sshAuthSock.systemd.socketProviderUnit'.

Closes #7971.
2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman f4534a4f3c sshAuthSock: add option for initialization in Zsh
Initialization in Zsh defaults to the Bash initialization code since Zsh
is mostly Bash-compatible. This commit adds a dedicated Zsh
initialization code option to make the defaulting behaviour transparent
while also enabling overrides.
2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman efe95f113a sshAuthSock: use enable flag instead of nullable submodule 2026-06-04 12:20:50 -05:00
Austin Horstman dc641330e2 infat: use deprecation warning helper 2026-06-04 12:20:09 -05:00
Austin Horstman 18b4e1ea6f xdg-user-dirs: assert extraConfig key warning 2026-06-04 12:20:09 -05:00
Austin Horstman 6459fc4aee firefox: assert bookmarks migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 6a6941ad20 hyprpanel: assert theme name warning 2026-06-04 12:20:09 -05:00
Austin Horstman c81a3d2383 helix: assert languages migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 9a638c1442 swayidle: assert events migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman ff53fe10e0 qt: assert kde6 migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 5ded124f91 lib: add deprecated option warning helpers 2026-06-04 12:20:09 -05:00
Austin Horstman 4c5c1e8ba1 alacritty: fix toml escape generation 2026-06-03 14:45:20 -05:00
KaysandAustin Horstman f384af1bec macos-terminal: add module 2026-06-02 08:56:09 -05:00
KaysandAustin Horstman a7c15f4f65 maintainers: add kayskayskays 2026-06-02 08:56:09 -05:00
kinnraiandAustin Horstman 70fc4b4b5e aerospace: add regression test for reload guard 2026-06-02 08:54:53 -05:00
kinnraiandAustin Horstman 58e05d16d7 aerospace: skip config reload when AeroSpace is not running
Avoid failing Home Manager activation when the generated AeroSpace
configuration changes while AeroSpace is not yet running.

The onChange hook can run before a running AeroSpace instance is
available. Probe the running instance with `aerospace list-modes --current`
before calling `reload-config`, and skip the reload if AeroSpace is not
yet running.
2026-06-02 08:54:53 -05:00
Léana 江andAustin Horstman f15c764b14 password-store: improve warning message 2026-06-02 08:23:08 -05:00
Benedikt RipsandAustin Horstman 68227a9363 fontconfig: add test for font discovery 2026-06-02 08:22:25 -05:00
Benedikt RipsandAustin Horstman af1588ad6f fontconfig: add test for default fonts 2026-06-02 08:22:25 -05:00
Benedikt RipsandAustin Horstman c0436bc028 fontconfig: enable config files by default
This commit makes the `fonts.fontconfig.configFile.<name>.enable` option
true by default which matches the behaviour of `home.file` and the like.
2026-06-02 08:22:25 -05:00
Austin Horstman 07c723c3fe zsh: fix oh-my-zsh custom path expansion
Preserve shell-variable paths for programs.zsh.oh-my-zsh.custom while
still escaping values for a double-quoted shell assignment.

This restores runtime expansion for values like $HOME/extra/zsh, which
otherwise became a literal path after the previous escapeShellArg
change.
2026-06-02 08:00:49 -05:00
Austin Horstman a7a4158831 infat: use list for autoActivate extraArgs 2026-06-01 22:28:08 -05:00
Kevin StoneandAustin Horstman 274299642b vscode: make keybindings submodule freeform
vscode supports overrides per platform key combinations at `mac`, `win` and `linux`

Enables `freeformType = jsonFormat` in the keybindings submodule. This enables support for per-platform bindings and any other arbitrary keybinding attributes.

Code pointer: https://github.com/microsoft/vscode/blob/83b7ce68a7c2496ad9a40ba370656050a9096491/src/vs/workbench/services/keybinding/browser/keybindingService.ts#L105-L120
2026-06-01 21:40:49 -05:00
Austin Horstman 26e34a99e4 hyprland: reorganize config generation
Move local render helpers closer to their generated outputs and split xdg.configFile construction into named builders.

Keep luaFiles behavior in the preceding feature commit; this only reduces duplicated predicates and makes the module layout easier to scan.
2026-06-01 21:32:10 -05:00
Austin Horstman a6a13bb0a0 hyprland: add extraLuaFiles option
Allow Lua configs to be split across managed files under XDG_CONFIG_HOME/hypr.

Treat extraLuaFiles attribute names as Lua module names, so dotted names such as lib.helpers write lib/helpers.lua while autoloading with require("lib.helpers").

Add assertions for invalid configType usage, generated hyprland.lua collisions, and duplicate resolved Lua file targets.
2026-06-01 21:32:10 -05:00
Julien GautierandAustin Horstman 5148001968 nix-search-tv: add keybindings and actions
Use the same keybindings as nix-search-tv's author used here:
https://github.com/3timeslazy/nix-search-tv/blob/main/nixpkgs.sh#L26

Also, handle case where the package is null
2026-06-01 21:23:56 -05:00
Austin Horstman c7e4087b4d zsh: rename plugin completions to functions
The option appended directories to fpath, but fpath is zsh's lookup path for all autoloadable functions, not just completion functions.

Rename the option to functions with mkRenamedOptionModule so existing completions users are migrated through the standard Home Manager deprecation path.

Link: https://github.com/nix-community/home-manager/discussions/8701#discussioncomment-16966141
2026-06-01 21:22:13 -05:00
Austin Horstman c7c139f742 zsh: escape double-quoted values
The zsh value renderer emits strings in double quotes so session variables can still expand references such as $HOME. Embedded quotes, backslashes, and backticks were not escaped, which could corrupt generated zsh code or trigger command substitution.

Escape those double-quote-sensitive characters while preserving dollar expansion for existing session-variable semantics.
2026-06-01 21:22:13 -05:00
Austin Horstman 3e17edd5e6 zsh: escape named directory hashes
Named directory hash values are rendered into zsh code. Interpolating them inside double quotes is not enough for values containing quotes, glob syntax, or other shell metacharacters.

Render both the hash name and target with shell escaping so dirHashes entries are emitted as literal zsh arguments.
2026-06-01 21:22:13 -05:00
Austin Horstman d00b16c511 zsh: escape cdpath entries
Zsh cdpath is an array. Rendering entries by joining on spaces breaks paths containing spaces, glob characters, or other shell syntax.

Use the shared shell array formatter so each configured cdpath entry is emitted as a quoted array element.
2026-06-01 21:22:13 -05:00
Austin Horstman 112a3a3783 zsh: add common plugin function paths
Nixpkgs zsh plugin packages often install functions and completions below share/zsh/plugins/<name>, share/zsh/site-functions, or share/zsh/vendor-completions rather than at the package root.

Keep the existing root path and fpath entries, but add those standard subdirectories to fpath when present so plugin-provided functions and completions are discoverable without extra per-plugin configuration.

Link: https://github.com/nix-community/home-manager/discussions/8701#discussioncomment-16966141
2026-06-01 21:22:13 -05:00
Austin Horstman 04ec113f8b zsh: load session vars from zprofile for login shells
Zsh reads .zshenv before system login startup files. On NixOS and macOS those later files can replace or reorder PATH, so home.sessionPath entries loaded from .zshenv may disappear or move behind system paths.

Keep .zshenv coverage for non-login shells, but source Home Manager session variables from .zprofile for login shells so PATH-like values are applied after system login setup.

Fixes #2991
2026-06-01 21:22:13 -05:00
Austin Horstman d0af9b8bf3 claude-code: mark hook scripts executable
Inline hooks are scripts, so write them with the executable bit set. Add NMT assertions covering default and custom config directories.
2026-06-01 16:06:08 -05:00
Mirko LenzandAustin Horstman 5a608a621b infat: allow customization of autoActivate 2026-06-01 14:38:27 -05:00
TofaaandAustin Horstman 8962c2a0f4 Translate using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Azerbaijani)

Currently translated at 18.7% (3 of 16 strings)

Add translation using Weblate (Azerbaijani)

Add translation using Weblate (Azerbaijani)

Co-authored-by: Tofaa <tofig.adigozalov.180904@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/az/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/az/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-06-01 14:17:00 -05:00
Thierry DelafontaineandAustin Horstman 3d64f2875e podman: fix container config mount on Darwin
On Darwin, `services.podman` mounts `~/.config/containers` into the Fedora CoreOS VM, but this did not work correctly for two reasons:

* `xdg.configFile` creates symlinks into `/nix/store`, which are broken inside the guest.
* The mount target `~/\.config/containers` is not canonical on Fedora CoreOS, so Podman rejects it.

To fix this, we now:

* materialize the generated Podman config files as real files with `runCommand`
* sync them into `~/.config/containers` during activation, between `linkGeneration` and `podmanMachines`
* use the canonical guest path `/var/home/<user>/.config/containers`

Because adding the config directory to the volume mounts overrides the defaults, we also restore the default Podman volumes as the defaults for the  `machines.<machine>.volumes` attribute while still allowing full overrides.

This change does not affect Linux: `xdg.configFile` still produces store symlinks there.

Closes #9327.
2026-06-01 14:13:42 -05:00
randomscientistandAustin Horstman c53d0150e9 prismlauncher: fix string escaping and hygiene 2026-06-01 14:08:48 -05:00
home-manager-ci[bot]andAustin Horstman 16110b65b2 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 297 → 298 maintainers

** Added:** marijanp

Generated by: lib/python/generate-all-maintainers.py
2026-06-01 14:08:07 -05:00
Austin Horstman 7d8127d308 flake: track nixpkgs-unstable 2026-05-29 19:01:27 -05:00
Austin Horstman da8f8fcd69 ci: update release branch 2026-05-29 19:01:27 -05:00
Austin Horstman 948753061a home-manager: prepare 26.11
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-29 19:01:27 -05:00
Marijan PetričevićandMatthieu Coudron 61e2c96593 voxtype: initial module implementation 2026-05-28 13:54:55 +02:00
qb114514andRobert Helgesson d17712ec7a Translate using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Toki Pona)

Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Toki Pona)

Currently translated at 94.8% (37 of 39 strings)

Translate using Weblate (Chinese (Simplified Han script))

Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: qb114514 <GNUqb114514@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tok/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/tok/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hans/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-28 12:23:23 +02:00
Tomas RiveraandRobert Helgesson 874ae4cccf Translate using Weblate (Spanish)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Tomas Rivera <tomas.riveral@icloud.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/es/
Translation: Home Manager/Home Manager Modules
2026-05-28 12:23:23 +02:00
Austin Horstman 1a95e2efb4 home-manager: set 26.05 as stable
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-25 11:31:36 -05:00
home-manager-ci[bot]andAustin Horstman f4df9da960 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 0 maintainers
**Removed:** 1 maintainers
**Total:** 298 → 297 maintainers

** Removed:** SebTM

Generated by: lib/python/generate-all-maintainers.py
2026-05-25 11:28:34 -05:00
Austin Horstman 612bbe3b40 tests/darwinScrublist: add pimsync 2026-05-24 22:10:29 -05:00
dependabot[bot]andAustin Horstman f98332929b flake: bump nixpkgs from f83fc3c to 2991645
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `f83fc3c` to `2991645`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1...29916453413845e54a65b8a1cf996842300cd299)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 29916453413845e54a65b8a1cf996842300cd299
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 22:10:29 -05:00
Austin Horstman 044c30c195 vicinae: allow npmDepsHash for extensions
Vicinae extension helpers always used importNpmLock, which reads package.json and package-lock.json during evaluation. When extension src comes from fetchgit or fetchFromGitHub, that forces Nix to realize the fetched source during eval and trips allow-import-from-derivation = false.

Accept npmDepsHash in mkExtension and mkRayCastExtension so fetched extension sources can use buildNpmPackage's fixed npm dependency fetcher path instead. Keep the existing importNpmLock behavior for local sources and document the hash requirement in the option example.
2026-05-24 08:00:36 -05:00
Austin Horstman 23703a32ef betterlockscreen: drop sebtm
https://github.com/NixOS/nixpkgs/pull/516087
2026-05-23 22:11:28 -05:00
Austin Horstman 50aaf8f284 tests/darwinScrublist: add intelli-shell 2026-05-23 22:11:28 -05:00
dependabot[bot]andAustin Horstman 64f1f8dd8d flake: bump nixpkgs from da5ad66 to f83fc3c
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `da5ad66` to `f83fc3c`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/da5ad661ba4e5ef59ba743f0d112cbc30e474f32...f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-23 22:11:28 -05:00
Austin Horstman 6e92bf094d nix-darwin: pass DRY_RUN to activation
Ensure nix-darwin Home Manager activation preserves DRY_RUN when
invoking per-user activation through sudo.

Closes #7344
2026-05-23 19:02:40 -05:00
jayandAustin Horstman 509ed3c603 Translate using Weblate (Dutch)
Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: jay <jj8z@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translation: Home Manager/Home Manager CLI
2026-05-22 22:30:42 -05:00
Austin Horstman 928d723769 dunst: support ordered settings
Closes #8961
2026-05-20 23:13:58 -05:00
home-manager-ci[bot]andAustin Horstman 374742adb6 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 3 maintainers
**Removed:** 0 maintainers
**Total:** 295 → 298 maintainers

** Added:** Eveeifyeve, SunOfLife1, kpbaks

Generated by: lib/python/generate-all-maintainers.py
2026-05-20 23:11:44 -05:00
SunOfLife1andAustin Horstman 62b325b47c fish: add SunOfLife1 as a maintainer 2026-05-20 23:09:02 -05:00
SunOfLife1andAustin Horstman f9be3dd495 maintainers: add SunOfLife1 2026-05-20 23:09:02 -05:00
yilisharcsandAustin Horstman bd868f769a nushell: create if environment variable exists
on the off-chance that the user only provided environment variables,
they would not take effect. that's bad.
2026-05-19 12:52:29 -05:00
jiezhuzzzandAustin Horstman 93b932fdbb rclone: extend mount unit PATH for non-NixOS fusermount
The mount user-service set Environment=PATH=/run/wrappers/bin, which is
a NixOS-only directory. On standalone home-manager hosts running other
Linux distros the directory does not exist, and because Environment=PATH=
replaces systemd's inherited PATH, the resulting unit has no usable PATH
at all.

libfuse falls back to a hardcoded /usr/bin/fusermount3 lookup so the
helper still executes, but the eventual mount(2) syscall returns EPERM,
likely because libfuse's internal system()/popen() invocations into
mount.fuse3 fail without /bin/sh and friends on PATH. Empirically, the
EPERM goes away the moment PATH is widened to include standard Linux
locations.

Enumerate /run/wrappers/bin and /run/current-system/sw/bin alongside the
usual /usr/{local/,}{s,}bin and /{s,}bin entries. Path search order is
preserved, so the NixOS wrappers still win where they exist, and
fusermount/fusermount3 is found at /usr/bin on Ubuntu/Debian/Fedora and
similar distros.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman fd272ce76e rclone: make requiresUnit read-only on non-systemd platforms
The option only feeds the systemd config-install service; on Darwin the
launchd agent ignores it, and on any other non-Linux platform the
option is similarly inert. Marking it readOnly with a null default
when systemd is unavailable prevents users from setting a value that
would silently do nothing, and surfaces the platform constraint in the
option itself rather than only in the description.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 8da35b6f14 rclone: drop unused sidecarType arg from sidecar builders
mkLaunchdSidecar uses a strict argument pattern that did not include
sidecarType, but the call site was passing it via inherit, breaking
evaluation of any darwin config that defined a mount or serve sidecar.

Since isMount already encodes the same information as
sidecarType == "mounts", remove sidecarType from the call site and
replace the two systemd uses with isMount / !isMount.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 6cfa655a20 rclone: clarify secrets description for both Linux and Darwin 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 2f578ccd99 rclone: document macFUSE requirement and Darwin requiresUnit semantics 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 6f5d412501 rclone tests: add Darwin serve sidecar test 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 13e1296711 rclone: add launchd mount/serve sidecar agents for Darwin
Adds the Darwin launchd mount/serve sidecar agents together with the
mount sidecar generation test.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman d4e015754e rclone: add launchd config agent for Darwin
Renders rclone.conf at login on macOS using the same secret-injection
script as the Linux systemd path. Retries on failure via
KeepAlive.Crashed=true.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman fd3a68e640 rclone tests: cross-platform basic-configuration gating
Lets basic-configuration run on both Linux and Darwin with
platform-specific assertions. Mount/serve generation tests stay
Linux-only for now.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 2b6c692c95 rclone: add rclone-sidecar-wrapper derivation
Bash helper that waits up to 5 minutes for rclone.conf to exist
before exec'ing its arguments. Will be wired into the launchd
sidecar agents in a follow-up commit.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman f99cd3d4f4 rclone: lift config-install script to a named derivation
Prepares the script for reuse by the launchd config agent. No
behavioral change: the systemd unit references the same script
content via lib.getExe.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 1060e2e170 rclone: parameterize mkRcloneSidecars over a value builder
Pure refactor in preparation for adding a launchd value builder.
The systemd output is unchanged.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 5df5159c78 rclone: default cache-dir to xdg.cacheHome on Darwin
Linux keeps the systemd %C/rclone cache-dir specifier. Darwin has no
%C specifier, so the cache-dir default there is
${config.xdg.cacheHome}/rclone. Behaviour on Linux is unchanged.
2026-05-19 12:37:34 -05:00
RamsesandGitHub 16663cb138 ssh: add settings.<name>.header option
The RFC 42 settings option derives the Host/Match line from the
attribute name. That makes it impossible to express headers that carry
Nix string context (e.g. Match exec referring to a store path), and
forces long computed patterns into attribute names where a stable
logical name would be nicer for dag ordering.

Add an explicit `header` option on each block that defaults to the
attribute name (with the existing Host/Match prefix detection), and
have the legacy matchBlocks shim populate it instead of the
__hmSshBlockHeader internal.
2026-05-19 09:50:05 -05:00
John LewisandAustin Horstman 866412a198 git: use absolute paths for git-lfs in config
This allows the git config to be used by programs that have git
installed natively and where other programs access git but don't have
the nix path available, so cannot access git-lfs.
2026-05-18 21:21:03 -05:00
Thierry DelafontaineandRobert Helgesson 736c2084ea podman: ensure openssh is available in PATH
Specifically, the machine initialization command `podman machine init`
requires `ssh-keygen` to generate keys, but `openssh` may not be
available in the system `PATH` by default. This change ensures
`openssh` is available before attempting to create podman machines.

Resolves #9325
2026-05-19 00:24:51 +02:00
Austin HorstmanandRobert Helgesson f968ed5961 syncthing: support legacy config dir
Syncthing still supports existing Linux installations that keep config.xml under XDG_CONFIG_HOME/syncthing. Resolve the runtime directory from the generated scripts so Home Manager waits on and copies keys into the existing legacy directory when no state-dir config exists.

Fixes #6933
2026-05-19 00:17:05 +02:00
Austin HorstmanandRobert Helgesson 3ee415b292 gnome-shell: use user-themes extension
Use the standalone User Themes extension package when enabling GNOME Shell theme support instead of installing the full gnome-shell-extensions package.

Closes #9171
2026-05-19 00:11:21 +02:00
b0e2077789 eww: added improvements
Co-authored-by: Dixon Sean Low Yan Feng <dixonseanlow@protonmail.com>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2026-05-18 23:42:01 +02:00
Austin Horstman fab3fd7327 ssh: fix ssh enableDefaultConfig description
Text wasn't rendering properly in the generated docs.
2026-05-18 12:25:51 -05:00
Austin Horstman 936ae1b1eb ssh: add RFC 42 settings option
Add programs.ssh.settings as a freeform DAG for OpenSSH client configuration blocks. Render Host and Match blocks directly from the new settings option while preserving ordering support.

Render known ssh_config comma-list directives from Nix lists as single comma-separated lines and known space-list directives as single whitespace-separated lines. This keeps directives like KexAlgorithms, Ciphers, MACs, HostKeyAlgorithms, ProxyJump, SendEnv, GlobalKnownHostsFile, and PermitRemoteOpen from being emitted as duplicate directives where OpenSSH may only use the first value.

Migrate legacy matchBlocks into settings, keep root SSH option redirects pointed at the new option names, and hide the deprecated matchBlocks option from generated docs.

Update SSH tests, docs references, and news coverage for the new option.
2026-05-18 12:25:51 -05:00
Kristoffer Plagborg Bak SørensenandGitHub 7519f615df ec: init module
Adds Home Manager module for ec, a 3-way terminal native Git merge conflict resolver.

The module supports:
- Git integration by configuring ec as a mergetool.
2026-05-18 10:35:29 -05:00
home-manager-ci[bot]andAustin Horstman 74f170c62d maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 0 maintainers
**Total:** 293 → 295 maintainers

** Added:** garklein, iamanaws

Generated by: lib/python/generate-all-maintainers.py
2026-05-18 09:10:44 -05:00
Austin Horstman 0f08a37c31 ci: fix module count output
Commit 3c71cec05d changed the labeler workflow to use grep -c, but grep -c still exits with status 1 when no lines match.

That made the fallback echo another 0, so COUNT became a multi-line value and the write to GITHUB_OUTPUT failed. Use true as the fallback to preserve grep's single-line count while allowing the no-match case.
2026-05-18 09:07:50 -05:00
Benedikt RipsandMatthieu Coudron dd71501fb7 treewide: move NixOS-inherited defaults to their option definitions 2026-05-18 13:23:44 +02:00
Benedikt RipsandMatthieu Coudron a2c0bcaff4 fontconfig: document defaulting behavior on NixOS
'fonts.fontconfig.enable' is, according to the documentation, disabled
by default. However, when Home Manager is installed as a NixOS submodule
and 'home-manager.useUserPackages' is enabled, it defaults to NixOS'
'fonts.fontconfig.enable'. This commit makes this behaviour transparent.

Closes #3966.
2026-05-18 13:23:44 +02:00
Austin Horstman 08c9d01457 hyprland: add khaneliman maintainer 2026-05-17 22:35:47 -05:00
Austin Horstman 1bc2cf3eed hyprland: support lua variables in settings 2026-05-17 22:35:47 -05:00
Austin Horstman d918d22422 walker: add elephant integration
Add an option to order Walker's user service after elephant.service and add a systemd Requires= dependency when enabled.

The option defaults to services.elephant.enable, so Home Manager-managed Elephant setups work automatically while users can still enable the dependency for an externally managed elephant.service.
2026-05-17 22:25:27 -05:00
Austin Horstman 84ddd33ed0 elephant: add module
Add a service module for Elephant with package installation, provider selection, TOML config generation, and a systemd user service.

This gives Elephant its own configuration surface instead of wiring it through Walker.
2026-05-17 22:25:27 -05:00
Austin Horstman 355734d876 treewide: remove literalExpression where unneeded
`literalExpression` is intended just to signify code that needs to stay
a string that gets represented exactly as-is for docs. It has been
misused heavily and people get confused repeatedly on when or not to use
it because of the rampant misuse.
2026-05-17 21:43:25 -05:00
Austin Horstman 917e3469fe mkFirefoxModule: allow per-extension settings force
Fixes the force acknowledgement logic for extension settings so an
extension-specific force flag is sufficient for that extension.

References
https://github.com/nix-community/home-manager/discussions/7910
2026-05-17 21:42:38 -05:00
Tom van DijkandMatthieu Coudron bcb774cfc3 git-credential-keepassxc: fix misplaced parentheses 2026-05-17 16:14:20 +02:00
Alvaro ViejoandAustin Horstman 26aaab785b claude-code: fixes enableMcpIntegration option docstring
Fixes typo in enableMcpIntegration option's docstring referencing
opencode's option instead of claude-code's.
2026-05-16 13:00:30 -05:00
Austin Horstman d5ece85b6d zsh: guard session variables under nounset
Use parameter expansion with a default value when checking Home Manager's session-variable sentinels.

Users with zsh NO_UNSET or shell nounset enabled were seeing parameter-not-set errors before the generated session variables had a chance to export the sentinel variables.

Update the home session-variable and zsh fixtures to cover the generated guards.
2026-05-16 08:20:26 -05:00
kiraandBruno BELANYI 32b42d71b4 discord: add option for different config locations
Different discord branches use different config locations, but home-manager
uses `${configDir}/discord` unconditionally. This adds an option that changes
that to `${configDir}/${configName}`.
2026-05-16 09:52:56 +01:00
Austin HorstmanandRobert Helgesson 1772e8fb83 qt: pass negative KDE settings as values
Insert the command-option terminator before values passed to kwriteconfig6 so negative numeric settings are not parsed as command flags.

This fixes KDE settings such as DimDisplayIdleTimeoutSec = -1, which previously produced an unknown-option error from kwriteconfig6.

Cover the regression in the existing qt-basic NMT test by checking the generated activation command includes the terminator before the negative value.
2026-05-16 09:24:45 +02:00
Austin HorstmanandRobert Helgesson f63af17f47 podman: quote Quadlet labels with spaces
Quote generated Quadlet key-value entries when attrset-backed values contain whitespace, preserving the value as a single systemd/Quadlet field.

Without quoting, label values such as Traefik rules are split by podman-system-generator into multiple invalid --label arguments.

Extend the container NMT fixture with a label containing spaces and assert the generated service preserves it as one label.
2026-05-16 09:20:22 +02:00
Robert HelgessonandAustin Horstman 92a8736142 ci: quote some shell variables 2026-05-15 23:21:38 -05:00
Robert HelgessonandAustin Horstman 3c71cec05d ci: use grep -c instead of grep|wc -l 2026-05-15 23:21:38 -05:00
znmzandAustin Horstman c7fad81970 sherlock: update aliases example to use the official NixOS Wiki link
nixos.wiki -> wiki.nixos.org
2026-05-15 15:24:41 -05:00
angelandAustin Horstman ca77575d39 t3code: add module
Adds programs.t3code so T3 Code can be installed and configured from Home
Manager, including optional merge semantics when the app mutates its config
files. Includes a news entry and tests for empty, merged, and immutable setups.
2026-05-15 10:21:14 -05:00
GarkleinandAustin Horstman 1bedcc8740 exwm: add module
adapted from nixpkgs's exwm service
2026-05-15 08:59:43 -05:00
GarkleinandAustin Horstman 2cb4f4db37 maintainers: add garklein 2026-05-15 08:59:43 -05:00
jiezhuzzzandAustin Horstman e7a7c550e2 claude-code: add configDir option
Make the location of Claude Code's configuration files configurable.
The option defaults to `~/.claude` so existing setups are unaffected,
and exports the `CLAUDE_CONFIG_DIR` environment variable automatically
whenever the directory differs from the upstream default so the CLI
reads from the same location home-manager wrote to.

The option follows the convention established by
`programs.github-copilot-cli`: an absolute-path string with a
`defaultText` for clean documentation rendering, an `upstreamConfigDir`
constant, and a session variable wired only when the user opts out of
the upstream default.
2026-05-15 08:13:54 -05:00
SunOfLife1andBruno BELANYI 3e707f5f93 eww: remove shell integration
Shell integration was only used to source completions on shell startup, but shell completions have been installed with eww by nixpkgs since December 2024 (https://github.com/NixOS/nixpkgs/commit/cc419ccaefba3540224c84a322449bbefe8b3c01)
2026-05-15 11:13:18 +01:00
soweli EmiandAustin Horstman 9846abe15e Translate using Weblate (Toki Pona)
Currently translated at 87.5% (14 of 16 strings)

Translate using Weblate (Toki Pona)

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: soweli Emi <emi@alchemi.dev>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tok/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/tok/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-14 19:35:20 -05:00
Ilan JoselevichandAustin Horstman c68d2a2437 ssh-tpm-agent: add extraArgs option 2026-05-14 12:56:08 -05:00
cyberwormandGitHub 2809b9e3f8 ssh: allow explicit "no" for identitiesOnly in matchBlocks
Allows overriding identitiesOnly from "yes" to "no" under a more specific matchBlock.
2026-05-14 12:28:56 -05:00
Austin Horstman 3d4f5477f0 hyprland: remove old removed options
Been several years, don't need hanging around anymore.
2026-05-14 10:29:02 -05:00
Marien ZwartandAustin Horstman c3e7eb98c3 podman: fix tests
Commit f4bcc1ae1c contains what looks like
a merge issue in some golden testdata (only used by some tests that
require enableLegacyIfd). Fix this.

`nix build .#test-all-enableBig-false-enableLegacyIfd-true` does not
pass (on my NixOS / Linux system) without this change, but does with it.
2026-05-14 10:18:50 -05:00
Marien ZwartandMatthieu Coudron 4f9cbe4384 tailscale-systray: make theme configurable 2026-05-14 15:07:00 +02:00
𝑷𝒉𝒊𝒍𝒐𝒄𝒂𝒍𝒚𝒔𝒕andAustin Horstman f04b141d1a yazi: test plugin setup generation 2026-05-13 22:12:52 -05:00
𝑷𝒉𝒊𝒍𝒐𝒄𝒂𝒍𝒚𝒔𝒕andAustin Horstman 41d5f1e504 yazi: add plugin setup options 2026-05-13 22:12:52 -05:00
Austin Horstman 9760b31dab hyprland: generate LuaLS config 2026-05-13 16:13:28 -05:00
Austin Horstman 03d2aa6317 hyprland: submaps option lua support 2026-05-13 16:13:28 -05:00
Austin Horstman acd9d8af2f hyprland: migrate settings to native lua option API 2026-05-13 16:13:28 -05:00
Noah BieweschandRobert Helgesson 7654d90b94 mailmap: map NAHO developer identity to Noah Biewesch 2026-05-13 16:18:10 +02:00
amusingimpala75andGitHub 6a0bbd6b47 wallust: fix config location on darwin
This fixes the path of the wallust config file to be under Library/Application Support/wallust when on Darwin, instead of assuming it always falls under the XDG_CONFIG_HOME (for whatever reason the owner of the Rust dirs package refuses to allow XDG on macOS, since it's non-standard)
2026-05-12 18:32:04 -05:00
Austin Horstman 5878fdadfe tests: avoid removed anime-downloader package 2026-05-12 13:08:25 -05:00
Austin Horstman 2d53d45f6b tests: avoid removed acd-cli package 2026-05-12 13:08:25 -05:00
Austin Horstman a5e92be803 maintainers: drop duplicate ojsef39 entry 2026-05-12 13:08:25 -05:00
Austin Horstman 3f64029740 tests: restore TOML goldens for remarshal 2026-05-12 13:08:25 -05:00
dependabot[bot]andAustin Horstman eb3e569fd4 flake: bump nixpkgs from 1c3fe55 to da5ad66
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `1c3fe55` to `da5ad66`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/1c3fe55ad329cbcb28471bb30f05c9827f724c76...da5ad661ba4e5ef59ba743f0d112cbc30e474f32)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: da5ad661ba4e5ef59ba743f0d112cbc30e474f32
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-12 13:08:25 -05:00
SunOfLife1andAustin Horstman b7e6cad335 tests/fish: add non-handler function defined as attrset 2026-05-12 12:30:59 -05:00
SunOfLife1andAustin Horstman 755b993165 fish: fix handler function sourcing
The isHandler filter, rather than checking if the function _has_ any
handler attribute, now checks if the function has any handler attribute
_that is not null_. This prevents non-handler functions defined as an
attrset (as opposed to a string) from being sourced in config.fish.
2026-05-12 12:30:59 -05:00
Seong Yong-juandAustin Horstman 1768d4e498 chromium: add Microsoft Edge
Adds `programs.microsoft-edge` to the Chromium-based browser module,
exposing the same `commandLineArgs`, `extensions`, `dictionaries` and
`nativeMessagingHosts` interface as the other supported browsers.

The `microsoft-edge` package in nixpkgs is `x86_64-linux` only, so on
macOS users must either set `programs.microsoft-edge.package = null`
(to manage configuration files only) or supply a custom
darwin-compatible package.
2026-05-12 08:55:12 -05:00
home-manager-ci[bot]andRobert Helgesson b3de8ada63 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 293 → 294 maintainers

** Added:** zh4ngx

Generated by: lib/python/generate-all-maintainers.py
2026-05-12 15:41:30 +02:00
Romain DelhommaisandMatthieu Coudron b659c7ffd4 hyprland: update documentation links
Updated links to the Hyprland wiki in the module documentation for the following pages: XWayland and Submaps.
This change was needed due to a new wiki structure introduced in commit [e99eac80a63d68e050623af2f69629f9423befdb](https://github.com/hyprwm/hyprland-wiki/commit/e99eac80a63d68e050623af2f69629f9423befdb.patch), rendering the current links unaivailable.
2026-05-11 23:37:44 +02:00
5b73f949a1 systemd: install systemd files when user is root (revert c2aa831) (#9274)
* systemd: install systemd files when user is root (revert c2aa831)

* Apply suggestions from code review

Co-authored-by: Anillc <void@anil.lc>

---------

Co-authored-by: Anillc <void@anil.lc>
2026-05-11 23:36:25 +02:00
nesciasandRobert Helgesson bc63bedcab email: add warning to documentation of useStartTls 2026-05-11 23:15:25 +02:00
David Sierra DiazGranadosandMatthieu Coudron 85ba629c79 rofi: change configPath type to nonEmptyStr 2026-05-11 14:45:01 +02:00
Vincent GatineandMatthieu Coudron c0729fa3f0 kanshi: Remove myself from the maintainers
I do not use kanshi anymore and thus cannot meaningfully test changes.

Since it is my only maintained module, also remove myself from the
maintainer lists.
2026-05-11 14:04:26 +02:00
ketalandMatthieu Coudron dcebe66f95 atuin: precompute fish init script 2026-05-10 22:22:32 +02:00
davidaf3andAustin Horstman 2f41903703 mako: allow null package
Make `services.mako.package` nullable and add the corresponding checks.
2026-05-09 17:31:04 -05:00
cinerealandRobert Helgesson fdb2ccba9d modular-services: document ghostunnel as a service that was not written for use as a user-level service
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 67625b8c31 modular-services: add php-fpm as a service meant to run as a user
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 4fa2493b30 modular-services: add config files to X-Reload-Triggers
Assisted-by: Claude:claude-sonnet-4-7

Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 61031d425e modular-services:rewrite multi-user.target to default.target
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 1aabcdd470 modular-services: simple example using mpd
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson db468b4822 modular-services: make configdata test use assertFileContent
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson f77079ee8a modular-services: rename system-services -> home-services
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson cdea7d89f5 modular-services: rename home-manager -> Home Manager
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 7eb987d1a4 manual: fix link in modular services section
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
Andy ZhangandBruno BELANYI e4419d3123 zed-editor: add zh4ngx as maintainer 2026-05-07 09:59:16 +01:00
Andy ZhangandBruno BELANYI 838330cc25 zed-editor: add defaultEditor option
Add a 'defaultEditor' option to the zed-editor module. When enabled,
sets EDITOR and VISUAL environment variables using the package's
mainProgram executable with --wait flag.
2026-05-07 09:59:16 +01:00
ketalandMatthieu Coudron 75fac36332 direnv: avoid duplicate fish hook 2026-05-07 01:42:54 +02:00
davidaf3andMatthieu Coudron 7547f8942c quickshell: don't throw error when package is null
`programs.quickshell.package` is marked as nullable, but it will throw an error if set to null. This commit adds the necessary checks to allow setting the package to null.
2026-05-07 01:40:14 +02:00
Ludovic PagèsandRobert Helgesson 00ed86e58b Translate using Weblate (French)
Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Ludovic Pagès <nanucq@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translation: Home Manager/Home Manager CLI
2026-05-05 21:33:49 +02:00
Xen'onandRobert Helgesson 24bac7a6d3 Translate using Weblate (Russian)
Currently translated at 93.7% (15 of 16 strings)

Co-authored-by: Xen'on <saveliyburk@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager Modules
2026-05-05 21:33:49 +02:00
nesciasandRobert Helgesson 02b61230c4 email: extend mailbox.org config flavor
Add IMAP and SMTP ports. See
<https://kb.mailbox.org/en/private/e-mail/e-mail-configuration>.
2026-05-05 21:30:17 +02:00
shimeokiandMatthieu Coudron d987617879 generic-linux-gpu: don't pass kernel 2026-05-05 15:46:31 +02:00
Benedikt RipsandAustin Horstman 5a15505146 Revert "sshAuthSock: assert that at most one agent is enabled"
This reverts commit 9dc93220c1.

On one hand, conflicting definitions for `sshAuthSock.initialization.*`
were triggering before the assertion triggered, hereby making the
assertion redundant. On the other hand, the assertion prevents users
from running multiple agents side-by-side even after resolving the
definition conflict.

See https://github.com/nix-community/home-manager/pull/8533#issuecomment-4224165151.
2026-05-05 07:52:03 -05:00
JessandMatthieu Coudron 7ef1c04d11 rclone: rename remote directory to fix failing tests
`/home/alice/files` is already used by the mount subtest.
2026-05-05 12:40:06 +02:00
Esteve FernandezandMatthieu Coudron 5be632dab0 gpu: use tmpfiles.d to set up the /run/opengl-driver symlink
Signed-off-by: Esteve Fernandez <esteve@apache.org>
2026-05-05 12:30:44 +02:00
Austin Horstman a89686d115 git: avoid implicit signing config
Fixes #6630
2026-05-04 11:53:44 -05:00
Austin Horstman 0ecfc72c7c docs: explain file collision handling
Document how Home Manager handles activation-time file collisions in the usage manual, including standalone backup flags, NixOS and nix-darwin module options, per-file force handling, recursive directory behavior, and out-of-store symlink sources.

Also clarify the home.file-style ignorelinks option description so recursive symlink behavior is easier to understand from the generated option docs.
2026-05-04 11:37:23 -05:00
Austin Horstman 938311a3bd docs: clarify package overrides with flakes
Extend the package override FAQ with flake examples for modules that expose a package option and modules that require an overlay.

Clarify that Home Manager nixpkgs.overlays only applies to standalone configurations or system-module configurations that do not enable home-manager.useGlobalPkgs.

For useGlobalPkgs setups, direct users to put overlays in the system configuration and pass any flake-provided package sets through nixosSystem or darwinSystem specialArgs.
2026-05-04 11:13:36 -05:00
Austin Horstman c3387b41c9 docs: document unstable packages with flakes
Add a flake-based example for using a secondary nixpkgs-unstable input from Home Manager modules, matching the existing channel-based FAQ guidance.

Show how standalone configurations pass the package set with extraSpecialArgs, and explain the equivalent home-manager.extraSpecialArgs path for NixOS and nix-darwin module users.

Document that separate package sets do not automatically inherit the primary package set's nixpkgs.config or overlays, and show how to pass those values when needed.
2026-05-04 11:13:36 -05:00
Austin Horstman e70904b3af docs: clarify update and upgrade workflows
Describe update and release-upgrade workflows separately so users can tell when to update the current branch versus move to a new Home Manager release branch.

Expand routine update instructions for flake users by explaining that flake inputs are pinned in flake.lock, showing all-input and selected-input update commands, and separating the rebuild command for standalone, NixOS module, and nix-darwin module installations.

Keep channel instructions available for standalone and system-module users, including the different channel owner used by NixOS module setups. Also correct nix-darwin terminology in the installation and flakes docs so those sections do not use NixOS-specific wording.
2026-05-04 11:13:36 -05:00
home-manager-ci[bot]andMatthieu Coudron d6c1bb355f maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 292 → 293 maintainers

** Added:** sei40kr

Generated by: lib/python/generate-all-maintainers.py
2026-05-04 17:52:56 +02:00
cinerealandMatthieu Coudron fb6a0c6d39 modules: add modular services support
Adds `home.services`, an attribute set of nixpkgs
[modular services](https://nixos.org/manual/nixos/unstable/#modular-services)
sourced from `<nixpkgs/lib/services/lib.nix>`. Each service exposes
`process.argv` and the upstream NixOS-style systemd schema
(`systemd.lib`, `systemd.mainExecStart`, `systemd.service`,
`systemd.services`, `systemd.sockets`) by re-exporting
`nixos/modules/system/service/systemd/service.nix`. Service modules
shipped with `_class = "service"` (e.g.
`pkgs.<name>.passthru.services.default`) drop in unchanged --
service portability across module systems is the point of modular
services.

Lifted units are evaluated and translated from NixOS-style attrs
(`wantedBy`, `serviceConfig`, `unitConfig`, `environment`, ...) into
the section-based INI shape (`{ Unit; Service; Install; }`) that
home-manager's `systemd.user.{services,sockets}` consumes; only the
common keys are mapped, uncommon options remain reachable via
`unitConfig` / `serviceConfig` / `socketConfig`. Sub-services and
their units are dashed under the parent service name;
`process.argv` becomes the default `ExecStart` for the service's
primary unit, which defaults to `WantedBy=default.target`.

Mirrors the surface of nixpkgs' portable systemd module (services +
sockets only); other unit kinds home-manager supports natively
(timers etc.) are intentionally not modeled until upstream grows
them.

Each service's `configData.<name>` entries are materialized at
`$XDG_CONFIG_HOME/system-services/<service-prefix>/<name>` (mirroring
how `nixos/modules/system/service/systemd/{config-data-path,system}.nix`
lifts `configData` to `environment.etc`), with the absolute path
injected back into `configData.<name>.path` so the service can refer
to its files at a stable location.

Includes nmt tests covering: a basic `process.argv`-only service, a
service with a `configData` entry, and importing
`pkgs.ghostunnel.passthru.services.default` to assert the lifted user
unit contains the expected ExecStart flags and `LoadCredential`
entries.
2026-05-04 17:22:16 +02:00
Rachit Kumar VermaandMatthieu Coudron 9c6f1307e1 kitty/fix-git-integration: fix typo trustExistCode -> trustExitCode
see
https://git-scm.com/docs/git-difftool#Documentation/git-difftool.txt-difftooltrustExitCode
2026-05-04 13:41:05 +02:00
c909892de5 vscode: warn when package is a known fork and remove pname option
Existing configs setting `programs.vscode.package` to a fork package
(e.g. `pkgs.vscodium`) silently kept evaluating but wrote files to
Visual Studio Code's paths instead of the fork's. Detect known fork
pnames and emit an actionable warning pointing to the dedicated
module.

The `pname` option, previously used with `package = null`, no longer
has any effect since `nameShort`/`dataFolderName` are now factory
arguments. Replace it with `mkRemovedOptionModule` so the migration
fails loudly rather than silently.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:50:49 -05:00
80ab64bb79 vscode: add dedicated modules for VSCode forks
Add standalone modules for Antigravity, Cursor, Kiro, VSCodium, and
Windsurf using the mkVscodeModule factory. Each module provides its own
programs.<name> option namespace, allowing multiple VSCode-based editors
to be configured simultaneously.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:50:49 -05:00
26412a220b vscode: extract mkVscodeModule factory function
Extract the core vscode module logic into a reusable factory function
(mkVscodeModule.nix), following the established mkFirefoxModule pattern.
This is a pure refactor with no behavior change — programs.vscode
retains the same interface.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 18:50:49 -05:00
Thiago Kenji OkadaandAustin Horstman 71ad461413 man-db: add assertion for man.man-db.extraConfig when man.generateCaches is false 2026-05-03 18:41:26 -05:00
Thiago Kenji OkadaandAustin Horstman 1b4806c50b news: add news entry for programs.man.{man-db,mandoc} 2026-05-03 18:41:26 -05:00
Thiago Kenji OkadaandAustin Horstman 7914f8d7d7 tests/man: add tests for man-db/mandoc 2026-05-03 18:41:26 -05:00
Thiago Kenji OkadaandAustin Horstman f02e422b3e man: add mandoc and man-db option 2026-05-03 18:41:26 -05:00
Kelton BassingthwaiteandMatthieu Coudron 4625f26228 neovim: Support configuring plugins using Fennel
PR #2637 added a 'type' field denoting the language used to configure
neovim plugins. However, when the type is set to "fennel" or "teal"
the configuration is silently ignored.

This commit enables support for Fennel by transpiling it to Lua before
appending the generated code to `init.lua`.

This commit __does not__ provide spport for configs written in Teal;
they are still silently ignored.
2026-05-04 00:10:59 +02:00
Alex MartensandAustin Horstman b5e86c1b19 treewide: remove network-online.target
systemd system units cannot be a dependency of a user-unit.
Reference: https://github.com/systemd/systemd/issues/3312
2026-05-03 08:36:38 -05:00
MeowandAustin Horstman b931102804 rclone: add serve options 2026-05-02 22:57:24 -05:00
Austin Horstman 9c9fc9368a tests/anki: stub packages 2026-05-02 20:19:12 -05:00
Austin Horstman b4b920d9ec tests/lutris: stub packages 2026-05-02 20:19:12 -05:00
Austin Horstman 1e313820a3 treewide: adapt toml generator changes
Upstream formatter change in
https://github.com/NixOS/nixpkgs/pull/512319 caused tests to fail.
2026-05-02 20:19:12 -05:00
Austin Horstman 7229dde629 tests/vicinae: stub extensions
Don't need CI dying because of random vicinae extensions.
2026-05-02 20:19:12 -05:00
dependabot[bot]andAustin Horstman fdf4d549ed flake: bump nixpkgs from 68d8aa3 to 1c3fe55
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `68d8aa3` to `1c3fe55`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/68d8aa3d661f0e6bd5862291b5bb263b2a6595c9...1c3fe55ad329cbcb28471bb30f05c9827f724c76)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 1c3fe55ad329cbcb28471bb30f05c9827f724c76
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-02 20:19:12 -05:00
Jennings ZhangandAustin Horstman 0379e433a8 delta: configure as pager for git blame 2026-05-02 19:01:54 -05:00
Robin StummandAustin Horstman 561bd67464 wlsunset: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin StummandAustin Horstman a53beb6353 foot: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin StummandAustin Horstman beae317ddb foot: configurable systemd target 2026-05-02 17:20:47 -05:00
Austin Horstman 9ce9f7f128 shell: support boolean sessionVariables
Allow boolean values in sessionVariables for Home Manager shell modules and serialize them consistently in generated session files.

- modules/lib/shell: stringify boolean values using lib.boolToString in export helper

- modules/home-environment, programs.bash, programs.zsh: include lib.types.bool in sessionVariables option type

- tests: add IS_TRUE/IS_FALSE assertions in home-environment, bash, and zsh session-variables tests
2026-05-02 09:50:08 -05:00
coolGiandAustin Horstman 7c28dd52cb macchina: fix palette spacing config being missing 2026-05-02 09:32:34 -05:00
Utkarsh GuptaandAustin Horstman 9cb587ade2 launchd: use bootout --wait to wait for the service to stop 2026-05-01 18:52:52 -05:00
blkgooseandBruno BELANYI 5c1b74905c keynav: add tests 2026-05-01 19:25:59 +01:00
blkgooseandBruno BELANYI d955574ea4 keynav: add configuration option 2026-05-01 19:25:59 +01:00
Austin Horstman edf3f59954 github-copilot-cli: add lsp server support 2026-05-01 12:40:55 -05:00
Austin Horstman feda41500e github-copilot-cli: add context, agents, and skills
Add support for managing Copilot CLI global instructions via programs.github-copilot-cli.context, written to copilot-instructions.md under COPILOT_HOME.

Also manage custom agents and skills from inline definitions, file paths, and directories, with focused tests and a news entry covering the new options.
2026-05-01 12:06:19 -05:00
home-manager-ci[bot]andAustin Horstman 9a3efa079c maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 0 maintainers
**Total:** 290 → 292 maintainers

** Added:** 0xdsqr, ojsef39

Generated by: lib/python/generate-all-maintainers.py
2026-05-01 11:39:03 -05:00
Austin Horstman d181e6ac2a treewide: support store path strings for skills dirs
Filtered or generated skill directories can evaluate to Nix store path
strings rather than path values. The previous top-level skills handling
only used lib.isPath, so those directory values fell through instead of
being linked or expanded.

Treat store-path strings as path-like for the top-level skills option in
Codex, Claude Code, Gemini CLI, and OpenCode, matching the behavior
already used for individual skill entries. Add NMT coverage for
store-path-string skill directories.
2026-05-01 09:54:56 -05:00
Ludovic PagèsandAustin Horstman 94db028632 Translate using Weblate (French)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (French)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Ludovic Pagès <nanucq@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-01 08:39:56 -05:00
TroyandAustin Horstman f92dc91642 Translate using Weblate (Arabic)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Arabic)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Troy <radiohotline@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ar/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ar/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-01 08:39:56 -05:00
Austin Horstman e6613dd625 codex: keep managed skills under CODEX_HOME
Codex still loads skills from $CODEX_HOME/skills, so the module should keep managing skills there instead of switching to .agents/skills.

This keeps the module aligned with current Codex behavior and avoids coupling generic agents state to the Codex module.
2026-05-01 08:10:28 -05:00
Austin Horstman 899c08a15b github-copilot-cli: fix mcp integration
MCP servers require the args in json, even if not configured.
2026-04-30 19:17:57 -05:00
0xdsqrandAustin Horstman 2e54a938cd exo: add module 2026-04-29 22:07:11 -05:00
0xdsqrandAustin Horstman 7a45713b5d maintainers: add dsqr 2026-04-29 22:07:11 -05:00
Josef HoferandAustin Horstman 503480e513 github-copilot-cli: add module 2026-04-29 16:37:13 -05:00
Josef HoferandAustin Horstman f92e976f40 maintainers: add ojsef39 2026-04-29 16:37:13 -05:00
Alex MartensandAustin Horstman 8c8e5389e7 tldr-update: add dependency on network-online 2026-04-29 10:35:04 -05:00
N4CH723HR3RandAustin Horstman d3b4e4b1bd services.walker: fix paths for walker v2 2026-04-28 22:42:54 -05:00
Austin Horstman af59809e94 thunderbird: add language packs and policies
Install Thunderbird language packs through enterprise policies so Home
Manager can use Mozilla's release-hosted XPIs without vendoring or
hashing them.

This also exposes programs.thunderbird.policies for configuring
supported Thunderbird enterprise policies directly and wraps the
configured Thunderbird package with merged extraPolicies.
2026-04-28 16:27:37 -05:00
Austin Horstman b1b08eeaff thunderbird: clarify external gnupg
Clarify that this option only enables Thunderbird external GnuPG
integration and does not import or accept public keys in the Thunderbird
OpenPGP key manager.
2026-04-28 16:27:37 -05:00
Austin Horstman c357182707 thunderbird: support ews accounts
Generate the Thunderbird identity and outgoing server preferences
needed for explicit accounts.email.accounts.<name>.ews accounts,
and add an outlook.office365.com-ews flavor preset for Office365
Exchange accounts.

Closes #8011
2026-04-28 16:27:37 -05:00
Austin Horstman c2f07e2dca thunderbird: default office365 to oauth2
Default Office365 Thunderbird IMAP/SMTP settings to OAuth2 while
keeping the existing outlook.office365.com flavor on IMAP and SMTP.
2026-04-28 16:27:37 -05:00
Austin Horstman ae6aeb9dbc thunderbird: map account auth methods
Closes #5137
2026-04-28 16:27:37 -05:00
Austin Horstman 8ec5a714db rofi: allow list values in extraConfig 2026-04-28 10:19:50 -05:00
Austin Horstman 9821396285 thunderbird: add msg filter rules description 2026-04-28 09:39:47 -05:00
Austin Horstman 4f77c535e0 thunderbird: html signature support 2026-04-28 09:39:47 -05:00
Mateusz KubicaandAustin Horstman dd6a8772d4 qalculate: add autocalc to the example
I believe the `-s autocalc` is very popular option. However, in the
setting file, it's called `calculate_as_you_type`. I propose adding it
to the exmaple config, to make it easier to discover.
2026-04-28 08:35:40 -05:00
JessandAustin Horstman 79f8430e7d restic: unset systemd PrivateTmp option
This option works with the NixOS version of the module as host services
have different user namespace permissions to user services. Programs
like ssh get confused when certain config files aren't owned by root.
2026-04-28 08:33:38 -05:00
Jennings ZhangandAustin Horstman c114054053 gurk: change config signal_db_path to data_dir 2026-04-27 23:15:11 -05:00
Austin Horstman a28e848a01 chromium: address plasma integration review
Hide the Plasma integration options on non-Linux platforms so the Chromium module does not need fallback access for platform-specific options.

Switch the integration package option to mkPackageOption and document the kdePackages default path with pkgsText. Also tighten the focused NMT test so Darwin does not set the Linux-only option while still asserting that no native host file is produced there.
2026-04-27 11:45:48 -05:00
Andrew MarshallandAustin Horstman d45a13f96c {home-environment,bash,zsh}: support ignoring null sessionVariables
Some applications consider environment variables to be “true” simply if
they are set. Previously it was not possible to have a var set and later
override (e.g. with `lib.mkForce`) to *unset* it. This makes that
possible. The filtering must be done in the `exportAll` as attempting to
do it in the option’s `apply` causing infinite recursion (likely why it
is `lazyAttrsOf`).
2026-04-27 11:20:51 -05:00
Andrew MarshallandAustin Horstman 62f445c13c {bash,zsh}: align sessionVariables type
This matches `home.sessionVariables`.
2026-04-27 11:20:51 -05:00
Andrew MarshallandAustin Horstman 466d5909eb tests: remove unused file
Missing change from e44faef21c.
2026-04-27 11:20:51 -05:00
KiriaandAustin Horstman b408d49b84 syncthing: fix the application of allProxy
`systemd.user.services.<name>.Service.Environment` should be of type `(list of string) or string convertible to it`
2026-04-27 08:03:20 -05:00
home-manager-ci[bot]andAustin Horstman e97a9fd6a6 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 1 maintainers
**Total:** 289 → 290 maintainers

** Added:** isaacST08, s0racat

** Removed:** pinage404

Generated by: lib/python/generate-all-maintainers.py
2026-04-27 08:02:43 -05:00
Austin Horstman 7f8bbc93d6 mkFirefoxModule: document impermanence extensions
Clarify that extensions.autoDisableScopes only handles manual extension approval. Firefox still owns mutable extension runtime state, so impermanent setups must persist the relevant profile state or configure supported extension settings declaratively.

Closes #6398
2026-04-26 21:59:15 -05:00
Austin Horstman c97d921373 mkFirefoxModule: add firefox devedition example
Help explain profile name requirement for devedition. Firefox won't load
profile unless the name matches.
2026-04-26 21:47:58 -05:00
Austin Horstman 4883af6edb syncthing: avoid init for default gui address
The gui address option always has a default value, so #8644 ended up
making syncthing-init run for every enabled Syncthing setup.

Treat the default gui address as unset for updater purposes so the init
unit is only generated when Home Manager is actually managing Syncthing
configuration. Add regression tests for the default and explicit
guiAddress cases.
2026-04-26 19:44:29 -05:00
jae bellerandAustin Horstman e82d4a4ecd copyApps: workaround for macOS 26.3 signature bug
macOS throws a code signing error when the modification time on an app
is set to 1. This seems to have started on macOS 26.3, but I'm not fully
sure. Hitting this is uncommon. macOS caches signatures, so apps that
were opened prior to updating macOS continue to work. I ran into this
because Ghostty 1.3.0 added a new signature to their bundle.
2026-04-26 15:52:06 -05:00
c55c498c9a targets/darwin: set TERMINFO_DIRS
Make terminfo descriptions from Home Manager-installed packages (e.g.
kitty, alacritty) discoverable on macOS by exporting TERMINFO_DIRS via
hm-session-vars.sh. macOS has no systemd/environment.d equivalent, so
the shell session file is the available entry point.

Closes nix-community/home-manager#2918 for macOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:44:45 -05:00
Ludovic PagèsandAustin Horstman 0add2d439a Translate using Weblate (French)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (French)

Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Ludovic Pagès <nanucq@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-26 09:59:09 -05:00
NikodemandAustin Horstman 7cdccd0db9 Translate using Weblate (Polish)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Polish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Nikodem <35564466+x1pper@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-26 09:59:09 -05:00
Austin Horstman c968134e06 floorp: fix Darwin app bundle name
The package attribute is floorp-bin, but the macOS bundle is Floorp.app. Allow Firefox-family modules to override the derived Darwin app name so Floorp paths match the real package layout.
2026-04-26 09:55:25 -05:00
Austin Horstman 5bfbc1f6ca tests: fix neovim program test 2026-04-26 09:55:25 -05:00
Austin Horstman 8a2fdaf6b4 tests: fix firefox program tests 2026-04-26 09:55:25 -05:00
Austin Horstman 00b9fac376 tests: buildbot tests enableBig
Keep missing test failures due to them not being included in CI. Now
that we have a buildbot nix store, there's little reason to not include
them in our CI.
2026-04-26 09:55:25 -05:00
Gutyina GergőandAustin Horstman 3e4b311842 onlyoffice: fix settings option example type 2026-04-26 09:53:06 -05:00
Tae SongandRobert Helgesson 38bf0202ca files: change target type to disallow empty strings 2026-04-26 11:47:55 +02:00
Austin Horstman 6f59831b23 ci: only parse/format on linux
Will not differ between platforms, use the faster ci runner for these
checks Also fix missing parse condition in install-nix-action
2026-04-25 16:14:15 -05:00
Austin Horstman b7d6241c2a rofi: fix nested extraConfig rendering 2026-04-25 16:03:43 -05:00
Austin Horstman ed2ee7b313 tests: enable more tests on darwin
Several programs / modules support darwin but weren't being tested on
darwin.
2026-04-25 15:59:45 -05:00
Austin Horstman 026e210389 firefox: fix legacy configPath default
The deferred state-version warning helper keeps .default on the current branch so warnings can be emitted from config. Firefox passed that .default through as the Linux configPath default, which made home.stateVersion < 26.05 still use the XDG path.

Use effectiveDefault for the platform default so legacy state versions keep .mozilla/firefox, while preserving the warning. Adjust the config-path tests to cover explicit legacy and XDG paths.
2026-04-25 12:34:58 -05:00
electriaandAustin Horstman 5826802354 modules/nix-search-tv: add run and shell actions 2026-04-24 22:01:46 -05:00
Austin Horstman ffbd94a1c9 tests: support override-inputs in test runner
Help resolve issue reported a while ago about override inputs not being
respected. Allows testing against a different nixpkgs revision easier.
2026-04-24 13:06:58 -05:00
Austin Horstman 6012cf1fed mkFirefoxModule: make profile extensions extensible
Restore nested option extensibility for
`programs.firefox.profiles.<name>.extensions` by keeping it as a plain
submodule.

This removes the deprecated `programs.firefox.profiles.<name>.extensions
= [ ... ]` shorthand. Add-ons must now be declared with
`programs.firefox.profiles.<name>.extensions.packages`, while
declarative settings remain under `extensions.settings`.

Add a regression test for downstream `extensions.*` option extension and
a news entry documenting the migration.
2026-04-23 23:19:12 -05:00
Austin HorstmanandHeitor b869d6cadb firefox: default configPath to XDG on 26.05
Use `lib.hm.deprecations.mkStateVersionOptionDefault` to keep the legacy `.mozilla/firefox` default for existing configurations while switching new Linux configurations to `"${config.xdg.configHome}/mozilla/firefox"`.

Add focused tests for the legacy and XDG defaults plus a news entry describing the transition.

Closes #8200.
Supersedes #8716 and the earlier attempt in #8672.

Co-authored-by: Heitor <44377258+HeitorAugustoLN@users.noreply.github.com>
2026-04-23 22:58:59 -05:00
Austin Horstman 4bf1f0bcd1 mkFirefoxModule: reject container id 0
Set the default Firefox container id to 1 and reject ids outside the
supported 1..4294967293 range.

Firefox reserves userContextId = 0 for the default, non-container
context:
- nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID = 0:

https://searchfox.org/firefox-main/source/caps/nsIScriptSecurityManager.idl
- nsIPrincipal documents that the default userContext returns
DEFAULT_USER_CONTEXT_ID:

https://searchfox.org/firefox-main/source/caps/nsIPrincipal.idl#1135-1147
- Mozilla review discussion also distinguishes default context 0 from
public identities:
  https://bugzilla.mozilla.org/show_bug.cgi?id=1337964#c7

Also cover the lower bound with a dedicated Firefox container test and
update the default container fixture.
2026-04-23 22:07:30 -05:00
Austin Horstman d035caf3ac mkFirefoxModule: serialize path prefs as strings
Treat Nix paths like plain string preferences when generating user.js so
values such as browser.bookmarks.file are not JSON-quoted twice.

Add a regression case in the Firefox settings test for a path-valued
preference.
2026-04-23 22:06:37 -05:00
Miles WirhtandGitHub 5bba6a1e02 flashspace: init module 2026-04-24 00:16:15 +00:00
Miles WirhtandGitHub ae97a15455 rectangle: init module 2026-04-23 19:06:39 -05:00
Austin Horstman 99814d2a67 fcitx5: capitalize boolean settings
Fcitx5 accepts only exact True/False values for typed boolean options.

Normalize booleans before generating fcitx5 config files so Home Manager emits values that upstream will parse instead of resetting to defaults.
2026-04-23 18:12:37 -05:00
Austin Horstman bb0aaf91cc tests: split stub derivation attrs from methods
Apply non-function stub attributes through overrideAttrs so derivation metadata and wrapper-facing fields remain visible to downstream consumers.

Keep function-valued attributes like override on the outer attrset so they are not serialized into derivations and do not break unrelated tests.
2026-04-23 18:12:20 -05:00
Miles WirhtandGitHub 5a9efa93c5 qalculate: init module 2026-04-23 17:27:29 -05:00
Austin Horstman e09259dd2e git: clean up literalExpression 2026-04-23 12:13:58 -05:00
Austin Horstman 30db803c98 git: support ordered settings fragments
Allow programs.git.settings to keep its existing attrset shorthand while also accepting an ordered list of fragments for repeated sections and order-sensitive config. Cover the new list form with a focused Git config snapshot test.
2026-04-23 12:13:58 -05:00
Perchun PakandAustin Horstman 6837e0d6c5 wayle: fix example 2026-04-23 08:18:13 -05:00
Austin Horstman 667b3c4732 home-manager-auto-upgrade: state-version gate preSwitchCommands
Migrate the preSwitchCommands default to
lib.hm.deprecations.mkStateVersionOptionDefault instead of using a
null sentinel.

Keep the legacy flake update behavior for older state versions and add
tests for the explicit, legacy, and current flake paths.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 2706309aeb news: add home-manager-auto-upgrade options entry
Document the new flags and preSwitchCommands options for the
auto-upgrade service.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 0d1314d6fe home-manager-auto-upgrade: clarify option documentation
Improve the option descriptions for enable, useFlake, flakeDir,
and the systemd timer format.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 8f259af671 home-manager-auto-upgrade: add switch flags and pre-switch commands
Add a flags option for passing extra arguments to home-manager
switch and a preSwitchCommands option for running commands before the
switch.

Preserve the legacy flake update behavior behind a deprecation warning,
clean up the shell script, and cover the flake path in tests.
2026-04-22 19:34:24 -05:00
soracatandAustin Horstman 9c7dcc55bd home-manager-auto-upgrade: set maintainer to soracat 2026-04-22 19:34:24 -05:00
soracatandAustin Horstman ad16ee43a8 maintainers: add soracat 2026-04-22 19:34:24 -05:00
Perchun PakandAustin Horstman 508daf831a equibop: init 2026-04-22 15:50:22 -05:00
Perchun PakandAustin Horstman 6a1992acd9 mkVesktopLikeModule: init 2026-04-22 15:50:22 -05:00
83b3ecce2e wayle: add module
Co-authored-by: Perchun Pak <github@perchun.it>
2026-04-22 15:26:03 -05:00
Isaac Shiells ThomasandAustin Horstman 78bf0fe29d maintainers: add isaacST08 2026-04-22 15:26:03 -05:00
Thierry DelafontaineandAustin Horstman f8e57407f4 proton-pass-agent: adapt the services to match the documentation
See https://protonpass.github.io/pass-cli/commands/ssh-agent/#setting-ssh_auth_sock-automatically-on-login section 'Starting the daemon automatically on login'.
2026-04-22 15:25:18 -05:00
isabelandAustin Horstman d1759673d7 tests/pipewire: test for LADSPA 2026-04-22 15:24:44 -05:00
isabelandAustin Horstman 38d4260bc8 pipewire: add LADSPA plugin path handling 2026-04-22 15:24:44 -05:00
Austin Horstman d79c987e65 chromium: install plasma browser integration
Reuse existing plasmaSupport option to install browser integration
package.
2026-04-22 14:14:13 -05:00
Austin Horstman f9d2b2da81 chromium: document finalPackage
Clarify that finalPackage is the customized browser derivation after Home Manager overrides and that it can be referenced from other Home Manager options.
2026-04-22 12:30:51 -05:00
Austin Horstman ca6fd05c13 tests/chromium: cover brave package routing
Add a regression test showing that programs.chromium.package = brave writes extension metadata into Brave's config directory rather than Chromium's.
2026-04-22 12:30:51 -05:00
Austin Horstman 5d947202cf chromium: document ungoogled extensions
ungoogled-chromium does not reliably support the default Chrome Web Store update URL workflow, but Home Manager already supports local CRX descriptors via crxPath and version.

Document that Linux users should prefer that path and add a regression test covering pkgs.ungoogled-chromium.
2026-04-22 12:30:51 -05:00
Austin Horstman 14b81a1630 chromium: support google-chrome extensions on Darwin
Allow the Google Chrome browser modules to manage Chrome Web Store extensions on Darwin while keeping Linux explicit via assertions, since Home Manager cannot write Chrome's system-managed extension directories there.

Add focused regression tests for the Linux and Darwin branches, update the existing google-chrome coverage, and add a news entry.
2026-04-22 12:30:51 -05:00
Austin Horstman 36f1bd655f tests/chromium: add more test coverage 2026-04-22 12:30:51 -05:00
Austin Horstman c5ceab9d94 tests/darwinScrublist: add chromium packages 2026-04-22 12:30:51 -05:00
Austin Horstman f4e008848a chromium: expose google-chrome dictionaries and native hosts
Keep the proprietary Chrome extensions option removed, but make dictionaries and nativeMessagingHosts available for the explicit google-chrome, google-chrome-beta, and google-chrome-dev modules.

Add a focused regression test covering dictionary and native host files for all three browser namespaces.
2026-04-22 12:30:51 -05:00
Austin Horstman c95595f732 chromium: fix native host paths for google-chrome
Follow the configured browser package when choosing NativeMessagingHosts paths so chromium overrides to google-chrome install manifests in Chrome's config directory. Keep extension and dictionary handling gated for proprietary Chrome, but always generate native messaging hosts, and cover the override case with a focused regression test.
2026-04-22 12:30:51 -05:00
Alex EpeldeandGitHub 936d579f53 obsidian: no IFD, use RFC42 settings
The current communityPlugins and themes implementations do IFD, slowing down evaluation of user configurations. Instead of reading the plugin IDs and theme names from the package outputs' manifest.json, I have made it so the plugin ID / theme name is read from the package's passthru if possible.

Using (pkgs.formats.json { }).type gives better type checking than nullOr (attrsOf anything).
2026-04-22 10:56:48 -05:00
Rachit Kumar VermaandGitHub 875f2fcbb1 kitty: add option to configure $XDG_CONFIG_HOME/kitty/diff.conf
Add option to configure '$XDG_CONFIG_HOME/kitty/diff.conf'.
See sw.kovidgoyal.net/kitty/kittens/diff for more documentation.
2026-04-22 10:55:50 -05:00
Alex EpeldeandAustin Horstman f2b06589e3 thunderbird: add generic per-calendar settings option 2026-04-22 10:49:55 -05:00
Austin Horstman afd5607108 rofi: support nested extraConfig sections
Render flat extraConfig entries inside the configuration block and nested attrsets as top-level Rasi sections so mode-specific and filebrowser configuration can be expressed directly in Nix. Fold the reported nested cases into the existing valid-config test instead of keeping issue-specific test files.
2026-04-22 09:59:56 -05:00
Austin Horstman c77ebe06b4 khal: honor explicit default calendar
Closes #9040
2026-04-22 09:59:17 -05:00
Utkarsh GuptaandAustin Horstman 5d5640599a atuin: fix logs.dir override for preferXdgDirectories 2026-04-21 08:25:32 -05:00
Austin Horstman 7076272297 ci: bound runtime and force sandboxed builds
The test workflow currently relies on GitHub Actions defaults for both
job lifetime and Nix sandboxing. That is acceptable when everything
behaves, but it makes failures noisier: a hung job can run indefinitely
until the platform kills it, and the macOS leg inherits a weaker sandbox
default than Linux.

Add explicit timeout-minutes values to the lightweight change-detection
job and the main test matrix job, and pass sandbox = true through
install-nix-action. The sandbox setting is primarily about making the
macOS runner match the stricter execution model we already expect on
Linux.
2026-04-21 08:24:02 -05:00
Austin Horstman 6658732d33 ci: drop default workflow token permissions
The test workflow only needs to evaluate and build repository code. It
does not write statuses, labels, comments, or pull request metadata, so
keeping GitHub's default token scope is broader than necessary.
2026-04-21 08:24:02 -05:00
Austin Horstman 67f2a145a9 ci: run both parse checks in one keep-going step
The parse workflow currently runs the nix and Lix checks as two separate
steps. If the first parser fails, GitHub Actions stops the job before
the second parser runs, which hides useful failure information and
weakens the signal from the new parse gate.

Collapse the two steps into a single invocation that builds both parse
derivations with --keep-going. This keeps the job surface small,
preserves the dedicated parse trigger, and ensures both parser variants
are attempted on every relevant run.
2026-04-21 08:24:02 -05:00
c555a4a34a ci: add nix and lix parse checks
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
Co-authored-by: piegames <git@piegames.de>
2026-04-20 16:46:54 -05:00
Austin Horstman c81775b640 xdg-autostart: allow empty readonly autostart
Create the readonly autostart link even when no managed entries are
present, so the option behavior matches its documentation and stays
covered by a focused regression test.
2026-04-20 11:12:32 -05:00
Austin Horstman 56b4526cfd nixos: guard home.uid with tryEval
Use tryEval when reading users.users.<name>.uid so configured NixOS
UIDs still propagate to home.uid while nix-darwin users without a
UID do not trigger a no-value-defined eval error.

Refs #8351
2026-04-20 10:58:30 -05:00
Austin Horstman 1072f064e2 fish: clarify setCursor option mapping
Explain that the Home Manager option name differs from fish's CLI flag
so users can map setCursor to abbr --set-cursor without guessing.
2026-04-20 10:26:09 -05:00
Bruno BELANYIandAustin Horstman 78ceb2dd5c rbw: do not serialize 'null' settings 2026-04-20 10:07:54 -05:00
Austin Horstman 0a8d50edf2 docs/nix-flakes: clarify extraSpecialArgs usage
Explain when to use extraSpecialArgs versus _module.args in the flake setup guides, and keep the generated standalone fixture aligned with the updated template output.
2026-04-20 09:36:51 -05:00
Bruno BELANYIandAustin Horstman 4bfce11ea8 xdg-user-dirs: add 'projects' 2026-04-20 00:08:02 -05:00
Bruno BELANYIandAustin Horstman 12ceb3974a tests/xdg-user-dirs-*: do not use 'PROJECTS'
Use `XDG_CUSTOM_DIR` instead, as it is unlikely to be added to the spec.
2026-04-20 00:08:02 -05:00
Austin Horstman 1ab3a4b78e test(tests): add --big-only filter
Keep the default test list broad so chunk targets remain visible
for CI debugging.

The new flag narrows module test discovery to cases gated by
test.enableBig when you want to focus on unique big test cases.
2026-04-19 23:49:40 -05:00
Austin Horstman 29f355a733 tests: decode non-UTF-8 nix build output
Closes #9007
2026-04-19 22:51:34 -05:00
Austin Horstman b85e8fff94 lib/deprecations: suppress no-op state-version warnings
Closes #9045
2026-04-19 22:48:45 -05:00
Austin Horstman 1e9bdc6d35 swaync: update style documentation link
Closes #9098
2026-04-19 22:47:50 -05:00
SamandBruno BELANYI 5b56ad02dc modules/helix: fix pkill line on Darwin
On Darwin the previous ordering resulted in `-U` being parsed as a flag
with the value `SR1`. Moving the signal flag to the start of the command
fixes this issue, and pkill from procps doesn't care.
2026-04-19 02:35:31 +01:00
Veselin IvanovandGitHub 565e534920 neovim: expose sideloadInitLua option to control the generation of init.lua
Add option to control generation of `init.lua` to allow opting out of the automatic generation. Add news entry about changed behavior and new option.
2026-04-17 14:27:57 -05:00
K900andGitHub dee1c38cf0 modules/helix: fix incorrect string escape 2026-04-17 14:11:03 -05:00
Rachit Kumar VermaandGitHub 08b283aeda yazi: add option for {file}$XDG_CONFIG_HOME/yazi/vfs.toml
Add option to configure the vfs.toml file in yazi
See yazi-rs.github.io/docs/configuration/vfs for more details
2026-04-17 13:28:40 -05:00
Luk-ESCandAustin Horstman a0dab60284 helix: reload config with USR1 signal
automatically reload config files onChange by sending USR1 to running processes
2026-04-17 13:27:28 -05:00
betaboonandAustin Horstman 8941f29d42 opencode: add extraPackages option 2026-04-17 13:26:53 -05:00
Thiago Kenji OkadaandAustin Horstman 6ddeb76a5d zsh: expose internal lib 2026-04-17 13:20:50 -05:00
AliaksandrandMatthieu Coudron d401492e2a files: prefix relative path literal with './'
Fixes the `warn-short-path-literals` warning:

  warning: relative path literal 'lib/file-type.nix' should be
  prefixed with '.' for clarity

Nix recommends prefixing relative path literals with './' to
distinguish them from other path forms.
2026-04-16 23:01:46 +02:00
Ihar HrachyshkaandGitHub 3c7524c683 treewide: set git pager for specific commands, not for core.pager
Setting `core.pager` may result in issues like swallowed `git grep` results. 
To avoid this, apply pagers to specific commands where we expect `diff`-ish output only. 
Use a common helper to set pager for all modules that configure it.
2026-04-14 11:31:44 -05:00
Austin Horstman 8a423e444b ci: adjust flake lock update pr titles 2026-04-13 22:16:51 -05:00
Austin Horstman 78f7d3d6ab git: ignore deadnix treewide blame 2026-04-13 22:16:51 -05:00
Austin Horstman eff7ee75f0 ci: add release branch label
Make it more obvious when someone is targeting a release branch.
2026-04-13 22:16:51 -05:00
Jamie MageeandAustin Horstman 5843fa302b ci: migrate to Dependabot for nix flake updates 2026-04-13 22:03:14 -05:00
Benedikt RipsandAustin Horstman 970cd853bf hyprland: use previously unused lambda parameter 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman 5a728e434d tests/integration: simplify pkgs.linkFarm usage 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman a93d80bcec treewide: remove unused attrs patterns 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman 71402c5df3 treewide: mark unused lambda arguments 2026-04-13 22:02:40 -05:00
home-manager-ci[bot]andAustin Horstman 2de7205ce6 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 1 maintainers
**Total:** 289 → 289 maintainers

** Added:** yaaaarn

** Removed:** Vortriz

Generated by: lib/python/generate-all-maintainers.py
2026-04-13 16:10:41 -05:00
betaboonandAustin Horstman 287f84846c opencode: align tools directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboonandAustin Horstman 26c9d5dca1 opencode: align agents directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboonandAustin Horstman a5e824c862 opencode: align commands directory with upstream documentation 2026-04-12 21:14:59 -05:00
Adam DinwoodieandRobert Helgesson 49088dc2e7 syncthing: rewrite credential management
Syncthing's web GUI will only require login credentials if both a
username and password are configured.  Expose both of these through a
new services.syncthing.guiCredentials submodule, and require migration
to the new configuration to catch anyone who has only configured a
password using the old services.syncthing.passwordFile option.

Additionally, make sure that the syncthing-init script to set
configuration using the API is enabled if there is any such
configuration that needs setting.  Without this fix, configuration that
was set using the API, notably guiCredentials/passwordFile and
guiAddress, would not be set at all if there wasn't also something to
configure under services.syncthing.settings.

Co-authored-by: Robert Helgesson <robert@rycee.net>
2026-04-12 23:41:45 +02:00
Rosario PulellaandRobert Helgesson adc677d02e kakoune: remove unused options 2026-04-12 23:05:36 +02:00
Felix StuppandAustin Horstman f6196e5b4d oh-my-zsh: Fix plugins escapeShellArgs use 2026-04-12 12:33:37 -05:00
Robert HelgessonandAustin Horstman 7832a664c4 feedr: fix enable option description
Also minor stylistic fixes.
2026-04-12 10:58:28 -05:00
Vinicius DeolindoandAustin Horstman 30ca31c87a news: add entry about the unification of agents "context" and "skills" 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 16e50c6ffe gemini-cli: unify context description and let skills be a directory 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman d6d2468b88 opencode: migrate rules to context 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 447796d64a codex: migrate custom-instructions to context 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 13df3b4e44 claude-code: migrate memory to context & skills{,Dir} to skills 2026-04-12 10:53:57 -05:00
yaaaarnandRobert Helgesson ffa740c0df syshud: add module
PR #9075
2026-04-12 17:45:41 +02:00
Felix StuppandAustin Horstman 89b2d575ee zsh/oh-my-zsh: improve escaping of shell arguments 2026-04-12 10:42:19 -05:00
Felix StuppandAustin Horstman 46ecfa22a6 antidote: improve escaping of shell arguments & use pkgs.writeText 2026-04-12 10:42:19 -05:00
Pol DellaieraandAustin Horstman adf6e3aafb feedr: add module
Feedr is a modern terminal-based RSS/Atom feed reader with advanced filtering, categorization, and search capabilities. It supports both RSS and Atom feeds with compression handling and provides an intuitive TUI interface.
2026-04-12 10:39:55 -05:00
Michael HoangandAustin Horstman fd22058b43 copyApps: fix linkApps migration
Prior to this commit, the migration would not run as the condition in `ourLink`
would not be fulfilled by the symlink created by `linkApps`.
2026-04-12 10:39:04 -05:00
Michael HoangandAustin Horstman 23d85301a5 copyApps: skip check when migrating from linkApps 2026-04-12 10:39:04 -05:00
David ChocholatýandAustin Horstman 44111a5c6f jjui: Add options to configure settings in Lua including plugins
Options for https://idursun.github.io/jjui/customization/config-lua/.
2026-04-12 10:11:23 -05:00
David ChocholatýandAustin Horstman 0c8ef0f2b9 jjui: Fix default config directory path on Darwin
The default taken from jjui documentation:
https://idursun.github.io/jjui/customization/config-toml/
2026-04-12 10:11:23 -05:00
Cirios SanthiagoandRobert Helgesson e0ca734ffc starship: add extraPackages options 2026-04-12 10:42:57 +02:00
DaruandRobert Helgesson b0569dc6ec fresh-editor: add defaultEditor option 2026-04-11 11:33:31 +02:00
DaruandRobert Helgesson fb821d6422 fresh-editor: add extra packages option 2026-04-11 11:33:31 +02:00
mikaeladevandRobert Helgesson f899c5d6f3 pipewire: add module 2026-04-11 11:21:32 +02:00
William PhetsinorathandRobert Helgesson f7f6a559c2 xdg: add support for local bin path
Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>

Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>
Change-Id: I045f07415467ca6d409a6f4d52e753866a6a6964
2026-04-11 09:58:37 +02:00
MrQuboandAustin Horstman e35c39fca0 tmux: reduce default escapeTime 2026-04-09 19:43:45 -05:00
Austin Horstman 0eddb2cc1a neovim: use improved submodule deprecation detection
Prevent false positives with deprecation warning.
2026-04-09 19:09:46 -05:00
Austin Horstman fbc97e23f6 lib/deprecations: improve submodule warning support
Allow warning on specific submodule options with trigger fields and
omitted fields that trigger the warning.
2026-04-09 19:09:46 -05:00
tetoandAustin Horstman 7f6c5834ca neovim: change the plugin default type from viml -> lua
When introduced the neovim lua API was not as good as it is today.
I suspect the majority of users now default to lua rather than viml so
let's default to it.
2026-04-09 19:09:46 -05:00
philip-730andAustin Horstman a91f37efba services.darkman: add unified scripts option
Add a `scripts` option that places scripts in `$XDG_DATA_HOME/darkman/`,
darkman's unified script interface. The legacy `darkModeScripts` and
`lightModeScripts` options remain supported.

Closes #8940
2026-04-09 19:09:27 -05:00
Akshett Rai JindalandAustin Horstman 5c663d5781 gemini-cli: add option for integration with programs.mcp.servers 2026-04-09 19:08:48 -05:00
Akshett Rai JindalandAustin Horstman 5ef2b9862f gemini-cli: add skills option
Add programs.gemini-cli.skills for declarative skill files under ~/.gemini/skills.

Includes module tests for file and directory skill sources and inline content.
2026-04-09 19:08:48 -05:00
Matt DembiczakandAustin Horstman 0f9090a77c aerc: encode username in account URLs
Usernames containing special characters like '@' were included
verbatim in IMAP/SMTP URLs, producing invalid URIs. Apply
'lib.strings.escapeURL' to the username so that these characters
are properly encoded.
2026-04-09 18:36:49 -05:00
jtrrllandAustin Horstman 505e91f877 glance: add darwin support 2026-04-09 18:13:04 -05:00
Lorenzo ManacordaandAustin Horstman c975a66a56 niriswitcher: remove module
The upstream project has been archived.
2026-04-09 14:16:59 -05:00
Dennis SchriddeandAustin Horstman 2877554a72 programs.nheko: link to upstream issue in description for settings
See-also: https://github.com/Nheko-Reborn/nheko/issues/1591
2026-04-09 14:13:59 -05:00
Jan SpennemannandAustin Horstman 7ba4ee4228 thunderbird: allow configuration of EWS accounts
Add configuration options for EWS in Thunderbird which is
supported since version 145.
2026-04-08 16:28:57 -05:00
Utkarsh GuptaandAustin Horstman 35f8c398b4 atuin: add default value for log.dir 2026-04-08 16:28:21 -05:00
Austin Horstman 230199801b statix: enable misc rules that we already respect
Misc no-hit rules that we already are in compliance with. Ignoring
`faster_` rules because those prefer builtin > lib and we have lib
compat behavior to prefer.
2026-04-08 16:20:15 -05:00
Austin Horstman f04b520e5b git: ignore more statix cleanup commits 2026-04-08 16:20:15 -05:00
Austin Horstman de90ee2408 statix: enable eta_reduction
Enable statix's eta_reduction rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 74b0e97937 statix: enable empty_pattern
Enable statix's empty_pattern rule and apply its auto-fixes across the affected modules and tests.
2026-04-08 16:00:28 -05:00
Austin Horstman 11ad9d2e42 statix: enable useless_has_attr
Enable statix's useless_has_attr rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 5209a256fd statix: enable empty_list_concat
Enable statix's empty_list_concat rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 838db3b5a8 git: ignore statix collapsible let in cleanup 2026-04-08 16:00:28 -05:00
Austin Horstman 74d8d47034 statix: enable collapsible_let_in
Enable statix's collapsible_let_in rule and apply its auto-fixes in the podman linux modules.

This keeps the ratchet focused on one auto-fixable warning at a time.
2026-04-08 15:28:35 -05:00
Austin Horstman 58a6be9fae git: ignore statix inherit commit 2026-04-08 15:28:35 -05:00
Austin Horstman 01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
Austin Horstman 9ddbb69d18 vicinae: guard refresh-apps activation 2026-04-08 14:38:50 -05:00
Austin Horstman 7843c0025a vicinae: fix x-restart triggers 2026-04-08 14:38:50 -05:00
Austin Horstman 4ac0a4fd15 maintainers: update all-maintainers 2026-04-08 10:10:44 -05:00
Austin Horstman 4a0ded6f84 mbsync: KarlJoad -> ravenjoad 2026-04-08 10:10:44 -05:00
Austin Horstman 991a001751 mu: KarlJoad -> ravenjoad 2026-04-08 10:10:44 -05:00
home-manager-ci[bot]andAustin Horstman dd82782450 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6201e203d09599479a3b3450ed24fa81537ebc4e?narHash=sha256-ZojAnPuCdy657PbTq5V0Y%2BAHKhZAIwSIT2cb8UgAz/U%3D' (2026-04-01)
  → 'github:NixOS/nixpkgs/68d8aa3d661f0e6bd5862291b5bb263b2a6595c9?narHash=sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw%3D' (2026-04-05)
2026-04-08 10:10:44 -05:00
Robert HelgessonandAustin Horstman 527e47b78f files: handle overlapping file targets
The current behavior of `home.file` is inconsistent when handling
recursive file with another, overlapping, non-recursive file.

Specifically, consider a configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  "foo/bar".text = "some other file";
};
```

where `./foo` is a directory containing a file `bar`. Switching to
this configuration will result in the `./foo` directory being
recursively symlinked while the "foo/bar" entry is ignored. Note,
building the home files derivation does log

> File conflict for file 'foo/bar'

On the other hand, the supposedly equivalent configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  abc = { target = "foo/bar"; text = "some other file"; };
};
```

results in the `./foo` directory not being recursively symlinked,
i.e., only the file `foo/bar` shows up in the built configuration.
This time the home files build log contains

> File conflict for file 'foo'

This commit makes the behavior more consistent in that we always
handle the file in a unified manner. The conflict resolution is
offered in three flavors, "ignore", "error", and "override" indicating
whether the recursively symlinked file wins, the entire build errors
out, and the regularly symlinked file wins.

The current default is "ignore" since it is the resolution that most
closely matches the current behavior, at least when the file attribute
name is used as the target path.

The other two resolutions can be chosen by setting the
`home.fileOverlapResolution` option, which is set as invisible due to
its experimental nature.
2026-04-07 23:33:05 -05:00
Austin Horstman 34cb41efe4 ci: fix labeler file count logic 2026-04-07 23:27:55 -05:00
Austin Horstman f0c13b0ebc ci: limit labeler to small pull requests 2026-04-07 23:14:48 -05:00
Austin Horstman c59483f8dc ci: improve robustness of maintainer extraction 2026-04-07 23:14:48 -05:00
Austin Horstman 41f55c248a ci: limit number of automated reviewer requests 2026-04-07 22:58:13 -05:00
Bernardo Meurer CostaandAustin Horstman 6f35bb9799 tmux: use idempotent new-session to avoid duplicate sessions
When both system-level (e.g., NixOS programs.tmux) and home-manager
tmux configs set newSession = true, tmux would create two sessions
on startup since both /etc/tmux.conf and ~/.config/tmux/tmux.conf
contain the new-session command.

Change new-session to new-session -A -s 0, which attaches to session
"0" if it exists, otherwise creates it. This makes the command
idempotent so multiple configs can safely enable newSession.
2026-04-07 21:52:27 -05:00
Miles WirhtandGitHub 3d822c1dba dbeaver: init module 2026-04-07 21:32:28 -05:00
tarzstandAustin Horstman 98b4d61cfa neovim: disable python3 and ruby providers by default 2026-04-07 16:44:58 -05:00
Benedikt RitterandAustin Horstman 9cc761169a tmuxinator: use yml file ending
Files with yaml file ending are recognized by `tmuxinator start` but not
by `tmuxinator list`.

Resolves #9031
2026-04-07 13:40:48 -05:00
philip-730andAustin Horstman 530d83a5a8 programs.wezterm: add philip-730 as maintainer 2026-04-07 13:39:56 -05:00
philip-730andAustin Horstman 92d382b982 programs.wezterm: add settings option
Add a `settings` option that allows WezTerm to be configured
declaratively using a Nix attribute set. Settings are serialized to
Lua using `lib.generators.toLua`. Raw Lua expressions such as
`wezterm.font` and `wezterm.action.*` can be embedded using
`lib.generators.mkLuaInline`.

When `settings` is set, `extraConfig` is still supported. It is
wrapped in an immediately invoked function expression so that any
`return` statement (including the common `return {}` and
`return config` patterns) is captured and merged on top of the
generated settings, preserving full backward compatibility.

The merge between `settings` and `extraConfig` is shallow: a key
returned from `extraConfig` replaces the entire corresponding value
from `settings`, including nested tables and arrays.

Closes #6047
2026-04-07 13:39:56 -05:00
philip-730andAustin Horstman d65fb79dcc maintainers: add philip-730 2026-04-07 13:39:56 -05:00
leiserfgandGitHub b0cf7b520c vicinae: refresh app list on activation 2026-04-07 13:33:38 -05:00
Adam DinwoodieandRobert Helgesson 4bdfeff1d9 syncthing: set systemd start limits
Add StartLimitIntervalSec and StartLimitBurst configuration to the
Syncthing systemd unit.  This prevents Syncthing restarting indefinitely
if it hits a bug such as NixOS/nixpkgs#502836.

The values here are taken from the values provided in the upstream
Syncthing example systemd unit[0].

[0]: https://github.com/syncthing/syncthing/blob/1a3cbca0170306541d3d1877cc1a9efbd8d8c017/etc/linux-systemd/user/syncthing.service
2026-04-07 12:00:24 +02:00
Nara Díaz ViñolasandRobert Helgesson 2bd16b16a7 Translate using Weblate (Catalan)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Spanish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translation: Home Manager/Home Manager CLI
2026-04-07 08:41:37 +02:00
Robert Helgesson 5de7dbd151 restic: escape environment variables
This allows better handling of, e.g., file names with spaces.
2026-04-06 08:39:40 +02:00
home-manager-ci[bot]andRobert Helgesson 7e7269ac06 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8110df5ad7abf5d4c0f6fb0f8f978390e77f9685?narHash=sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg%3D' (2026-03-28)
  → 'github:NixOS/nixpkgs/6201e203d09599479a3b3450ed24fa81537ebc4e?narHash=sha256-ZojAnPuCdy657PbTq5V0Y%2BAHKhZAIwSIT2cb8UgAz/U%3D' (2026-04-01)
2026-04-06 00:15:30 +02:00
Robert Helgesson de5154c348 timidity: remove amesgen as maintainer
Sadly amesgen passed away some time ago, see
<https://www.tweag.io/blog/2025-12-16-in-memoriam-amesgen/>.
2026-04-05 23:57:43 +02:00
cinerealandRobert Helgesson c65923b58d xdg-mime-apps: document performance caveat
Passing a large number of packages (e.g. all of home.packages) to
defaultApplicationPackages causes slow builds because every .desktop
file in every listed package is scanned at build time. Add a note
warning users to list only the specific packages they need.
2026-04-05 23:35:01 +02:00
RoverpandAustin Horstman 2097a5c82b news: add opencode TUI configuration entry 2026-04-04 22:48:59 -05:00
1089b2caba opencode: add programs.opencode.tui option
OpenCode v1.2.15 introduced a separate tui.json file for TUI-specific
settings, deprecating theme/keybinds in config.json.
Changes:
- Add programs.opencode.tui option for TUI settings
- Generate separate ~/.config/opencode/tui.json with proper schema
- Add deprecation warnings for theme/keybinds in settings
- Add tests for new functionality
- Fix existing tests that used deprecated theme in settings

See: https://opencode.ai/docs/config#tui
Release: https://github.com/anomalyco/opencode/releases/tag/v1.2.15

Co-authored-by: Thierry Delafontaine <delafthi@pm.me>
2026-04-04 22:48:59 -05:00
Benedikt RipsandAustin Horstman 8ec54491cd sshAuthSock: fix naming scheme 2026-04-04 22:28:41 -05:00
Bruno BELANYIandAustin Horstman 7923d24b0b home-cursor: use submodule-specific 'size' 2026-04-04 22:28:11 -05:00
nesciasandAustin Horstman e78a997d2e restic: allow setting password command
Includes asserting that either password file or password command
should be set.
2026-04-04 22:27:18 -05:00
Yiheng HeandAustin Horstman 5ee3b3ef63 awww: remove blank space after awww-daemon when extraArgs is empty
awww: split graphical-session-target test into awww-default and awww-extraArgs
2026-04-04 11:33:34 -05:00
Yiheng HeandAustin Horstman 5b6f55b784 awww: run daemon dependent on program mainProgram name 2026-04-04 11:33:34 -05:00
Benedikt RipsandAustin Horstman 9dc93220c1 ssh_auth_sock: assert that at most one agent is enabled 2026-04-03 21:15:34 -05:00
Benedikt RipsandAustin Horstman a61b22e323 ssh_auth_sock: init module
`$SSH_AUTH_SOCK` must not be set unconditionally through
'home.sessionVariables' since its value needs to be preserved if it
stems from a forwarded SSH agent. Hence, this commit establishes a
centralized, internal 'ssh_auth_sock.initialization' option for setting
`$SSH_AUTH_SOCK`. It checks whether its value has to be preserved and
injects the initialization code into the proper
'programs.(bash|fish|nushell|zsh).*' options.
2026-04-03 21:15:34 -05:00
Yiheng HeandAustin Horstman 03bdcf84f0 awww: rename swww to awww
Upstream project name has changed
2026-04-03 15:21:14 -05:00
Marko MilovanovandRobert Helgesson f68887a4c1 Translate using Weblate (Serbian)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-03 15:45:10 +02:00
teto d166a07854 neovim: fix viml plugin config appearing twice
nixpkgs is now in charge of aggregating viml config so no need to
duplicate the work in HM.
2026-04-02 17:27:31 +02:00
oneorseveralcatsandRobert Helgesson eb6f347055 aria2: add systemd service 2026-04-02 16:20:22 +02:00
Austin Horstman 41e6e2ab37 codex: add support for managed rules files 2026-04-01 23:29:17 -05:00
squatandAustin Horstman 6267895e98 opencode: add environmentFile option to set OPENCODE_SERVER_PASSWORD
This commit introduces a new option for the Opencode web service to
allow configuring an environment file so that we can safely specify an
`OPENCODE_SERVER_PASSWORD` environment variable to secure access to the
service without exposing the secret to the Nix store.
2026-04-01 16:47:32 -05:00
home-manager-ci[bot]andAustin Horstman 51f49da12c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9?narHash=sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc%3D' (2026-03-24)
  → 'github:NixOS/nixpkgs/8110df5ad7abf5d4c0f6fb0f8f978390e77f9685?narHash=sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg%3D' (2026-03-28)
2026-04-01 16:02:07 -05:00
Matthieu CoudronandGitHub f21d8ebbc9 neovim: test pure lua dependencies (#8991)
a revert of https://github.com/nix-community/home-manager/pull/8959 since we now relies on nixpkgs wrapper for that.

adding a test to avoid regressions. Choosing  telescope as starting point is https://github.com/nix-community/home-manager/issues/8787

I find the nmt test setup lacking: it doesnt set $PATH or $HOME (nvim
will error when it can't write into $HOME).
2026-04-01 22:27:03 +02:00
Matthieu CoudronandGitHub 1ce9e62690 mpd: expose generated config (#8968)
The systemd service links a generated config, but some users may like
to have it in ~/.config/mpd instead.
This PR helps working around that limitation allowing users to run:

  configFile."mpd/mpd.conf".text = config.services.mpd.generatedConfig;

this way one can skip systemd altogether and test mpd more easily in CLI.
2026-04-01 14:39:19 +02:00
Robert Helgesson f2d3e04e27 Translate using Weblate (Czech)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Norwegian Bokmål)

Currently translated at 75.0% (12 of 16 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/cs/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nb_NO/
Translation: Home Manager/Home Manager Modules
2026-03-31 23:19:10 +02:00
+151
Weblate (bot)GitHubPedro de MattiaAlex MirandaFelipe SilvagutoGabriel GrysukOğuz ErsenEmre ÇebiSilkDoğu UsJosef DaliborprogrammerlexiFrederik EngelsManu [tennox] <tennox@posteo.de>mainrsReiner GereckehalbGefressenJonathanBUrocissa Caerulea.TwWhiredPlanck807Ferenci ÁkosBalint Barna KovariDanСергійМаксим ГорпинічwadsaekLucas EduardossantosSrGesusJulius MarozasKornelijus TvarijanavičiusYogurtDeleted UserMario RodasMauricio SchefferHarrizon SolerBrian EKeivanParsa NobahariMarko MilovanovLeix bAlejandro Masó BonillaPeter PfeuferViktor IllmerSven KeidelVollowHongtyu BheSam ChuimmwindnanliuZexin YuanFrankie McEyesLeonardo RandacioFareesh VijayarangamUtkarsh SharmaMuxutrukShadowTiger RaptorPeng GuanwenYubo-CaoethinxDaniel Jacob ButcherPablo BollanseeZurgaHylke de VriesErwin MintiensEric HoNara Díaz ViñolasAdolfo Jayme BarrientosTomi OckierBruno FragosoOmar MohamedBorislav RangelovKiril PanayotovKiril Mihaylov박수원Suwon Parkhonniplentil32Mohammad AbdoliradArtin MobasherBjarki GunnarssonAnon YmousJakub JanczakEryk MichalakMateusz KubicaTomasz CzyżTymoteusz DolegaTANIGUCHI KoheiTakeru MikenuHeman GandhiTurmoil NailsisNarazaki ShujiMarkus AmanoKento OkamotoHeartBlin913861820c094e37SMFlorisFelix PuscasuDavid HoudekmaxDark TemplarAtomicDudeReza AlmandaWildan NursyamsiAbdul V VahryKamontat ChantrachirathumrongEise ZimmermanAllan NordhøyLilleAilaKim A. ØdegaardRobert Helgessonjarre johanssonRicky TiggMarcin KaczorekMateusz PGabriel Fontesbittin1ddc447d824349b2Naïm Camille FavierPink PonyDorian BurgunJ. Lavoie6KHCPCPOswapsSzabin HamrikJay Thomasadityalal01Karel KremelDavid ChocholatýFireFragmentதமிழ்நேரம்DeeKahycafkafkMatildeJulien H. GibsonGuilloux NicolasAlexis RossfelderYk CheeseLouis ThevenetTheBlackBeansLuna JernbergBlezz RotMikhail ChekanNikolay MokrinskyPetr Portnov | PROgrm_JARvisEr1ckR1ck0NikSneLorenzo BrzekFedFer98123Lorenzo BevilacquaMustafa Çalışkangoatastronaut0212Nguyen KhanhRepentantKnight121Deleted UserRasmus Enevoldsenbgo-eiuPetter KGavagai53Vladimirteu5us
0adb999327 Translations update from Hosted Weblate (#9010)
Co-authored-by: Pedro de Mattia <pedromattia@gmail.com>
Co-authored-by: Alex Miranda <alexmirandamoraes@gmail.com>
Co-authored-by: Felipe Silva <git@felipeqq2.rocks>
Co-authored-by: guto <joaoaugustolanjoni@gmail.com>
Co-authored-by: Gabriel Grysuk <gabrielgrysuk@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Emre Çebi <emrecebi03@gmail.com>
Co-authored-by: Silk <omerntuzun@gmail.com>
Co-authored-by: Doğu Us <usdogu@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Josef Dalibor <josefkruse@googlemail.com>
Co-authored-by: programmerlexi <lexi@reyer.name>
Co-authored-by: Frederik Engels <frederik.engels92@gmail.com>
Co-authored-by: Manu [tennox] <tennox@posteo.de>
Co-authored-by: mainrs <github619064@zerotask.net>
Co-authored-by: Reiner Gerecke <me@reinergerecke.de>
Co-authored-by: halbGefressen <chzi@pm.me>
Co-authored-by: JonathanB <ewu.uwent@gmail.com>
Co-authored-by: Urocissa Caerulea.Tw <urocissa.tw@proton.me>
Co-authored-by: WhiredPlanck <whiredplanck@outlook.com>
Co-authored-by: 807 <s10855168@gmail.com>
Co-authored-by: Ferenci Ákos <synthetace@gmail.com>
Co-authored-by: Balint Barna Kovari <balint@kovari.cc>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: Максим Горпиніч <gorpinicmaksim2005ukr@protonmail.com>
Co-authored-by: wadsaek <wadsaek@gmail.com>
Co-authored-by: Lucas Eduardo <lucas59356@gmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: SrGesus <gabriel.fcf04@gmail.com>
Co-authored-by: Julius Marozas <marozas.julius@gmail.com>
Co-authored-by: Kornelijus Tvarijanavičius <kornelijus@tvaria.com>
Co-authored-by: Yogurt <donatas.karta@gmail.com>
Co-authored-by: Deleted User <noreply+48943@weblate.org>
Co-authored-by: Mario Rodas <rodasmario2@gmail.com>
Co-authored-by: Mauricio Scheffer <mauricioscheffer@gmail.com>
Co-authored-by: Harrizon Soler <harryalex0281@hotmail.com>
Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Co-authored-by: Keivan <keyvan0082@gmail.com>
Co-authored-by: Parsa Nobahari <89968726+ParsaNobahari@users.noreply.github.com>
Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Co-authored-by: Leix b <abone9999@gmail.com>
Co-authored-by: Alejandro Masó Bonilla <alejandrobonilla2001@gmail.com>
Co-authored-by: Peter Pfeufer <info@ppfeufer.de>
Co-authored-by: Viktor Illmer <accounts@viktor.im>
Co-authored-by: Sven Keidel <svenkeidel@pm.me>
Co-authored-by: Vollow <muffinslog@proton.me>
Co-authored-by: Hongtyu Bhe <mfthits@gmail.com>
Co-authored-by: Sam Chu <samchu-primary@outlook.com>
Co-authored-by: immwind <i@immwind.com>
Co-authored-by: nanliu <nan.liu@gmail.com>
Co-authored-by: Zexin Yuan <yuan.zx@outlook.com>
Co-authored-by: Frankie McEyes <mceyes@protonmail.com>
Co-authored-by: Leonardo Randacio <leonardorandacio@gmail.com>
Co-authored-by: Fareesh Vijayarangam <fareesh@gmail.com>
Co-authored-by: Utkarsh Sharma <utkasharma19@gmail.com>
Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Co-authored-by: ShadowTiger Raptor <sh4dowtig3r@gmail.com>
Co-authored-by: Peng Guanwen <pg999w@outlook.com>
Co-authored-by: Yubo-Cao <Cao2006721@gmail.com>
Co-authored-by: ethinx <eth2net@gmail.com>
Co-authored-by: Daniel Jacob Butcher <corpo@quokka.wiki>
Co-authored-by: Pablo Bollansee <pablo.bollansee@gmail.com>
Co-authored-by: Zurga <jim.lemmers@gmail.com>
Co-authored-by: Hylke de Vries <hylke94+weblate@gmail.com>
Co-authored-by: Erwin Mintiens <erwin.mintiens@protonmail.com>
Co-authored-by: Eric Ho <eric913@gmail.com>
Co-authored-by: Nara Díaz Viñolas <rdvdev2@gmail.com>
Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: Tomi Ockier <ockier1@gmail.com>
Co-authored-by: Bruno Fragoso <darth_signa@hotmail.com>
Co-authored-by: Omar Mohamed <mohamed.omar67492@gmail.com>
Co-authored-by: Borislav Rangelov <borislav.y.rangelov@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Co-authored-by: 박수원 <bboxone@gmail.com>
Co-authored-by: Suwon Park <sepiabrown@naver.com>
Co-authored-by: honnip <me@honnip.page>
Co-authored-by: lentil32 <lentil32@icloud.com>
Co-authored-by: Mohammad Abdolirad <m.abdolirad@gmail.com>
Co-authored-by: Artin Mobasher <mobasherartin.icm@gmail.com>
Co-authored-by: Bjarki Gunnarsson <bjarkihg@gmail.com>
Co-authored-by: Anon Ymous <mivon27841@shackvine.com>
Co-authored-by: Jakub Janczak <kubek2k@gmail.com>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Mateusz Kubica <mw.kubica@gmail.com>
Co-authored-by: Tomasz Czyż <tomasz.czyz@eskapizm.pl>
Co-authored-by: Tymoteusz Dolega <tymoteuszdolega@gmail.com>
Co-authored-by: TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com>
Co-authored-by: Takeru Mikenu <mikenu-jp@users.noreply.hosted.weblate.org>
Co-authored-by: Heman Gandhi <hemangandhi@gmail.com>
Co-authored-by: Turmoil Nailsis <indianrunner@duck.com>
Co-authored-by: Narazaki Shuji <shujinarazaki@protonmail.com>
Co-authored-by: Markus Amano <markus.a.amano@gmail.com>
Co-authored-by: Kento Okamoto <kentokamoto@protonmail.com>
Co-authored-by: HeartBlin913861820c094e37 <heartblin@proton.me>
Co-authored-by: SMFloris <floris.sm@gmail.com>
Co-authored-by: Felix Puscasu <puscasu.felix1@gmail.com>
Co-authored-by: David Houdek <sarejnovec@gmail.com>
Co-authored-by: max <weblate@p2502.net>
Co-authored-by: Dark Templar <dark.templar0007@gmail.com>
Co-authored-by: AtomicDude <vasilescutoma4@gmail.com>
Co-authored-by: Reza Almanda <rezaalmanda27@gmail.com>
Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Co-authored-by: Abdul V Vahry <cyberaioff@gmail.com>
Co-authored-by: Kamontat Chantrachirathumrong <uein2@users.noreply.hosted.weblate.org>
Co-authored-by: Eise Zimmerman <eiscomania@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: LilleAila <olai.solsvik@gmail.com>
Co-authored-by: Kim A. Ødegaard <kim@dyktig.no>
Co-authored-by: Robert Helgesson <robert@rycee.net>
Co-authored-by: jarre johansson <jarre@johansson.today>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: Marcin Kaczorek <hostedweblateorgmk@karek.pl>
Co-authored-by: Mateusz P <medan1993@gmail.com>
Co-authored-by: Gabriel Fontes <hi@m7.rs>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Naïm Camille Favier <n@monade.li>
Co-authored-by: Pink Pony <dreammc@protonmail.com>
Co-authored-by: Dorian Burgun <docdoomduck@protonmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: 6KHCPCPO <lxh43qf2b@relay.firefox.com>
Co-authored-by: swaps <swapgs@users.noreply.hosted.weblate.org>
Co-authored-by: Szabin Hamrik <h.szabin@gmail.com>
Co-authored-by: Jay Thomas <jay@gfax.ch>
Co-authored-by: adityalal01 <erc202009@gmail.com>
Co-authored-by: Karel Kremel <charles@alembiq.net>
Co-authored-by: David Chocholatý <chocholaty.david0@gmail.com>
Co-authored-by: FireFragment <snaselik.m@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: DeeKahy <Lennart.Diego.Kahn@gmail.com>
Co-authored-by: cafkafk <christina@cafkafk.com>
Co-authored-by: Matilde <matilde.alb@proton.me>
Co-authored-by: Julien H. Gibson <julienhgibson@protonmail.com>
Co-authored-by: Guilloux Nicolas <novares.x@gmail.com>
Co-authored-by: Alexis Rossfelder <rossfelderalexis@gmail.com>
Co-authored-by: Yk Cheese <yakforcom@gmail.com>
Co-authored-by: Louis Thevenet <louis.thevenet@proton.me>
Co-authored-by: TheBlackBeans <adrien.mathieu.net@gmail.com>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Co-authored-by: Mikhail Chekan <chekoopa@mail.ru>
Co-authored-by: Nikolay Mokrinsky <me@mokrinsky.ru>
Co-authored-by: Petr Portnov | PROgrm_JARvis <mrJARVIScraft@gmail.com>
Co-authored-by: Er1ckR1ck0 <eryckov37@gmail.com>
Co-authored-by: NikSne <commits@niksne.ru>
Co-authored-by: Lorenzo Brzek <lorenzo@brzek.it>
Co-authored-by: FedFer98123 <fede.ferrari123@gmail.com>
Co-authored-by: Lorenzo Bevilacqua <lorenzobevilacqua02@gmail.com>
Co-authored-by: Mustafa Çalışkan <muscaln@protonmail.com>
Co-authored-by: goatastronaut0212 <goatastronaut0212@proton.me>
Co-authored-by: Nguyen Khanh <nguynkhan479@gmail.com>
Co-authored-by: RepentantKnight121 <repentantknight121@outlook.com>
Co-authored-by: Deleted User <noreply+69728@weblate.org>
Co-authored-by: Rasmus Enevoldsen <rasmus@enev.dk>
Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com>
Co-authored-by: Petter K <petterkarlsrud@me.com>
Co-authored-by: Gavagai53 <masella_portlock@aleeas.com>
Co-authored-by: Vladimir <kirillov.vladimir@gmail.com>
Co-authored-by: teu5us <paulkreuzmann@gmail.com>
2026-03-31 14:12:35 -05:00
Benedikt RitterandAustin Horstman b399348e9d tmuxinator: move to dedicated module with projects support
Extract tmuxinator from tmux.nix into its own programs/tmuxinator.nix
module. The new module adds:

- programs.tmux.tmuxinator.package for customising the tmuxinator package
- programs.tmux.tmuxinator.projects for declaring projects declaratively;
  each project is written to $HOME/.config/tmuxinator/<name>.yaml

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-31 14:05:50 -05:00
Caleb NortonandAustin Horstman a7d2aca3f0 opencode: use serve command for web interface 2026-03-31 10:05:09 -05:00
Marko MilovanovandGitHub a184bd2f84 Fix Serbian translation merge conflict (#9003)
* Translate using Weblate (Serbian)

Currently translated at 79.4% (31 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 75.0% (12 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.0% (4 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.6% (10 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 6.2% (1 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 5.1% (2 of 39 strings)

Add translation using Weblate (Serbian)

Add translation using Weblate (Serbian)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

* Translate using Weblate (Serbian)

Currently translated at 93.7% (15 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/

* Translate using Weblate (Serbian)

Currently translated at 84.6% (33 of 39 strings)

Translation: Home Manager/Home Manager CLI
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
2026-03-30 21:24:36 +02:00
home-manager-ci[bot]andAustin Horstman 9340f51314 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6c9a78c09ff4d6c21d0319114873508a6ec01655?narHash=sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws%3D' (2026-03-21)
  → 'github:NixOS/nixpkgs/46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9?narHash=sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc%3D' (2026-03-24)
2026-03-30 08:03:35 -05:00
Max CabrajacandAustin Horstman 53797f71b9 news: fix entry formatting
The `"` string delimiter prevents leading spaces from being removed from the string.
2026-03-30 08:00:37 -05:00
home-manager-ci[bot]andMatthieu Coudron 293490e1c1 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 3 maintainers
**Removed:** 0 maintainers
**Total:** 286 → 289 maintainers

** Added:** Kladki, dosten, philocalyst

Generated by: lib/python/generate-all-maintainers.py
2026-03-30 13:34:20 +02:00
Ihar HrachyshkaandBruno BELANYI 5ed75a0312 services/ssh-agent: treat SIGTERM exit as clean
OpenSSH ssh-agent exits with status 2 when systemd stops it in
non-socket-activated mode.

Home Manager runs ssh-agent that way, so normal user-manager
shutdowns show up as unit failures.

Set SuccessExitStatus=2 for the Linux user service to match
upstream behavior. Startup failures and other unexpected exits
still fail the unit.
2026-03-30 12:14:23 +01:00
kfizandGitHub 769e07ef8f aerc: add notmuch integration
Currently enabling aerc in accounts.email.accounts.<account> doesn't handle existing configs where accounts.email.accounts.<account>.notmuch.enable is set to true. This pr proposes to automatically set notmuch as backend for aerc if this is the case, see rjarry/aerc@master/doc/aerc-notmuch.5.scd.

For set-ups where accounts.email.notmuch.enable has been enabled this was previously ignored, so this is probably a breaking change for these configs, but from running this set up during the last weeks I would consider the upside of better search and filtering performance as significantly larger than the minor changes in query handling as noted here rjarry/aerc@master/doc/aerc-notmuch.5.scd#usage.
2026-03-28 17:55:35 -05:00
Marko MilovanovandAustin Horstman 4a8e31396a Translate using Weblate (Serbian)
Currently translated at 25.0% (4 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.6% (10 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 6.2% (1 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 5.1% (2 of 39 strings)

Add translation using Weblate (Serbian)

Add translation using Weblate (Serbian)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-03-28 14:56:35 -05:00
oneorseveralcatsandAustin Horstman 027539a127 vesktop: make package nullable 2026-03-28 14:50:47 -05:00
Austin Horstman 43c0145a48 ci: sync module changes with labeler 2026-03-28 12:42:22 -05:00
teto 6569d9e171 neovim: attempt at reusing nixpkgs upstream config 2026-03-28 18:41:26 +01:00
oneorseveralcatsandMatthieu Coudron 557f5e38ce swayidle: allow multiple systemd targets 2026-03-28 17:32:51 +01:00
oneorseveralcatsandAustin Horstman 02371c05a0 aria2: use formats.keyValue to generate aria2.conf instead of custom method 2026-03-27 16:42:50 -05:00
oneorseveralcatsandAustin Horstman 2e3550192e aria2: remove extraConfig 2026-03-27 16:42:50 -05:00
oneorseveralcatsandAustin Horstman 13587c3ace aria2p: add module 2026-03-27 16:42:50 -05:00
Miles WirhtandGitHub 9df3a63900 macchina: add module (#8855) 2026-03-27 10:42:17 -05:00
r-vdpandAustin Horstman 2b8f732e15 atuin: use daemon start subcommand on >= 18.13.0
Atuin 18.13.0 deprecated `atuin daemon` in favour of `atuin daemon start`
and prints a warning on every daemon startup. Keep the old invocation for
older versions so NixOS stable (currently shipping 18.10.0) keeps working.

Also drop the 18.2.0 minimum version assertion since all supported
nixpkgs branches ship newer versions.
2026-03-27 10:41:46 -05:00
oneorseveralcatsandAustin Horstman accd450fcd waybar: allow multiple systemd targets 2026-03-27 09:41:16 -05:00
Austin Horstman 4b1be5c38b vicinae: move lib to separate file
Not used internally and cleaner to separate

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-26 23:01:54 -05:00
Austin Horstman bf6215e0cb vicinae: support local sources for raycast extensions
Support extensions without fetchgit, useful when providing the sources
from a flake input or derivation for all extensions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-26 23:01:54 -05:00
Pat L.andGitHub 7126ec6a55 claude-code: Add support for installing plugins (#8934)
Allow for configuring marketplaces or individual plugins.

Both are provided as a list of either paths or packages.

The lone plugins are enabled by adding a --plugin-dir argument to the wrapper script.

Marketplaces are saved to the nix store and enabled by adding to the claude settings and known_marketplaces files.

With the marketplace "installed", the plugin can just be enabled via the enabledPlugins setting.
2026-03-26 22:59:48 -05:00
Diego Saint EstebenandAustin Horstman 0143d6ca9b grype: add module
Grype is a vulnerability scanner for container images and filesystems.
2026-03-26 22:51:09 -05:00
Diego Saint EstebenandAustin Horstman f7a3fe06c5 maintainers: add dosten 2026-03-26 22:51:09 -05:00
Miles WirhtandGitHub 7c046c63ac Ttyper: add module (#8864) 2026-03-26 16:47:14 -05:00
Ryan HoriguchiandAustin Horstman 051da45e96 vscode: add null package support 2026-03-26 16:41:41 -05:00
Matthias AhouansouandAustin Horstman 3aeefa9db2 mpdris2-rs: add module 2026-03-26 16:34:36 -05:00
oneorseveralcatsandAustin Horstman 40955dc50a atool: add module
atool is a commandline archive manager that uses packages like gnutar,
p7zip, unrar, and zip as backends for viewing, creating, and extracting
their corresponding archive formats.
2026-03-26 16:24:39 -05:00
StellessiaandAustin Horstman 0e0e7a072a generic-linux-gpu: Update NVIDIA driver version regex pattern 2026-03-26 16:03:37 -05:00
home-manager-ci[bot]andAustin Horstman 7622882af8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b40629efe5d6ec48dd1efba650c797ddbd39ace0?narHash=sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4%3D' (2026-03-18)
  → 'github:NixOS/nixpkgs/6c9a78c09ff4d6c21d0319114873508a6ec01655?narHash=sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws%3D' (2026-03-21)
2026-03-26 13:36:09 -05:00
teto e2e5f512b3 neovim: support lua plugin transitive dependencies
TODO: 
- add a test
- see if we can pass the list of plugins instead, overriding the final
  list so it doesn't get added to rtp
2026-03-26 16:37:38 +01:00
David SánchezandBruno BELANYI 86014e836c tldr-update: darwin support 2026-03-26 14:10:44 +00:00
Austin Horstman 1eb0549a1a password-store: silence settings default warning
Use the deferred state-version helper mode for programs.password-store.settings
so explicit empty and explicit legacy values silence the warning correctly,
while partial legacy-era settings still inherit PASSWORD_STORE_DIR until the
user resolves the migration.

Add integration coverage for password-store and pass-secret-service to verify
legacy, explicit empty, explicit legacy, and partial-settings behavior.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 14:08:36 -05:00
Austin Horstman 66aa75f6e8 lib/deprecations: support deferred state-version warnings
Extend mkStateVersionOptionDefault so merged attrset callers can defer
warning emission to config.warnings while still exposing the effective
state-version default and option priority metadata.

Add dedicated lib tests for deferred warning behavior on both legacy and
current state versions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 14:08:36 -05:00
Austin Horstman b8cb89f2c4 codex: support store-path skill sources
Handle per-skill values that come through as store-path strings, such as fetcher outputs with subdirectories appended. This restores the previously working pattern for packaged skill directories and adds a regression test for both directory and file sources.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 12:03:06 -05:00
Austin Horstman 5068d0b03e news: add qt kvantum entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 11:02:52 -05:00
Austin Horstman a8931b2575 kvantum: add enable option
Missed previously, prefer gating enablement on real opt in.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 11:02:52 -05:00
mikaeladevandAustin Horstman 61463d50fc qt: add kvantum options 2026-03-24 08:04:04 -05:00
oneorseveralcatsandAustin Horstman bc357c75e3 w3m: add module
adds a pretty complete module for w3m, a terminal web browser and pager.
2026-03-23 14:10:42 -05:00
MeowandAustin Horstman 3cea83bf84 rclone: make mounts wait for config 2026-03-23 13:53:26 -05:00
dependabot[bot]andAustin Horstman 90913f8313 ci: bump cachix/cachix-action from 16 to 17
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 16 to 17.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v16...v17)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-version: '17'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 09:02:52 -05:00
home-manager-ci[bot]andAustin Horstman 681b47993a maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 285 → 286 maintainers

** Added:** oneorseveralcats

Generated by: lib/python/generate-all-maintainers.py
2026-03-23 09:02:18 -05:00
Austin Horstman b02a36dc79 Revert "swaylock: warn on implicit enable default"
This reverts commit 45e3b622b1.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-23 09:02:01 -05:00
Austin Horstman c6fe2944ad codex: symlink directories for all skills
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 15:08:53 -05:00
oneorseveralcatsandAustin Horstman 932ca46013 nom: add module
adds a module for nom, a terminal-based rss feed reader.
2026-03-22 12:39:22 -05:00
oneorseveralcatsandAustin Horstman 2c629ba7ed maintainers: add oneorseveralcats 2026-03-22 12:39:22 -05:00
Utkarsh GuptaandAustin Horstman 38539206d0 cargo: add cargoHome option 2026-03-22 11:53:53 -05:00
Austin Horstman b92cad188c git: warn on signing format default change
The default value for programs.git.signing.format changed in 25.05
from an implicit "openpgp" to null. Keep the existing gated
mkOptionDefault behavior so the signing block only materializes when
other signing settings are in use, but route the versioned value and
static docs text through the shared state-version helper.

Add a focused current-state-version test that covers a non-empty
signing configuration with no explicit format, alongside the existing
legacy implicit-openpgp and explicit-format tests.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 45e3b622b1 swaylock: warn on implicit enable default
Before 23.05, programs.swaylock.enable implicitly followed whether
programs.swaylock.settings was non-empty. That compatibility path was
still active for older state versions, but it emitted no warning.

Route the default through the shared state-version helper so legacy
users get the standard deprecation warning before the implicit enable
behavior is removed. Add a focused current-state-version test and keep
the existing legacy and explicit-enable coverage in place.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 111b158a98 beets: warn on implicit enable default
Before 19.03, programs.beets.enable implicitly followed whether
programs.beets.settings was non-empty. That compatibility branch was
still active for older state versions, but it was silent.

Route the default through the shared state-version helper so legacy
users get a consistent deprecation warning before the implicit
enablement is cleaned up. Add focused tests for the legacy and current
default branches alongside the existing beets coverage.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman a49e2f1b5b password-store: warn on settings default change
The default value of programs.password-store.settings changed in 25.11
when Home Manager stopped exporting PASSWORD_STORE_DIR implicitly.
Route the default through the shared state-version helper so users on
older state versions keep the compatibility behavior with a consistent
warning and a single place to remove later.

The existing password-store tests already cover the legacy default, the
current empty default, and explicit override behavior, so no new test
fixture is needed for this migration.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman d3281688bf gtk: warn on gtk4 theme inheritance change
The gtk4 theme option still inherits from gtk.theme for users pinned
before 26.05, but that fallback was previously silent. Move the
default through the shared state-version helper so the compatibility
branch emits the standard deprecation warning and stays consistent
with other future cleanups.

Add a focused test that covers the legacy inheritance path alongside
the existing current-state-version test for the null default.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman acf65ad748 xdg-user-dirs: warn on setSessionVariables default change
Switch xdg.userDirs.setSessionVariables to the shared state-version default helper so older configurations get an explicit warning before the legacy default is removed.

Add focused tests for the legacy and current branches to verify that the session variable exports remain enabled before 26.05 and are disabled by default starting at 26.05.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman db91cbf795 yazi: use state version default helper
Replace the inline shellWrapperName migration logic with the shared state-version default helper. This keeps the existing warning and version-dependent default, but moves the message and defaultText formatting into one reusable implementation.

Inline the helper directly at the option declaration so the module stays small while matching the new deprecation-default pattern for future adoptions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 95496df8c0 lib/deprecations: add state version default helper
Add a helper for options whose defaults change across home.stateVersion boundaries. This centralizes the warning text and documentation shape so modules do not need to hand-roll the same migration pattern at each call site.

The helper takes legacy and current branches with a runtime value plus optional static documentation text. That keeps the actual default version-gated while avoiding option docs that depend on evaluated config. Add a focused test covering the legacy warning path, the new-value path, and an explicit legacy pin that should not warn.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Malix - Alix BrunetandAustin Horstman 856b01ebd1 shell: DRY shellIntegrationParameters 2026-03-21 18:24:31 -05:00
Malix - Alix BrunetandAustin Horstman 887e96cf30 lib: remove rec in shell.nix 2026-03-21 18:23:54 -05:00
teto 9670de2921 neovim: reuse more of upstream logic 2026-03-20 12:59:40 +01:00
Austin Horstman 9d3c1d636e tests/darwinScrublist: add keepassxc
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 18:24:53 -05:00
tetoandAustin Horstman 1c10e6596f neovim: now include nixpkgs wrapper generated lua
now that home-manager always generates an init.lua we can take the
wrapper output instead of reimplemnting stuff in HM (notwithstanding rtp
changes that are not needed in HM).
This is necessary to keep the provider configuration available after
this change https://github.com/NixOS/nixpkgs/pull/487390

Also updated test to reflect ruby disabling
2026-03-19 18:24:53 -05:00
home-manager-ci[bot]andAustin Horstman 0c38ec560c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
  → 'github:NixOS/nixpkgs/b40629efe5d6ec48dd1efba650c797ddbd39ace0?narHash=sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4%3D' (2026-03-18)
2026-03-19 18:24:53 -05:00
Bob van der LindenandRobert Helgesson 9bc3ca1230 opencode: skill -> skills
The skills option was creating files under ~/.config/opencode/skill/
(singular) but OpenCode documentation only mentions
~/.config/opencode/skills/ (plural). Both work, but using an
undocumented directory can be confusing.

Fixes: https://github.com/nix-community/home-manager/issues/8907
2026-03-19 21:32:45 +01:00
Wildan NursyamsiandRobert Helgesson 5ae5f8cedf Translate using Weblate (Indonesian)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/id/
Translation: Home Manager/Home Manager Modules
2026-03-19 21:30:15 +01:00
Austin Horstman c4ab19c919 lib: extend lib to include hm maintainers
Upstream change is validating all maintainers against lib.maintainers,
need to merge our maintainer list in to pass doc building.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 15:16:56 -05:00
Austin Horstman a7ec544047 docs: match parent flake nixpkgs channel
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
Austin Horstman 7ca38ba694 docs: fix readme branch
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
Austin Horstman 445c6ead57 makefile: match flake.nix nixpkgs rev
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
James DavidsonandBruno BELANYI f72ed9c97d smug: add project session setting
Add an optional session setting so that session names can be different
than the smug project name. This also enables using template variables
when naming sessions.
2026-03-19 15:36:43 +00:00
Austin Horstman ecf019baf4 claude-code: code style/lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 00:32:52 -05:00
Austin Horstman 0d200e1da7 claude-code: deduplicate module helpers
Factor the repeated claude-code module patterns into a small set of local helpers instead of open-coding them over and over.

This keeps the behavior the same, but removes duplication in the inline-or-path option declarations, the inline-vs-directory assertions, and the repeated .claude file generation code. The claude-code NMT test slice still passes after the refactor.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 00:32:52 -05:00
Austin Horstman 4fcef56c15 claude-code: load MCP config via plugin dir
Claude Code rejects `--mcp-config` once the Home Manager wrapper injects
it around subcommands, which breaks commands like `claude mcp list`.
Claude Code 2.1.76 fixed `--plugin-dir` so it no longer consumes
following subcommands, so use that path for the generated MCP config
instead.

Generate a plugin directory with a manifest and `.mcp.json`, wrap
`claude` with `--plugin-dir` before user arguments, and snapshot that
wrapper directly in the tests. Keep the existing LSP support in the
generated plugin directory as well, and add coverage for the combined
MCP+LSP case plus the MCP integration merge path.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-18 23:58:36 -05:00
stuebinmandAustin Horstman d47357a4c8 go: remove unneeded string escapes 2026-03-18 00:04:07 -05:00
rsahweandAustin Horstman ba197beccc rizin: cleanup according to feedback
In both prior feature pull requests for this module there was a review
after the pull request got merged, those are addressed here.
2026-03-18 00:02:59 -05:00
natsukiumandAustin Horstman a455ac1bb3 claude-code: add lsp servers support 2026-03-17 23:52:47 -05:00
FaeandAustin Horstman f0e123a7e2 clipman: Add extraArgs option to clipman service 2026-03-17 23:50:17 -05:00
RockWolfandAustin Horstman 54db7915d0 fish: change mode & setsMode bind options to allow arbitrary strings additional to default enum values 2026-03-17 23:47:50 -05:00
RockWolfandAustin Horstman 51895e1813 fish: add name field to binds module
Resolves: #8795
2026-03-17 23:47:50 -05:00
Austin Horstman b61330163e tests/gemini-cli: add policy assertions
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-17 23:46:59 -05:00
Austin Horstman 9fc7535efc gemini-cli: add policy engine support
Gemin now supports policy configuration through policy files in toml.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-17 23:46:59 -05:00
dependabot[bot]andMatthieu Coudron 57d5560ee9 ci: bump actions/create-github-app-token from 2 to 3
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2 to 3.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 18:24:16 +01:00
dependabot[bot]andMatthieu Coudron ca53f083db ci: bump dorny/paths-filter from 3 to 4
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3 to 4.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/v3...v4)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 14:12:48 +01:00
home-manager-ci[bot]andMatthieu Coudron dee018cd92 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 1 maintainers
**Total:** 285 → 285 maintainers

** Added:** alinnow

** Removed:** libewa

Generated by: lib/python/generate-all-maintainers.py
2026-03-16 14:12:07 +01:00
Austin Horstman 9a40ec3b78 sketchybar: refactor sbarlua support
Needs to handle different lua versions better. Determine lua version for
which luaPackages set to reference

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-15 16:01:32 -05:00
home-manager-ci[bot]andMatthieu Coudron 585a161ea6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9dcb002ca1690658be4a04645215baea8b95f31d?narHash=sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs%3D' (2026-03-08)
  → 'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
2026-03-15 18:53:27 +01:00
Francis HamelandAustin Horstman ef12a9a2b0 obsidian: fix obsidian.json path on macOS 2026-03-13 12:21:53 -05:00
Francis HamelandAustin Horstman ef1e33949e obsidian: add cli option to obsidian.json 2026-03-13 12:21:53 -05:00
Max CabrajacandAustin Horstman be0c641a6a mergiraf: Prevent warnings related unmanaged VCSs
Add a guard to prevent people from getting warnings related to VCSs they
don't use.
2026-03-12 21:00:48 -05:00
teto 4aeef1941f neovim: update tests to work with latest nixpkgs
Since https://github.com/NixOS/nixpkgs/pull/495392, the wrapper doesn't
create provider executables along with the neovim wrapper. They still
exist but at locations indicated by the g:XXX_provider_host variable.
2026-03-12 17:17:57 +01:00
teto 7cd3093fc6 neovim: disable ruby provider by default 2026-03-12 15:01:04 +01:00
teto 52d053556a create-news-entry.sh: add more examples
To make it easier for contributors to customize their entry: it's easier
to remove the comments (or not since they wont be seen anyway) then
searching for those examples.
2026-03-12 15:00:50 +01:00
teto f9482fd109 neovim: fix test
package.path (mkOrder 100) is expected to be before `vim.cmd` (mkBegin -> mkOrder 500).
Not sure how the error was not detected before ?
2026-03-12 14:49:18 +01:00
luo jiyinandGitHub 7d06e0cefe treewide: fix spelling errors 2026-03-11 22:32:16 -05:00
AlinandAustin Horstman 45fe5c9854 zed-editor: add alinnow as maintainer 2026-03-11 22:13:46 -05:00
AlinandAustin Horstman 4536603a43 zed-editor: add enableMcpIntegration option
Integrate with the shared MCP module
2026-03-11 22:13:46 -05:00
Bruno BELANYIandGitHub d7ef0034e3 mergiraf: add 'enable{Git,Jujutsus}Integration' 2026-03-11 21:52:41 -05:00
home-manager-ci[bot]andAustin Horstman 32f78141a9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
  → 'github:NixOS/nixpkgs/9dcb002ca1690658be4a04645215baea8b95f31d?narHash=sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs%3D' (2026-03-08)
2026-03-11 16:28:16 -05:00
teto 3f98e2bbc6 neovim: reference neovim-unwrapped lua
less opportunities to mess the reference up by referencing unwrapped's lua directly.
2026-03-10 22:45:37 +01:00
teto 1b2dc84c81 neovim: filter attributes passed to makeVimPackageInfo
nixpkgs is going to emit errors when seeing unknown attributes so this
preemptively cleans the passe attributes to avoid errors on next
nixpkgs bump.
2026-03-10 22:45:37 +01:00
home-manager-ci[bot]andAustin Horstman 67cd089ee1 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 0 maintainers
**Removed:** 0 maintainers
**Total:** 285 → 285 maintainers

Generated by: lib/python/generate-all-maintainers.py
2026-03-10 16:14:10 -05:00
tetoandAustin Horstman 2912398c1c kitty: dont add unneeded newlines
triggers my OCD.
2026-03-10 16:01:24 -05:00
Linus WarnatzandMatthieu Coudron bb014746ed zed-editor: remove libewa as maintainer and resolve TODO
I no longer use Zed, and most of the code in the module is not mine.
I'd rather have someone who actually uses the module take it up.

The TODO was resolved a long time ago.
2026-03-09 23:04:00 +01:00
home-manager-ci[bot]andAustin Horstman 5be5d8245c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8c809a146a140c5c8806f13399592dbcb1bb5dc4?narHash=sha256-WGV2hy%2BVIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg%3D' (2026-03-03)
  → 'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
2026-03-08 10:54:45 -05:00
tetoandAustin Horstman 27b93804fb neovim: adapt provider tests
This checks the final provider value instead of the wrapper implementation.
This requires to run the real neovim so I removed the stub.

The providers at home-path/bin/nvim-X will disappear from nixpkgs
hopefully so I simplified the pattern to "X".

Probably in future we want to check "assertFileExists" against the
returned value node_host_prog
2026-03-06 19:05:25 -06:00
BikkuandAustin Horstman c804204306 lutris: fix proton packages not showing up
For versions of lutris 0.5.20+, it no longer links proton packages under
the proton folder, instead uses wine's folder for both types.
2026-03-06 19:04:28 -06:00
Wildan NursyamsiandAustin Horstman efba7917d5 Translate using Weblate (Indonesian)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Indonesian)

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/id/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/id/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-03-06 19:01:13 -06:00
Vinicius DeolindoandBruno BELANYI daa2c22132 colima: only pass --save-config=false if settings were set 2026-03-06 14:28:38 +00:00
Zhanibek AdilbekovandAustin Horstman 5a75730e6f bash: support defining aliases beginning with a dash or plus 2026-03-04 08:08:47 -06:00
home-manager-ci[bot]andAustin Horstman ef26422ded flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dd9b079222d43e1943b6ebd802f04fd959dc8e61?narHash=sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE%3D' (2026-02-27)
  → 'github:NixOS/nixpkgs/8c809a146a140c5c8806f13399592dbcb1bb5dc4?narHash=sha256-WGV2hy%2BVIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg%3D' (2026-03-03)
2026-03-04 08:04:24 -06:00
Wildan NursyamsiandAustin Horstman 924e61f5c2 Translate using Weblate (Indonesian)
Currently translated at 82.0% (32 of 39 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/id/
Translation: Home Manager/Home Manager CLI
2026-03-03 14:24:51 -06:00
Austin Horstman 4876d397c2 tests: scrub radio-cli and yt-dlp on darwin
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 57134be3b8 tests: align darwin getconf placeholder for ssh/proton agents
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 11c89ba2e5 tests: stop pueued via alice user session in nixos-basics
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman d76a12d115 maintainers: drop duplicated mikaeladev from HM
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 8f7638b4db maintainers: drop duplicated karaolidis from HM
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman f0e9edfe7f tests/mpv: stub wrapper
Pulling in external dependencies we aren't even trying to test against.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
home-manager-ci[bot]andAustin Horstman c82ad3bc5c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ec7c70d12ce2fc37cb92aff673dcdca89d187bae?narHash=sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44%3D' (2026-02-11)
  → 'github:NixOS/nixpkgs/dd9b079222d43e1943b6ebd802f04fd959dc8e61?narHash=sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE%3D' (2026-02-27)
2026-03-03 14:24:37 -06:00
Karun SandhuandAustin Horstman 2b9504d5a0 hyprland: allow closing submaps on dispatch
This adds an 'onDispatch' option to the 'submaps' attribute set,
enabling the 'submap = name, ondispatch' syntax which allows submaps to
be closed automatically after a dispatch.
2026-03-02 23:43:40 -06:00
leiserfgandAustin Horstman 9d83727001 vicinae: restart service on config change 2026-03-02 23:37:26 -06:00
home-manager-ci[bot]andAustin Horstman 6ac68b96a8 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 284 → 285 maintainers

** Added:** mana-byte

Generated by: lib/python/generate-all-maintainers.py
2026-03-02 23:32:54 -06:00
Adam C. StephensandAustin Horstman a71c7c601e home-environment: revert use nix profile add instead of install
This reverts commit e8d5fc77c2.
2026-03-02 23:32:28 -06:00
Vinicius DeolindoandAustin Horstman f140aa04d7 colima: add kubectl to the service's $PATH 2026-03-01 09:54:21 -06:00
Jasper ChanandAustin Horstman 9c8b3cc2d5 nnn: allow setting default cli arguments 2026-03-01 09:51:08 -06:00
magicquarkandAustin Horstman 7608066893 pyradio: add group details to stations description 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 56c1ceb3c8 pyradio: add per-station player profile option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 358bafaf95 pyradio: add per-station buffering option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman e04cf4c16d pyradio: add per-station forceHttp option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 1efaaf2072 pyradio: add per-station icon url option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman ebe3ca5c9c pyradio: add per-station encoding option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman fd40fa91a4 pyradio: refactor generation of csv row 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 53069c542e pyradio: add per-station volume option 2026-03-01 09:49:52 -06:00
Issam E. MaghniandAustin Horstman cf7448c589 accounts.email: add mailbox.org flavor
Based on the [official documentation][1].

[1]: https://kb.mailbox.org/en/private/e-mail/e-mail-configuration/
2026-03-01 09:49:04 -06:00
rsahweandAustin Horstman 92460de672 rizin: fix comment character typo 2026-03-01 09:48:35 -06:00
Austin Horstman 6f2cb27ea6 tests/codex: consolidate tests
Reduce test case setup to cover same logic branches.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Austin Horstman e0bcb05ce9 tests/codex: update skills tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Austin Horstman 680a967f21 codex: fix skills location for new version
Recently changed location where codex looks for skills. Version gate
where we install the skills.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Matthieu CoudronandGitHub 58fd7ff0ee justfile: moved format command from Makefile
Migrating command from Makefile to justfile.
I could not find any reference in the doc so I kept a migration
instruction in Makefile.
2026-02-28 20:03:31 -06:00
Austin Horstman 6656349da8 tests/lazyworktree: add integration asserts
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman f31dbc1042 lazyworktree: add shell integration
Add shell integration that functions similar to lazygit for navigating
to directory of the chosen worktree.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman 6da59c400c tests/lazyworktree: updated settings example
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman cd9d012ba3 lazyworktree: updated settings example
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Ondřej KvapilandMatthieu Coudron f3a30376bb difftastic: allow repeating options
The type was overly restrictive, see
https://github.com/nix-community/home-manager/pull/7947/changes#r2858054388
2026-02-27 19:59:12 +01:00
Austin Horstman 2a39b0828b tests/starship: add no settings and presets tests
Help catch future regressions

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Austin Horstman 3113094428 starship: only generate file when configured
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Austin Horstman d70de619f7 starship: lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Bruno BELANYIandAustin Horstman dcfc84871c mpv: add 'extraMakeWrapperArgs' 2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman 14e98b1d96 tests: mpv: add 'mpv-scripts' 2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman ccd5351436 tests: mpv: refactor stubs definition
I am about to introduce more tests making use of the stubs, let's
centralize them in one file.
2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman c3f348111f mpv: refactor wrapping
This makes it slightly easier to add additional wrapper options.
2026-02-26 21:39:23 -06:00
sollnissandAustin Horstman 04acdd8af8 anki: support multiple profiles 2026-02-26 21:37:56 -06:00
RaneandAustin Horstman bff85cb66b claude-code: add support for output styles
Adds an option to populate the output_styles directory,
which is used by Claude Code to make custom output styles available.
2026-02-26 21:37:08 -06:00
Utkarsh GuptaandAustin Horstman 920c07c691 colim|docker-cli: switch to xdg by default in 26.05 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 221046764c colima: set $DOCKER_HOST for default context in 26.05 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 91920e955f colima: add homeDir & respect XDG 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 6f35059f9a docker-cli: allow absolute paths for configDir 2026-02-26 21:34:24 -06:00
mana-byteandAustin Horstman 3233912054 mistral-vibe: remove vim_keybindings from example 2026-02-26 21:30:37 -06:00
mana-byteandAustin Horstman f2579cddca mistral-vibe: add mana-byte to maintainers 2026-02-26 21:30:37 -06:00
bandithedogeandAustin Horstman ec4e1159d9 starship: add presets option 2026-02-26 21:30:07 -06:00
rsahweandAustin Horstman b96418f81b rizin: add settings option
This adds a settings option to the rizin module,
which allows configuring rizin with the e command.
All other configuration currently still requires extraConfig.
2026-02-26 21:26:20 -06:00
octvsandAustin Horstman 31ea32fa14 i3-sway: allow inverse_outer on smart_gaps
Change the boolean `smartGaps` option to an `enum` that expects common
values of i3 and sway ("on" "off" "inverse_outer").
2026-02-26 21:07:13 -06:00
cethienandAustin Horstman a5b92cc213 rclone: added sanitazion in systemd service name
- replaces $ and spaces
- escapes mount path
2026-02-26 21:02:03 -06:00
Ben BrownandAustin Horstman b42875c294 waybar: Avoid reload onChange when systemd integration is enabled
When systemd integration is enabled, systemd will handle the issuing of
`SIGUSR2` through `X-Reload-Triggers`.

All this would do is trigger multiple `SIGUSR2` signals, which can
exacerbate this upstream issue:
https://github.com/Alexays/Waybar/issues/3344#issuecomment-2390661508
2026-02-26 20:51:32 -06:00
tetoandAustin Horstman 4c4fd4ed6b feat: introduce development shell
flakes are not stable yet, community is divided but maintaining both
flake and a set of dependencies in our scripts is hard.
So provide a nix-shell that fetches the nixpkgs recorded in the
flake.lock to keep a single source of truth

doc: updated the doc to advise `nix-shell -A dev`
2026-02-26 20:44:57 -06:00
tetoandAustin Horstman 58330fd08d flake: add a devShell
that includes the formatter
2026-02-26 20:44:57 -06:00
Lyra AranhaandAustin Horstman 27ba84b1f0 nixpkgs: add setting nixpkgs.config.allowUnfreePackages = ["list" "of" "packages"] 2026-02-26 20:39:49 -06:00
Anton TetovandMatthieu Coudron ce9b6e5250 difftastic: fix example: s/sort-path/sort-paths/
Fixed the example, I realized it was wrong since I copied it and got an error:

```
$ difft --sort-path
error: unexpected argument '--sort-path' found

  tip: a similar argument exists: '--sort-paths'
```

The option is documented in `difft --help` and implemented in `difftastic/src/options.rs`.

https://github.com/Wilfred/difftastic/blob/7d8175dccfdde3a9046acd389980f7240ca58d96/src/options.rs#L375

It's used correctly in the jujutsu submodule at the end of this file.
2026-02-25 23:55:33 +01:00
home-manager-ci[bot]andRobert Helgesson 9a4b494b1a maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 283 → 284 maintainers

** Added:** rsahwe

Generated by: lib/python/generate-all-maintainers.py
2026-02-23 13:53:01 +01:00
rsahweandRobert Helgesson 5bd3589390 zed-editor: fix remote server executable name
The remote server executable in the zed-editor package has a '+stable'
appended at the end now. This uses the remoteServerExecutableName
attribute from the zed-editor package instead of guessing.
2026-02-22 11:33:56 +01:00
Bart SmyklaandRobert Helgesson e8d5fc77c2 home-environment: use nix profile add instead of install
nix profile install was renamed to nix profile add in Nix 2.28.
The old name still works as a deprecated alias but produces a warning
on every home-manager switch:

  warning: 'install' is a deprecated alias for 'add'

Signed-off-by: Bart Smykla <bartek@smykla.com>
2026-02-22 11:22:48 +01:00
Thierry DelafontaineandRobert Helgesson 603626a8da docs: add anchor link icons to headers 2026-02-22 09:48:42 +01:00
Gaetan LepageandAustin Horstman c6ed3eab64 mistral-vibe: set default for settings 2026-02-21 08:14:43 -06:00
Gaetan LepageandAustin Horstman 44773e1925 ruff: set default for settings 2026-02-21 08:14:43 -06:00
Gaetan LepageandAustin Horstman 436b27742c mistral-vibe: add module 2026-02-20 22:25:11 -06:00
André KuglandandAustin Horstman a913ae61bf firefox: add handlers.json configuration
Adds support for configuring Firefox's handlers.json file to
manage MIME type and URL scheme handlers declaratively (at
`programs.firefox.profiles.<profile>.handlers`). Handlers control
how Firefox opens files and protocols (e.g., PDF viewers,
`mailto:` handlers).
2026-02-20 16:08:03 -06:00
rsahweandAustin Horstman c9507a9aa5 rizin: use xdg.enable and home.preferXdgDirectories
rizin reads configuration from both $HOME/.rizinrc and
from $XDG_CONFIG_HOME/rizin/rizinrc and the module
now uses the relevant options for choosing between them.
2026-02-20 16:06:11 -06:00
rsahweandAustin Horstman 168fbe8891 rizin: add module
This adds a basic module for rizin which supports creating a basic
rizinrc for configuration.
2026-02-20 16:06:11 -06:00
rsahweandAustin Horstman 1dcebb44c6 maintainers: add rsahwe 2026-02-20 16:06:11 -06:00
Jasper ChanandAustin Horstman 8b6212ebd6 nnn: add cd on quit option 2026-02-20 16:05:11 -06:00
Austin Horstman 91be7cce76 claude-code: fix skills implementation
Claude skills are only found when using `SKILL.md` entrypoints.
Attribute names should be used for the directory structure, not the
filename.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-19 14:00:06 -06:00
Léana 江andMatthieu Coudron 167e0b6837 zsh: set nix-zsh-completions as lowPrio to avoid subpath conflict 2026-02-19 17:37:09 +01:00
Ayush PramanikandMatthieu Coudron a0a01d8811 sioyek: add startupCommands option 2026-02-19 13:44:24 +01:00
Vinicius DeolindoandAustin Horstman 2dedeb55b2 man: make package nullable and default to null on darwin 2026-02-18 21:19:39 -06:00
Austin Horstman f19a99503c ci: update buildbot test config
After https://github.com/nix-community/home-manager/pull/8464 we need to
update this to not try another flake.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-18 21:19:06 -06:00
tetoandAustin Horstman 0f156f177d doc: updated instructions with tests being moved around
no need to set flake now
2026-02-18 21:13:38 -06:00
tetoandAustin Horstman 8e0f4cdeee tests: merge both flakes
we used to have a flake in tests/flake.nix on top of the top-level one.
This results in 2 lockfiles for the same purpose and is not practical.
Instead this moves tests to legacyPackages:

- so they dont appear in "nix flake show" as it can be inconvenient
- legacyPackages supported nested attribute sets of derivations which
  could let us regroup tests under a same set and build that instead.
  For instance, one could `nix build .#tests.neovim` and build all of
  neovim packages. One could still pick a single `nix build
  .#tests.neovim.plugin-config`

dont expose tests into devShells to limit

fix python test runner to find the tests where appropriate
2026-02-18 21:13:38 -06:00
Léana 江andAustin Horstman f1ebddedab tmux: fix double press prefix passthrough 2026-02-18 20:55:51 -06:00
MrTipsonandMatthieu Coudron b3ccd4bb26 fish: source event handling functions on shell init
Functions that contain event handler switches should be sourced during init, otherwise they become active only after being called manually.
2026-02-18 14:49:42 +01:00
carschandlerandMatthieu Coudron 77c47a4542 carapace: ignoreCase option for case-insensitive completion
Add option for case-insensitive matching in carapace completions.
2026-02-18 11:50:04 +01:00
Thiago Kenji OkadaandMatthieu Coudron 4ebb171bc5 nnn: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron 30f54c7014 qt: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron 671ba1f70e mpv: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron f71fa310cf hexchat: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron bfc89f1936 nixpkgs-disabled: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron b0d7d25a46 i3status-rust: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
teto b0b01ab65b Revert "feat: introduce nix-shell"
This reverts commit bb45c03659.
2026-02-18 11:24:01 +01:00
home-manager-ci[bot]andAustin Horstman 5f1d42a97b maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 282 → 283 maintainers

** Added:** malikwirin

Generated by: lib/python/generate-all-maintainers.py
2026-02-16 13:17:35 -06:00
tetoandAustin Horstman c7d7ba954a mpv: fix include example/improve doc
I just learnt about "~~/config.inc" syntax from https://mpv.io/manual/stable/#paths
which is quite nice.
2026-02-16 13:17:21 -06:00
Austin Horstman ae8003d8b6 mkFirefoxModule: remove visible option
Just default everything to show options to remove confusion / chance of
disabling documentation. We already set visible = true so it wasn't even
being used really.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-15 14:42:12 -06:00
Austin Horstman 1e53254671 news: inform about yazi alias change
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-14 23:14:41 -06:00
phucleeuwuandAustin Horstman ee49ee29a1 yazi: change the default shellWrapperName yy y
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-14 23:14:41 -06:00
Bruno BigrasandAustin Horstman ff5e5d882c tirith: fix case sensitive example
`LOW`, `MEDIUM`, `HIGH` and `CRITICAL` are case sensitive
2026-02-14 15:02:25 -06:00
mikaeladevandMatthieu Coudron 05e6dc0f6e qt: fix typo in qtct example 2026-02-14 03:52:59 +01:00
Ryan HendricksonandAustin Horstman 26dfad95d9 nix: add assumeXdg option
The use-xdg-base-directories Nix setting can be set globally in
/etc/nix/nix.conf, in which case Home Manager doesn't know about it.
Users could fix that by also setting it, redundantly, in `nix.settings`,
but then Nix issues a lot of spurious warnings about
use-xdg-base-directories being a restricted setting that untrusted users
can't pass on to the daemon.

As an alternative, users can now set `nix.assumeXdg`, which makes Home
Manager assume that use-xdg-base-directories is in effect without adding
it to the user's nix.conf file.
2026-02-13 15:28:13 -06:00
Matthias BeyerandAustin Horstman b3258dece8 programs.radicle: Document how "rad auth" must be used with this
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2026-02-13 14:34:42 -06:00
Peter KlingandAustin Horstman e9b706bef7 syncthing: activate logging for macOS agents 2026-02-13 14:05:36 -06:00
Peter KlingandAustin Horstman cadfe449aa syncthing: more reliable syncthing launchd agent
Starts the syncthing-init launchd agent (responsible for updating the configuration) as a oneshot agent instead of via WatchPaths (the latter is too unreliable).

Ideally, the syncthing-init agent should be started after the syncthing agent started the Syncthing server, since syncthing-init updates the configuration using API calls to the Syncthing server. The Linux systemd service versions handle this via the Requires and After attribute. Launchd under macOS is missing a reliable way to order agents. Theoretically, one can achieve similar things via, e.g., WatchPaths (used before this commit). But this is known to be very unreliable (see also my comment in issue #6542). Thus, we just start syncthing-init and rely on the wrapped curl bash function (see curlShellFunction in nix file) to wait for the Syncthing server to be up and running.
2026-02-13 14:05:36 -06:00
Austin Horstman bc5652b227 tests/types: add suboptions doc test
Verify we are able to extract suboptions properly with our custom lib
extension.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 29d617ecc8 docs: improve submodule options rendering
Certain types don't offer `getSubOptions` upstream in nixpkgs, at the
moment. We can do some overriding and manually calling it for now to
fetch the options for docs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 4c4771cb01 rofi: add missing option description
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 3017414609 launchd: add missing option description
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 54ab8bc155 maintainers: remove offline
Removed upstream https://github.com/NixOS/nixpkgs/pull/483520

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:26:06 -06:00
home-manager-ci[bot]andAustin Horstman 975606b2a5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d6c71932130818840fc8fe9509cf50be8c64634f?narHash=sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84%3D' (2026-02-08)
  → 'github:NixOS/nixpkgs/ec7c70d12ce2fc37cb92aff673dcdca89d187bae?narHash=sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44%3D' (2026-02-11)
2026-02-13 13:26:06 -06:00
MalikandAustin Horstman 5e90b62996 tirith: add module
Adds Home Manager module for Tirith, a shell security monitor.

The module supports:
- Shell integration for Bash, Fish, and Zsh
- Allowlist configuration for bypassing Tirith analysis
- Policy configuration for customizing security behavior
2026-02-13 09:08:51 -06:00
Yus314andRobert Helgesson de4cfffc98 kitty: add autoThemeFiles option
Add support for kitty's automatic theme switching based on OS
color scheme. This creates the required auto theme config files:
- light-theme.auto.conf
- dark-theme.auto.conf
- no-preference-theme.auto.conf

Closes: nix-community/home-manager#6869
2026-02-13 10:32:36 +01:00
Austin Horstman a6c93262f3 pay-respects: minor style cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman f24a755980 news: add pay-respects rules addition
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman 2fe1e0ea38 tests/pay-respects: add rules test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman 133585ddfa pay-respects: add rules support
Allow creating rules files now following docs from
https://github.com/iffse/pay-respects/blob/main/rules.md

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
nesciasandAustin Horstman 9bdb693810 notmuch: add programs.notmuch.package option
Allow users to specify which notmuch package should be used.
2026-02-12 16:42:39 -06:00
nesciasandAustin Horstman 258db1d39b git: respect programs.msmtp.package
Since the user may override `programs.msmtp.package` using
`pkgs.msmtp` as the sendmail binary might result in the wrong package
being used.
2026-02-12 16:42:39 -06:00
Austin Horstman 2cc195b478 docs: update flake module example
Just include some more detail in example

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 15:13:04 -06:00
Austin Horstman 6a1f7101d2 news: add flameshot darwin entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
Austin Horstman ede6d1d95e tests/flameshot: add darwin tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
Austin Horstman 2363f5a377 flameshot: add darwin support
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
teto 0825a0922a feat: introduce nix-shell
flakes are not stable yet, community is divided but maintaining both
flake and a set of dependencies in our scripts is hard.
So provide a nix-shell that fetches the nixpkgs recorded in the
flake.lock to keep a single source of truth
2026-02-12 16:27:35 +01:00
home-manager-ci[bot]andAustin Horstman 0acbd11806 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/00c21e4c93d963c50d4c0c89bfa84ed6e0694df2?narHash=sha256-AYqlWrX09%2BHvGs8zM6ebZ1pwUqjkfpnv8mewYwAo%2BiM%3D' (2026-02-04)
  → 'github:NixOS/nixpkgs/d6c71932130818840fc8fe9509cf50be8c64634f?narHash=sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84%3D' (2026-02-08)
2026-02-11 08:04:04 -06:00
Adam PoitandAustin Horstman b3f43db171 colima: fix KeepAlive to prevent process accumulation on macOS
Change KeepAlive from boolean true to SuccessfulExit dictionary in the LaunchAgent configuration.
When colima fails to start (e.g., disk already attached), the boolean true setting causes
launchd to immediately restart it, spawning orphaned limactl usernet processes with each
restart.

Using SuccessfulExit = true ensures the service only restarts on clean exits (exit code 0),
preventing the aggressive restart loop that accumulates orphaned processes.
2026-02-10 21:19:55 -06:00
home-manager-ci[bot]andAustin Horstman 6c4fdbe1ad maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 282 → 283 maintainers

** Added:** mikaeladev

Generated by: lib/python/generate-all-maintainers.py
2026-02-09 10:28:40 -06:00
Austin Horstman 13a1beb7c9 news: add codex mcp integration
Just letting users know module has the integration enabled now.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-09 07:14:50 -06:00
Austin Horstman 6c8def1df8 codex: add enableMcpIntegration option
Work with the shared mcp module for integration and transformation.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-09 07:14:50 -06:00
Austin Horstman b1f916ba05 news: don't specify nixpkgs revision
Not necessary for using nix-shell and causes extra maintenance.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-08 15:31:12 -06:00
home-manager-ci[bot]andAustin Horstman a0da0f24fd flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e6eae2ee2110f3d31110d5c222cd395303343b08?narHash=sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc%3D' (2026-02-03)
  → 'github:NixOS/nixpkgs/00c21e4c93d963c50d4c0c89bfa84ed6e0694df2?narHash=sha256-AYqlWrX09%2BHvGs8zM6ebZ1pwUqjkfpnv8mewYwAo%2BiM%3D' (2026-02-04)
2026-02-08 15:21:52 -06:00
Francesco NoaccoandAustin Horstman afaa85cf32 vivid: add nushell integration 2026-02-08 15:20:51 -06:00
Aguirre MatteoandAustin Horstman 42c607ecb4 news: add lazyworktree entry 2026-02-08 15:14:18 -06:00
Aguirre MatteoandAustin Horstman f5d50fd8cb lazyworktree: add module 2026-02-08 15:14:18 -06:00
Austin Horstman cbd8a72e5f treewide: remove xorg package set
Xorg package set removed, now aliases.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-07 13:10:27 -06:00
Francesco NoaccoandAustin Horstman 6cee082157 zed-editor: don't generate empty keymap files
default value for user keymaps is an empty list, but the check was
made against an empty set, generating the file when no value
was given
2026-02-07 09:07:14 -06:00
Austin Horstman 471e6a065f prismlauncher: merge only when configured
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-05 13:11:00 -06:00
Austin Horstman f915881ba7 prismlauncher: code style and lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-05 13:11:00 -06:00
K900andAustin Horstman 332027bc0a treewide: use pkgs.lndir instead of pkgs.xorg.lndir
Follow the change in nixpkgs.
2026-02-05 10:59:19 -06:00
AntonandAustin Horstman bbccee8713 halloy: fix URL in description 2026-02-05 07:58:26 -06:00
mikaeladevandAustin Horstman 04e5203db6 prismlauncher: add module 2026-02-04 21:47:21 -06:00
mikaeladevandAustin Horstman 6f64dee491 maintainers: add mikaeladev 2026-02-04 21:47:21 -06:00
Léana 江andAustin Horstman cfb3b544f9 programs.git: test git integration options assertion 2026-02-04 21:43:38 -06:00
Léana 江andAustin Horstman 715e6d7f89 programs.git: fix assertion message inconsistency 2026-02-04 21:43:38 -06:00
Austin Horstman 6c79e409a5 news: add xdg-user-dirs changes entry
Inform users about the various changes to xdg-user-dirs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman c8f9edda94 xdg.userDirs: add notes for stateVersion changes 2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 9b62076484 xdg.userDirs: change the syntax for extraConfig
E.g., use `MISC` instead of `XDG_MISC_DIR`, the same way `xdg-user-dirs-update`
works.

This is conditionalized on 26.05, so in future `XDG_MISC_DIR` will be disallowed.
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman db9044b119 xdg.userDirs: add a setSessionVariables option
It defaults to `true` to maintain the current behavior.

This is conditionalized on 26.05, so in future `setSessionVariables` will
default to `false`.
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 83cc9d32e3 xdg.userDirs: add a nullable package option 2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 7c47cafa90 xdg.userDirs: don’t require Linux
Everything here works on Darwin, etc.
2026-02-04 21:16:02 -06:00
home-manager-ci[bot]andAustin Horstman 689e4a3423 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1?narHash=sha256-MJ27Cy2NtBEV5tsK%2BYraYr2g851f3Fl1LpNHDzDX15c%3D' (2026-01-21)
  → 'github:NixOS/nixpkgs/e6eae2ee2110f3d31110d5c222cd395303343b08?narHash=sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc%3D' (2026-02-03)
2026-02-04 20:53:11 -06:00
Johan LarssonandAustin Horstman 4fda26500b tomat: modify After, PartOf, Environment in service
This allows the tomat service to properly execute hooks, which is a
feature that requires a modifying the PATH and ensuring that the service
is started after the graphical session.
2026-02-03 18:17:40 -06:00
home-manager-ci[bot]andAustin Horstman 83e4f9b4d2 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 281 → 282 maintainers

** Added:** magicquark

Generated by: lib/python/generate-all-maintainers.py
2026-02-03 18:16:16 -06:00
Dennis SchriddeandAustin Horstman 36349274d7 home-manager: Prevent pipe failure when reading news
On my system (Fedora 43 with Nix 2.31.3) `home-manager news` exits
from `SIGPIPE` and never writes `~/.local/share/home-manager/news-read-ids`,
resulting in news items to never be marked read.  This is caused by
piping `(import ./news.nix).news.all` through `jq` and `less` failing
with an error as soon as `less` exits, which triggers `set -o pipefail`
to exit the shell running `home-manager` itself.

Avoiding the pipe into `$PAGER` avoids the problem.

Closes: https://github.com/nix-community/home-manager/issues/8690
References: https://github.com/jqlang/jq/issues/1017
References: https://www.greenend.org.uk/rjk/tech/shellmistakes.html#pipeerrors
2026-02-03 18:14:58 -06:00
teto 984708c34d neovim: make lua dependencies appear earlier in init.lua
We want t this to appear at the very beginning, before loading any other
plugin.
2026-02-01 21:39:55 +01:00
unlsycnandRobert Helgesson b593765639 vscode: fix extension path for antigravity
Standardize the extension installation path to `/share/vscode/extensions`
regardless of the package name.

Previously, setting the package name to 'antigravity' would change the
internal path to `/share/antigravity`, which caused a mismatch because
most upstream Nixpkgs extensions are hardcoded to install into
`/share/vscode/extensions`. This resulted in an empty or incomplete
extensions directory in the nix store.

Also added 'antigravity' to the list of packages requiring an
immutable extensions.json file.

Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-02-01 14:28:27 +01:00
koiandRobert Helgesson 47d542afdd vesktop: add QuickCSS support
vencord quickcss support with `extraQuickCss`
2026-02-01 14:09:05 +01:00
Vinicius DeolindoandRobert Helgesson 1742b5cb6a mergiraf: add jujutsu integration 2026-02-01 14:06:20 +01:00
Brenton SimpsonandRobert Helgesson ddf76d1618 gitignore: hide noisy Mac .DS_Store files from git 2026-02-01 13:13:00 +01:00
K900andRobert Helgesson 87d6611d26 desktoppr: fix useless escapes
Identified by recent changes in Lix.
2026-02-01 13:06:18 +01:00
Pedro de MattiaandRobert Helgesson f4ad5068ee Translate using Weblate (Portuguese)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Portuguese)

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Pedro de Mattia <pedromattia@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt_BR/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-31 16:22:15 +01:00
nesciasandRobert Helgesson 475921375d email: add posteo.de email account flavor
Add `posteo.de` to `accounts.email.accounts.<name>.flavor`. See
<https://posteo.de/en/help/how-do-i-set-up-posteo-in-an-email-client-pop3-imap-and-smtp>
for their setup guide.
2026-01-30 23:59:05 +01:00
Brenton SimpsonandAustin Horstman 1a7b0c4315 chromium: add plasmaSupport option for google-chrome
This flag allows Chrome to dynamically link to QT in order to introspect
your Plasma theme and make Chrome match.

Note, you may still need to add this entry to your home-manager config:
```
home.sessionVariables = [
  QT_QPA_PLATFORMTHEME = "kde";
];
```
2026-01-30 16:38:34 -06:00
Nikita RudenkoandRobert Helgesson 0fba737f8d lazygit: fix incorrect bash integration #8669
bashIntegration for lazygit is missing "function" keyword,
which leads to broken `~/.bashrc` file with errors like:

```
bash: ~/.bashrc: line 82: syntax error near unexpected token `('
bash: ~/.bashrc: line 82: `lg() {'
```
2026-01-30 13:27:05 +01:00
Robert Helgesson 175532b627 systemd: minor code cleanup
Trying to make more clear what is happening.
2026-01-29 22:45:38 +01:00
teto 5786e42530 neovim: add missing bit for extraLuaPackages
turns out I forgot to remove the now unnecessary wrapper arguments in
https://github.com/nix-community/home-manager/pull/8606.
This meant that `xdg.configFile."nvim/init.lua".enable = false` was
enough to fix the user issues but this should not be the case anymore.
2026-01-29 22:19:21 +01:00
magicquarkandRobert Helgesson 2a08ab21ab pyradio: add module 2026-01-29 16:10:27 +01:00
N4CH723HR3RandRobert Helgesson fdafcac367 cargo: add package option 2026-01-29 15:44:12 +01:00
Loïc ReynierandGitHub bd9f031efc starship: move init at the end of .bashrc (#8662)
Move Starship's Bash init at the end of .bashrc using mkOrder 1900.

Starship uses $PROMPT_COMMAND to generate timing information. To do so, it copies the original content of $PROMPT_COMMAND into $STARSHIP_PROMPT_COMMAND. Therefore it should be loaded last to prevent other program to append to $PROMPT_COMMAND.

Only Zoxide, which is initialized with mkOrder 2000, should be loaded after, see: ajeetdsouza/zoxide#1136
2026-01-28 16:06:41 -06:00
nersandMatthieu Coudron 02d763228d difftastic: add jujutsu integration 2026-01-28 18:46:11 +01:00
Wael NasreddineandGitHub eec72f1278 launchd: wait for /nix/store before starting agent (#8609)
On Darwin, launchd may attempt to start agents before the Nix store is
mounted and available. This leads to failures when the agent's executable
or arguments reside in the Nix store.

This change wraps the agent's command in a shell script that uses
/bin/wait4path to ensure /nix/store is ready before executing the
original program. It also ensures that ProgramArguments are correctly
escaped and concatenated.
2026-01-27 21:51:48 -08:00
Nikolaos KaraolidisandAustin Horstman ef5da06269 obsidian: add jq empty config file coalesce
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
Nikolaos KaraolidisandAustin Horstman 1012b2d005 obsidian: avoid using raw type
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
Nikolaos KaraolidisandAustin Horstman 0c2c72e43f obsidian: allow partial module configuration
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
programmerlexiandRobert Helgesson d505dc46dc Translate using Weblate (German)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (German)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: programmerlexi <lexi@reyer.name>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-27 21:04:46 +01:00
Brian EandRobert Helgesson fa1133a313 Translate using Weblate (Faroese)
Currently translated at 50.0% (8 of 16 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager Modules
2026-01-27 21:04:46 +01:00
sollnissandAustin Horstman a10c1e8f5a anki: fix autoSyncMediaMinutes and networkTimeout not being applied 2026-01-26 11:57:50 -06:00
Thierry DelafontaineandAustin Horstman 384786dc70 news: add proton-pass-agent entry 2026-01-26 09:44:48 -06:00
Thierry DelafontaineandAustin Horstman 85e3ee7e59 service.proton-pass-agent: init module 2026-01-26 09:44:48 -06:00
Aguirre MatteoandAustin Horstman 7213f7ee3e hyprlauncher: fix start every ten seconds 2026-01-26 09:42:51 -06:00
home-manager-ci[bot]andAustin Horstman f9ef8567c7 maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 1 maintainers
**Removed:** 0 maintainers
**Total:** 280 → 281 maintainers

** Added:** drupol

Generated by: lib/python/generate-all-maintainers.py
2026-01-26 09:42:25 -06:00
Austin Horstman 9de7d83327 tests/zsh: add highlighters overrride test
Test ability to drop main from arguments forcefully.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-26 09:42:11 -06:00
Austin Horstman d0cdb4101f zsh: fix highlighter backwards compatibility
Use the module system to set the default at user prio so that existing
configs don't clear out `main`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-26 09:42:11 -06:00
name.tar.xzandGitHub c37679d37b zsh: Set highlighters instead of appending to allow disabling main
This allows users to drop the main highlighter (or highlighters set by plugins sourced before eg: catppucin's zsh highlighting settings)
2026-01-25 21:12:10 -06:00
tarzstandAustin Horstman e3dc313032 zsh: refactor history to use setOptions 2026-01-25 20:00:42 -06:00
Austin Horstman 2590268ca7 ci: extract maintainers searches for main module
Some modules are broken up into multiple files. Search for primary
import file that will contain the meta information needed, when missing.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-25 16:56:02 -06:00
Mirza ArnautandGitHub 4d1a4cd3d9 news: add new web option in opencode 2026-01-25 16:48:26 -06:00
adityalal01andAustin Horstman 9637348153 Translate using Weblate (Hindi)
Currently translated at 17.9% (7 of 39 strings)

Co-authored-by: adityalal01 <erc202009@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hi/
Translation: Home Manager/Home Manager CLI
2026-01-25 16:04:04 -06:00
Austin Horstman 950704d781 ci: fix extract-maintainers, pass options to eval
Module eval was silently failing check... include options so that eval
works again with modules that require argument.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-25 16:01:03 -06:00
Mirza ArnautandAustin Horstman 63ecc7d495 opencode: handle string store paths in skill sources
Add support for store directory paths provided as strings, in addition
to the existing path type check for directories.
Context: certain project will include a `SKILL.md` file, and instead of
managing them via some 3rd party manager or manually, why not include
them from the source itself! I implemented this in my setup, since I
wanted to include the `SKILL.md` file from the
[beads](https://github.com/steveyegge/beads) project.
2026-01-25 15:50:05 -06:00
unlsycnandAustin Horstman db9cf9232f vscode: add Antigravity support
Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-01-25 15:49:30 -06:00
home-manager-ci[bot]andAustin Horstman 1ba1569a82 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
  → 'github:NixOS/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1?narHash=sha256-MJ27Cy2NtBEV5tsK%2BYraYr2g851f3Fl1LpNHDzDX15c%3D' (2026-01-21)
2026-01-25 15:47:32 -06:00
Mirza ArnautandAustin Horstman d9da6e6457 opencode: add web service configuration
Add configuration options for the opencode web service including host,
port, mDNS, logging, and CORS settings. Implement systemd user service
to run the web server with configurable parameters.
2026-01-25 15:46:27 -06:00
tetoandAustin Horstman 2539eba97a justfile: add a create-news-entry target
to help with discovery.
flakes can expose targets as well but:
1. they are not supported by everyone
2. there is a perf hit for now when copying the repo into the nix store
2026-01-24 15:18:44 -06:00
Jairo LlopisandAustin Horstman 082a4cd87c opencode: fix config file location
The file should be named `opencode.json`, not `config.json`.

Docs: https://opencode.ai/docs/config/#global

@moduon MT-13030
2026-01-23 10:55:49 -06:00
teto 356a88a574 neovim: rename extraLuaConfig to initLua
Now that the whole lua config is exposed via the extraLuaConfig option,
it's not "extra" anymore but the whole content. Renaming it to "initLua"
is more adequate and it makes the option more understandable I hope.
2026-01-23 17:41:46 +01:00
AerdenandAustin Horstman d055b309a6 mpdscribble: fix journal file location
It should be in the user's home directory instead of /var/lib
2026-01-22 19:45:34 -06:00
Austin Horstman 0b435f768e tests/neovim: add default/empty tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-22 19:39:50 -06:00
Austin Horstman bbd2e36fc9 neovim: handle empty user config lua
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-22 19:39:50 -06:00
Takeru MikenuandRobert Helgesson 64133886d9 Translate using Weblate (Japanese)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Japanese)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Takeru Mikenu <mikenu-jp@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ja/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-22 23:56:38 +01:00
teto b0491fe556 neovim: move LUA_(C)PATH setup from wrapping to init.lua
so alternative GUIs can find lua dependencies that are not plugins (for instance nio).
Some plugins depend on lua packages that are not vim plugins and thus
become "invisible" to nixpkgs as it stands.
For now they need to be specified manually via `extraLuaPackages` but
hopefully we can autodiscover those in nixpkgs.
2026-01-22 18:24:33 +01:00
Robert Helgesson ec0247a7a1 Translate using Weblate (Swedish)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager Modules
2026-01-21 18:08:05 +01:00
Hosted WeblateandRobert Helgesson bc68ab001c Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-21 18:08:05 +01:00
Robert Helgesson f81ce8613f Translate using Weblate (Swedish)
Currently translated at 88.8% (16 of 18 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager Modules
2026-01-21 18:08:05 +01:00
Pol DellaieraandAustin Horstman 2d7b64e32f fresh-editor: init module 2026-01-21 10:52:13 -06:00
Robert Helgesson 27b60942b7 home-manager: refactor activation checks
This is mainly to unify the error messages for more convenient and
consistent translation. Also allows somewhat more convenience if
additional checks are needed.
2026-01-21 13:14:01 +01:00
Robert Helgesson 8434914a03 tests: fix integration tests 2026-01-21 13:14:01 +01:00
home-manager-ci[bot]andRobert Helgesson d6e3935ec6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e4bae1bd10c9c57b2cf517953ab70060a828ee6f?narHash=sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc%3D' (2026-01-16)
  → 'github:NixOS/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
2026-01-21 09:38:39 +01:00
Hosted WeblateandRobert Helgesson 9997de2f62 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:57:21 +01:00
Robert Helgesson 873c137ead Translate using Weblate (Swedish)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (French)

Currently translated at 83.3% (15 of 18 strings)

Translate using Weblate (Swedish)

Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (French)

Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:57:21 +01:00
Robert Helgesson 775294baf4 home-manager: simplify error messages slightly 2026-01-20 21:52:11 +01:00
Hosted WeblateandRobert Helgesson a50511b63f Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:45:34 +01:00
Austin Horstman 63a87808f5 tests/bemenu: test short form empty prompt
Issue came up in migration that we couldn't do a supported short form
empty string.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-20 10:49:06 -06:00
Austin Horstman 987271a659 bemenu: revert back to toCommandLineShell
Just reverting back to manual approach for backwards compatibility.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-20 10:49:06 -06:00
Robert Helgesson 9c5f8aceb6 home-manager: improve a few i18n strings 2026-01-20 13:35:18 +01:00
MatildeandRobert Helgesson 895eddbee8 Translate using Weblate (Danish)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Danish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Matilde <matilde.alb@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/da/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/da/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 08:22:58 +01:00
home-manager-ci[bot]andAustin Horstman b56c5ad14f maintainers: update all-maintainers.nix
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

**Added:** 2 maintainers
**Removed:** 2 maintainers
**Total:** 280 → 280 maintainers

** Added:** JasmineLowen, einetuer

** Removed:** 0x5a4, robwalt

Generated by: lib/python/generate-all-maintainers.py
2026-01-19 09:29:06 -06:00
teto 8968092456 neovim: move plugins where expected
so we dont have to add some nix store path to rtp in the wrapper.
Makes the setup more in line with what neovim users are used to.
Also it means other neovim GUIs can see the plugins without wrapping.

A first version of this PR conflicted with existing
~/.local/share/nvim/site folders but this should be fine as it makes
only a subfolder readonly. 
I am able to mix rocks.nvim/vim.pack vim packages along with the
home-manager one for instance.
2026-01-19 15:56:01 +01:00
JessandAustin Horstman 2954aa2944 rclone: add autoMount option 2026-01-18 23:02:16 -06:00
JessandAustin Horstman 9e07a347f4 rclone: respect mounts enable option 2026-01-18 23:02:16 -06:00
JessandAustin Horstman 83eeebd967 restic: fix evaluation error in rcloneOptions
`lib.add` only works on integers.
2026-01-18 23:01:16 -06:00
Austin Horstman b9ded38afa news: bump nixpkgs channel
Getting eval error with lix, bumping resolves it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 22:55:07 -06:00
Austin Horstman 3c8cdb4e7e news: add gtk2 preferXdgDirectories entry
Let user's know the location has changed.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 22:52:00 -06:00
Guanran WangandAustin Horstman a207da48e4 gtk2: respect home.preferXdgDirectories 2026-01-18 22:52:00 -06:00
leiserfgandAustin Horstman 521d5ea1a2 television: Add nushell support 2026-01-18 15:02:51 -06:00
Austin Horstman 01415693b0 maintainers: remove genericnerdyusername
https: //github.com/NixOS/nixpkgs/pull/477019
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 13:44:51 -06:00
home-manager-ci[bot]andAustin Horstman c1305a6607 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
  → 'github:NixOS/nixpkgs/e4bae1bd10c9c57b2cf517953ab70060a828ee6f?narHash=sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc%3D' (2026-01-16)
2026-01-18 13:44:51 -06:00
Ryan HoriguchiandAustin Horstman 5148e08046 vscode: fix argv.json path 2026-01-18 09:24:24 -06:00
Thierry DelafontaineandGitHub 83bcb17377 claude-code: add enableMcpIntegration
Add `enableMcpIntegration` option to merge MCP servers from
`programs.mcp.servers` into Claude Code configuration. Claude Code
servers take precedence over general MCP servers when both define
the same server name.
2026-01-17 21:33:01 -06:00
Ryan HoriguchiandAustin Horstman 1c27557d99 vscode: add argv.json support 2026-01-17 21:32:44 -06:00
ckgxrgandAustin Horstman 05fd3babab linux-wallpaperengine: add examples and clarify options usage 2026-01-17 20:25:15 -06:00
Yiheng HeandAustin Horstman 8fd20c8d48 wlsunset: add package to home.packages 2026-01-17 20:24:14 -06:00
Brian EandAustin Horstman c47b2cc64a Translate using Weblate (Faroese)
Currently translated at 41.1% (7 of 17 strings)

Translate using Weblate (Faroese)

Currently translated at 15.3% (6 of 39 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fo/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-16 15:16:50 -06:00
teto 3c71ea724c neovim: refactor to use neovimUtils.makeVimPackageInfo 2026-01-16 21:41:35 +01:00
Timothy GallionandAustin Horstman d21bee5abf floorp: Fix tests for floorp-bin change
Several of the `floorp` tests were broken by the upstream switch to
`floorp-bin`. Most changes were to do with not being able to use
`programs.floorp.wrappedPackageName` in expected results.
2026-01-15 20:29:15 -06:00
Jesung YangandAustin Horstman bba859cd85 yazi: fix unintended recursive calls
Use `command` (POSIX) and `^` (Nushell) to prevent recursive function
calls when `cfg.shellWrapperName` is set to "yazi".

Previously, if `cfg.shellWrapperName` was set to "yazi", the invocation
of `yazi` within the shell integration function triggered the function
itself instead of the binary. This name conflict prevents users from
using the binary name as-is when shell integration is enabled.

Hence, fix this by using shell-specific mechanisms to target the
underlying executable, bypassing any name collisions.

This aligns with the official documentation:
- https://github.com/yazi-rs/yazi-rs.github.io/blob/2c839b37c80917ac3cf2d8c98949a392212d93ba/docs/quick-start.md?plain=1#L29
- https://github.com/yazi-rs/yazi-rs.github.io/blob/2c839b37c80917ac3cf2d8c98949a392212d93ba/docs/quick-start.md?plain=1#L56
2026-01-15 15:28:09 -06:00
Hauke SchnauandAustin Horstman cae8abb629 news: add codex skills option entry 2026-01-15 15:26:27 -06:00
Hauke SchnauandAustin Horstman f1b5f20210 codex: unify skills option and tests 2026-01-15 15:26:27 -06:00
Hauke SchnauandAustin Horstman 34a9ab0fae codex: add skills options 2026-01-15 15:26:27 -06:00
Matthieu CoudronandGitHub b4d88c9ac4 pimsync: use 'users' as group and dont make calendar world-readable (#8564)
Using username as unix group doesnt work by default (at least on nixos):
janv. 14 14:54:14 jedha hm-activate-teto[100922]: removed '/home/teto/.local/state/home-manager/gcroots/new-home'
janv. 14 14:54:14 jedha systemd-tmpfiles[100921]: /home/teto/home/config/user-tmpfiles.d/home-manager.conf:4: Failed to resolve group 'teto': No such process

use "users" instead
2026-01-15 00:56:00 +01:00
Arthur KhashaevandGitHub 27613c7299 systemd: add packages option (#8540)
* systemd: add `packages` option

The `systemd.user.packages` option is the Home Manager equivalent of
NixOS’s `systemd.packages` option and provides a way to specify packages
providing systemd user units.

This option is similar to `dbus.packages`.
* systemd: only create the parent directory if there are packages to symlink
2026-01-15 00:51:28 +01:00
Greg HellingsandAustin Horstman 0b24f3a487 keychain: Fix module parsing in Nushell integration 2026-01-14 17:13:57 -06:00
Vidhan BhattandGitHub e8e0f53079 nixos: flip && to prevent recursion errors
The recent change to add the ability to use systemd units for users made it so configs with home-manager.users dependent on config.users.users failed with recursion errors. Simply flipping the &&s so it avoids running the check if the feature is disabled fixes this.
2026-01-14 16:35:15 -06:00
Aguirre MatteoandAustin Horstman 57e99ed4a1 news: add aphorme entry 2026-01-14 16:25:31 -06:00
Aguirre MatteoandAustin Horstman 9ccc5b1ef4 aphorme: add module 2026-01-14 16:25:31 -06:00
Aguirre MatteoandAustin Horstman 41cae63118 news: add aperture entry 2026-01-14 16:23:09 -06:00
Aguirre MatteoandAustin Horstman 9ab59a43cc aperture: add module 2026-01-14 16:23:09 -06:00
Naïm Camille FavierandAustin Horstman 85c83f7096 github: remove stale bot 2026-01-14 11:10:56 -06:00
Zack WeinbergandAustin Horstman df6eeded85 news entry for new home-manager.startAsUserService option 2026-01-14 09:19:49 -06:00
PasqualeandAustin Horstman 4a5f932f22 nixos: option to use user service for activation
Add an option, `home-manager.startAsUserService`, to use systemd user
services for per-user activation, rather than activating all users'
environments on boot using systemd system services. This option
enables use of home-manager in configurations where users' home
directories are not available until they log in (for example, when
using pam_mount).
2026-01-14 09:19:49 -06:00
Bruno BigrasandMatthieu Coudron a0a505f803 treewide: XDG_CONFIG_HOME/.config -> XDG_CONFIG_HOME
$XDG_CONFIG_HOME already contains the .config subdir
2026-01-14 14:27:34 +01:00
Austin Horstman 4e235a8746 treewide: nix fmt
nix fmt updated in nixpkgs with string handling changes

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-13 22:51:16 -06:00
Austin Horstman 0150937c66 maintainers: remove duplicate hey2022
Added to nixpkgs

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-13 22:51:16 -06:00
home-manager-ci[bot]andAustin Horstman 24ee2d29ce flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
  → 'github:NixOS/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
2026-01-13 22:51:16 -06:00
Nikolaos KaraolidisandGitHub c5d67517bb obsidian: open last used vault on startup
Resolves #7406 and updates some obsidian configurations to the latest upstream defaults.
2026-01-13 18:11:23 -06:00
1959 changed files with 52397 additions and 13672 deletions
+12
View File
@@ -47,3 +47,15 @@ b4752b0eda6302b92a6d5dd554c83f188bc3ae6d
# Treewide remove noops
f2f1076c1f789595c2a2b18b76466fbd691025dd
# Treewide statix cleanup
01ea51d7065e0ab06a09df9db4d1c17f6eb2675f
74d8d470345b9324f89e14d675c14b92dc4a091d
5209a256fd507322b0dd09ade7bc61923da948cf
11ad9d2e42ebf6d00db4d7bae252f1c6b7dd36a4
74b0e979375b0ed469e2394820aa50ba2114800b
de90ee24082bb8dd44145f5c733b807467856820
# Deadnix cleanup
71402c5df34df5ee7b6c10d738018f9f0c8bde2b
a93d80bcec089abf80894c25ee3934b7e196bbd9
+3 -3
View File
@@ -22,10 +22,10 @@ Also make sure to read the guidelines found at
- [ ] Change is backwards compatible.
- [ ] Code formatted with `nix fmt` or
`nix-shell -p treefmt nixfmt deadnix keep-sorted nixf-diagnose --run treefmt`.
`nix-shell -A dev --run treefmt`.
- [ ] Code tested through `nix run .#tests -- test-all` or
`nix-shell --pure tests -A run.all`.
- [ ] Code tested through `nix build .#test-all`
or a targeted `nix run .#tests -- <pattern>`.
- [ ] Test cases updated/added. See [example](https://github.com/nix-community/home-manager/commit/f3fbb50b68df20da47f9b0def5607857fcc0d021#diff-b61a6d542f9036550ba9c401c80f00ef).
+15 -1
View File
@@ -9,8 +9,22 @@ updates:
prefix: "ci:"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "release-25.11"
target-branch: "release-26.05"
schedule:
interval: "weekly"
commit-message:
prefix: "ci:"
- package-ecosystem: "nix"
directory: "/"
target-branch: "master"
schedule:
interval: "weekly"
commit-message:
prefix: "flake:"
- package-ecosystem: "nix"
directory: "/"
target-branch: "release-26.05"
schedule:
interval: "weekly"
commit-message:
prefix: "flake:"
+192 -31
View File
@@ -1,15 +1,39 @@
"release":
- base-branch:
- '^release-.*'
"ai":
- changed-files:
- any-glob-to-any-file:
- modules/programs/aiac.nix
- modules/programs/aichat.nix
- modules/programs/aider-chat.nix
- modules/programs/claude-code/**/*
- modules/programs/codex.nix
- modules/programs/fabric-ai.nix
- modules/programs/antigravity-cli.nix
- modules/programs/mcp.nix
- modules/programs/mistral-vibe.nix
- modules/programs/mods.nix
- modules/programs/opencode.nix
- modules/services/local-ai.nix
- modules/services/ollama.nix
"audio":
- changed-files:
- any-glob-to-any-file:
- modules/services/amberol.nix
- modules/programs/beets.nix
- modules/programs/cava.nix
- modules/programs/cavalier.nix
- modules/programs/cmus.nix
- modules/programs/ncmpcpp.nix
- modules/programs/ncspot.nix
- modules/programs/pianobar.nix
- modules/programs/pyradio.nix
- modules/programs/radio-active.nix
- modules/programs/radio-cli.nix
- modules/programs/rmpc.nix
- modules/programs/spotify-player.nix
- modules/programs/timidity.nix
- modules/services/amberol.nix
- modules/services/easyeffects.nix
- modules/services/fluidsynth.nix
- modules/services/librespot.nix
@@ -18,6 +42,7 @@
- modules/services/mpd-discord-rpc.nix
- modules/services/mpd-mpris.nix
- modules/services/mpd.nix
- modules/services/mpdris2-rs.nix
- modules/services/mpdris2.nix
- modules/services/mpdscribble.nix
- modules/services/mpris-proxy.nix
@@ -30,6 +55,7 @@
"automation":
- changed-files:
- any-glob-to-any-file:
- modules/services/autotiling.nix
- modules/services/caffeine.nix
- modules/services/darkman.nix
- modules/services/devilspie2.nix
@@ -41,31 +67,42 @@
- any-glob-to-any-file:
- modules/programs/borgmatic.nix
- modules/programs/rclone.nix
- modules/programs/restic.nix
- modules/services/borgmatic.nix
- modules/services/restic.nix
- tests/modules/programs/borgmatic/**/*
- tests/modules/services/borgmatic/**/*
"bars":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ashell.nix
- modules/programs/eww.nix
- modules/programs/hyprpanel/default.nix
- modules/programs/i3bar-river.nix
- modules/programs/sketchybar.nix
- modules/programs/tray-tui.nix
- modules/programs/waybar.nix
- modules/programs/xmobar.nix
- modules/programs/yambar.nix
- modules/services/polybar.nix
- modules/services/taffybar.nix
- tests/modules/programs/ashell/**/*
- tests/modules/programs/i3bar-river/**/*
- tests/modules/programs/waybar/**/*
- tests/modules/services/polybar/**/*
"browsers":
- changed-files:
- any-glob-to-any-file:
- modules/misc/mozilla-messaging-hosts.nix
- modules/programs/amfora.nix
- modules/programs/chawan.nix
- modules/programs/chromium.nix
- modules/programs/firefox/**/*
- modules/programs/firefoxpwa.nix
- modules/programs/floorp.nix
- modules/programs/librewolf.nix
- modules/programs/nyxt.nix
- modules/programs/qutebrowser.nix
- modules/programs/w3m.nix
- tests/modules/programs/chromium/**/*
- tests/modules/programs/firefox/**/*
- tests/modules/programs/qutebrowser/**/*
@@ -74,8 +111,11 @@
- any-glob-to-any-file:
- modules/*/vdirsyncer*.nix
- modules/accounts/calendar.nix
- modules/programs/khal*.nix
- modules/programs/khal/**/*
- modules/programs/pimsync/**/*
- modules/programs/qcal.nix
- modules/programs/vdirsyncer/**/*
- modules/services/pimsync.nix
- tests/modules/programs/khal/**/*
"clipboard":
- changed-files:
@@ -95,7 +135,10 @@
"cli-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/aliae.nix
- modules/programs/amoco.nix
- modules/programs/antidote.nix
- modules/programs/atool.nix
- modules/programs/atuin.nix
- modules/programs/autojump.nix
- modules/programs/bashmount.nix
@@ -105,47 +148,62 @@
- modules/programs/broot.nix
- modules/programs/btop.nix
- modules/programs/carapace.nix
- modules/programs/clock-rs.nix
- modules/programs/delta.nix
- modules/programs/diff-highlight.nix
- modules/programs/diff-so-fancy.nix
- modules/programs/difftastic.nix
- modules/programs/dircolors.nix
- modules/programs/direnv.nix
- modules/programs/eza.nix
- modules/programs/fastfetch.nix
- modules/programs/fd.nix
- modules/programs/fzf.nix
- modules/programs/gurk-rs.nix
- modules/programs/goto.nix
- modules/programs/grep.nix
- modules/programs/hstr.nix
- modules/programs/htop.nix
- modules/programs/hwatch.nix
- modules/programs/hyfetch.nix
- modules/programs/infat.nix
- modules/programs/inori.nix
- modules/programs/jq*.nix
- modules/programs/just.nix
- modules/programs/keychain.nix
- modules/programs/less.nix
- modules/programs/lesspipe.nix
- modules/programs/lsd.nix
- modules/programs/man.nix
- modules/programs/mc.nix
- modules/programs/mcfly.nix
- modules/programs/navi.nix
- modules/programs/nix-your-shell.nix
- modules/programs/nom.nix
- modules/programs/parallel.nix
- modules/programs/patdiff.nix
- modules/programs/pay-respects.nix
- modules/programs/pazi.nix
- modules/programs/pet.nix
- modules/programs/pistol.nix
- modules/programs/pls.nix
- modules/programs/readline.nix
- modules/programs/riff.nix
- modules/programs/ripgrep*.nix
- modules/programs/scmpuff.nix
- modules/programs/screen.nix
- modules/programs/script-directory.nix
- modules/programs/sesh.nix
- modules/programs/sherlock.nix
- modules/programs/skim.nix
- modules/programs/superfile.nix
- modules/programs/tealdeer.nix
- modules/programs/television.nix
- modules/programs/thefuck.nix
- modules/programs/tmate.nix
- modules/programs/tmux.nix
- modules/programs/topgrade.nix
- modules/programs/translate-shell.nix
- modules/programs/ty.nix
- modules/programs/uv.nix
- modules/programs/vivid.nix
- modules/programs/watson.nix
- modules/programs/z-lua.nix
- modules/programs/zellij.nix
@@ -165,18 +223,26 @@
"containers":
- changed-files:
- any-glob-to-any-file:
- modules/services/podman/linux/**/*
- modules/programs/distrobox.nix
- modules/programs/docker-cli.nix
- modules/services/colima.nix
- modules/services/podman/**/*
- modules/services/podman/linux/**/*
"desktop-ui":
- changed-files:
- any-glob-to-any-file:
- modules/programs/desktoppr.nix
- modules/programs/gnome-shell.nix
- modules/programs/hyprshot.nix
- modules/programs/quickshell.nix
- modules/programs/satty.nix
- modules/programs/swappy.nix
- modules/services/avizo.nix
- modules/services/blanket.nix
- modules/services/flameshot.nix
- modules/programs/gnome-shell.nix
- modules/services/gromit-mpx.nix
- modules/services/linux-wallpaperengine.nix
- modules/services/picom.nix
- modules/services/random-background.nix
- modules/services/volnoti.nix
- modules/services/wob.nix
@@ -184,16 +250,20 @@
"desktop-utilities":
- changed-files:
- any-glob-to-any-file:
- modules/programs/autorandr.nix
- modules/programs/bluetuith.nix
- modules/services/autorandr.nix
- modules/services/blueman-applet.nix
- modules/services/gnome-keyring.nix
- modules/services/lxqt-policykit-agent.nix
- modules/services/network-manager-applet.nix
- modules/services/polkit-gnome.nix
- modules/services/redshift-gammastep/**/*
- modules/services/sctd.nix
- modules/services/snixembed.nix
- modules/services/status-notifier-watcher.nix
- modules/services/systembus-notify.nix
- modules/services/tailscale-systray.nix
- modules/services/trayscale.nix
- modules/services/udiskie.nix
- modules/services/unclutter.nix
@@ -201,30 +271,40 @@
"dev-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/amber.nix
- modules/programs/awscli.nix
- modules/programs/bacon.nix
- modules/programs/bun.nix
- modules/programs/cargo.nix
- modules/programs/darcs.nix
- modules/programs/earthly.nix
- modules/programs/eclipse.nix
- modules/programs/gcc.nix
- modules/programs/go.nix
- modules/programs/gradle.nix
- modules/programs/granted.nix
- modules/programs/grype.nix
- modules/programs/java.nix
- modules/programs/jetbrains-remote.nix
- modules/programs/k9s.nix
- modules/programs/kraftkit.nix
- modules/programs/kubecolor.nix
- modules/programs/kubeswitch.nix
- modules/programs/lazydocker.nix
- modules/programs/lazysql.nix
- modules/programs/matplotlib.nix
- modules/programs/mercurial.nix
- modules/programs/mergiraf.nix
- modules/programs/mise.nix
- modules/programs/mods.nix
- modules/programs/mr.nix
- modules/programs/mypy.nix
- modules/programs/nh.nix
- modules/programs/nix-index.nix
- modules/programs/nix-init.nix
- modules/programs/nix-search-tv.nix
- modules/programs/npm.nix
- modules/programs/numbat.nix
- modules/programs/octant.nix
- modules/programs/nvchecker.nix
- modules/programs/opam.nix
- modules/programs/openstackclient.nix
- modules/programs/pgcli.nix
@@ -232,9 +312,9 @@
- modules/programs/poetry.nix
- modules/programs/pyenv.nix
- modules/programs/pylint.nix
- modules/programs/python*.nix
- modules/programs/pywal.nix
- modules/programs/rbenv.nix
- modules/programs/rizin.nix
- modules/programs/ruff.nix
- modules/programs/sagemath.nix
- modules/programs/sbt.nix
@@ -243,15 +323,22 @@
- modules/programs/sqls.nix
- modules/programs/tex-fmt.nix
- modules/programs/texlive.nix
- modules/programs/tirith.nix
- modules/programs/vim-vint.nix
- modules/programs/visidata.nix
- modules/programs/yarn/default.nix
- modules/services/lorri.nix
- tests/modules/programs/go/**/*
- tests/modules/programs/java/**/*
"editors":
- changed-files:
- any-glob-to-any-file:
- modules/programs/amp.nix
- modules/programs/anvil-editor.nix
- modules/programs/cudatext.nix
- modules/programs/emacs.nix
- modules/programs/formiko.nix
- modules/programs/fresh-editor.nix
- modules/programs/helix.nix
- modules/programs/kakoune.nix
- modules/programs/lapce.nix
@@ -259,8 +346,9 @@
- modules/programs/ne.nix
- modules/programs/neovide.nix
- modules/programs/neovim.nix
- modules/programs/vim*.nix
- modules/programs/vscode.nix
- modules/programs/retext.nix
- modules/programs/vim.nix
- modules/programs/vscode/**/*
- modules/programs/zed-editor.nix
- modules/services/emacs.nix
- tests/modules/programs/emacs/**/*
@@ -284,41 +372,61 @@
"gaming":
- changed-files:
- any-glob-to-any-file:
- modules/programs/am2rlauncher.nix
- modules/programs/kodi.nix
- modules/services/ludusavi.nix
- modules/programs/lutris.nix
- modules/programs/mangohud.nix
- modules/programs/prismlauncher.nix
- modules/programs/retroarch.nix
- modules/programs/sm64ex.nix
- modules/programs/ttyper.nix
- modules/programs/vinegar.nix
- modules/services/ludusavi.nix
"git":
- changed-files:
- any-glob-to-any-file:
- modules/programs/gh*.nix
- modules/programs/gh.nix
- modules/programs/gh-dash.nix
- modules/programs/git*.nix
- modules/programs/jjui.nix
- modules/programs/jujutsu.nix
- modules/programs/lazygit.nix
- modules/programs/lazyworktree.nix
- modules/programs/radicle.nix
- modules/programs/sapling.nix
- modules/services/git-sync.nix
- modules/services/radicle.nix
- tests/modules/programs/gh/**/*
- tests/modules/programs/gh-dash/**/*
- tests/modules/programs/git/**/*
"mail":
- changed-files:
- any-glob-to-any-file:
- modules/*/mbsync*
- modules/programs/aerc*.nix
- modules/programs/alot*.nix
- modules/programs/aerc/**/*
- modules/programs/afew.nix
- modules/programs/alot/**/*
- modules/programs/astroid/**/*
- modules/programs/getmail*
- modules/programs/getmail/**/*
- modules/programs/himalaya.nix
- modules/programs/lieer.nix
- modules/programs/mbsync/**/*
- modules/programs/meli.nix
- modules/programs/msmtp*
- modules/programs/msmtp/**/*
- modules/programs/mu.nix
- modules/programs/mujmap.nix
- modules/programs/neomutt*
- modules/programs/notmuch*.nix
- modules/programs/offlineimap*.nix
- modules/programs/neomutt/**/*
- modules/programs/notmuch/**/*
- modules/programs/offlineimap/**/*
- modules/programs/thunderbird.nix
- modules/services/imapnotify*.nix
- modules/services/getmail.nix
- modules/services/imapnotify/**/*
- modules/services/lieer.nix
- modules/services/muchsync.nix
- modules/services/protonmail-bridge.nix
- tests/modules/programs/aerc/*
- tests/modules/programs/alot/*
- tests/modules/programs/himalaya/*
@@ -329,8 +437,10 @@
"messaging":
- changed-files:
- any-glob-to-any-file:
- modules/programs/chawan.nix
- modules/programs/abaddon.nix
- modules/programs/algia.nix
- modules/programs/discocss.nix
- modules/programs/discord.nix
- modules/programs/element-desktop.nix
- modules/programs/gurk-rs.nix
- modules/programs/halloy.nix
@@ -343,7 +453,9 @@
- modules/programs/senpai.nix
- modules/programs/tiny.nix
- modules/programs/vesktop.nix
- modules/programs/zapzap.nix
- modules/services/pantalaimon.nix
- tests/modules/programs/gurk-rs/**/*
- tests/modules/programs/irssi/**/*
- tests/modules/programs/nheko/**/*
"monitoring":
@@ -370,9 +482,14 @@
"productivity":
- changed-files:
- any-glob-to-any-file:
- modules/programs/anki/**/*
- modules/programs/aphorme.nix
- modules/programs/calibre.nix
- modules/programs/comodoro.nix
- modules/programs/foliate.nix
- modules/programs/info.nix
- modules/programs/joplin-desktop.nix
- modules/programs/jrnl.nix
- modules/programs/ledger.nix
- modules/programs/newsboat.nix
- modules/programs/obsidian.nix
@@ -380,12 +497,15 @@
- modules/programs/pandoc.nix
- modules/programs/papis.nix
- modules/programs/pubs.nix
- modules/programs/sioyek.nix
- modules/programs/taskwarrior.nix
- modules/programs/todoman.nix
- modules/programs/zathura.nix
- modules/services/comodoro.nix
- modules/services/rsibreak.nix
- modules/services/safeeyes.nix
- modules/services/taskwarrior-sync.nix
- modules/services/tomat.nix
"password-manager":
- changed-files:
- any-glob-to-any-file:
@@ -393,12 +513,16 @@
- modules/programs/keepassxc.nix
- modules/programs/password-store.nix
- modules/programs/rbw.nix
- modules/programs/rofi-pass.nix
- modules/services/pass-secret-service.nix
- modules/services/proton-pass-agent.nix
- tests/modules/programs/keepassxc/**/*
- tests/modules/programs/password-store/**/*
- tests/modules/programs/rofi-pass/**/*
"photo":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ahoviewer.nix
- modules/programs/feh.nix
- modules/programs/gallery-dl.nix
- modules/programs/imv.nix
@@ -409,14 +533,16 @@
- changed-files:
- any-glob-to-any-file:
- modules/lib/zsh.nix
- modules/programs/bash*.nix
- modules/programs/bash.nix
- modules/programs/fish.nix
- modules/programs/intelli-shell.nix
- modules/programs/ion.nix
- modules/programs/nushell.nix
- modules/programs/oh-my-posh.nix
- modules/programs/powerline-go.nix
- modules/programs/sheldon.nix
- modules/programs/starship.nix
- modules/programs/zsh*.nix
- modules/programs/zsh/**/*
- tests/modules/programs/bash/**/*
- tests/modules/programs/fish/**/*
- tests/modules/programs/nushell/**/*
@@ -424,15 +550,19 @@
"sync":
- changed-files:
- any-glob-to-any-file:
- modules/programs/acd-cli.nix
- modules/programs/airlift.nix
- modules/programs/alistral.nix
- modules/programs/onedrive.nix
- modules/programs/rtorrent.nix
- modules/services/davmail.nix
- modules/services/dropbox.nix
- modules/services/etesync-dav.nix
- modules/services/kdeconnect.nix
- modules/services/megasync.nix
- modules/services/nextcloud-client.nix
- modules/programs/onedrive.nix
- modules/services/owncloud-client.nix
- modules/programs/rtorrent.nix
- modules/services/pizauth.nix
- modules/services/syncthing.nix
- modules/services/unison.nix
- tests/modules/services/dropbox/**/*
@@ -440,28 +570,36 @@
"system":
- changed-files:
- any-glob-to-any-file:
- modules/programs/anup.nix
- modules/programs/command-not-found/**/*
- modules/programs/gpg.nix
- modules/programs/home-manager.nix
- modules/programs/mullvad-vpn.nix
- modules/programs/opkssh.nix
- modules/programs/ssh.nix
- modules/services/gpg-agent.nix
- modules/services/home-manager*.nix
- modules/services/kbfs.nix
- modules/services/keybase.nix
- modules/services/macos-remap-keys/**/*
- modules/services/nix-gc.nix
- modules/services/ssh-agent.nix
- modules/services/ssh-tpm-agent.nix
- modules/services/yubikey-agent.nix
- tests/modules/services/home-manager*/**/*
"system-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/andcli.nix
- modules/programs/aria2.nix
- modules/programs/aria2p.nix
- modules/programs/trippy.nix
- modules/services/arrpc.nix
- modules/services/cachix-agent.nix
- modules/services/fusuma.nix
- modules/services/grobi.nix
- modules/services/hound.nix
- modules/services/jankyborders.nix
- modules/services/ollama.nix
- modules/services/opensnitch-ui.nix
- modules/services/osmscout-server.nix
- modules/services/plan9port.nix
@@ -479,6 +617,7 @@
- modules/programs/ghostty.nix
- modules/programs/gnome-terminal.nix
- modules/programs/kitty.nix
- modules/programs/macchina/**/*
- modules/programs/ptyxis.nix
- modules/programs/rio.nix
- modules/programs/terminator.nix
@@ -486,17 +625,24 @@
- modules/programs/urxvt.nix
- modules/programs/waveterm.nix
- modules/programs/wezterm.nix
- modules/services/shpool.nix
- tests/modules/programs/alacritty/**/*
- tests/modules/programs/foot/**/*
- tests/modules/programs/ghostty/**/*
- tests/modules/programs/kitty/**/*
"video":
- changed-files:
- any-glob-to-any-file:
- modules/programs/animdl.nix
- modules/programs/anime-downloader.nix
- modules/programs/aperture.nix
- modules/programs/asciinema.nix
- modules/programs/freetube.nix
- modules/programs/mpv.nix
- modules/programs/mpvpaper.nix
- modules/programs/obs-studio.nix
- modules/programs/streamlink.nix
- modules/programs/twitch-tui.nix
- modules/programs/yt-dlp.nix
- modules/services/jellyfin-mpv-shim.nix
- modules/services/plex-mpv-shim.nix
@@ -505,13 +651,14 @@
- changed-files:
- any-glob-to-any-file:
- modules/programs/looking-glass-client.nix
- modules/services/barrier.nix
- modules/services/remmina.nix
- modules/services/wayvnc.nix
"wayland":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ashell.nix
- modules/programs/anyrun.nix
- modules/services/awww.nix
- modules/programs/bemenu.nix
- modules/programs/fuzzel.nix
- modules/programs/hyprlock.nix
@@ -524,12 +671,19 @@
- modules/programs/waybar.nix
- modules/programs/waylogout.nix
- modules/programs/wayprompt.nix
- modules/programs/wleave.nix
- modules/programs/wlogout.nix
- modules/programs/wofi.nix
- modules/programs/workstyle.nix
- modules/programs/yofi.nix
- modules/programs/vicinae/**/*
- modules/programs/i3bar-river.nix
- modules/services/fnott.nix
- modules/services/hypridle.nix
- modules/services/hyprlauncher.nix
- modules/services/hyprpaper.nix
- modules/services/hyprpolkitagent.nix
- modules/services/hyprshell.nix
- modules/services/hyprsunset.nix
- modules/services/kanshi.nix
- modules/services/mako.nix
@@ -537,12 +691,15 @@
- modules/services/swayidle.nix
- modules/services/swaync.nix
- modules/services/swayosd.nix
- modules/services/swww.nix
- modules/services/walker.nix
- modules/services/way-displays.nix
- modules/services/wlsunset.nix
- modules/services/wluma.nix
- modules/services/wpaperd.nix
- tests/modules/programs/ashell/**/*
- tests/modules/programs/i3bar-river/**/*
- tests/modules/programs/swaylock/**/*
- tests/modules/programs/vicinae/**/*
- tests/modules/programs/waybar/**/*
"window-managers":
- changed-files:
@@ -556,8 +713,10 @@
"x11":
- changed-files:
- any-glob-to-any-file:
- modules/programs/i3*.nix
- modules/programs/rofi*.nix
- modules/programs/i3blocks.nix
- modules/programs/i3status-rust.nix
- modules/programs/i3status.nix
- modules/programs/rofi.nix
- modules/programs/tint2.nix
- modules/programs/xmobar.nix
- modules/programs/yambar.nix
@@ -577,7 +736,9 @@
- modules/services/xscreensaver.nix
- modules/services/xsettingsd.nix
- modules/services/xsuspender.nix
- tests/modules/programs/i3*/**/*
- tests/modules/programs/i3blocks/**/*
- tests/modules/programs/i3status-rust/**/*
- tests/modules/programs/i3status/**/*
- tests/modules/programs/rofi/**/*
- tests/modules/services/picom/**/*
- tests/modules/services/polybar/**/*
-71
View File
@@ -1,71 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
daysUntilStale: 90
daysUntilClose: false
staleLabel: "status: stale"
issues:
markComment: |
<p>
Thank you for your contribution!
I marked this issue as stale due to inactivity.
Please be considerate of people watching this issue and receiving notifications before commenting 'I have this issue too'.
We welcome additional information that will help resolve this issue.
<b>Please read the relevant sections below before commenting.</b>
</p>
<details>
<summary><b>If you are the original author of the issue</b></summary>
<p>
* If this is resolved, please consider closing it so that the maintainers know not to focus on this.
* If this might still be an issue, but you are not interested in promoting its resolution, please consider closing it while encouraging others to take over and reopen an issue if they care enough.
* If you know how to solve the issue, please consider submitting a Pull Request that addresses this issue.
</p>
</details>
<details>
<summary><b>If you are <i>not</i> the original author of the issue</b></summary>
<p>
* If you are also experiencing this issue, please add details of your situation to help with the debugging process.
* If you know how to solve the issue, please consider submitting a Pull Request that addresses this issue.
</p>
</details>
<details>
<summary><b>Memorandum on closing issues</b></summary>
<p>
Don't be afraid to manually close an issue, even if it holds valuable information.
Closed issues stay in the system for people to search, read, cross-reference, or even reopen nothing is lost!
Closing obsolete issues is an important way to help maintainers focus their time and effort.
</p>
</details>
pulls:
markComment: |
<p>
Thank you for your contribution!
I marked this pull request as stale due to inactivity.
<b>Please read the relevant sections below before commenting.</b>
</p>
<details>
<summary><b>If you are the original author of the PR</b></summary>
<p>
* GitHub sometimes doesn't notify people who commented / reviewed a PR previously when you (force) push commits. *If you have addressed the reviews* you can [officially ask for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review) from those who commented to you or anyone else.
* If it is unfinished but you plan to finish it, please mark it as a draft.
* If you don't expect to work on it any time soon, please consider closing it with a short comment encouraging someone else to pick up your work.
* To get things rolling again, rebase the PR against the target branch and address valid comments.
</p>
</details>
<details>
<summary><b>If you are <i>not</i> the original author of the PR</b></summary>
<p>
* If you want to pick up the work on this PR, please create a new PR and indicate that it supercedes and closes this PR.
</p>
</details>
+3 -3
View File
@@ -25,16 +25,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v2
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- uses: actions/checkout@v6
- uses: actions/checkout@v7
with:
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
ref: ${{ github.event.pull_request.head.sha }}
ref: ${{ github.event.pull_request.base.sha }}
- name: Create backport PRs
id: backport
uses: korthout/backport-action@v4
+3 -3
View File
@@ -12,11 +12,11 @@ jobs:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v16
nix_path: nixpkgs=channel:nixpkgs-unstable
- uses: cachix/cachix-action@v17
with:
name: nix-community
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
+11
View File
@@ -18,7 +18,18 @@ jobs:
runs-on: ubuntu-latest
if: github.repository_owner == 'nix-community'
steps:
- name: Get changed files count
id: count
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
COUNT=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUMBER/files" --paginate --jq '.[].filename' | grep -c '^modules/' || true)
echo "Found $COUNT changed module files."
echo "count=$COUNT" >> "$GITHUB_OUTPUT"
- uses: actions/labeler@v6
if: steps.count.outputs.count <= 10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true
+7 -7
View File
@@ -16,14 +16,14 @@ jobs:
github.event.pull_request.state == 'open'
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v2
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- name: Checkout code
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.base.sha }}
- name: Get Nixpkgs revision from flake.lock
@@ -42,12 +42,12 @@ jobs:
GH_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
CHANGED_FILES=$(gh pr diff $PR_NUMBER --name-only | grep '^modules/' | grep -v '^modules/\(po\|.*\/news\)/' || true)
CHANGED_FILES=$(gh pr diff "$PR_NUMBER" --name-only | grep '^modules/' | grep -v '^modules/\(po\|.*\/news\)/' || true)
echo "Changed files:"
echo "$CHANGED_FILES"
echo "changed_files<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "changed_files<<EOF" >> "$GITHUB_OUTPUT"
echo "$CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- name: Extract Maintainers
id: extract-maintainers
env:
@@ -58,7 +58,7 @@ jobs:
MAINTAINERS=$(lib/python/extract-maintainers.py \
--changed-files "$CHANGED_FILES" \
--pr-author "$PR_AUTHOR")
echo "maintainers=$MAINTAINERS" >> $GITHUB_OUTPUT
echo "maintainers=$MAINTAINERS" >> "$GITHUB_OUTPUT"
echo "Found maintainers: $MAINTAINERS"
- name: Manage Reviewers
env:
+39 -17
View File
@@ -6,17 +6,20 @@ on:
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.run_id }}
cancel-in-progress: true
permissions: {}
jobs:
changes:
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
docs: ${{ steps.changes.outputs.docs }}
format: ${{ steps.changes.outputs.format }}
hm: ${{ steps.changes.outputs.hm }}
parse: ${{ steps.changes.outputs.parse }}
tests: ${{ steps.changes.outputs.tests }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@v3
- uses: actions/checkout@v7
- uses: dorny/paths-filter@v4
id: changes
with:
filters: |
@@ -39,28 +42,41 @@ jobs:
- 'flake.lock'
- 'flake.nix'
- 'home-manager/**'
parse:
- '**/*.nix'
- 'flake.lock'
tests:
needs: changes
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
echo "rev=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock)" >> "$GITHUB_OUTPUT"
- uses: cachix/install-nix-action@v31
if: github.event_name == 'schedule' || needs.changes.outputs.docs == 'true' || needs.changes.outputs.tests == 'true' || needs.changes.outputs.hm == 'true' || needs.changes.outputs.format == 'true'
if: github.event_name == 'schedule' || needs.changes.outputs.docs == 'true' || needs.changes.outputs.tests == 'true' || needs.changes.outputs.hm == 'true' || needs.changes.outputs.parse == 'true' || needs.changes.outputs.format == 'true'
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/${{ steps.get-nixpkgs.outputs.rev }}.tar.gz
extra_nix_config: |
sandbox = true
- name: Build docs
if: github.event_name == 'schedule' || needs.changes.outputs.docs == 'true'
run: nix build --show-trace .#docs-jsonModuleMaintainers
- name: Parse Nix files with nix and Lix
if: >-
matrix.os == 'ubuntu-latest' &&
(github.event_name == 'schedule' || needs.changes.outputs.parse == 'true')
run: nix build --show-trace --keep-going .#ci-parse .#ci-parse-lix
- name: Format Check
if: github.event_name == 'schedule' || needs.changes.outputs.format == 'true'
if: >-
matrix.os == 'ubuntu-latest' &&
(github.event_name == 'schedule' || needs.changes.outputs.format == 'true')
run: nix fmt -- --ci
- name: Test init --switch with locked inputs
if: github.event_name == 'schedule' || needs.changes.outputs.hm == 'true'
@@ -76,31 +92,37 @@ jobs:
if: github.event_name == 'pull_request'
shell: bash
run: |
echo "### Test Job Summary" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "A summary of tasks triggered by file changes in this PR:" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "### Test Job Summary" >> "$GITHUB_STEP_SUMMARY"
echo "" >> "$GITHUB_STEP_SUMMARY"
echo "A summary of tasks triggered by file changes in this PR:" >> "$GITHUB_STEP_SUMMARY"
echo "" >> "$GITHUB_STEP_SUMMARY"
if [[ "${{ needs.changes.outputs.docs }}" == "true" ]]; then
echo "- ✅ **Docs Build:** Triggered" >> $GITHUB_STEP_SUMMARY
echo "- ✅ **Docs Build:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Docs Build:** Skipped (no relevant files changed)" >> $GITHUB_STEP_SUMMARY
echo "- ☑️ **Docs Build:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.format }}" == "true" ]]; then
echo "- ✅ **Format Check:** Triggered" >> $GITHUB_STEP_SUMMARY
echo "- ✅ **Format Check:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Format Check:** Skipped (no relevant files changed)" >> $GITHUB_STEP_SUMMARY
echo "- ☑️ **Format Check:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.parse }}" == "true" ]]; then
echo "- ✅ **Nix Parse (nix + Lix):** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Nix Parse (nix + Lix):** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.hm }}" == "true" ]]; then
echo "- ✅ **Home Manager Tests:** Triggered" >> $GITHUB_STEP_SUMMARY
echo "- ✅ **Home Manager Tests:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Home Manager Tests:** Skipped (no relevant files changed)" >> $GITHUB_STEP_SUMMARY
echo "- ☑️ **Home Manager Tests:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.tests }}" == "true" ]]; then
echo "- ✅ **General Tests:** Triggered" >> $GITHUB_STEP_SUMMARY
echo "- ✅ **General Tests:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **General Tests:** Skipped (no relevant files changed)" >> $GITHUB_STEP_SUMMARY
echo "- ☑️ **General Tests:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
-66
View File
@@ -1,66 +0,0 @@
name: Update flake inputs
on:
schedule:
# Update every Sunday and Wednesday
- cron: "51 3 * * 0,3"
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
if: github.event_name != 'schedule' || github.repository_owner == 'nix-community'
strategy:
fail-fast: false
matrix:
branch: [master, release-25.11]
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v2
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- name: Get GitHub App user info
if: vars.CI_APP_ID
id: user-info
env:
GH_TOKEN: ${{ steps.app-token.outputs.token}}
slug: ${{ steps.app-token.outputs.app-slug }}
run: |
name="$slug[bot]"
id=$(gh api "/users/$name" --jq .id)
{
echo "id=$id"
echo "name=$name"
echo "email=$id+$name@users.noreply.github.com"
} >> "$GITHUB_OUTPUT"
- name: Checkout repository
uses: actions/checkout@v6
with:
ref: ${{ matrix.branch }}
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
- name: Install Nix
uses: cachix/install-nix-action@v31
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v28
with:
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
git-committer-name: ${{ steps.user-info.outputs.name || 'github-actions[bot]' }}
git-committer-email: ${{ steps.user-info.outputs.email || '41898282+github-actions[bot]@users.noreply.github.com' }}
git-author-name: ${{ steps.user-info.outputs.name || 'github-actions[bot]' }}
git-author-email: ${{ steps.user-info.outputs.email || '41898282+github-actions[bot]@users.noreply.github.com' }}
pr-labels: dependencies
pr-title: "[${{ matrix.branch }}] flake.lock: Update"
pr-body: |
Automated update by the [update-flake-lock] GitHub Action.
```
{{ env.GIT_COMMIT_MESSAGE }}
```
This PR was most recently updated by workflow run [${{ github.run_id }}].
[update-flake-lock]: https://github.com/DeterminateSystems/update-flake-lock
[${{ github.run_id }}]: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
base: ${{ matrix.branch }}
branch: update/${{ matrix.branch }}
+11 -11
View File
@@ -27,7 +27,7 @@ jobs:
pr_branch: update/maintainers-${{ github.ref_name }}
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v2
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
@@ -48,7 +48,7 @@ jobs:
echo "email=$id+$name@users.noreply.github.com"
} >> "$GITHUB_OUTPUT"
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
token: ${{ steps.app-token.outputs.token || github.token }}
- name: Get Nixpkgs revision from flake.lock
@@ -184,7 +184,7 @@ jobs:
if [[ -n "$info" ]]; then
echo "PR info:"
echo "$info"
echo "$info" >> $GITHUB_OUTPUT
echo "$info" >> "$GITHUB_OUTPUT"
else
echo "No PR is currently open"
fi
@@ -266,21 +266,21 @@ jobs:
echo "✅ Successfully updated PR with new changes."
echo "$changes"
echo "🔗 PR URL: $pr_url"
echo "### ✅ PR Updated" >> $GITHUB_STEP_SUMMARY
echo "[$pr_url]($pr_url)" >> $GITHUB_STEP_SUMMARY
echo "### ✅ PR Updated" >> "$GITHUB_STEP_SUMMARY"
echo "[$pr_url]($pr_url)" >> "$GITHUB_STEP_SUMMARY"
elif [[ -n "$pr_url" ]]; then
echo "✅ Successfully created PR with maintainer updates."
echo "$changes"
echo "🔗 PR URL: $pr_url"
echo "### ✅ PR Created" >> $GITHUB_STEP_SUMMARY
echo "[$pr_url]($pr_url)" >> $GITHUB_STEP_SUMMARY
echo "### ✅ PR Created" >> "$GITHUB_STEP_SUMMARY"
echo "[$pr_url]($pr_url)" >> "$GITHUB_STEP_SUMMARY"
else
echo "❌ Failed to create or update pull request."
echo "### ❌ PR Operation Failed" >> $GITHUB_STEP_SUMMARY
echo "A pull request was intended but the URL was not captured. Please check the logs." >> $GITHUB_STEP_SUMMARY
echo "### ❌ PR Operation Failed" >> "$GITHUB_STEP_SUMMARY"
echo "A pull request was intended but the URL was not captured. Please check the logs." >> "$GITHUB_STEP_SUMMARY"
fi
else
echo "️ No changes detected - maintainers list is up to date."
echo "### ️ No Changes" >> $GITHUB_STEP_SUMMARY
echo "The maintainers list is up-to-date. No PR was created." >> $GITHUB_STEP_SUMMARY
echo "### ️ No Changes" >> "$GITHUB_STEP_SUMMARY"
echo "The maintainers list is up-to-date. No PR was created." >> "$GITHUB_STEP_SUMMARY"
fi
+1 -1
View File
@@ -18,7 +18,7 @@ jobs:
if: github.repository_owner == 'nix-community'
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
+1
View File
@@ -1,2 +1,3 @@
/result*
/tests/flake.lock
.DS_Store
+1
View File
@@ -0,0 +1 @@
Noah Biewesch <dev@noahbiewesch.com> <90870942+trueNAHO@users.noreply.github.com>
+8
View File
@@ -0,0 +1,8 @@
# Contributing
Home Manager contribution guidelines live in the manual:
- [`docs/manual/contributing.md`](docs/manual/contributing.md)
- <https://nix-community.github.io/home-manager/#ch-contributing>
Read those docs before changing modules, tests, news entries, or release notes.
+13 -1
View File
@@ -11,6 +11,18 @@ list *pattern:
test *pattern:
nix run .#tests -- {{pattern}}
# List integration tests
list_integration_tests:
nix run .#tests -- -t -l
# Run integration tests
integration_tests:
nix run .#tests -- -t -l
nix run .#tests -- -t integration-test-
# Create a news entry
create-news-entry:
modules/misc/news/create-news-entry.sh
# format codebase with treefmt
format:
treefmt
+2 -2
View File
@@ -125,7 +125,7 @@ Reference commits:
- Update the nixpkgs input to track the corresponding stable branch
- Example: For `release-25.11`, change from:
```nix
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
```
to:
```nix
@@ -135,7 +135,7 @@ Reference commits:
- Commit the flake.nix and flake.lock changes
**Note**: The release branch should track the stable NixOS release channel
(e.g., `nixos-25.11`), while master continues to track `nixos-unstable`.
(e.g., `nixos-25.11`), while master continues to track `nixpkgs-unstable`.
#### Step 3.5: On master - Update CI for the New Release Branch
+2 -1
View File
@@ -17,4 +17,5 @@ test-install:
HOME=$(shell mktemp -d) NIX_PATH=${NIX_PATH} nix-shell . -A install
format:
nix-shell -p treefmt nixfmt deadnix keep-sorted nixf-diagnose --run "treefmt --config-file ./treefmt.toml"
# added 2026-03-01
@echo "run \"nix-shell -A dev --run 'just format'\" instead"
+5 -4
View File
@@ -25,10 +25,11 @@ If you would like to contribute to Home Manager, then please have a look at
Releases
--------
Home Manager is developed against `nixpkgs-unstable` branch, which often causes
it to contain tweaks for changes/packages not yet released in stable [NixOS][].
Home Manager is developed against the `nixpkgs-unstable` branch, which often
causes it to contain tweaks for changes/packages not yet released in stable
[NixOS][].
To avoid breaking users' configurations, Home Manager is released in branches
corresponding to NixOS releases (e.g. `release-25.11`). These branches get
corresponding to NixOS releases (e.g. `release-26.05`). These branches get
fixes, but usually not new modules. If you need a module to be backported, then
feel free to open an issue.
@@ -49,7 +50,7 @@ dconf store and cannot tell whether a configuration that is about to be
overwritten was from a previous Home Manager generation or from manual
configuration.
Home Manager targets [NixOS][] unstable and NixOS version 25.11 (the current
Home Manager targets `nixpkgs-unstable` and NixOS version 26.05 (the current
stable version), it may or may not work on other Linux distributions and NixOS
versions.
+300 -112
View File
@@ -8,13 +8,6 @@
# To regenerate: ./lib/python/generate-all-maintainers.py
#
{
"0x5a4" = {
email = "bej86nug@hhu.de";
github = "0x5a4";
githubId = 54070204;
name = "0x5a4";
source = "nixpkgs";
};
"0xda157" = {
email = "da157@voidq.com";
github = "0xda157";
@@ -28,6 +21,13 @@
name = "0xda157";
source = "nixpkgs";
};
"0xdsqr" = {
email = "me@dsqr.dev";
github = "0xdsqr";
githubId = 99584622;
name = "Dave Dennis";
source = "home-manager";
};
"3ulalia" = {
email = "3ulalia@proton.me";
github = "3ulalia";
@@ -39,8 +39,14 @@
email = "git.t@betsumei.com";
github = "74k1";
githubId = 49000471;
keys = [
{
fingerprint = "46F3 422F 63A3 1369 7EAB 83D5 1CF1 55F7 6F21 3503";
}
];
matrix = "@74k1:matrix.org";
name = "Tim";
source = "home-manager";
source = "nixpkgs";
};
"9p4" = {
email = "vcs@ersei.net";
@@ -57,7 +63,7 @@
source = "nixpkgs";
};
ALameLlama = {
email = "NicholasACiechanowski@gmail.com";
email = "nicholas@ciech.anow.ski";
github = "ALameLlama";
githubId = 55490546;
name = "Nicholas Ciechanowski";
@@ -75,14 +81,14 @@
github = "AndreasMager";
githubId = 5646732;
name = "Andreas Mager";
source = "nixpkgs";
source = "home-manager";
};
Austreelis = {
email = "github@accounts.austreelis.net";
github = "Austreelis";
githubId = 56743515;
name = "Morgane Austreelis";
source = "nixpkgs";
source = "home-manager";
};
CarlosLoboxyz = {
email = "86011416+CarlosLoboxyz@users.noreply.github.com";
@@ -119,12 +125,27 @@
name = "Denis Kaynar";
source = "home-manager";
};
ErinaYip = {
email = "erinayip@outlook.com";
github = "ErinaYip";
githubId = 227132255;
name = "erina";
source = "home-manager";
};
Eveeifyeve = {
email = "eveeg1971@gmail.com";
github = "Eveeifyeve";
githubId = 88671402;
matrix = "@eveeifyeve:matrix.org";
name = "Eveeifyeve";
source = "nixpkgs";
};
Fendse = {
email = "46252070+Fendse@users.noreply.github.com";
github = "Fendse";
githubId = 46252070;
name = "Sara Johnsson";
source = "nixpkgs";
source = "home-manager";
};
Flameopathic = {
email = "flameopathic@gmail.com";
@@ -153,18 +174,6 @@
name = "Gaetan Lepage";
source = "nixpkgs";
};
GenericNerdyUsername = {
email = "genericnerdyusername@proton.me";
github = "GenericNerdyUsername";
githubId = 111183546;
keys = [
{
fingerprint = "58CE D4BE 6B10 149E DA80 A990 2F48 6356 A4CB 30F3";
}
];
name = "GenericNerdyUsername";
source = "nixpkgs";
};
Gerschtli = {
email = "tobias.happ@gmx.de";
github = "Gerschtli";
@@ -199,6 +208,13 @@
githubId = 80165193;
matrix = "@janik0:matrix.org";
name = "Janik";
source = "home-manager";
};
JasmineLowen = {
email = "robwalter96@gmail.com";
github = "JasmineLowen";
githubId = 26892280;
name = "Robert Walter";
source = "nixpkgs";
};
JoaquinTrinanes = {
@@ -218,7 +234,7 @@
github = "Joker9944";
githubId = 9194199;
name = "Felix von Arx";
source = "nixpkgs";
source = "home-manager";
};
JustinLovinger = {
email = "git@justinlovinger.com";
@@ -227,13 +243,6 @@
name = "Justin Lovinger";
source = "nixpkgs";
};
KarlJoad = {
email = "karl@hallsby.com";
github = "KarlJoad";
githubId = 34152449;
name = "Karl Hallsby";
source = "nixpkgs";
};
KiaraGrouwstra = {
email = "cinereal@riseup.net";
github = "KiaraGrouwstra";
@@ -242,6 +251,14 @@
name = "kiara";
source = "nixpkgs";
};
Kladki = {
email = "matthias@ahouansou.cz";
github = "Kladki";
githubId = 158313939;
matrix = "@matthias:ahouansou.cz";
name = "Matthias Ahouansou";
source = "nixpkgs";
};
Kranzes = {
email = "personal@ilanjoselevich.com";
github = "Kranzes";
@@ -294,7 +311,7 @@
github = "MForster";
githubId = 4067975;
name = "Michael Forster";
source = "nixpkgs";
source = "home-manager";
};
Misterio77 = {
email = "eu@misterio.me";
@@ -373,12 +390,25 @@
name = "Philipp Mildenberger";
source = "nixpkgs";
};
ReStranger = {
github = "ReStranger";
githubId = 69393944;
name = "ReStranger";
source = "nixpkgs";
};
ReeSilva = {
email = "reesilva@proton.me";
github = "ReeSilva";
githubId = 3605032;
name = "Renato da Silva";
source = "home-manager";
};
Rosuavio = {
email = "RosarioPulella@gmail.com";
github = "Rosuavio";
githubId = 7164552;
name = "Rosario Pulella";
source = "nixpkgs";
source = "home-manager";
};
S0AndS0 = {
email = "S0AndS0@digital-mercenaries.com";
@@ -401,13 +431,6 @@
name = "Sefa Eyeoglu";
source = "nixpkgs";
};
SebTM = {
email = "mail@sebastian-sellmeier.de";
github = "SebTM";
githubId = 17243347;
name = "Sebastian Sellmeier";
source = "nixpkgs";
};
ShamrockLee = {
email = "shamrocklee@posteo.net";
github = "ShamrockLee";
@@ -428,6 +451,12 @@
name = "Mel Bourgeois";
source = "nixpkgs";
};
SunOfLife1 = {
github = "SunOfLife1";
githubId = 30405063;
name = "SunOfLife1";
source = "home-manager";
};
Swarsel = {
email = "leon@swarsel.win";
github = "Swarsel";
@@ -463,13 +492,6 @@
name = "Vincent Breitmoser";
source = "nixpkgs";
};
Vortriz = {
email = "vorarishi22+nix@gmail.com";
github = "Vortriz";
githubId = 97402159;
name = "Rishi Vora";
source = "nixpkgs";
};
WGUNDERWOOD = {
email = "wg.underwood13@gmail.com";
github = "WGUNDERWOOD";
@@ -526,14 +548,6 @@
name = "David Chocholatý";
source = "nixpkgs";
};
adisbladis = {
email = "adisbladis@gmail.com";
github = "adisbladis";
githubId = 63286;
matrix = "@adis:blad.is";
name = "Adam Hose";
source = "nixpkgs";
};
afresquet = {
email = "alvarofresquet@gmail.com";
github = "afresquet";
@@ -576,6 +590,20 @@
name = "Alex Rice";
source = "nixpkgs";
};
alinnow = {
email = "alin@alin.ovh";
github = "alinnow";
githubId = 850317;
name = "Alin";
source = "nixpkgs";
};
amadejkastelic = {
email = "amadejkastelic7@gmail.com";
github = "amadejkastelic";
githubId = 26391003;
name = "Amadej Kastelic";
source = "nixpkgs";
};
ambroisie = {
email = "bruno.nixpkgs@belanyi.fr";
github = "ambroisie";
@@ -583,14 +611,6 @@
name = "Bruno BELANYI";
source = "nixpkgs";
};
amesgen = {
email = "amesgen@amesgen.de";
github = "amesgen";
githubId = 15369874;
matrix = "@amesgen:amesgen.de";
name = "Alexander Esgen";
source = "nixpkgs";
};
andre4ik3 = {
email = "andre4ik3@fastmail.com";
github = "andre4ik3";
@@ -651,7 +671,7 @@
github = "b1kku";
githubId = 77858854;
name = "Bikku";
source = "nixpkgs";
source = "home-manager";
};
bamhm182 = {
email = "bamhm182@gmail.com";
@@ -691,6 +711,13 @@
name = "Filippo Berto";
source = "nixpkgs";
};
bittner = {
email = "peter@painless.software";
github = "bittner";
githubId = 665072;
name = "Peter Bittner";
source = "home-manager";
};
bjpbakker = {
email = "bart@thesoftwarecraft.com";
github = "bjpbakker";
@@ -854,7 +881,7 @@
github = "ckgxrg-salt";
githubId = 165614491;
name = "ckgxrg";
source = "nixpkgs";
source = "home-manager";
};
cmacrae = {
email = "hi@cmacr.ae";
@@ -883,6 +910,13 @@
name = "Phillip Cloud";
source = "nixpkgs";
};
csanthiago = {
email = "git@csanthiago.dev";
github = "csanthiago";
githubId = 8346803;
name = "csanthiago";
source = "home-manager";
};
cwyc = {
email = "hello@cwyc.page";
github = "cwyc";
@@ -963,13 +997,6 @@
name = "Robin Stumm";
source = "nixpkgs";
};
diniamo = {
email = "diniamo53@gmail.com";
github = "diniamo";
githubId = 55629891;
name = "diniamo";
source = "nixpkgs";
};
donovanglover = {
github = "donovanglover";
githubId = 2374245;
@@ -981,6 +1008,26 @@
name = "Donovan Glover";
source = "nixpkgs";
};
dosten = {
email = "diego@saintesteben.me";
github = "dosten";
githubId = 510842;
name = "Diego Saint Esteben";
source = "home-manager";
};
drupol = {
email = "pol.dellaiera@protonmail.com";
github = "drupol";
githubId = 252042;
keys = [
{
fingerprint = "85F3 72DF 4AF3 EF13 ED34 72A3 0AAF 2901 E804 0715";
}
];
matrix = "@drupol:matrix.org";
name = "Pol Dellaiera";
source = "nixpkgs";
};
dschrempf = {
email = "dominik.schrempf@gmail.com";
github = "dschrempf";
@@ -1007,6 +1054,13 @@
name = "Daniel Wagenknecht";
source = "home-manager";
};
einetuer = {
email = "bej86nug@hhu.de";
github = "einetuer";
githubId = 54070204;
name = "0x5a4";
source = "nixpkgs";
};
elanora96 = {
email = "git@elanora.lol";
github = "elanora96";
@@ -1122,6 +1176,13 @@
name = "Fugi";
source = "nixpkgs";
};
garklein = {
email = "garklein97@gmail.com";
github = "garklein";
githubId = 63201615;
name = "Garklein";
source = "home-manager";
};
gauthsvenkat = {
email = "gauthsvenkat+home-manager@gmail.com";
github = "gauthsvenkat";
@@ -1214,7 +1275,7 @@
];
matrix = "@hey2022:matrix.org";
name = "Yiheng He";
source = "home-manager";
source = "nixpkgs";
};
hitsmaxft = {
email = "mfthits@gmail.com";
@@ -1223,6 +1284,18 @@
name = "Bhe Hongtyu";
source = "nixpkgs";
};
iamanaws = {
email = "iamanaws@httpd.dev";
github = "iamanaws";
githubId = 78835633;
keys = [
{
fingerprint = "CF10 DCBB 9318 BE1D 6040 4222 272C 61AB 190D ED28";
}
];
name = "Angel J";
source = "nixpkgs";
};
ilaumjd = {
email = "ilaumjd@gmail.com";
github = "ilaumjd";
@@ -1244,6 +1317,13 @@
name = "Ilya Savitsky";
source = "nixpkgs";
};
isaacST08 = {
email = "isaacst.nix@proton.me";
github = "isaacST08";
githubId = 106057977;
name = "Isaac Shiells Thomas";
source = "home-manager";
};
iynaix = {
email = "iynaix@gmail.com";
github = "iynaix";
@@ -1391,7 +1471,7 @@
github = "kaleocheng";
githubId = 7939352;
name = "Kaleo Cheng";
source = "nixpkgs";
source = "home-manager";
};
kalhauge = {
email = "kalhauge@users.noreply.github.com";
@@ -1417,6 +1497,13 @@
github = "karaolidis";
githubId = 46189100;
name = "Nikolaos Karaolidis";
source = "nixpkgs";
};
kayskayskays = {
email = "115312476+kayskayskays@users.noreply.github.com";
github = "kayskayskays";
githubId = 115312476;
name = "Kays";
source = "home-manager";
};
khaneliman = {
@@ -1441,6 +1528,13 @@
name = "Knut Magnus Aasrud";
source = "home-manager";
};
kpbaks = {
email = "kristoffer.pbs@gmail.com";
github = "kpbaks";
githubId = 57013304;
name = "Kristoffer Plagborg Bak Sørensen";
source = "nixpkgs";
};
kubukoz = {
email = "kubukoz@gmail.com";
github = "kubukoz";
@@ -1481,12 +1575,6 @@
name = "Linus Heckemann";
source = "home-manager";
};
libewa = {
email = "libewa-git@icloud.com";
github = "libewa";
githubId = 67926131;
source = "home-manager";
};
lilyinstarlight = {
email = "lily@lily.flowers";
github = "lilyinstarlight";
@@ -1530,6 +1618,12 @@
name = "Lukas Nagel";
source = "home-manager";
};
magicquark = {
github = "magicquark";
githubId = 198001825;
name = "magicquark";
source = "nixpkgs";
};
mainrs = {
email = "5113257+mainrs@users.noreply.github.com";
github = "mainrs";
@@ -1537,6 +1631,18 @@
name = "mainrs";
source = "home-manager";
};
malikwirin = {
email = "abdelmalik.najhi@stud.hs-kempten.de";
github = "malikwirin";
githubId = 117918464;
keys = [
{
fingerprint = "B5ED 595C 8C7E 133C 6B68 63C8 CFEF 1E35 0351 F72D";
}
];
name = "Malik";
source = "nixpkgs";
};
malte-v = {
email = "nixpkgs@mal.tc";
github = "malte-v";
@@ -1544,6 +1650,20 @@
name = "Malte Voos";
source = "nixpkgs";
};
mana-byte = {
email = "manaikilaut@gmail.com";
github = "mana-byte";
githubId = 93316844;
name = "Manaiki Laut";
source = "nixpkgs";
};
marijanp = {
email = "marijan.petricevic94@gmail.com";
github = "marijanp";
githubId = 13599169;
name = "Marijan Petričević";
source = "nixpkgs";
};
mateusauler = {
email = "mateus@auler.dev";
github = "mateusauler";
@@ -1626,6 +1746,13 @@
name = "Shahar \"Dawn\" Or";
source = "nixpkgs";
};
mikaeladev = {
email = "mikaeladev@icloud.com";
github = "mikaeladev";
githubId = 100416544;
name = "mikaeladev";
source = "nixpkgs";
};
mikilio = {
email = "official.mikilio+dev@gmail.com";
github = "mikilio";
@@ -1638,7 +1765,7 @@
github = "miku4k";
githubId = 89653242;
name = "Miku B";
source = "nixpkgs";
source = "home-manager";
};
minijackson = {
email = "minijackson@riseup.net";
@@ -1737,7 +1864,7 @@
github = "natecox";
githubId = 2782695;
name = "Nate Cox";
source = "nixpkgs";
source = "home-manager";
};
nbp = {
email = "nixos@nbp.name";
@@ -1784,21 +1911,9 @@
email = "nukdokplex@nukdokplex.ru";
github = "nukdokplex";
githubId = 25458915;
keys = [
{
fingerprint = "7CE2 4C42 942D 58EA 99F6 F00A A47E 7374 3EF6 FCC4";
}
];
name = "Viktor Titov";
source = "nixpkgs";
};
nurelin = {
email = "nurelin@users.noreply.github.com";
github = "nurelin";
githubId = 5276274;
name = "nurelin";
source = "home-manager";
};
nyarly = {
email = "nyarly@gmail.com";
github = "nyarly";
@@ -1806,11 +1921,11 @@
name = "Judson Lester";
source = "nixpkgs";
};
offlinehacker = {
email = "jaka@x-truder.net";
github = "offlinehacker";
githubId = 585547;
name = "Jaka Hudoklin";
ojsef39 = {
email = "me+github@jhofer.de";
github = "ojsef39";
githubId = 43563019;
name = "Josef Hofer";
source = "nixpkgs";
};
olmokramer = {
@@ -1820,6 +1935,12 @@
name = "Olmo Kramer";
source = "home-manager";
};
oneorseveralcats = {
github = "oneorseveralcats";
githubId = 170012754;
name = "oneorseveralcats";
source = "home-manager";
};
onny = {
email = "onny@project-insanity.org";
github = "onny";
@@ -1883,11 +2004,18 @@
name = "Phani Rithvij";
source = "nixpkgs";
};
pinage404 = {
email = "pinage404+nixpkgs@gmail.com";
github = "pinage404";
githubId = 6325757;
name = "pinage404";
philip-730 = {
email = "philip.amendolia@gmail.com";
github = "philip-730";
githubId = 116534928;
name = "Philip Amendolia";
source = "home-manager";
};
philocalyst = {
email = "milestheperson@posteo.net";
github = "philocalyst";
githubId = 114884788;
name = "Myles Wirth";
source = "nixpkgs";
};
pjones = {
@@ -1957,6 +2085,25 @@
name = "Rasmus Kirk";
source = "home-manager";
};
ratakor = {
email = "ratakor@disroot.org";
github = "ratakor";
githubId = 45130910;
keys = [
{
fingerprint = "B60F 8F80 D6CD C5D2 58CF 14C3 241B 1CBE 567B 287E";
}
];
name = "Ratakor";
source = "nixpkgs";
};
ravenjoad = {
email = "raven@hallsby.com";
github = "ravenjoad";
githubId = 34152449;
name = "Raven Hallsby";
source = "nixpkgs";
};
rcerc = {
email = "88944439+rcerc@users.noreply.github.com";
github = "rcerc";
@@ -1985,13 +2132,6 @@
name = "Robert Hensing";
source = "nixpkgs";
};
robwalt = {
email = "robwalter96@gmail.com";
github = "robwalt";
githubId = 26892280;
name = "Robert Walter";
source = "nixpkgs";
};
rouven0 = {
email = "rouven@rfive.de";
github = "rouven0";
@@ -2018,6 +2158,13 @@
name = "Mohammad Rafiq";
source = "nixpkgs";
};
rsahwe = {
email = "rsahwe@gmx.net";
github = "rsahwe";
githubId = 201613730;
name = "rsahwe";
source = "home-manager";
};
rszamszur = {
email = "radoslawszamszur@gmail.com";
github = "rszamszur";
@@ -2056,6 +2203,13 @@
name = "Robert Helgesson";
source = "nixpkgs";
};
s0racat = {
email = "125882337+s0racat@users.noreply.github.com";
github = "s0racat";
githubId = 125882337;
name = "soracat";
source = "home-manager";
};
sableseyler = {
email = "sable@seyleri.us";
github = "sableseyler";
@@ -2068,6 +2222,20 @@
name = "Sable Seyler";
source = "nixpkgs";
};
sei40kr = {
email = "sei40kr@gmail.com";
github = "sei40kr";
githubId = 11665236;
name = "Seong Yong-ju";
source = "nixpkgs";
};
semi710 = {
email = "nik.singh710@gmail.com";
github = "semi710";
githubId = 60490474;
name = "Nikhil Singh";
source = "nixpkgs";
};
shikanime = {
email = "william.phetsinorath@shikanime.studio";
github = "shikanime";
@@ -2147,6 +2315,13 @@
name = "Sumner Evans";
source = "nixpkgs";
};
superflash41 = {
email = "saymon.nicho@pucp.edu.pe";
github = "superflash41";
githubId = 102434258;
name = "Saymon Nicho";
source = "home-manager";
};
surfaceflinger = {
email = "nat@nekopon.pl";
github = "surfaceflinger";
@@ -2321,6 +2496,13 @@
name = "Xavier Lambein";
source = "nixpkgs";
};
yaaaarn = {
email = "nix@yarncat.moe";
github = "yaaaarn";
githubId = 30006414;
name = "yarncat";
source = "nixpkgs";
};
yethal = {
github = "yethal";
githubId = 26117918;
@@ -2339,6 +2521,12 @@
name = "Jona Abdinghoff";
source = "nixpkgs";
};
zh4ngx = {
github = "zh4ngx";
githubId = 1329212;
name = "Andy Zhang";
source = "nixpkgs";
};
zorrobert = {
email = "118135271+zorrobert@users.noreply.github.com";
github = "zorrobert";
-2
View File
@@ -1,3 +1 @@
attribute = "buildbot"
flake_dir = "./tests"
lock_file = "./flake.lock"
+45
View File
@@ -0,0 +1,45 @@
{
lib,
nix,
runCommand,
}:
let
home-manager =
with lib.fileset;
toSource {
root = ../.;
fileset = (fileFilter (file: file.hasExt "nix") ../.);
};
parseLog = "$TMPDIR/nix-parse.log";
in
runCommand "nix-parse-${nix.name}"
{
nativeBuildInputs = [
nix
];
}
''
export NIX_STORE_DIR=$TMPDIR/store
export NIX_STATE_DIR=$TMPDIR/state
nix-store --init
cd "${home-manager}"
# This will only show the first parse error, not all of them. That's fine, because
# the other CI jobs will report in more detail. This job is about checking parsing
# across different implementations / versions, not about providing the best DX.
# Returning all parse errors requires significantly more resources.
if ! find . -type f -iname '*.nix' | xargs -P $(nproc) nix-instantiate --parse 2> "${parseLog}" > /dev/null; then
cat "${parseLog}" >&2
echo "Parse failed in nix-instantiate." >&2
exit 1
fi
if grep "warning" "${parseLog}"; then
cat "${parseLog}" >&2
echo "Failing due to warnings in stderr" >&2
exit 1
fi
touch $out
''
+14
View File
@@ -8,6 +8,18 @@ let
name = "home-manager-source";
};
nixpkgs = (
import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
n = lock.nodes.nixpkgs.locked;
in
fetchTarball {
url = "https://github.com/${n.owner}/${n.repo}/archive/${n.rev}.tar.gz";
sha256 = n.narHash;
}
) { }
);
in
rec {
docs =
@@ -32,5 +44,7 @@ rec {
nixos = import ./nixos;
lib = import ./lib { inherit (pkgs) lib; };
dev = nixpkgs.callPackage ./home-manager/devShell.nix { };
inherit path;
}
+74 -9
View File
@@ -69,6 +69,57 @@ let
hmPath = toString ./..;
# Keep submodule option docs visible when wrapped in `either` (and therefore
# in `nullOr (either ...)`), which upstream currently omits.
docsLib = lib.extend (
_self: super:
let
mergeEitherSubOptions =
prefix: leftType: rightType:
let
getSubOptionsOrEmpty =
optionType:
let
subOptions = optionType.getSubOptions prefix;
in
if builtins.isAttrs subOptions then subOptions else { };
mkOptionDecl = options: {
_file = "<docs/default.nix>";
pos = null;
inherit options;
};
optionSets = lib.filter (options: options != { }) [
(getSubOptionsOrEmpty leftType)
(getSubOptionsOrEmpty rightType)
];
mergedOptions = lib.foldl' (
acc: options:
if acc == { } then
options
else
(super.mergeOptionDecls prefix [
(mkOptionDecl acc)
(mkOptionDecl options)
]).options
) { } optionSets;
in
mergedOptions;
in
{
types = super.types // {
either =
leftType: rightType:
(super.types.either leftType rightType)
// {
getSubOptions = prefix: mergeEitherSubOptions prefix leftType rightType;
};
};
}
);
buildOptionsDocs =
args@{
modules,
@@ -102,11 +153,15 @@ let
config = lib.listToAttrs (map poisonAttr (lib.filter (n: n != "_module") (lib.attrNames options)));
};
options =
(lib.evalModules {
modules = modules ++ [ poisonModule ];
class = "homeManager";
}).options;
inherit
(
(docsLib.evalModules {
modules = modules ++ [ poisonModule ];
class = "homeManager";
})
)
options
;
in
pkgs.buildPackages.nixosOptionsDoc (
{
@@ -141,7 +196,8 @@ let
hmOptionsDocs = buildOptionsDocs {
modules =
import ../modules/modules.nix {
inherit lib pkgs;
lib = docsLib;
inherit pkgs;
check = false;
}
++ [ scrubbedPkgsModule ];
@@ -197,9 +253,15 @@ let
# Generate the HTML manual pages
home-manager-manual = pkgs.callPackage ./home-manager-manual.nix {
home-manager-options = {
home-manager = hmOptionsDocs.optionsJSON;
nixos = nixosOptionsDocs.optionsJSON;
nix-darwin = nixDarwinOptionsDocs.optionsJSON;
home-manager = {
json = hmOptionsDocs.optionsJSON;
};
nixos = {
json = nixosOptionsDocs.optionsJSON;
};
nix-darwin = {
json = nixDarwinOptionsDocs.optionsJSON;
};
};
inherit revision;
};
@@ -246,4 +308,7 @@ in
in
builtins.toJSON result.config.meta.maintainers
);
# Unstable, for tests.
_internal = { inherit docsLib; };
}
+3 -3
View File
@@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1764081664,
"narHash": "sha256-sUoHmPr/EwXzRMpv1u/kH+dXuvJEyyF2Q7muE+t0EU4=",
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dc205f7b4fdb04c8b7877b43edb7b73be7730081",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github"
},
"original": {
+1 -2
View File
@@ -75,8 +75,7 @@
pkgs = nixpkgs.legacyPackages.${system};
docs = import ./default.nix {
inherit pkgs lib;
release = releaseInfo.release;
isReleaseBranch = releaseInfo.isReleaseBranch;
inherit (releaseInfo) isReleaseBranch release;
};
in
{
+53 -37
View File
@@ -1,61 +1,75 @@
{
stdenv,
lib,
documentation-highlighter,
callPackage,
mdbook,
python3,
revision,
home-manager-options,
nixos-render-docs,
}:
let
outputPath = "share/doc/home-manager";
mdbookOptions = callPackage ./mdbook/options.nix {
manpageUrls = ./manual/manpage-urls.json;
inherit revision;
optionDocs = {
home-manager = {
title = "Home Manager Configuration Options";
path = "home-manager";
prefix = "opt-";
json = "${home-manager-options.home-manager.json}";
};
nixos = {
title = "NixOS Configuration Options";
path = "nixos";
prefix = "nixos-opt-";
json = "${home-manager-options.nixos.json}";
};
nix-darwin = {
title = "nix-darwin Configuration Options";
path = "nix-darwin";
prefix = "nix-darwin-opt-";
json = "${home-manager-options.nix-darwin.json}";
};
};
};
in
stdenv.mkDerivation {
name = "home-manager-manual";
nativeBuildInputs = [ nixos-render-docs ];
nativeBuildInputs = [
mdbook
python3
];
src = ./manual;
src = ./.;
buildPhase = ''
mkdir -p out/{highlightjs,media}
runHook preBuild
cp -t out/highlightjs \
${documentation-highlighter}/highlight.pack.js \
${documentation-highlighter}/LICENSE \
${documentation-highlighter}/mono-blue.css \
${documentation-highlighter}/loader.js
mkdir -p source
python3 ${./mdbook/convert-markup.py} "$src/manual" source
python3 ${./mdbook/convert-markup.py} \
--base-depth 1 \
"$src/release-notes" \
source/release-notes
substituteInPlace ./options.md \
--subst-var-by \
OPTIONS_JSON \
${home-manager-options.home-manager}/share/doc/nixos/options.json
cp -r ${mdbookOptions}/options source/options
substituteInPlace ./nixos-options.md \
--subst-var-by \
OPTIONS_JSON \
${home-manager-options.nixos}/share/doc/nixos/options.json
python3 ${./mdbook/substitute-summary.py} \
source/SUMMARY.md \
${mdbookOptions}/summary/home-manager.md \
${mdbookOptions}/summary/nixos.md \
${mdbookOptions}/summary/nix-darwin.md
substituteInPlace ./nix-darwin-options.md \
--subst-var-by \
OPTIONS_JSON \
${home-manager-options.nix-darwin}/share/doc/nixos/options.json
mdbook build source --dest-dir book
cp ${./options.html} out/options.html
mkdir -p out
cp -r book/* out/
cp ${./static/style.css} out/style.css
python3 ${./mdbook/legacy-redirects.py} source out
cp -r ${./release-notes} release-notes
nixos-render-docs manual html \
--manpage-urls ./manpage-urls.json \
--revision ${lib.trivial.revisionWithDefault revision} \
--stylesheet style.css \
--script highlightjs/highlight.pack.js \
--script highlightjs/loader.js \
--toc-depth 1 \
--section-toc-depth 1 \
manual.md \
out/index.xhtml
runHook postBuild
'';
installPhase = ''
@@ -67,7 +81,9 @@ stdenv.mkDerivation {
echo "doc manual $dest index.html" >> $out/nix-support/hydra-build-products
'';
passthru = { inherit home-manager-options; };
passthru = {
inherit home-manager-options mdbookOptions;
};
meta = {
maintainers = [ lib.maintainers.considerate ];
+7 -2
View File
@@ -25,9 +25,14 @@ let
if [[ ! -v BROWSER || -z $BROWSER ]]; then
echo "$0: unable to start a web browser; please set \$BROWSER"
exit 1
else
exec "$BROWSER" "${html}/share/doc/${pathName}/index.xhtml"
fi
manualPath="${html}/share/doc/${pathName}/index.html"
if [[ ! -e $manualPath ]]; then
manualPath="${html}/share/doc/${pathName}/index.xhtml"
fi
exec "$BROWSER" "$manualPath"
'';
desktopItem = makeDesktopItem {
+64
View File
@@ -0,0 +1,64 @@
# Summary
- [Preface](preface.md)
- [Introduction to Home Manager](introduction.md)
- [Installing Home Manager](installation.md)
- [Standalone installation](installation/standalone.md)
- [NixOS module](installation/nixos.md)
- [nix-darwin module](installation/nix-darwin.md)
- [Using Home Manager](usage.md)
- [Configuration Example](usage/configuration.md)
- [Rollbacks](usage/rollbacks.md)
- [Keeping your ~ safe from harm](usage/dotfiles.md)
- [Graphical services](usage/graphical.md)
- [GPU on non-NixOS systems](usage/gpu-non-nixos.md)
- [Modular Services](usage/modular-services.md)
- [Updating](usage/updating.md)
- [Upgrading to a new Home Manager release](usage/upgrading.md)
- [Nix Flakes](nix-flakes.md)
- [Prerequisites](nix-flakes/prerequisites.md)
- [Standalone setup](nix-flakes/standalone.md)
- [NixOS module](nix-flakes/nixos.md)
- [nix-darwin module](nix-flakes/nix-darwin.md)
- [flake-parts module](nix-flakes/flake-parts.md)
- [Writing Home Manager Modules](writing-modules.md)
- [Option Types](writing-modules/types.md)
- [Contributing](contributing.md)
- [Getting started](contributing/getting-started.md)
- [Guidelines](contributing/guidelines.md)
- [Release Notes](contributing/release-notes.md)
- [News](contributing/news.md)
- [Tests](contributing/tests.md)
- [Home Manager Internals](internals.md)
- [Activation](internals/activation.md)
- [Third-Party Tools and Extensions](3rd-party.md)
- [Module Collections](3rd-party/collections.md)
- [Frequently Asked Questions (FAQ)](faq.md)
- [Why is there a collision error when switching generation?](faq/collision.md)
- [Why are the session variables not set?](faq/session-variables.md)
- [How to set up a configuration for multiple users/machines?](faq/multiple-users-machines.md)
- [Why do I get an error message about `ca.desrt.dconf` or `dconf.service`?](faq/ca-desrt-dconf.md)
- [How do I install packages from Nixpkgs unstable?](faq/unstable.md)
- [How do I change the package used by a module?](faq/change-package-module.md)
- [Options](options.md)
@HOME_MANAGER_OPTIONS@
@NIXOS_OPTIONS@
@NIX_DARWIN_OPTIONS@
- [Release Notes](release-notes/release-notes.md)
- [Release 26.11](release-notes/rl-2611.md)
- [Release 26.05](release-notes/rl-2605.md)
- [Release 25.11](release-notes/rl-2511.md)
- [Release 25.05](release-notes/rl-2505.md)
- [Release 24.11](release-notes/rl-2411.md)
- [Release 24.05](release-notes/rl-2405.md)
- [Release 23.11](release-notes/rl-2311.md)
- [Release 23.05](release-notes/rl-2305.md)
- [Release 22.11](release-notes/rl-2211.md)
- [Release 22.05](release-notes/rl-2205.md)
- [Release 21.11](release-notes/rl-2111.md)
- [Release 21.05](release-notes/rl-2105.md)
- [Release 20.09](release-notes/rl-2009.md)
- [Release 20.03](release-notes/rl-2003.md)
- [Release 19.09](release-notes/rl-1909.md)
- [Release 19.03](release-notes/rl-1903.md)
- [Release 18.09](release-notes/rl-1809.md)
+11
View File
@@ -0,0 +1,11 @@
[book]
title = "Home Manager Manual"
language = "en"
src = "."
[output.html]
git-repository-url = "https://github.com/nix-community/home-manager"
[output.html.fold]
enable = true
level = 0
+3 -2
View File
@@ -3,8 +3,8 @@
Contributions to Home Manager are very welcome. To make the process as
smooth as possible for both you and the Home Manager maintainers we
provide some guidelines that we ask you to follow. See [Getting
started](#sec-contrib-getting-started) for information on how to set up
a suitable development environment and [Guidelines](#sec-guidelines) for
started](contributing/getting-started.md#sec-contrib-getting-started) for information on how to set up
a suitable development environment and [Guidelines](contributing/guidelines.md#sec-guidelines) for
the actual guidelines.
This text is mainly directed at those who would like to make code
@@ -22,6 +22,7 @@ configuration.
```{=include=} sections
contributing/getting-started.md
contributing/guidelines.md
contributing/release-notes.md
contributing/news.md
contributing/tests.md
```
+2 -2
View File
@@ -8,7 +8,7 @@ how to do this.
Once you have a fork of Home Manager you should create a branch starting
at the most recent `master` branch. Give your branch a reasonably
descriptive name. Commit your changes to this branch and when you are
happy with the result and it fulfills [Guidelines](#sec-guidelines) then
happy with the result and it fulfills [Guidelines](guidelines.md#sec-guidelines) then
push the branch to GitHub and [create a pull
request](https://help.github.com/articles/creating-a-pull-request/).
@@ -21,7 +21,7 @@ the `home-manager` command use it by either
$ home-manager -I home-manager=$HOME/devel/home-manager
```
or, if using [flakes](#sec-flakes-standalone):
or, if using [flakes](../nix-flakes/standalone.md#sec-flakes-standalone):
``` shell
$ home-manager --override-input home-manager ~/devel/home-manager
+51 -8
View File
@@ -58,11 +58,38 @@ YAML, INI, TOML, or even a plain list of key/value pairs then consider
using a `settings` option as described in [Nix RFC
42](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md).
These guidelines describe the minimum option design requirements. Before
submitting a module, compare it against the upstream documentation or
source code and verify that the generated files, services, environment
variables, and command line arguments all match the upstream behavior
you intend to expose.
If a module installs a package, try to make the package option nullable,
for example
``` nix
package = lib.mkPackageOption pkgs "xdg-terminal-exec" { nullable = true; };
```
This lets users keep installation outside Home Manager, for example via
`apt` or because the program is built into macOS, while still using the
module for configuration. Keeping the package non-nullable is fine when
the enabled behavior structurally requires the executable or when
package-less support would make the module significantly more complex.
Avoid generating files for empty settings, null packages, or optional
features that are not configured.
If upstream does not use XDG paths by default but supports changing the
configuration location with an environment variable, for example
`FOO_HOME`, expose a `configDir` option and use it to respect
`home.preferXdgDirectories`.
## Add relevant tests {#sec-guidelines-add-tests}
If at all possible, make sure to add new tests and expand existing tests
so that your change will keep working in the future. See
[Tests](#sec-tests) for more information about the Home Manager test
[Tests](tests.md#sec-tests) for more information about the Home Manager test
suite.
All contributed code *must* pass the test suite.
@@ -81,7 +108,7 @@ Manager Git repository:
``` shell
$ nix-build -A docs.html
$ xdg-open ./result/share/doc/home-manager/index.xhtml
$ xdg-open ./result/share/doc/home-manager/index.html
```
When you have made changes to a module, it is a good idea to check that
@@ -89,7 +116,7 @@ the man page version of the module options looks good:
``` shell
$ nix-build -A docs.manPages
$ man ./result/share/man/man5/home-configuration.nix.5.gz
$ man ./result/share/man/man5/home-configuration.nix.5
```
## Module Auto-importing {#sec-module-auto-importing}
@@ -155,10 +182,17 @@ consistent commit message format as described in
If your contribution includes a change that should be communicated to
users of Home Manager then you can add a news entry. The entry must be
formatted as described in [News](#sec-news).
formatted as described in [News](news.md#sec-news).
When new modules are added a news entry should be included.
News entries and release notes serve different purposes. Release notes
should be updated separately when a change affects users migrating
between stable releases, such as state version default changes, required
migration steps, or broad behavior changes. See
[Release Notes](release-notes.md#sec-contributing-release-notes) and [News](news.md#sec-news)
for more details.
## Use conditional modules and news {#sec-guidelines-conditional-modules}
Home Manager includes a number of modules that are only usable on some
@@ -166,12 +200,16 @@ of the supported platforms. The most common example of platform specific
modules are those that define systemd user services, which only works on
Linux systems.
If you add a module that is platform specific then make sure to include
a condition in the `loadModule` function call. This will make the module
accessible only on systems where the condition evaluates to `true`.
If you add a module that is platform specific then make sure the module
guards platform-specific configuration with an appropriate condition, for
example `pkgs.stdenv.hostPlatform.isLinux` or
`pkgs.stdenv.hostPlatform.isDarwin`. Modules in `modules/programs/` and
`modules/services/` are auto-imported, so the platform condition should live
in the module behavior and in any platform-specific tests rather than in a
separate module discovery call.
Similarly, if you are adding a news entry then it should be shown only
to users that may find it relevant, see [News](#sec-news) for a
to users that may find it relevant, see [News](news.md#sec-news) for a
description of conditional news.
## Mind the license {#sec-guidelines-licensing}
@@ -194,6 +232,11 @@ that is, each commit should make sense in isolation. In particular, you
will be asked to amend any commit that introduces syntax errors or
similar problems even if they are fixed in a later commit.
Keep commits atomic and separated by concern. For example, a new
maintainer entry should be a separate first commit, and a shared module
should be committed separately from integrations in existing modules.
Pull requests should not include merge commits or fixup commits.
The commit messages should follow the [seven
rules](https://chris.beams.io/posts/git-commit/#seven-rules), except for
\"Capitalize the subject line\". We also ask you to include the affected
+24 -7
View File
@@ -6,8 +6,17 @@ associated news entry. In general, a news entry should only be added for
truly noteworthy news. For example, a bug fix or new option does
generally not need a news entry.
Release notes and news entries serve different purposes. A news entry is
shown during Home Manager activation and is useful for day-to-day
communication about noteworthy changes, such as a new module, a new
feature, or a specific deprecation. Release notes are read from the
website documentation and should summarize what users need to know before
or during a stable-release upgrade. See
[Release Notes](release-notes.md#sec-contributing-release-notes) for guidance on changes
that affect stable-release upgrades.
If you do have a change worthy of a news entry then please add one in
[`news.nix`](https://github.com/nix-community/home-manager/blob/master/modules/misc/news.nix)
[`news`](https://github.com/nix-community/home-manager/blob/master/modules/misc/news)
but you should follow some basic guidelines:
- Use the included news entry generator to create a news entry file:
@@ -19,15 +28,18 @@ but you should follow some basic guidelines:
Alternatively, you can directly use the script:
``` shell
$ modules/misc/news/create-news-entry.sh
$ nix-shell -A dev --run modules/misc/news/create-news-entry.sh
```
This will create a new file inside the `modules/misc/news` directory
with some placeholder information that you can edit.
- The entry condition should be as specific as possible. For example,
if you are changing or deprecating a specific option then you could
restrict the news to those users who actually use this option.
- The entry condition should be as specific as possible for changes
affecting existing functionality. For example, if you are changing
or deprecating a specific option then you could restrict the news to
those users who actually use this option. Prefer a targeted
condition over skipping useful news only to avoid notifying
unaffected users.
- Wrap the news message so that it will fit in the typical terminal,
that is, at most 80 characters wide. Ideally a bit less.
@@ -53,6 +65,10 @@ but you should follow some basic guidelines:
A new module is available: 'services.foo'.
Since this news announces newly available functionality, its
condition should not require `config.services.foo.enable`; otherwise
users who may want the new module will not see the news.
If the module is platform specific, e.g., a service module using
systemd, then a condition like
@@ -60,5 +76,6 @@ but you should follow some basic guidelines:
condition = hostPlatform.isLinux;
```
should be added. If you contribute a module then you don't need to
add this entry, the merger will create an entry for you.
should be added to avoid showing the news on unsupported platforms.
Use the `create-news-entry` generator described above to scaffold
this entry as part of your contribution.
+24
View File
@@ -0,0 +1,24 @@
# Release Notes {#sec-contributing-release-notes}
Home Manager release notes are published as part of the website documentation in
`docs/release-notes/rl-*.md`. They are intended for users migrating from one
stable release to another.
A change should be mentioned in the release notes when it affects migration
between stable releases. This includes changes that require user action or
awareness during an upgrade, such as:
- breaking changes;
- default changes guarded by `home.stateVersion`;
- required migration steps;
- broad behavior changes across platform or integration boundaries;
- compatibility changes that can affect existing configurations.
Do not use the presence or absence of a news entry to decide whether a change
belongs in the release notes. A change can require a news entry, a release note,
both, or neither.
When preparing a release, review the commits since the previous stable release
and update the upcoming release note file with the migration impact. Prefer
concise user-facing descriptions that name the affected option paths and explain
required action.
+24 -5
View File
@@ -54,6 +54,13 @@ The `default.nix` file should list all test cases:
}
```
Prefer keeping related assertions in as few test files as practical.
Exercising several cases in one evaluation keeps the test suite cheaper
to evaluate and reduces maintenance burden. Split cases into separate
files when they need incompatible module configuration, platform
conditions, expected assertion failures, or otherwise cannot share one
evaluation.
### Common NMT Assertions {#sec-tests-assertions}
NMT provides several assertion functions:
@@ -162,6 +169,12 @@ For cross-platform modules that have packages which need to be stubbed on Darwin
add the package names to `tests/darwinScrublist.nix` to prevent build failures
during cross-platform test runs.
On Linux, packages are automatically scrubbed by the test infrastructure,
so tests should normally use the module's default package. Use
`test.stubs` or `config.lib.test.mkStubPackage` only when the automatic
scrubbing does not model the behavior that the test needs, such as a
package with additional files or a non-default executable layout.
## Using the tests command {#sec-tests-command}
Home Manager provides a convenient `tests` command for discovering and running tests:
@@ -179,16 +192,22 @@ $ nix run .#tests -- alacritty
# Run a specific test
$ nix run .#tests -- test-alacritty-empty-settings
# Run integration tests
# List integration tests
$ nix run .#tests -- -t -l
# Run all integration tests
$ nix run .#tests -- -t integration-test-
# Interactive test selection (requires fzf)
$ python3 tests/tests.py -i
$ nix run .#tests -- -i
# Pass additional nix build flags
$ nix run .#tests -- alacritty -- --verbose
```
Integration tests are only exposed on Linux. On other platforms, integration
test discovery may report no matching tests.
## Manual test commands {#sec-tests-manual}
For advanced usage or CI environments, you can also run tests manually using nix build commands.
@@ -202,7 +221,7 @@ $ nix-build --pure --option allow-import-from-derivation false tests -A build.al
in the project root. List all test cases through
``` shell
$ nix-build --pure tests --option allow-import-from-derivation false -A list
$ nix run .#tests -- -l
```
and run an individual test, for example `alacritty-empty-settings`,
@@ -217,13 +236,13 @@ and may cause failures. To run against the Nixpkgs from the `flake.lock` file,
use instead e.g.
``` shell
$ nix build --reference-lock-file flake.lock --option allow-import-from-derivation false ./tests#test-all
$ nix build .#test-all
```
or
``` shell
$ nix build --reference-lock-file flake.lock --option allow-import-from-derivation false ./tests#test-alacritty-empty-settings
$ nix build .#test-alacritty-empty-settings
```
Some tests may be marked with `enableLegacyIfd`, those may be run by run with e.g.
+59 -8
View File
@@ -20,10 +20,22 @@ this package. This can typically be done in two ways.
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
programs.beets.package = pkgsUnstable.beets;
# …
}
```
should work OK. With flakes, pass the unstable package set as
described in
[How do I install packages from Nixpkgs unstable?](unstable.md#_how_do_i_install_packages_from_nixpkgs_unstable)
and then use the extra module argument:
``` nix
{ pkgsUnstable, ... }:
{
programs.beets.package = pkgsUnstable.beets;
@@ -32,9 +44,7 @@ this package. This can typically be done in two ways.
}
```
should work OK.
3. If no `package` option is available then you can typically change
2. If no `package` option is available then you can typically change
the relevant package using an
[overlay](https://nixos.org/nixpkgs/manual/#chap-overlays).
@@ -45,16 +55,14 @@ this package. This can typically be done in two ways.
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
programs.skim.enable = true;
nixpkgs.overlays = [
(self: super: {
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
@@ -64,3 +72,46 @@ this package. This can typically be done in two ways.
```
should work OK.
The same Home Manager overlay works in a flake-based standalone
configuration if `pkgsUnstable` is passed to the Home Manager
module:
``` nix
{ pkgsUnstable, ... }:
{
programs.skim.enable = true;
nixpkgs.overlays = [
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
# …
}
```
This also works when Home Manager is used as a NixOS or nix-darwin
module without `home-manager.useGlobalPkgs = true`. If
`home-manager.useGlobalPkgs = true` is enabled, Home Manager uses
the system package set and the `nixpkgs.*` options inside Home
Manager are disabled. In that case, put the overlay in the system
configuration instead, for example:
``` nix
{ pkgsUnstable, ... }:
{
nixpkgs.overlays = [
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
}
```
In a flake-based NixOS or nix-darwin configuration, pass
`pkgsUnstable` to `nixosSystem` or `darwinSystem` with
`specialArgs`.
+82 -7
View File
@@ -3,22 +3,20 @@
If you are using a stable version of Nixpkgs but would like to install
some particular packages from Nixpkgs unstable -- or some other channel
-- then you can import the unstable Nixpkgs and refer to its packages
within your configuration. Something like
within your configuration.
With channels, something like
``` nix
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
home.packages = [
pkgsUnstable.foo
];
# …
}
```
@@ -32,5 +30,82 @@ $ nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable
$ nix-channel --update
```
Note, the package will not be affected by any package overrides,
overlays, etc.
With flakes, add another Nixpkgs input and pass its packages to your
Home Manager modules. For example, a standalone Home Manager flake can
define the following. Replace 25.11 with the release branch your
configuration follows.
``` nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager/release-25.11";
};
outputs =
{ nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
# Replace this with the system of your Home Manager configuration.
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
in
{
homeConfigurations.jdoe = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit pkgsUnstable; };
modules = [ ./home.nix ];
};
};
}
```
and then use the extra argument in `home.nix`:
``` nix
{ pkgsUnstable, ... }:
{
home.packages = [
pkgsUnstable.foo
];
}
```
When Home Manager is used as a NixOS or nix-darwin module, pass the
extra package set with `home-manager.extraSpecialArgs` in the system
configuration:
``` nix
outputs =
{ nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
# Replace this with the system of your NixOS or nix-darwin configuration.
system = "x86_64-linux";
in
{
nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
home-manager.nixosModules.home-manager
({ config, ... }: {
home-manager.extraSpecialArgs = {
pkgsUnstable = import nixpkgs-unstable {
inherit system;
config = config.nixpkgs.config;
overlays = config.nixpkgs.overlays;
};
# If you use a stock Nixpkgs configuration, you can use:
# pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
};
})
];
};
};
```
The nix-darwin setup is the same pattern with
`darwin.lib.darwinSystem` and
`home-manager.darwinModules.home-manager`.
+4 -4
View File
@@ -6,26 +6,26 @@ Home Manager can be used in three primary ways:
NixOS and Darwin, this is the only available choice. It is also
recommended for people on NixOS or Darwin that want to manage their
home directory independently of the system as a whole. See
[Standalone installation](#sec-install-standalone) for instructions
[Standalone installation](installation/standalone.md#sec-install-standalone) for instructions
on how to perform this installation.
2. As a module within a NixOS system configuration. This allows the
user profiles to be built together with the system when running
`nixos-rebuild`. See [NixOS module](#sec-install-nixos-module) for a
`nixos-rebuild`. See [NixOS module](installation/nixos.md#sec-install-nixos-module) for a
description of this setup.
3. As a module within a
[nix-darwin](https://github.com/nix-darwin/nix-darwin/) system
configuration. This allows the user profiles to be built together
with the system when running `darwin-rebuild`. See [nix-darwin
module](#sec-install-nix-darwin-module) for a description of this
module](installation/nix-darwin.md#sec-install-nix-darwin-module) for a description of this
setup.
:::{.note}
In this chapter we describe how to install Home Manager in the standard
way using channels. If you prefer to use [Nix
Flakes](https://wiki.nixos.org/wiki/Flakes) then please see the instructions
in [nix flakes](#ch-nix-flakes).
in [nix flakes](nix-flakes.md#ch-nix-flakes).
:::
```{=include=} sections
+26 -13
View File
@@ -5,9 +5,9 @@ environments directly from the
[nix-darwin](https://github.com/nix-darwin/nix-darwin/) configuration file,
which often is more convenient than using the `home-manager` tool.
To make the NixOS module available for use you must `import` it into
your system configuration. This is most conveniently done by adding a
Home Manager channel. For example, if you are following Nixpkgs master
To make the nix-darwin module available for use you must `import` it
into your system configuration. This is most conveniently done by adding
a Home Manager channel. For example, if you are following Nixpkgs master
or an unstable channel, you can run
``` shell
@@ -15,10 +15,10 @@ $ nix-channel --add https://github.com/nix-community/home-manager/archive/master
$ nix-channel --update
```
and if you follow a Nixpkgs version 25.11 channel, you can run
and if you follow a Nixpkgs version 26.05 channel, you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ nix-channel --update
```
@@ -28,9 +28,9 @@ It is then possible to add
imports = [ <home-manager/nix-darwin> ];
```
to your nix-darwin `configuration.nix` file, which will introduce a new
NixOS option called `home-manager` whose type is an attribute set that
maps user names to Home Manager configurations.
to your nix-darwin `configuration.nix` file, which will introduce a
`home-manager.users` option whose type is an attribute set that maps
user names to Home Manager configurations.
For example, a nix-darwin configuration may include the lines
@@ -45,13 +45,16 @@ home-manager.users.eve = { pkgs, ... }: {
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "25.11";
home.stateVersion = "26.05";
};
```
and after a `darwin-rebuild switch` the user eve's environment should
include a basic Bash configuration and the packages atool and httpie.
Home Manager activation runs as part of nix-darwin activation for each
configured user.
If you do not plan on having Home Manager manage your shell
configuration then you must add either
@@ -103,13 +106,23 @@ Nixpkgs.
:::
:::{.note}
Home Manager will pass `osConfig` as a module argument to any modules
you create. This contains the system's nix-darwin configuration.
Home Manager passes extra module arguments to each
`home-manager.users.<name>` module:
``` nix
{ lib, pkgs, osConfig, ... }:
{ lib, pkgs, osConfig, darwinConfig, osClass, modulesPath, ... }:
```
Here `osConfig` contains the system's nix-darwin configuration and
`darwinConfig` is a Darwin-specific alias for the same value. The `lib`
argument is Home Manager's extended library. You can pass additional module
arguments with `home-manager.extraSpecialArgs`.
:::
Once installed you can see [Using Home Manager](#ch-usage) for a more detailed
:::{.note}
Use `home-manager.sharedModules` to add Home Manager modules to every user
declared under `home-manager.users`.
:::
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+30 -12
View File
@@ -17,10 +17,10 @@ $ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/m
$ sudo nix-channel --update
```
and if you follow a Nixpkgs version 25.11 channel, you can run
and if you follow a Nixpkgs version 26.05 channel, you can run
``` shell
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ sudo nix-channel --update
```
@@ -39,7 +39,7 @@ Alternatively, home-manager installation can be done declaratively through confi
{ config, pkgs, lib, ... }:
let
home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz;
home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz;
in
{
imports =
@@ -54,7 +54,7 @@ in
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "25.11";
home.stateVersion = "26.05";
};
}
```
@@ -74,7 +74,7 @@ home-manager.users.eve = { pkgs, ... }: {
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.11"; # Please read the comment before changing.
home.stateVersion = "26.05"; # Please read the comment before changing.
};
```
@@ -85,12 +85,21 @@ httpie.
:::{.note}
If `nixos-rebuild switch` does not result in the environment you expect,
you can take a look at the output of the Home Manager activation script
output using
then the service to inspect depends on the activation mode.
By default, Home Manager activates each configured user during boot and
system rebuilds through a NixOS system service:
``` shell
$ systemctl status "home-manager-$USER.service"
```
If `home-manager.startAsUserService = true` is set, Home Manager instead
activates through the user's systemd service:
``` shell
$ systemctl --user status home-manager.service
```
:::
If you do not plan on having Home Manager manage your shell
@@ -144,14 +153,23 @@ Nixpkgs.
:::
:::{.note}
Home Manager will pass `osConfig` as a module argument to any modules
you create. This contains the system's NixOS configuration.
Home Manager passes extra module arguments to each
`home-manager.users.<name>` module:
``` nix
{ lib, pkgs, osConfig, ... }:
{ lib, pkgs, osConfig, nixosConfig, osClass, modulesPath, ... }:
```
Here `osConfig` contains the system's NixOS configuration and `nixosConfig`
is a NixOS-specific alias for the same value. The `lib` argument is Home
Manager's extended library. You can pass additional module arguments with
`home-manager.extraSpecialArgs`.
:::
Once installed you can see [Using Home Manager](#ch-usage) for a more detailed
description of Home Manager and how to use it.
:::{.note}
Use `home-manager.sharedModules` to add Home Manager modules to every user
declared under `home-manager.users`.
:::
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+3 -3
View File
@@ -19,10 +19,10 @@
$ nix-channel --update
```
and if you follow a Nixpkgs version 25.11 channel you can run
and if you follow a Nixpkgs version 26.05 channel you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ nix-channel --update
```
@@ -71,5 +71,5 @@ checkout of the repository then you can use the
[home-manager.path](#opt-programs.home-manager.path) option to specify the absolute
path to the repository.
Once installed you can see [Using Home Manager](#ch-usage) for a more detailed
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+1 -1
View File
@@ -1,6 +1,6 @@
# Home Manager Manual {#home-manager-manual}
## Version 26.05 (unstable)
## Version 26.11 (unstable)
```{=include=} preface
+28 -8
View File
@@ -12,18 +12,40 @@ flake in three ways:
NixOS and Darwin, this is the only available choice. It is also
recommended for people on NixOS or Darwin that want to manage their
home directory independently of the system as a whole. See
[Standalone setup](#sec-flakes-standalone) for instructions on how
[Standalone setup](nix-flakes/standalone.md#sec-flakes-standalone) for instructions on how
to perform this installation.
2. As a module within a NixOS system configuration. This allows the
user profiles to be built together with the system when running
`nixos-rebuild`. See [NixOS module](#sec-flakes-nixos-module) for a
`nixos-rebuild`. See [NixOS module](nix-flakes/nixos.md#sec-flakes-nixos-module) for a
description of this setup.
3. This allows the user profiles to be built together with the system
when running `darwin-rebuild`. See [nix-darwin
module](#sec-flakes-nix-darwin-module) for a description of this
setup.
3. As a module within a [nix-darwin](https://github.com/nix-darwin/nix-darwin/)
system configuration. This allows the user profiles to be built
together with the system when running `darwin-rebuild`. See
[nix-darwin module](nix-flakes/nix-darwin.md#sec-flakes-nix-darwin-module) for a
description of this setup.
Advanced users may want Home Manager's `nixpkgs` input to follow the
same Nixpkgs input as the rest of their flake. This avoids a second
Nixpkgs input and makes Home Manager use the same pinned Nixpkgs source
revision as the rest of the configuration:
``` nix
home-manager.inputs.nixpkgs.follows = "nixpkgs";
```
This removes the compatibility assumption between Home Manager and the
Nixpkgs revision in Home Manager's own lock file, so use it carefully,
especially when tracking unstable branches.
This does not by itself make Home Manager use the same `pkgs` value as
your NixOS or nix-darwin system. In NixOS and nix-darwin module setups,
`home-manager.useGlobalPkgs = true` controls that behavior by making
Home Manager modules receive the system `pkgs` value. When
`home-manager.useGlobalPkgs` is enabled, configure Nixpkgs overlays and
configuration at the system level instead of through Home Manager
`nixpkgs.*` options.
```{=include=} sections
nix-flakes/prerequisites.md
@@ -32,5 +54,3 @@ nix-flakes/nixos.md
nix-flakes/nix-darwin.md
nix-flakes/flake-parts.md
```
+33 -9
View File
@@ -1,29 +1,53 @@
# flake-parts module {#sec-flakes-flake-parts-module}
When using [flake-parts](https://flake.parts)
you may wish to import Home Manager's flake module,
`flakeModules.home-manager`.
When using [flake-parts](https://flake.parts) you may wish to import Home
Manager's flake module, `flakeModules.home-manager`.
``` nix
```nix
{
description = "flake-parts configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs = inputs@{ flake-parts, ... }:
outputs = inputs@{
flake-parts,
home-manager,
nixpkgs,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
# Import home-manager's flake module
inputs.home-manager.flakeModules.home-manager
];
flake = {
# Define `homeModules`, `homeConfigurations`,
# `nixosConfigurations`, etc here
# Reusable Home Manager module.
homeModules.bash= { pkgs, ... }: {
programs.bash = {
enable = true;
shellAliases = {
ll = "ls -l";
};
};
home.packages = [ pkgs.hello ];
};
# Concrete Home Manager configuration.
homeConfigurations.alice = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { system = "x86_64-linux"; };
modules = [
inputs.self.homeModules.bash
{
home.username = "alice";
home.homeDirectory = "/home/alice";
home.stateVersion = "25.11";
}
];
};
};
# See flake.parts for more features, such as `perSystem`
};
+19 -7
View File
@@ -8,11 +8,10 @@ to that of NixOS. The `flake.nix` would be:
description = "Darwin configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
darwin.url = "github:nix-darwin/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ nixpkgs, home-manager, darwin, ... }: {
@@ -25,10 +24,8 @@ to that of NixOS. The `flake.nix` would be:
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.jdoe = ./home.nix;
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
}
];
};
@@ -37,8 +34,23 @@ to that of NixOS. The `flake.nix` would be:
}
```
and it is also rebuilt with the nix-darwin generations. The rebuild
command here may be `darwin-rebuild switch --flake <flake-uri>`.
Use `home-manager.extraSpecialArgs` to pass arguments from your flake to
`home.nix` and any imported Home Manager modules. For example, the
configuration above makes the complete `inputs` attrset available to modules,
so they can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer
`home-manager.extraSpecialArgs`.
Use `home-manager.sharedModules` for Home Manager modules or settings that
should be imported by every user declared in `home-manager.users`.
The Home Manager configuration is also rebuilt with the nix-darwin
generations. The rebuild command here may be
`darwin-rebuild switch --flake ~/.config/darwin`.
You can use the above `flake.nix` as a template in `~/.config/darwin` by
+20 -6
View File
@@ -8,9 +8,8 @@ be as follows:
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ nixpkgs, home-manager, ... }: {
@@ -23,10 +22,8 @@ be as follows:
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.jdoe = ./home.nix;
# Optionally, use home-manager.extraSpecialArgs to pass
# arguments to home.nix
}
];
};
@@ -35,10 +32,27 @@ be as follows:
}
```
Use `home-manager.extraSpecialArgs` to pass arguments from your flake to
`home.nix` and any imported Home Manager modules. For example, the
configuration above makes the complete `inputs` attrset available to modules,
so they can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer
`home-manager.extraSpecialArgs`.
Use `home-manager.sharedModules` for Home Manager modules or settings that
should be imported by every user declared in `home-manager.users`.
The Home Manager configuration is then part of the NixOS configuration
and is automatically rebuilt with the system when using the appropriate
command for the system, such as
`nixos-rebuild switch --flake <flake-uri>`.
``` shell
$ nixos-rebuild switch --flake /etc/nixos
```
You can use the above `flake.nix` as a template in `/etc/nixos` by
+1 -1
View File
@@ -33,5 +33,5 @@
Unlike the channel-based setup, `home.nix` will be evaluated when
the flake is built, so it must be present before bootstrap of Home
Manager from the flake. See [Configuration Example](#sec-usage-configuration) for
Manager from the flake. See [Configuration Example](../usage/configuration.md#sec-usage-configuration) for
introduction about writing a Home Manager configuration.
+39 -11
View File
@@ -11,15 +11,44 @@ then to generate and activate a basic configuration run the command
$ nix run home-manager/master -- init --switch
```
For Nixpkgs or NixOS version 25.11 run
For Nixpkgs or NixOS version 26.05 run
``` shell
$ nix run home-manager/release-25.11 -- init --switch
$ nix run home-manager/release-26.05 -- init --switch
```
This will generate a `flake.nix` and a `home.nix` file in
`~/.config/home-manager`, creating the directory if it does not exist.
If you need to pass additional values from your flake to `home.nix` or any
imported Home Manager modules, use `extraSpecialArgs` in the call to
`home-manager.lib.homeManagerConfiguration`:
``` nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
};
outputs = inputs@{ nixpkgs, home-manager, ... }: {
homeConfigurations.jdoe = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs; };
modules = [ ./home.nix ];
};
};
}
```
Any attribute in `extraSpecialArgs` becomes a module argument, so `home.nix`
or imported modules can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer `extraSpecialArgs`.
If you omit the `--switch` option then the activation will not happen.
This is useful if you want to inspect and edit the configuration before
activating it.
@@ -30,7 +59,7 @@ $ # Edit files in ~/.config/home-manager
$ nix run home-manager/$branch -- init --switch
```
Where `$branch` is one of `master` or `release-25.11`.
Where `$branch` is one of `master` or `release-26.05`.
After the initial activation has completed successfully then building
and activating your flake-based configuration is as simple as
@@ -49,14 +78,13 @@ $ home-manager switch --flake ~/hmconf
```
::: {.note}
The flake inputs are not automatically updated by Home Manager. You need
to use the standard `nix flake update` command for that.
The flake inputs are not automatically updated by Home Manager. Update
the lock file with `nix flake update` before switching if you want to
use newer input revisions.
If you only want to update a single flake input, then the command
`nix flake lock --update-input <input>` can be used.
If you only want to update specific flake inputs, name them explicitly,
for example `nix flake update nixpkgs home-manager`.
You can also pass flake-related options such as `--recreate-lock-file`
or `--update-input <input>` to `home-manager` when building or
switching, and these options will be forwarded to `nix build`. See the
[NixOS Wiki page](https://wiki.nixos.org/wiki/Flakes) for details.
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
:::
+2 -1
View File
@@ -43,7 +43,7 @@ option will state the expected type, for
[programs.emacs.enable](#opt-programs.emacs.enable) you will see "Type: boolean". You
there also find information about the default value and a description of
the option. You can find the complete option documentation in
[Home Manager Configuration Options](#ch-options) or directly in the terminal by running
[Home Manager Configuration Options](options.md#ch-options) or directly in the terminal by running
``` shell
man home-configuration.nix
@@ -60,6 +60,7 @@ usage/rollbacks.md
usage/dotfiles.md
usage/graphical.md
usage/gpu-non-nixos.md
usage/modular-services.md
usage/updating.md
usage/upgrading.md
```
+2 -2
View File
@@ -20,7 +20,7 @@ A fresh install of Home Manager will generate a minimal
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "25.11";
home.stateVersion = "26.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
@@ -65,7 +65,7 @@ follows:
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "25.11";
home.stateVersion = "26.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
+133
View File
@@ -34,3 +34,136 @@ Activating checkLinkTargets
Existing file '/home/jdoe/.config/git/config' is in the way
Please move the above files and try again
```
This error is about a file that Home Manager wants to manage as a
symbolic link in your home directory. It is separate from package
profile collisions, which usually mention `installPackages` or a
`collision between .../bin/...` path. For package collisions, see
[Why is there a collision error when switching generation?](../faq/collision.md#_why_is_there_a_collision_error_when_switching_generation).
## Resolving file collisions {#sec-usage-dotfiles-collisions}
The safest resolution is to inspect the existing path, move any
settings you want Home Manager to manage into your configuration, and
remove or move the unmanaged file before switching again.
For a standalone Home Manager installation, you can ask Home Manager to
move unmanaged non-symlink paths out of the way during activation:
``` shell
home-manager switch -b backup
```
With the command above, a colliding `~/.config/git/config` is moved to
`~/.config/git/config.backup` before Home Manager links the managed
file. If the backup path already exists then activation still aborts, so
choose an extension whose backup path does not already exist.
Standalone activation can also run a custom command for each collision:
``` shell
home-manager switch -B trash-put
```
The command receives the colliding path as an argument and must move or
remove that path. If both `-B` and `-b` are set, the custom command takes
precedence; the command may still use the
`HOME_MANAGER_BACKUP_EXT` environment variable set by `-b`.
When Home Manager is used as a NixOS or nix-darwin module, configure the
corresponding module options instead of passing standalone command line
flags:
``` nix
{
home-manager.backupFileExtension = "backup";
}
```
or
``` nix
{
home-manager.backupCommand = "${pkgs.trash-cli}/bin/trash-put";
}
```
If both {option}`home-manager.backupCommand` and
{option}`home-manager.backupFileExtension` are set, the command takes
precedence. The extension is still exported to the command as
`HOME_MANAGER_BACKUP_EXT`, so the command can use it when implementing
its own backup naming. With
{option}`home-manager.backupFileExtension`, Home Manager refuses to
replace an existing backup path unless
{option}`home-manager.overwriteBackup` is enabled:
``` nix
{
home-manager.backupFileExtension = "backup";
home-manager.overwriteBackup = true;
}
```
::: {.warning}
{option}`home-manager.overwriteBackup` allows activation to clobber
existing backup files. Only enable it when those backup paths are
disposable.
:::
For individual files, many file options also support `force = true`:
``` nix
{
home.file.".config/example" = {
source = ./example;
force = true;
};
}
```
This skips the collision check for the affected target and lets Home
Manager replace the existing file or link. Use it sparingly; it can
silently delete local changes.
Backup commands and backup extensions are intended for unmanaged
non-symlink paths. If the colliding target is an unmanaged symbolic
link, move it manually or use `force = true` after checking that the
link target is safe to replace.
## Advanced file behavior {#sec-usage-dotfiles-advanced}
The notes below apply to {option}`home.file` and to options based on the
same file type, such as {option}`xdg.configFile`.
When a file source is a directory, {option}`home.file.<name>.recursive`
changes how the directory is linked. With the default `recursive =
false`, the target is one symbolic link to the source directory. With
`recursive = true`, Home Manager creates a matching directory tree and
links each leaf file into it.
Recursive directory linking has special overlap behavior. A direct
duplicate target, such as two managed files both targeting `foo`, is an
error. If a recursively linked directory provides `foo/bar` and another
managed file also targets `foo/bar`, Home Manager keeps the recursive
file by default and ignores the overlapping regular file.
The {option}`home.file.<name>.onChange` hook runs after the new files
are linked. For recursive file entries, the hook is always run, so it
should be written to be safe even when no leaf file actually changed.
Normally a path assigned to {option}`home.file.<name>.source` is copied
or linked through the Nix store. To make Home Manager create a link to a
live path outside the store, use
`config.lib.file.mkOutOfStoreSymlink`:
``` nix
{ config, ... }:
{
home.file.".config/example".source =
config.lib.file.mkOutOfStoreSymlink ./example;
}
```
This is useful when the target should follow changes to a mutable file
or directory outside the store.
+6 -5
View File
@@ -38,16 +38,17 @@ GPU drivers require an update, run
Because the `/run` directory is volatile and disappears on reboot, libraries
cannot be simply copied or linked there. The `non-nixos-gpu-setup` script
installs a Systemd service which ensures that the drivers are linked to
`/run/opengl-driver` on boot. Home Manager will always check and warn you when
this setup needs to be refreshed.
installs a
[`tmpfiles.d`](https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html)
config which ensures that the drivers are linked to `/run/opengl-driver` on
boot. Home Manager will always check and warn you when this setup needs to be
refreshed.
If you ever wish to uninstall these drivers, all you need to do is
```sh
sudo rm /run/opengl-driver
sudo systemctl disable --now non-nixos-gpu.service
sudo rm /etc/systemd/system/non-nixos-gpu.service
sudo rm /etc/tmpfiles.d/non-nixos-gpu.conf
```
+119
View File
@@ -0,0 +1,119 @@
# Modular Services {#sec-usage-modular-services}
Home Manager supports nixpkgs
[modular services](https://nixos.org/manual/nixos/unstable/#modular-services)
under [](#opt-home.services). This is the Home Manager analog to the
NixOS `system.services` namespace: each entry is an abstract service
sourced from `<nixpkgs/lib/services/lib.nix>` with the upstream portable
systemd module loaded into it, so service modules shipped with packages
(e.g. `pkgs.<name>.passthru.services.default`) drop in unchanged --
the same module evaluates on NixOS and on Home Manager.
A minimal example -- run mpd as a user service:
```nix
{ pkgs, ... }: {
home.services.mpd = {
process.argv = [ "${pkgs.mpd}/bin/mpd" "--no-daemon" ];
};
}
```
This produces `~/.config/systemd/user/mpd.service` with `ExecStart` set
to the mpd binary and `WantedBy=default.target`.
Each service exposes the upstream NixOS-style schema: [`process.argv`],
`systemd.lib`, `systemd.mainExecStart`, `systemd.service`,
`systemd.services`, `systemd.sockets`. Lifted units are translated from
NixOS-style attrs (`wantedBy`, `serviceConfig`, `unitConfig`,
`environment`, ...) into the section-based INI shape
(`{ Unit; Service; Install; }`) that Home Manager's
[](#opt-systemd.user.services) consumes. Only common keys are mapped
explicitly; uncommon options remain reachable via `unitConfig`,
`serviceConfig`, or `socketConfig`.
Sub-services (nested `services.<sub>` inside another service) and their
units are dashed under the parent service name. The empty unit key
`""` denotes the service's *primary* unit (lifted to a unit named
after the service itself); [`process.argv`] becomes the default
`ExecStart` for that unit, which defaults to `WantedBy=default.target`.
## Reusing upstream package modules {#sec-usage-modular-services-upstream}
Modular services exposed by packages under
`pkgs.<name>.passthru.services.default` can be imported directly.
For example, `pkgs.php`'s [`php-fpm`]:
```nix
{ pkgs, ... }: {
home.services."php-fpm" = {
imports = [ pkgs.php.passthru.services.default ];
configData."php-fpm.conf".source = builtins.elemAt config.home.services.php-fpm.process.argv 2;
php-fpm.settings.mypool = {
listen = "127.0.0.1:9000";
# FIXME: required by upstream modular service, but ignored when run as user
"user" = "";
"pm" = "dynamic";
"pm.max_children" = 75;
"pm.min_spare_servers" = 5;
"pm.max_spare_servers" = 20;
};
};
}
```
Some packages ship modules written for system services that include
directives the user-session manager cannot honour (`DynamicUser`,
`AmbientCapabilities`, ...). The unit is still generated with those
directives -- user systemd silently ignores what it cannot apply.
`WantedBy=multi-user.target` is automatically normalized to
`WantedBy=default.target`. Other directives can be overridden per
service:
```nix
home.services."tunnel" = {
imports = [ pkgs.ghostunnel.passthru.services.default ];
# ...
systemd.services."tunnel".serviceConfig.DynamicUser = lib.mkForce false;
};
```
## Configuration data {#sec-usage-modular-services-configdata}
Each service can declare configuration files via `configData.<name>`.
These are materialized at `$XDG_CONFIG_HOME/home-services/<service>/<name>`
(mirroring how NixOS lifts `configData` to `environment.etc`), with the
absolute path injected back into `configData.<name>.path` so the service
can refer to its files at a stable location:
```nix
{ config, ... }:
{
home.services.demo = {
process.argv = [ "/bin/myapp" "--config" config.home.services.demo.configData."app.toml".path ];
configData."app.toml".text = ''
port = 1234
'';
};
}
```
The store paths of all enabled `configData` entries are automatically
added to the primary unit's `X-Reload-Triggers`, so `home-manager switch`
restarts the service whenever any of its configuration files change. To
reload instead of restart, override `X-SwitchMethod`:
```nix
home.services.demo.systemd.services."".unitConfig.X-SwitchMethod = "reload";
```
## Scope notes {#sec-usage-modular-services-scope}
Home Manager mirrors the surface of nixpkgs' portable systemd module:
services and sockets only. Other unit kinds Home Manager supports
natively under [](#opt-systemd.user.services) (timers, paths, mounts, ...)
are intentionally not modeled on `home.services` until upstream grows them,
to keep both surfaces aligned.
[`process.argv`]: https://nixos.org/manual/nixos/unstable/#service-opt-process.argv
[`php-fpm`]: https://nixos.org/manual/nixos/stable/options#opt-_imports_=___pkgs.php.services.default___
+75 -3
View File
@@ -1,8 +1,64 @@
# Updating {#sec-updating}
If you have installed Home Manager using the Nix channel method then
updating Home Manager is done by first updating the channel. You can
then switch to the updated Home Manager environment.
Updating means moving to a newer revision of the Home Manager branch
that your configuration already follows. For example, a configuration
using `release-25.11` can update to a newer revision of `release-25.11`
without changing release branches.
If you want to move from one release branch to another, such as
`release-25.05` to `release-25.11`, or between a release branch and
`master`, see
[Upgrading to a new Home Manager release](upgrading.md#sec-upgrade-release).
## Flake-Based Configurations {#sec-updating-flakes}
Flake inputs are pinned in `flake.lock`, and Home Manager will keep using
the pinned revisions until you update that lock file.
To update all inputs in the flake:
``` shell
$ nix flake update
```
To update only specific inputs, name them explicitly:
``` shell
$ nix flake update home-manager nixpkgs
```
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
After updating the lock file, rebuild with the command for your
installation method.
For a standalone Home Manager flake:
``` shell
$ home-manager switch --flake .
```
For Home Manager as a NixOS module:
``` shell
$ sudo nixos-rebuild switch --flake .
```
For Home Manager as a nix-darwin module:
``` shell
$ darwin-rebuild switch --flake .
```
## Channel-Based Configurations {#sec-updating-channels}
Channels are mutable references outside the Home Manager configuration
itself. Updating a channel moves it to a newer revision of the same
channel or branch.
For a standalone Home Manager channel installation, update the user's
channels and then switch:
``` shell
$ nix-channel --update
@@ -10,3 +66,19 @@ $ nix-channel --update
unpacking channels...
$ home-manager switch
```
For Home Manager as a NixOS module, update the root user's Home Manager
channel and rebuild the system:
``` shell
$ sudo nix-channel --update home-manager
$ sudo nixos-rebuild switch
```
For Home Manager as a nix-darwin module, update the Home Manager channel
used by your nix-darwin configuration and rebuild the system:
``` shell
$ nix-channel --update home-manager
$ darwin-rebuild switch
```
+114 -60
View File
@@ -2,66 +2,47 @@
## Overview {#sec-upgrade-release-overview}
When upgrading NixOS to a new major version (e.g., from 24.11 to
25.05), you also need to upgrade your Home Manager channel to maintain
compatibility. This guide covers the proper steps to upgrade Home
Manager channels for NixOS 25.05.
When moving your configuration to a new Nixpkgs release branch, you
should also move Home Manager to the matching release branch. On NixOS
this usually means upgrading Home Manager together with NixOS. On
standalone and nix-darwin installations, match Home Manager to the
Nixpkgs branch used by your configuration. The examples below use 25.11;
replace this with the release branch you are upgrading to.
If your configuration follows `nixos-unstable` or `nixpkgs-unstable`,
use Home Manager's `master` branch.
## Understanding Home Manager Versioning {#sec-upgrade-release-understanding-versioning}
Home Manager follows NixOS release cycles and provides corresponding branches:
- **release-##.##**: Stable branch for NixOS ##.## (current stable)
- **release-\<version\>**: Stable branch for the matching NixOS or
Nixpkgs release, such as `release-25.11`.
- **master**: Development branch (tracks nixos-unstable)
- **master**: Development branch (tracks nixpkgs-unstable)
:::{.note}
Always use the Home Manager version that matches your NixOS version to
avoid compatibility issues.
Use the Home Manager branch that matches the Nixpkgs branch used to
evaluate your Home Manager configuration. For stable NixOS
configurations, this is normally the same as your NixOS version.
:::
## Channel-Based Installation (Traditional) {#sec-upgrade-release-understanding-channel}
## Flake-Based Installation {#sec-upgrade-release-understanding-flake}
1. First, verify your current Home Manager channel:
``` shell
$ nix-channel --list
```
You should see something like:
```
home-manager https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz
```
1. Update the Home Manager channel to a NixOS 25.05 compatible version:
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.05.tar.gz home-manager
$ nix-channel --update
```
1. Apply the changes:
``` shell
$ home-manager switch
```
## Flake-Based Installation (Modern) {#sec-upgrade-release-understanding-flake}
If you're using Home Manager with Nix flakes, update your `flake.nix`:
If you are using Home Manager with Nix flakes, update your `nixpkgs` and
`home-manager` inputs together:
```nix
{
description = "Home Manager configuration";
inputs = {
# Increment release branch for NixOS
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
# Match the Nixpkgs branch to the release you are using.
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
home-manager = {
# Follow corresponding `release` branch from Home Manager
url = "github:nix-community/home-manager/release-25.05";
inputs.nixpkgs.follows = "nixpkgs";
# Match the Home Manager branch to the Nixpkgs branch above.
url = "github:nix-community/home-manager/release-25.11";
};
};
@@ -74,54 +55,126 @@ If you're using Home Manager with Nix flakes, update your `flake.nix`:
}
```
Then update and rebuild. If you are using Home Manager standalone:
For `nixos-unstable` or `nixpkgs-unstable`, use the `master` branch
instead:
```nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager = {
url = "github:nix-community/home-manager";
};
};
}
```
Then update the lock file and rebuild using the command for your
installation method.
For a standalone Home Manager flake:
``` shell
$ nix flake update
$ home-manager switch --flake .
```
And if you are using Home Manager as a NixOS module then you will need
to update your system configuration instead and run
For Home Manager as a NixOS module:
``` shell
$ nix flake update
$ sudo nixos-rebuild switch --flake .
```
For Home Manager as a nix-darwin module:
``` shell
$ nix flake update
$ darwin-rebuild switch --flake .
```
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
## Channel-Based Installation {#sec-upgrade-release-understanding-channel}
For a standalone channel-based installation, first verify your current
Home Manager channel:
``` shell
$ nix-channel --list
```
The entry identifies the Home Manager branch currently in use. For
example:
```
home-manager https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz
```
Update the Home Manager channel to the branch matching your Nixpkgs
release, then switch:
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --update
$ home-manager switch
```
When Home Manager is installed as a NixOS module with channels, update
the root user's Home Manager channel and rebuild the system:
``` shell
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
```
When Home Manager is installed as a nix-darwin module with channels,
update the Home Manager channel used by your nix-darwin configuration
and rebuild the system:
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --update
$ darwin-rebuild switch
```
## State Version Management {#sec-upgrade-release-state-version}
:::{.warning}
Careful updating your `home.stateVersion` when upgrading Home Manager.
:::
The `stateVersion` is best to remain set to the NixOS version you
**first installed** Home Manager
The `stateVersion` should remain set to the Home Manager release you
first used for this home configuration.
```nix
{
home.stateVersion = "24.11"; # Example: if you first installed on 24.11
# Example: if this home configuration was first created on 24.11.
home.stateVersion = "24.11";
}
```
**Why?** The `stateVersion` ensures backward compatibility and
prevents breaking changes from affecting your existing configuration.
**Remember:** Channel version is not the same as State version. Update
the channel, keep the `stateVersion` unchanged. Advanced users can
view the changes between releases and see if any of the `stateVersion`
changes will affect them and increment, if they migrate their
configurations to follow the changed evaluation.
**Remember:** Channel or flake input version is not the same as state
version. Update Home Manager, keep `home.stateVersion` unchanged, and
only change it after reading the release notes and migrating any
affected configuration.
## Troubleshooting {#sec-upgrade-release-state-troubleshooting}
### Common Issues {#sec-upgrade-release-state-troubleshooting-common-issues}
Check the [Home Manager Release Notes](#ch-release-notes) for breaking changes.
Check the [Home Manager Release Notes](../release-notes/release-notes.md#ch-release-notes) for breaking changes.
1. **Version Mismatch Warning**: If you see warnings about version
mismatches, ensure your Home Manager version matches your NixOS
version.
mismatches, ensure your Home Manager branch matches the Nixpkgs
branch used by your configuration. For NixOS stable releases, this
usually means matching your NixOS version.
1. **Module Changes**: Modules are constantly being updated with new
features to keep up with changes in upstream packaging or to fix
@@ -129,8 +182,8 @@ Check the [Home Manager Release Notes](#ch-release-notes) for breaking changes.
there was something noted in the release notes or news entries.
1. **Channel Not Found**: If `nix-channel --list` shows no channels,
you might be using a different installation method (like flakes or
NixOS module).
you might be using a different installation method, such as flakes,
or Home Manager may be imported through your system configuration.
### Verification {#sec-upgrade-release-state-troubleshooting-verification}
@@ -140,9 +193,10 @@ After upgrading, verify the installation:
$ home-manager --version
```
This should show version 25.05 or indicate it's using the release-25.05 branch.
This should show the Home Manager version or indicate that it is using
the expected release branch.
## Additional Resources {#sec-upgrade-release-resources}
- [NixOS Stable Release Notes](https://nixos.org/manual/nixos/stable/release-notes)
- [Home Manager Release Notes](#ch-release-notes)
- [Home Manager Release Notes](../release-notes/release-notes.md#ch-release-notes)
+1 -1
View File
@@ -4,7 +4,7 @@ Overall the basic option types are the same in Home Manager as NixOS. A
few Home Manager options, however, make use of custom types that are
worth describing in more detail. These are the option types `dagOf` and
`gvariant` that are used, for example, by
[programs.ssh.matchBlocks](#opt-programs.ssh.matchBlocks) and [dconf.settings](#opt-dconf.settings).
[programs.ssh.settings](#opt-programs.ssh.settings) and [dconf.settings](#opt-dconf.settings).
[]{#sec-option-types-dag}`hm.types.dagOf`
+231
View File
@@ -0,0 +1,231 @@
#!/usr/bin/env python3
from __future__ import annotations
import argparse
import html
import re
import shutil
import sys
from pathlib import Path
SIMPLE_ROLES = (
"command",
"component",
"description",
"file",
"index",
"system",
"type",
)
HEADING_ANCHOR = re.compile(r"^(#{1,6}\s+)(.*)\s+\{#([^}]+)\}\s*$")
INLINE_ANCHOR = re.compile(r"\[\]\{#([^}]+)\}")
OPTION_ROLE = re.compile(r"(?<![$`])\{option\}`([^`]*)`")
SIMPLE_ROLE = re.compile(r"(?<![$`])\{(" + "|".join(SIMPLE_ROLES) + r")\}`([^`]*)`")
OPTION_LINK = re.compile(
r"\[(?P<label>[^\]]*)\]\(#(?P<anchor>(?:opt|nixos-opt|nix-darwin-opt)-[^)]+)\)"
)
LEFTOVER_ROLE = re.compile(
r"(?<![$`])\{(" + "|".join(("option", *SIMPLE_ROLES)) + r")\}`[^`]*`"
)
FENCE = re.compile(r"^\s*(`{3,})(.*)$")
FENCE_CLOSE = re.compile(r"^\s*`{3,}\s*$")
ADMONITION_OPEN = re.compile(r"^\s*:::\s*\{\.(note|warning|example)\}\s*$")
ADMONITION_CLOSE = re.compile(r"^\s*:::\s*$")
DEEP_SPLIT_NAMESPACES = {"programs", "services"}
def option_target(anchor: str, current_file: Path, base_depth: int) -> str:
if anchor.startswith("nix-darwin-opt-"):
option = anchor.removeprefix("nix-darwin-opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"nix-darwin-opt-{option}"
base = "options/nix-darwin"
elif anchor.startswith("nixos-opt-"):
option = anchor.removeprefix("nixos-opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"nixos-opt-{option}"
base = "options/nixos"
else:
option = anchor.removeprefix("opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"opt-{option}"
base = "options/home-manager"
page_parts = option_page_parts(option)
prefix = "../" * (base_depth + len(current_file.parent.parts))
return f"{prefix}{base}/{'/'.join(page_parts)}.md#{anchor}"
def option_page_parts(option_name: str) -> list[str]:
parts = option_name.split(".")
namespace = parts[0]
if namespace in DEEP_SPLIT_NAMESPACES and len(parts) > 1:
return parts[:2]
return [namespace]
def option_label(anchor: str) -> str:
if anchor.startswith("nix-darwin-opt-"):
return anchor.removeprefix("nix-darwin-opt-")
if anchor.startswith("nixos-opt-"):
return anchor.removeprefix("nixos-opt-")
return anchor.removeprefix("opt-")
def markdown_label(value: str) -> str:
return value.replace("<", "&lt;").replace(">", "&gt;")
def convert_inline(line: str, current_file: Path, base_depth: int) -> str:
line = line.replace("index.xhtml", "index.html")
line = INLINE_ANCHOR.sub(
lambda match: f'<a id="{html.escape(match.group(1), quote=True)}"></a>',
line,
)
line = OPTION_ROLE.sub(
lambda match: (
f"[{markdown_label(match.group(1))}]"
f"({option_target(f'opt-{match.group(1)}', current_file, base_depth)})"
),
line,
)
line = OPTION_LINK.sub(
lambda match: (
f"[{markdown_label(match.group('label') or option_label(match.group('anchor')))}]"
f"({option_target(match.group('anchor'), current_file, base_depth)})"
),
line,
)
return SIMPLE_ROLE.sub(lambda match: f"`{match.group(2)}`", line)
def convert_heading(line: str, current_file: Path, base_depth: int) -> str:
match = HEADING_ANCHOR.match(line)
if match is None:
return convert_inline(line, current_file, base_depth)
prefix, title, anchor = match.groups()
return (
f'<a id="{html.escape(anchor, quote=True)}"></a>\n'
f"{prefix}{convert_inline(title, current_file, base_depth)}"
)
def is_include_fence(line: str) -> tuple[bool, str]:
match = FENCE.match(line)
if match is None:
return False, ""
info = match.group(2).strip()
return info.startswith(("{=include=}", "include")), match.group(1)
def convert_markdown(
text: str,
source: Path,
current_file: Path,
base_depth: int,
) -> str:
output: list[str] = []
in_code_fence = False
code_fence = ""
in_include = False
include_fence = ""
in_admonition = False
for raw_line in text.splitlines(keepends=True):
line = raw_line[:-1] if raw_line.endswith("\n") else raw_line
newline = "\n" if raw_line.endswith("\n") else ""
if in_include:
if FENCE_CLOSE.match(line) and len(line.strip()) >= len(include_fence):
in_include = False
include_fence = ""
continue
if in_code_fence:
output.append(raw_line)
if FENCE_CLOSE.match(line) and len(line.strip()) >= len(code_fence):
in_code_fence = False
code_fence = ""
continue
include, fence = is_include_fence(line)
if include:
in_include = True
include_fence = fence
continue
fence_match = FENCE.match(line)
if fence_match is not None:
in_code_fence = True
code_fence = fence_match.group(1)
output.append(raw_line)
continue
if in_admonition:
if ADMONITION_CLOSE.match(line):
in_admonition = False
continue
converted = convert_inline(line, current_file, base_depth)
output.append(f"> {converted}{newline}" if converted else ">\n")
continue
admonition = ADMONITION_OPEN.match(line)
if admonition is not None:
in_admonition = True
output.append(f"> **{admonition.group(1).title()}**\n")
continue
output.append(convert_heading(line, current_file, base_depth) + newline)
if in_include:
raise ValueError(f"{source}: unterminated include block")
converted = "".join(output)
if LEFTOVER_ROLE.search(converted):
raise ValueError(f"{source}: unconverted NixOS-render-docs role remains")
if "```{=include=}" in converted:
raise ValueError(f"{source}: unconverted include block remains")
return converted
def convert_tree(source: Path, destination: Path, base_depth: int) -> None:
for path in source.rglob("*"):
if not path.is_file():
continue
target = destination / path.relative_to(source)
target.parent.mkdir(parents=True, exist_ok=True)
if path.suffix == ".md":
text = path.read_text(encoding="utf-8")
target.write_text(
convert_markdown(text, path, path.relative_to(source), base_depth),
encoding="utf-8",
)
else:
shutil.copy2(path, target)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--base-depth", type=int, default=0)
parser.add_argument("source", type=Path)
parser.add_argument("destination", type=Path)
args = parser.parse_args()
if not args.source.is_dir():
print(f"missing source directory: {args.source}", file=sys.stderr)
return 1
args.destination.mkdir(parents=True, exist_ok=True)
convert_tree(args.source, args.destination, args.base_depth)
return 0
if __name__ == "__main__":
raise SystemExit(main())
+132
View File
@@ -0,0 +1,132 @@
#!/usr/bin/env python3
import html
import json
import re
import sys
from pathlib import Path
ANCHOR = re.compile(r'<a id="([^"]+)"></a>')
SPECIAL_PAGES = {
Path("manual.md"): "index.html",
Path("preface.md"): "index.html",
Path("options.md"): "options/home-manager/index.html",
Path("nixos-options.md"): "options/nixos/index.html",
Path("nix-darwin-options.md"): "options/nix-darwin/index.html",
}
OPTION_PREFIXES = {
"opt-": "options/home-manager",
"nixos-opt-": "options/nixos",
"nix-darwin-opt-": "options/nix-darwin",
}
ROUTER = """
(function () {
var h = location.hash || "", a = h.slice(1), t = __DEFAULT__;
var m = __ANCHORS__, p = __PREFIXES__;
function o(a) {
for (var k in p) {
if (a.indexOf(k) !== 0) continue;
var s = a.slice(k.length).replace(/[<>]/g, "_").split("."), q = s[0];
if ((q === "programs" || q === "services") && s.length > 1) q += "/" + s[1];
return p[k] + "/" + q + ".html";
}
return null;
}
if (a) t = Object.prototype.hasOwnProperty.call(m, a) ? m[a] : o(a) || t;
if (t === null) return;
var n = t + (location.search || "") + h;
var c = location.pathname.split("/").pop() + location.search + h;
if (n !== c) location.replace(n);
}());
""".strip()
def page_for(source, path):
relative = path.relative_to(source)
return SPECIAL_PAGES.get(relative, relative.with_suffix(".html").as_posix())
def anchors_for(source, roots):
anchors = {}
for root in roots:
files = [root] if root.is_file() else sorted(root.rglob("*.md"))
for path in files:
page = page_for(source, path)
for anchor in ANCHOR.findall(path.read_text(encoding="utf-8")):
anchors.setdefault(anchor, page)
return anchors
def script(default, anchors):
js = (
ROUTER.replace("__DEFAULT__", json.dumps(default))
.replace(
"__ANCHORS__", json.dumps(anchors, sort_keys=True, separators=(",", ":"))
)
.replace("__PREFIXES__", json.dumps(OPTION_PREFIXES, separators=(",", ":")))
)
return "\n".join(
[
" <script>",
" //<![CDATA[",
*[f" {line}" for line in js.splitlines()],
" //]]>",
" </script>",
]
)
def write_redirect(output, name, destination, anchors=None):
escaped = html.escape(destination, quote=True)
(output / name).write_text(
f"""<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8" />
{script(destination, anchors or {})}
<meta http-equiv="refresh" content="0; url={escaped}" />
<link rel="canonical" href="{escaped}" />
<title>Redirecting...</title>
</head>
<body>
<p>Redirecting to <a href="{escaped}">{escaped}</a>.</p>
</body>
</html>
""",
encoding="utf-8",
)
def inject_root_router(output, anchors):
index = output / "index.html"
text = index.read_text(encoding="utf-8")
index.write_text(text.replace("<head>", f"<head>\n{script(None, anchors)}", 1))
def main():
source, output = map(Path, sys.argv[1:])
manual_roots = [
path
for path in source.iterdir()
if path.name != "options" and (path.is_dir() or path.suffix == ".md")
]
manual_anchors = anchors_for(source, manual_roots)
release_anchors = anchors_for(source, [source / "release-notes"])
inject_root_router(output, manual_anchors)
for name, destination, anchors in [
("index.xhtml", "index.html", manual_anchors),
("options.html", "options/home-manager/index.html", {}),
("options.xhtml", "options/home-manager/index.html", {}),
("nixos-options.xhtml", "options/nixos/index.html", {}),
("nix-darwin-options.xhtml", "options/nix-darwin/index.html", {}),
("release-notes.xhtml", "release-notes/release-notes.html", release_anchors),
]:
write_redirect(output, name, destination, anchors)
if __name__ == "__main__":
main()
+23
View File
@@ -0,0 +1,23 @@
{
pkgs,
optionDocs,
manpageUrls,
revision,
}:
pkgs.runCommand "home-manager-mdbook-options"
{
nativeBuildInputs = [
pkgs.buildPackages.nixos-render-docs
pkgs.buildPackages.python3
];
optionDocsJson = builtins.toJSON optionDocs;
passAsFile = [ "optionDocsJson" ];
}
''
python3 ${./render-options.py} \
"$optionDocsJsonPath" \
${manpageUrls} \
${revision} \
"$out"
''
+221
View File
@@ -0,0 +1,221 @@
#!/usr/bin/env python3
from __future__ import annotations
import json
import re
import subprocess
import sys
from pathlib import Path
OPTION_LINK = re.compile(
r"\[(?P<label>[^\]]*)\]\(#(?P<anchor>(?:opt|nixos-opt|nix-darwin-opt)-[^)]+)\)"
)
OPTION_HREF = re.compile(r'href="#(?P<anchor>(?:opt|nixos-opt|nix-darwin-opt)-[^"]+)"')
DEEP_SPLIT_NAMESPACES = {"programs", "services"}
def option_label(anchor: str) -> str:
if anchor.startswith("nix-darwin-opt-"):
return anchor.removeprefix("nix-darwin-opt-")
if anchor.startswith("nixos-opt-"):
return anchor.removeprefix("nixos-opt-")
return anchor.removeprefix("opt-")
def option_target(anchor: str, current_file: Path) -> str:
if anchor.startswith("nix-darwin-opt-"):
option = anchor.removeprefix("nix-darwin-opt-")
base = "options/nix-darwin"
elif anchor.startswith("nixos-opt-"):
option = anchor.removeprefix("nixos-opt-")
base = "options/nixos"
else:
option = anchor.removeprefix("opt-")
base = "options/home-manager"
page_parts = option_page_parts(option)
prefix = "../" * len(current_file.parent.parts)
return f"{prefix}{base}/{'/'.join(page_parts)}.md#{anchor}"
def rewrite_option_links(text: str, current_file: Path) -> str:
text = OPTION_LINK.sub(
lambda match: (
f"[{match.group('label') or option_label(match.group('anchor'))}]"
f"({option_target(match.group('anchor'), current_file)})"
),
text,
)
return OPTION_HREF.sub(
lambda match: f'href="{option_target(match.group("anchor"), current_file)}"',
text,
)
def namespace_for(option_name: str) -> str:
return option_name.split(".", 1)[0]
def option_page_parts(option_name: str) -> list[str]:
parts = option_name.split(".")
namespace = parts[0]
if namespace in DEEP_SPLIT_NAMESPACES and len(parts) > 1:
return parts[:2]
return [namespace]
def option_group_for(option_name: str) -> str:
return "/".join(option_page_parts(option_name))
def render_namespace(
options: dict[str, object],
destination: Path,
manpage_urls: Path,
revision: str,
anchor_prefix: str,
current_file: Path,
) -> None:
destination.parent.mkdir(parents=True, exist_ok=True)
source = destination.with_suffix(".json")
source.write_text(json.dumps(options, sort_keys=True), encoding="utf-8")
subprocess.run(
[
"nixos-render-docs",
"options",
"commonmark",
"--manpage-urls",
str(manpage_urls),
"--revision",
revision,
"--anchor-style",
"legacy",
"--anchor-prefix",
anchor_prefix,
str(source),
str(destination),
],
check=True,
)
source.unlink()
destination.write_text(
rewrite_option_links(destination.read_text(encoding="utf-8"), current_file),
encoding="utf-8",
)
def write_doc(
name: str,
doc: dict[str, str],
manpage_urls: Path,
revision: str,
output: Path,
) -> None:
options_json = Path(doc["json"]) / "share/doc/nixos/options.json"
options = json.loads(options_json.read_text(encoding="utf-8"))
grouped: dict[str, dict[str, object]] = {}
for option_name, option in options.items():
group = option_group_for(option_name)
grouped.setdefault(group, {})[option_name] = option
doc_dir = output / "options" / doc["path"]
doc_dir.mkdir(parents=True, exist_ok=True)
groups = sorted(grouped)
namespaces = sorted({group.split("/", 1)[0] for group in groups})
nested = {
namespace: sorted(
group for group in groups if group.startswith(f"{namespace}/")
)
for namespace in namespaces
}
index = [
f"# {doc['title']}\n",
"\n",
"Generated from Home Manager option definitions.\n",
"\n",
"## Namespaces\n",
"\n",
]
for namespace in namespaces:
if nested[namespace]:
index.append(f"- [{namespace}]({namespace}/index.md)\n")
else:
index.append(f"- [{namespace}]({namespace}.md)\n")
(doc_dir / "index.md").write_text("".join(index), encoding="utf-8")
summary_dir = output / "summary"
summary_dir.mkdir(parents=True, exist_ok=True)
summary = [f" - [{doc['title']}](options/{doc['path']}/index.md)\n"]
for namespace in namespaces:
if nested[namespace]:
namespace_index = doc_dir / namespace / "index.md"
namespace_index.parent.mkdir(parents=True, exist_ok=True)
namespace_index.write_text(
"".join(
[
f"# {namespace}\n",
"\n",
"## Modules\n",
"\n",
*(
f"- [{group.split('/', 1)[1]}]({group.split('/', 1)[1]}.md)\n"
for group in nested[namespace]
),
]
),
encoding="utf-8",
)
summary.append(
f" - [{namespace}](options/{doc['path']}/{namespace}/index.md)\n"
)
for group in nested[namespace]:
module_name = group.split("/", 1)[1]
summary.append(
f" - [{module_name}](options/{doc['path']}/{namespace}/{module_name}.md)\n"
)
else:
summary.append(
f" - [{namespace}](options/{doc['path']}/{namespace}.md)\n"
)
for group in groups:
page = doc_dir / f"{group}.md"
current_file = Path("options") / doc["path"] / f"{group}.md"
render_namespace(
grouped[group],
page,
manpage_urls,
revision,
doc["prefix"],
current_file,
)
(summary_dir / f"{name}.md").write_text("".join(summary), encoding="utf-8")
def main() -> int:
if len(sys.argv) != 5:
print(
"usage: render-options.py OPTION_DOCS MANPAGE_URLS REVISION OUT",
file=sys.stderr,
)
return 1
option_docs = json.loads(Path(sys.argv[1]).read_text(encoding="utf-8"))
manpage_urls = Path(sys.argv[2])
revision = sys.argv[3]
output = Path(sys.argv[4])
for name, doc in option_docs.items():
write_doc(name, doc, manpage_urls, revision, output)
return 0
if __name__ == "__main__":
raise SystemExit(main())
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env python3
from __future__ import annotations
import sys
from pathlib import Path
def main() -> int:
if len(sys.argv) != 5:
print(
"usage: substitute-summary.py SUMMARY HM_SUMMARY NIXOS_SUMMARY DARWIN_SUMMARY",
file=sys.stderr,
)
return 1
summary = Path(sys.argv[1])
replacements = {
"@HOME_MANAGER_OPTIONS@": Path(sys.argv[2]).read_text(encoding="utf-8"),
"@NIXOS_OPTIONS@": Path(sys.argv[3]).read_text(encoding="utf-8"),
"@NIX_DARWIN_OPTIONS@": Path(sys.argv[4]).read_text(encoding="utf-8"),
}
text = summary.read_text(encoding="utf-8")
for needle, replacement in replacements.items():
text = text.replace(needle, replacement.rstrip())
summary.write_text(text, encoding="utf-8")
return 0
if __name__ == "__main__":
raise SystemExit(main())
+3 -2
View File
@@ -1,9 +1,10 @@
# Release Notes {#ch-release-notes}
This section lists the release notes for stable versions of Home Manager
and the current unstable version.
This section lists the release notes for stable versions of Home Manager and the
current unstable version.
```{=include=} chapters
rl-2611.md
rl-2605.md
rl-2511.md
rl-2505.md
+1 -1
View File
@@ -71,7 +71,7 @@ This release has the following notable changes:
no longer packages compton, and instead packages the (mostly)
compatible fork called picom.
- The list form of the [programs.ssh.matchBlocks](#opt-programs.ssh.matchBlocks) option has
- The list form of the `programs.ssh.matchBlocks` option has
been deprecated and configurations requiring match blocks in a
defined order should switch to using DAG entries instead. For
example, a configuration
+1 -1
View File
@@ -36,7 +36,7 @@ This release has the following notable changes:
optionally also activate it. The recommended installation method for
a standalone Home Manager setup with Nix flakes uses this new
command. The standard installation method remains the same but uses
the new command internally. See [sec-flakes-standalone](#sec-flakes-standalone) for
the new command internally. See [sec-flakes-standalone](../nix-flakes/standalone.md#sec-flakes-standalone) for
more.
## State Version Changes {#sec-release-23.05-state-version-changes}
+1 -1
View File
@@ -19,7 +19,7 @@ This release has the following notable changes:
- The Home Manager test suite has been removed from the main Nix Flake
since it caused unnecessary evaluations and downloads. Instead the
tests are available through a Nix Flake file inside the `tests`
directory. See [](#sec-tests) for example commands.
directory. See [Tests](../contributing/tests.md#sec-tests) for example commands.
## State Version Changes {#sec-release-25.05-state-version-changes}
+3 -3
View File
@@ -16,7 +16,7 @@ This release has the following notable changes:
term removed all together. If you have developed tooling that
directly call the generated activation script, then you are
encouraged to adapt to the new behavior. See the
[Activation](#sec-internals-activation) section in the manual for
[Activation](../internals/activation.md#sec-internals-activation) section in the manual for
details on how to call the activation script.
- The `home-manager switch` command now offers a `--rollback` option.
@@ -25,7 +25,7 @@ This release has the following notable changes:
previously possible to accomplish this by manually activating an old
generation, it always created a new profile generation. The new
behavior mirrors the behavior of `nixos-rebuild switch --rollback`.
See the [Rollbacks](#sec-usage-rollbacks) section for more.
See the [Rollbacks](../usage/rollbacks.md#sec-usage-rollbacks) section for more.
- The `home-manager switch` command now offers a
`--specialisation NAME` option. When given, the switch activates the
@@ -49,7 +49,7 @@ This release has the following notable changes:
- By default, Home Manager imports all modules, which leads to
increased evaluation time. Some users may wish to only import the
modules they actually use. To accomodate this, a new option
modules they actually use. To accommodate this, a new option
`home-manager.minimal` has been added. When this option is enabled,
Home Manager will only import the basic set of modules it requires
to function. Other modules will have to be enabled manually, like
+177 -13
View File
@@ -1,25 +1,189 @@
# Release 26.05 {#sec-release-26.05}
This is the current unstable branch and the information in this
section is therefore not final.
The 26.05 release branch became stable in May, 2026.
## Highlights {#sec-release-26.05-highlights}
This release has the following notable changes:
- The [](#opt-programs.anki.uiScale) option now expects a value in the
range 1.02.0, previously it erroneously expected values in the
range `0.01.0`.
- Home Manager now supports RFC 42-style SSH configuration through
[](#opt-programs.ssh.settings). The legacy `programs.ssh.matchBlocks` format
is deprecated and migrated automatically.
- The new `home-manager.startAsUserService` option runs user activation on
demand at login instead of doing all setup during system boot, which helps on
systems where home directories are mounted later (for example, pam_mount).
- New options were added for `services.podman.useDefaultMachine` and podman
machine management on Darwin.
- The [](#opt-programs.rclone.enable) module now supports launchd-backed config,
mount, and serve agents on Darwin. The new
`programs.rclone.remotes.<name>.serve` option can manage `rclone serve`
sidecar services on both Linux and Darwin. On non-systemd platforms,
`programs.rclone.requiresUnit` is read-only and always `null` because there is
no systemd ordering unit to depend on.
- The Syncthing credentials flow now uses `services.syncthing.guiCredentials`
instead of the removed `services.syncthing.passwordFile` option.
- Firefox extensions are now managed per-profile through the
`programs.firefox.profiles.<name>.extensions.packages` and
`programs.firefox.profiles.<name>.extensions.settings` options. The top-level
`programs.firefox.extensions = [ ... ]` list was removed; migrate it to
`programs.firefox.profiles.<name>.extensions.packages`.
- Thunderbird now supports `accounts.email.accounts.<name>.ews`, the
`outlook.office365.com-ews` account flavor, declarative language packs, and
enterprise policies. Thunderbird accounts using the `outlook.office365.com`
flavor now default IMAP and SMTP authentication to OAuth2 when the account
does not set an authentication method explicitly.
- A new `systemd.user.packages` option provides a user-level equivalent of
`systemd.packages` for installing unit files from packages.
- WezTerm now supports declarative configuration via
[](#opt-programs.wezterm.settings). Settings are expressed as a Nix attribute
set and serialized to Lua using `lib.generators.toLua`. Raw Lua expressions
such as `wezterm.font` and `wezterm.action.*` can be embedded using
`lib.generators.mkLuaInline`. The existing
[](#opt-programs.wezterm.extraConfig) option remains fully supported and can
be combined with [](#opt-programs.wezterm.settings).
- The [](#opt-programs.anki.uiScale) option now expects a value in the range
1.02.0, previously it erroneously expected values in the range `0.01.0`.
Anki sync options moved from `programs.anki.sync.*` to
`programs.anki.profiles."User 1".sync.*`, and
`programs.anki.sync.passwordFile` is migrated to
`programs.anki.profiles."User 1".sync.keyFile`.
- New [](#opt-home.services) namespace for nixpkgs
[modular services](https://nixos.org/manual/nixos/unstable/#modular-services).
Service modules shipped with packages (e.g.
`pkgs.<name>.passthru.services.default`) drop in unchanged and are lifted to
user systemd units. See [Modular Services](../usage/modular-services.md#sec-usage-modular-services) for
details.
- Dedicated modules were added for several VSCode forks (`programs.cursor`,
`programs.vscodium`, `programs.windsurf`, `programs.kiro`, and
`programs.antigravity`), built from a shared `mkVscodeModule` factory. Each
fork can now be configured independently and simultaneously. Users who
previously selected a fork by setting `programs.vscode.package` should migrate
to the matching module; the `programs.vscode.pname` option was removed.
- The AI coding-assistant modules ([](#opt-programs.claude-code.enable),
[](#opt-programs.codex.enable), and [](#opt-programs.opencode.enable)) now
share a unified `context` option for providing global instructions. The
previous per-module options (`claude-code.memory`,
`codex.custom-instructions`, and `opencode.rules`) are deprecated and migrated
automatically. MCP server configuration via `programs.mcp.servers` was also
extended to more assistant and editor modules through an
`enableMcpIntegration` option.
- The `programs.man` module was split so the man viewer can be selected through
the [](#opt-programs.man.man-db.enable) and
[](#opt-programs.man.mandoc.enable) submodules, which are mutually exclusive.
- The `programs.neovim.extraLuaConfig` option was renamed to
[](#opt-programs.neovim.initLua). Home Manager now writes generated Lua
initialization to {file}`$XDG_CONFIG_HOME/nvim/init.lua` by default. If you
manage that file outside Home Manager, set
[](#opt-programs.neovim.sideloadInitLua) to `true` to load the generated Lua
through the Neovim wrapper instead.
- A new `sshAuthSock` module manages the `SSH_AUTH_SOCK`
environment variable. It is implicitly configured by the
SSH-agent-providing modules (e.g. `services.ssh-agent`, `services.gpg-agent`).
The old `services.ssh-agent.enable{Bash,Zsh,Fish,Nushell}Integration` options
were removed; shell initialization is now provided through `sshAuthSock`.
- A new [](#opt-services.pipewire.enable) module provides client-side
configuration for PipeWire, WirePlumber, and the PulseAudio/JACK compatibility
layers. It does not install or manage the PipeWire daemon itself.
- The `services.swww` module was renamed to [](#opt-services.awww.enable)
following the upstream project rename. The `enable`, `package`, and
`extraArgs` options are migrated automatically from `services.swww.*` to
`services.awww.*`.
- Several modules dropped their freeform `extraConfig` escape hatches in favor
of RFC 42-style `settings`: `programs.aerospace.extraConfig` (and
`userSettings`) and `programs.aria2.extraConfig` were removed.
`programs.mise.settings` was renamed to `programs.mise.globalConfig.settings`.
The `programs.eww.configDir` and
`programs.eww.enable{Bash,Zsh,Fish}Integration` options were removed; use
[](#opt-programs.eww.yuckConfig) and [](#opt-programs.eww.scssConfig) for
declarative Eww config files. The `programs.niriswitcher` options were also
removed.
- Darwin integration received several behavior changes. Home Manager launchd
agents now wait for `/nix/store` before starting and use
`launchctl bootout --wait` when replacing agents. nix-darwin activations now
propagate dry-run mode into Home Manager user activations. On Darwin, Home
Manager also exports `TERMINFO_DIRS` so terminfo entries from Home
Manager-installed packages are visible to shells.
- The [](#opt-nix.assumeXdg) option was added for installations where Nix is
configured to use XDG base directories outside Home Manager. Home Manager also
detects `osConfig.nix.settings.use-xdg-base-directories` when deciding where
to place declarative channel entries.
## State Version Changes {#sec-release-26.05-state-version-changes}
The state version in this release includes the changes below. These
changes are only active if the `home.stateVersion` option is set to
\"26.05\" or later.
The state version in this release includes the changes below. These changes are
only active if the `home.stateVersion` option is set to \"26.05\" or later.
- The [](#opt-gtk.gtk4.theme) option does not mirror
[](#opt-gtk.theme) by default anymore.
- The [](#opt-gtk.gtk4.theme) option does not mirror [](#opt-gtk.theme) by
default anymore.
- The [](#opt-programs.zsh.dotDir) option now defaults to the XDG
configuration directory (usually `~/.config/zsh`) when
[](#opt-xdg.enable) is true.
- The [](#opt-programs.zsh.dotDir) option now defaults to the XDG configuration
directory (usually `~/.config/zsh`) when [](#opt-xdg.enable) is true.
- The [](#opt-programs.yazi.shellWrapperName) option now defaults to `y` instead
of `yy`.
- The [](#opt-xdg.userDirs.setSessionVariables) option now defaults to `false`
instead of `true`.
- The [](#opt-xdg.userDirs.extraConfig) option no longer accepts keys of the
form `XDG_<name>_DIR`, they should be now be just the name. For example, if
you had the key `XDG_DESKTOP_DIR` before, you should now use the key
`DESKTOP`. Home Manager 26.05 introduced a warning when the `XDG_<name>_DIR`
form is used.
- The [](#opt-programs.man.package) option now defaults to `null` on Darwin
because the GNU `man` from nixpkgs ships `apropos`/`man -k` and
`whatis`/`man -f` binaries that don't work on Darwin. Nix-installed manual
pages still work with macOS's built-in `man` via
[](#opt-home.extraOutputsToInstall).
- The options [](#opt-programs.neovim.withPython3) and
[](#opt-programs.neovim.withRuby) now default to `false` following nixpkgs.
- Neovim plugin `config` fragments are assumed to be Lua by default through
`programs.neovim.plugins.<name>.type = "lua"`, instead of the previous `viml`
default.
- On Linux, `programs.firefox.configPath` now defaults to
`"${config.xdg.configHome}/mozilla/firefox"`, instead of the legacy
`".mozilla/firefox"`.
- The [](#opt-wayland.windowManager.hyprland.configType) option now defaults to
`"lua"`, instead of the legacy `"hyprlang"`. Set
`wayland.windowManager.hyprland.configType = "hyprlang"` to keep generating
{file}`$XDG_CONFIG_HOME/hypr/hyprland.conf`.
- The [](#opt-programs.docker-cli.configDir) option now defaults to
`"${config.xdg.configHome}/docker"` when [](#opt-xdg.enable) is true, instead
of `~/.docker`. Similarly, [](#opt-services.colima.profiles) now sets
`$DOCKER_HOST` for the default context.
- The [](#opt-services.home-manager.autoUpgrade.preSwitchCommands) option now
defaults to an empty list. Previously, when
[](#opt-services.home-manager.autoUpgrade.useFlake) was `true`, it defaulted
to `[ "nix flake update" ]`. Set `preSwitchCommands = [ "nix flake update" ]`
to keep updating flake inputs before each automatic switch.
- The [](#opt-programs.mergiraf.enableGitIntegration) and
[](#opt-programs.mergiraf.enableJujutsuIntegration) options now default to
`false`, so the integrations must be enabled explicitly.
+35
View File
@@ -0,0 +1,35 @@
# Release 26.11 {#sec-release-26.11}
This is the current unstable branch and the information in this
section is therefore not final.
## Highlights {#sec-release-26.11-highlights}
This release has the following notable changes:
- The [](#opt-programs.uv.enable) module can now install uv-managed Python
versions and tools through the new `programs.uv.python.versions`,
`programs.uv.python.default`, and `programs.uv.tool.packages` options. Unpinned
entries track the latest release on each activation while pinned ones stay put,
and `programs.uv.python.prune` / `programs.uv.tool.prune` make the managed set
fully declarative by removing versions and tools that are no longer listed.
- On Darwin, Home Manager launchd agents now support
[](#opt-launchd.agents._name_.domain) to choose either the user's GUI or
background launchd domain. Agents use the GUI domain by default. Set the
domain to `user` for agents that should run without an active graphical login
session.
## State Version Changes {#sec-release-26.11-state-version-changes}
The state version in this release includes the changes below. These
changes are only active if the `home.stateVersion` option is set to
"26.11" or later.
- The KDL options under `programs.zellij` will now correctly escape backslashes
in string values. For example, the Nix string `"\\"` will now correctly
generate the KDL string `"\\"`. Previously, this would have generated `"\"`,
which is invalid KDL. The following options are affected:
- `programs.zellij.settings`
- `programs.zellij.themes`
- `programs.zellij.layouts`
+33
View File
@@ -0,0 +1,33 @@
// Add permalink anchors to section headings.
document.addEventListener("DOMContentLoaded", function () {
var NS = "http://www.w3.org/1999/xhtml";
var headings = document.querySelectorAll("h1, h2, h3, h4");
for (var i = 0; i < headings.length; i++) {
var h = headings[i];
// Skip headings inside note/warning boxes (those h3s are icon containers).
if (h.closest("div.note") || h.closest("div.warning")) {
continue;
}
// The id may live on the heading itself or on a child <a id="...">.
var id = h.id;
if (!id) {
var child = h.querySelector("a[id]");
if (child) {
id = child.id;
}
}
if (!id) {
continue;
}
var a = document.createElementNS(NS, "a");
a.setAttribute("class", "anchor-link");
a.setAttribute("href", "#" + id);
a.setAttribute("aria-label", "Permalink");
a.textContent = "\u00B6";
h.appendChild(a);
}
});
+1 -1
View File
File diff suppressed because one or more lines are too long
+28
View File
@@ -114,6 +114,34 @@ h4 {
margin: 0.5rem 0.25rem;
}
// Permalink anchor shown on heading hover.
.anchor-link {
opacity: 0;
font-size: 0.65em;
margin-left: 0.3em;
text-decoration: none;
color: $color-gray-400;
transition: opacity 0.15s ease-in-out;
vertical-align: middle;
@media (prefers-color-scheme: dark) {
color: $color-gray-500;
}
}
h1:hover .anchor-link,
h2:hover .anchor-link,
h3:hover .anchor-link,
h4:hover .anchor-link {
opacity: 1;
}
// Never show anchors on note/warning icon headings.
div.note .anchor-link,
div.warning .anchor-link {
display: none;
}
p {
@include margined;
}
Generated
+4 -4
View File
@@ -2,16 +2,16 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1767892417,
"narHash": "sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww=",
"lastModified": 1783604885,
"narHash": "sha256-tzMgSkV7kljEkqIjlgV6F+n+xD+/a35Db8bs7a4BFAo=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3497aa5c9457a9d88d71fa93a4a8368816fbeeba",
"rev": "767b0d3ec98a143ad9ed7dfc0d5553510ac27133",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
+183 -20
View File
@@ -1,7 +1,7 @@
{
description = "Home Manager for Nix";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
outputs =
{
@@ -45,43 +45,189 @@
}
// (
let
forAllPkgs =
f:
nixpkgs.lib.genAttrs nixpkgs.lib.systems.flakeExposed (system: f nixpkgs.legacyPackages.${system});
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"i686-linux"
"x86_64-darwin"
"x86_64-linux"
];
forSystems = systems: f: nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
forAllPkgs = forSystems nixpkgs.lib.systems.flakeExposed;
forSupportedPkgs = forSystems supportedSystems;
forCI = nixpkgs.lib.genAttrs [
"aarch64-darwin"
"x86_64-linux"
];
releaseInfo = nixpkgs.lib.importJSON ./release.json;
docsFor =
pkgs:
import ./docs {
inherit pkgs;
inherit (releaseInfo) release isReleaseBranch;
};
testChunks =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (pkgs) lib;
# Create chunked test packages for better CI parallelization
tests = import ./tests {
inherit pkgs;
enableBig = true;
};
allTests = lib.attrNames tests.build;
# Remove 'all' from the test list as it's a meta-package
filteredTests = lib.filter (name: name != "all") allTests;
# NOTE: Just a starting value, we can tweak this to find a good value.
targetTestsPerChunk = 50;
numChunks = lib.max 1 (
builtins.ceil ((builtins.length filteredTests) / (targetTestsPerChunk * 1.0))
);
chunkSize = builtins.ceil ((builtins.length filteredTests) / (numChunks * 1.0));
makeChunk =
chunkNum: testList:
let
start = (chunkNum - 1) * chunkSize;
end = lib.min (start + chunkSize) (builtins.length testList);
chunkTests = lib.sublist start (end - start) testList;
chunkAttrs = lib.genAttrs chunkTests (name: tests.build.${name});
in
pkgs.symlinkJoin {
name = "test-chunk-${toString chunkNum}";
paths = lib.attrValues chunkAttrs;
passthru.tests = chunkTests;
};
in
lib.listToAttrs (
lib.genList (
i: lib.nameValuePair "test-chunk-${toString (i + 1)}" (makeChunk (i + 1) filteredTests)
) numChunks
);
integrationTests =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (pkgs) lib;
in
lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux (
let
tests = import ./tests/integration { inherit pkgs lib; };
renameTestPkg = n: v: lib.nameValuePair "integration-${n}" v;
in
lib.mapAttrs' renameTestPkg (lib.removeAttrs tests [ "all" ])
);
buildTests =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
tests = import ./tests { inherit pkgs; };
renameTestPkg = n: nixpkgs.lib.nameValuePair "test-${n}";
in
nixpkgs.lib.mapAttrs' renameTestPkg tests.build;
buildTestsNoBig =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
tests = import ./tests {
inherit pkgs;
enableBig = false;
};
in
{
test-all-enableBig-false-enableLegacyIfd-false = tests.build.all;
};
buildTestsNoBigIfd =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
tests = import ./tests {
inherit pkgs;
enableBig = false;
enableLegacyIfd = true;
};
in
{
test-all-enableBig-false-enableLegacyIfd-true = tests.build.all;
};
integrationTestPackages =
system:
let
pkgs = nixpkgs.legacyPackages.${system};
inherit (pkgs) lib;
tests = import ./tests/integration { inherit pkgs lib; };
renameTestPkg = n: lib.nameValuePair "integration-test-${n}";
in
lib.mapAttrs' renameTestPkg tests;
in
{
formatter = forAllPkgs (
pkgs:
pkgs.treefmt.withConfig {
runtimeInputs = with pkgs; [
nixfmt
deadnix
keep-sorted
nixf-diagnose
];
settings = pkgs.lib.importTOML ./treefmt.toml;
formatter = forSupportedPkgs (pkgs: pkgs.callPackage ./home-manager/formatter.nix { });
# TODO: increase buildbot testing scope
buildbot = forCI (
system:
let
docs = docsFor nixpkgs.legacyPackages.${system};
allIntegrationTests = integrationTests system;
workingIntegrationTests = nixpkgs.lib.filterAttrs (
name: _:
nixpkgs.lib.elem name [
"integration-nixos-basics"
"integration-nixos-legacy-profile-management"
]
) allIntegrationTests;
in
(testChunks system)
// workingIntegrationTests
// {
docs-html = docs.manual.html;
docs-json = docs.options.json;
docs-jsonModuleMaintainers = docs.jsonModuleMaintainers;
docs-manpages = docs.manPages;
}
);
packages = forAllPkgs (
pkgs:
let
releaseInfo = nixpkgs.lib.importJSON ./release.json;
docs = import ./docs {
inherit pkgs;
inherit (releaseInfo) release isReleaseBranch;
};
docs = docsFor pkgs;
hmPkg = pkgs.callPackage ./home-manager { path = "${self}"; };
in
{
default = hmPkg;
home-manager = hmPkg;
}
// nixpkgs.lib.optionalAttrs (nixpkgs.lib.elem pkgs.stdenv.hostPlatform.system supportedSystems) {
ci-parse = pkgs.callPackage ./ci/parse.nix { nix = pkgs.nixVersions.latest; };
ci-parse-lix = pkgs.callPackage ./ci/parse.nix {
nix = pkgs.lixPackageSets.latest.lix;
};
create-news-entry = pkgs.writeShellScriptBin "create-news-entry" ''
./modules/misc/news/create-news-entry.sh
'';
tests = pkgs.callPackage ./tests/package.nix { flake = self; };
tests = pkgs.callPackage ./tests/package.nix {
flake = self;
inputOverrides = {
inherit nixpkgs;
};
};
docs-html = docs.manual.html;
docs-htmlOpenTool = docs.manual.htmlOpenTool;
@@ -90,6 +236,23 @@
docs-manpages = docs.manPages;
}
);
devShells = forSupportedPkgs (pkgs: {
default = pkgs.callPackage ./home-manager/devShell.nix { };
});
legacyPackages = forSupportedPkgs (
pkgs:
let
inherit (pkgs.stdenv.hostPlatform) system;
in
(buildTests system)
// (integrationTestPackages system)
// (buildTestsNoBig system)
// (buildTestsNoBigIfd system)
// (testChunks system)
// (integrationTests system)
);
}
);
}
+1 -1
View File
@@ -68,7 +68,7 @@ in
{
meta = {
numUnread = length newsUnread;
display = newsJson.display;
inherit (newsJson) display;
ids = concatStringsSep "\n" (map (e: e.id) newsJson.entries);
};
news = {
+12
View File
@@ -0,0 +1,12 @@
{ pkgs, mkShell }:
let
formatter = pkgs.callPackage ./formatter.nix { };
in
mkShell {
name = "devShell";
packages = [
pkgs.coreutils
pkgs.statix
formatter
];
}
+24
View File
@@ -0,0 +1,24 @@
{ pkgs }:
let
statixFormatter = pkgs.writeShellApplication {
name = "treefmt-statix";
text = ''
set -eu
for file in "$@"; do
${pkgs.statix}/bin/statix fix --config ${../statix.toml} -- "$file"
done
'';
};
in
pkgs.treefmt.withConfig {
runtimeInputs = with pkgs; [
nixfmt
statixFormatter
deadnix
keep-sorted
nixf-diagnose
ruff
];
settings = pkgs.lib.importTOML ../treefmt.toml;
}
+10 -7
View File
@@ -284,13 +284,14 @@ function doInspectOption() {
NIXOS_OPTION_NIX=$(nix-store -q --references "${NIXOS_OPTION_REAL}" | grep 'nixos-option\.nix$')
if [[ ! -f "$NIXOS_OPTION_NIX" ]]; then
_iError "nixos-option.nix not found."
errorEcho "home-manager option: could not find nixos-option.nix" >&2
exit 1
fi
for path in "${paths[@]}"; do
nix-instantiate --eval --json \
--arg nixos "$modulesExpr" \
"${extraArgs[@]}" \
--argstr path "$path" \
--arg recursive "$recursive" \
"$NIXOS_OPTION_NIX" \
@@ -313,7 +314,7 @@ function doInit() {
fi
local homeManagerUrl="github:nix-community/home-manager"
local nixpkgsUrl="github:nixos/nixpkgs/nixos-unstable"
local nixpkgsUrl="github:nixos/nixpkgs/nixpkgs-unstable"
while (( $# > 0 )); do
local opt="$1"
@@ -403,7 +404,7 @@ $xdgVars
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "25.11"; # Please read the comment before changing.
home.stateVersion = "26.05"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
@@ -819,7 +820,7 @@ function doSwitch() {
if [[ -v specialisation ]]; then
activateScript="$generation/specialisation/$specialisation/activate"
if [[ ! -x $activateScript ]]; then
_iError 'The configuration did not contain the specialisation "%s"' "$specialisation"
_iError 'The configuration does not contain the specialisation "%s"' "$specialisation"
exit 1
fi
fi
@@ -998,9 +999,11 @@ function doShowNews() {
return 1
esac
local formattedNewsFile="$WORK_DIR/news.txt"
nix-instantiate --quiet --eval --json --expr "(import ${newsNixFile}).news.$newsAttr" \
| jq -r . \
| ${PAGER:-less}
> "$formattedNewsFile"
${PAGER:-less} "$formattedNewsFile"
local allIds
allIds="$(nix-instantiate --quiet --eval --expr "(import ${newsNixFile}).meta.ids")"
@@ -1039,7 +1042,7 @@ function doUninstall() {
uninstall = true;
home.username = "$(escapeForNix "$USER")";
home.homeDirectory = "$(escapeForNix "$HOME")";
home.stateVersion = "25.11";
home.stateVersion = "26.05";
}
EOF
# shellcheck disable=2064
@@ -1277,7 +1280,7 @@ while [[ $# -gt 0 ]]; do
export VERBOSE=1
;;
--version)
echo 26.05-pre
echo 26.11-pre
exit 0
;;
*)
+1 -2
View File
@@ -10,8 +10,7 @@ let
env = import ../modules {
configuration =
if confAttr == "" || confAttr == null then confPath else (import confPath).${confAttr};
pkgs = pkgs;
check = check;
inherit check pkgs;
};
in
+39 -36
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-08-25 05:01+0000\n"
"Last-Translator: Omar Mohamed <mohamed.omar67492@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-04-30 04:09+0000\n"
"Last-Translator: Troy <radiohotline@disroot.org>\n"
"Language-Team: Arabic <https://hosted.weblate.org/projects/home-manager/cli/"
"ar/>\n"
"Language: ar\n"
@@ -18,17 +18,17 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n"
"X-Generator: Weblate 5.13\n"
"X-Generator: Weblate 5.17.1-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
msgstr "%s: معطيات مفقوة ل %s"
msgstr "%s: معطيات مفقودة ل %s"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
msgid "%s: %s can only be used after %s"
msgstr "%s: %s يمكن استخدامه فقط بعد %s"
msgstr "%s%: s يمكن استخدامه فقط بعد %s"
#: home-manager/home-manager:71
msgid "No configuration file found at %s"
@@ -113,29 +113,29 @@ msgstr "لم يتم العثور على مجلد الملف الشخصي الم
msgid "Can't inspect options of a flake configuration"
msgstr "لا يمكن فحص خيارات اعداد flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: خيار غير معروف '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "قم بتشغيل '%s --help' للحصول على مساعدة في الاستخدام"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "الملف %s موجود بالفعل، تم تركه دون تغيير..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "جارى إنشاء %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "جارى إنشاء الجيل الأولى ل Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -152,7 +152,7 @@ msgstr ""
"للاطلاع على جميع الخيارات المتاحة."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -167,11 +167,11 @@ msgstr ""
"إذا بدا أن الخطأ ناتج عن خطأ في Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "لا يمكن إنشاء مثيل لاعدادات رقاقة"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -197,79 +197,82 @@ msgstr[5] ""
"هناك %d خبر غير مقروء وذى صلة.\n"
"اقرأهم بتشغيل الأمر \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "إعداد \"news.display\" غير معروف \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "يرجى تعيين متغير البيئة $EDITOR أو $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "لا يمكن تشغيل البناء في مجلد قراءة فقط"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr م يتضمن ملف الاعدادات التخصص \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ا يتضمن ملف الاعدادات التخصص \"%s\""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "لا يوجد جيل بمعرف %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "لا يمكن إزالة الجيل الحالي %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "جارى إزالة الجيل %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "لا يوجد أجيال لتنتهي"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "يبدو أنه لم يتم تثبيت أي حزم home-mnager."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "معطى غير معروف %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "سيؤدي هذا إلى إزالة Home Manager من نظامك."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "هذا تشغيل تجريبيى، ولن يتم إلغاء تثبيت أي شيء فعليًا."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "هل تريد إلغاء تثبيت Home Manager حقًا؟"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "جاري التبديل إلى اعدادات Home Manager فارغة..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "مرحا!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "تم إلغاء تثبيت Home Manager ولكن تم ترك ملف home.nix الخاص بك دون مساس."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "يتوقع expire-generations معطى واحد، وقد حصل على %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "أمر غير معروف: %s"
#: home-manager/install.nix:21
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr "لا يمكن بناء هذا الاشتقاق، يرجى تشغيله باستخدام nix-shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "لم يتضمن ملف الاعدادات التخصص \"%s\""
+261
View File
@@ -0,0 +1,261 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Home Manager contributors
# This file is distributed under the same license as the Home Manager package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-05-31 21:01+0000\n"
"Last-Translator: Tofaa <tofig.adigozalov.180904@gmail.com>\n"
"Language-Team: Azerbaijani <https://hosted.weblate.org/projects/home-manager/"
"cli/az/>\n"
"Language: az\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.6.dev0\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
msgstr "%s: {s} üçün tələb olunan arqument verilməyib"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
msgid "%s: %s can only be used after %s"
msgstr "%s: %s ancaq %s'dən sonra işlənə bilər"
#: home-manager/home-manager:71
msgid "No configuration file found at %s"
msgstr "%s-də konfiqurasiya faylı tapılmadı"
#. translators: The first '%s' specifier will be replaced by either
#. 'home.nix' or 'flake.nix'.
#: home-manager/home-manager:88 home-manager/home-manager:92
#: home-manager/home-manager:191
msgid ""
"Keeping your Home Manager %s in %s is deprecated,\n"
"please move it to %s"
msgstr ""
"Home Manager %s faylının %s daxilində saxlanılması artıq dəstəklənmir.\n"
"Zəhmət olmasa onu %s ünvanına köçürün"
#: home-manager/home-manager:99
msgid "No configuration file found. Please create one at %s"
msgstr "Konfiqurasiya faylı tapılmadı. Zəhmət olmasa fayli %s'də yaradin"
#: home-manager/home-manager:114
msgid "Home Manager not found at %s."
msgstr "Home Manager %s'də tapılmadı."
#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
#: home-manager/home-manager:122
msgid ""
"The fallback Home Manager path %s has been deprecated and a file/directory "
"was found there."
msgstr ""
"Ehtiyat Home Manager yolu %s artıq köhnəlmişdir və həmin ünvanda fayl və ya "
"qovluq tapıldı."
#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
#: home-manager/home-manager:125
msgid ""
"To remove this warning, do one of the following.\n"
"\n"
"1. Explicitly tell Home Manager to use the path, for example by adding\n"
"\n"
" { programs.home-manager.path = \"%s\"; }\n"
"\n"
" to your configuration.\n"
"\n"
" If you import Home Manager directly, you can use the `path` parameter\n"
"\n"
" pkgs.callPackage /path/to/home-manager-package { path = \"%s\"; }\n"
"\n"
" when calling the Home Manager package.\n"
"\n"
"2. Remove the deprecated path.\n"
"\n"
" $ rm -r \"%s\""
msgstr ""
"Bu xəbərdarlığı aradan qaldırmaq üçün aşağıdakılardan birini edin.\n"
"\n"
"1. Home Manager-ə bu yolu istifadə etməsini açıq şəkildə bildirin. Məsələn, "
"konfiqurasiyanıza aşağıdakı sətri əlavə edin:\n"
"\n"
"{ programs.home-manager.path = \"%s\"; }\n"
"\n"
" Əgər Home Manager-i birbaşa import edirsinizsə, Home Manager paketini\n"
" çağırarkən `path` parametrindən istifadə edə bilərsiniz:\n"
"\n"
" pkgs.callPackage /path/to/home-manager-package { path = \"%s\"; }\n"
"\n"
"2. Köhnəlmiş yolu silin.\n"
"\n"
" $ rm -r \"%s\""
#: home-manager/home-manager:153
msgid "Sanity checking Nix"
msgstr "Nix yoxlanılır"
#: home-manager/home-manager:173
msgid "Could not find suitable profile directory, tried %s and %s"
msgstr "Uyğun profil qovluğu tapılmadı; %s və %s yolları yoxlanıldı"
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:230
msgid "Can't inspect options of a flake configuration"
msgstr "Flake konfiqurasiyasının seçimlərinə baxış keçirmək mümkün deyil"
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: bilinməyən seçim '%s'"
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "İstifadə köməyi üçün '%s --help' işlədin"
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "%s faylı artıq mövcuddur, dəyişdirilmədən saxlanılır..."
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "%s yaradılır..."
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Ilkin Home Manager nəsili yaradılır..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
" %s\n"
"\n"
"to configure Home Manager. Run 'man home-configuration.nix' to\n"
"see all available options."
msgstr ""
"Hər şey tamamlandı! İndi home-manager aləti quraşdırılıb və Home Manager-i "
"konfiqurasiya etmək üçün %s faylını redaktə edə bilərsiniz.\n"
"\n"
"Mövcud bütün seçimləri görmək üçün 'man home-configuration.nix' əmrini icra "
"edin."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
" %s\n"
"\n"
"if the error seems to be the fault of Home Manager."
msgstr ""
"Quraşdırma uğursuz oldu! Əgər xəta Home Manager-in səbəbindən baş veribsə, "
"%s ünvanında issue yaradın."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Flake konfiqurasiyasını yaratmaq mümkün deyil"
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
msgid_plural ""
"There are %d unread and relevant news items.\n"
"Read them by running the command \"%s news\"."
msgstr[0] ""
"Oxunmamış və uyğun %d xəbər var.\n"
"\n"
"Onu oxumaq üçün \"%s news\" əmrini icra edin."
msgstr[1] ""
"Oxunmamış və uyğun %d xəbər var.\n"
"\n"
"Onları oxumaq üçün \"%s news\" əmrini icra edin."
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Naməlum \"news.display\" ayarı: \"%s\"."
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Zəhmət olmasa $EDITOR və ya $VISUAL mühit dəyişənini təyin edin"
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Yalnız oxuma rejimində qovluqda build icra etmək mümkün deyil"
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "Konfiqurasiya \"%s\" specialisation-ını ehtiva etmir"
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "%s ID-li nəsil mövcud deyil"
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Cari nəsli (%s) silmək mümkün deyil"
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "%s nəsli silinir"
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Müddəti bitəcək heç bir nəsil yoxdur"
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Heç bir home-manager paketi quraşdırılmış görünmür."
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Naməlum arqument: %s"
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Bu, Home Manager-i sisteminizdən siləcək."
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Bu sınaq icrasıdır, heç nə faktiki olaraq silinməyəcək."
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Home Manager-i həqiqətən silmək istəyirsiniz?"
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Boş Home Manager konfiqurasiyasına keçid edilir..."
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Əla!"
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager silindi, lakin home.nix faylınız dəyişdirilmədi."
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations bir arqument gözləyir, lakin %d arqument verilib."
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Naməlum əmr: %s"
#: home-manager/install.nix:21
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr ""
"Bu derivasiya build edilə bilən deyil, zəhmət olmasa onu nix-shell ilə icra "
"edin."
+39 -36
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-09-17 16:02+0000\n"
"Last-Translator: Borislav Rangelov <borislav.y.rangelov@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:14+0000\n"
"Last-Translator: Kiril Mihaylov <kiril195@hotmail.com>\n"
"Language-Team: Bulgarian <https://hosted.weblate.org/projects/home-manager/"
"cli/bg/>\n"
"Language: bg\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.14-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -115,29 +115,29 @@ msgstr "Не беше намерена подходяща директория
msgid "Can't inspect options of a flake configuration"
msgstr "Опциите на флейк конфигурацията не могат да бъдат прегледани"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: непозната опция '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Изпълнете командата '%s --help' за повече информация"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Файлът %s вече съществува, пропускане на промениете му..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Създаване на %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Създаване на първоначалната Home Manager генерация..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -151,12 +151,12 @@ msgstr ""
"\n"
"....%s\n"
"\n"
"за да конфигурате Home Manager. Изпълнете командата 'man home-configuration."
"nix'\n"
"за да конфигурате Home Manager. Изпълнете командата 'man home-"
"configuration.nix'\n"
"за да видите всички налични опции."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -171,11 +171,11 @@ msgstr ""
"ако смятате, че грешката се дължи на Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Флейк конфигурацията не може да се инстанцира"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -189,78 +189,78 @@ msgstr[1] ""
"Има %d непрочетени релевантни новини.\n"
"Прочетете ги като изпълните \"%s news\" командата."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Непозната \"news.display\" настройка \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Моля задайте $EDITOR или $VISUAL променливите на средата"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
"Компилацията не може да се стартира в директория предназначена само за четене"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr "Конфигурацията не съдържаше специализация \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Не е намерена генерация с ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Не може да бъде премахната сегашната генерация %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Премахване генерацията %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Няма изтичащи генерации"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Изглежда няма нито един инсталиран home-manager пакет."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Непознат аргумент %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Това ще премахне Home Manager от системата Ви."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Това е сухо изпълнение - нищо няма да бъде деинсталирано."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Наистина ли искате да деинсталирате Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Превключване към празна Home Manager конфигурация..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Ура!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager бе деинсталиран но Вашия home.nix файл е оставен непроменен."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations очаква един аргумент, получил е %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Непозната команда: %s"
@@ -269,3 +269,6 @@ msgid "This derivation is not buildable, please run it using nix-shell."
msgstr ""
"Тази деривация не може да се компилира, моля стартирайте я ползвайки nix-"
"shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "Конфигурацията не съдържаше специализация \"%s\""
+35 -35
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-05-11 13:01+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-04-06 10:09+0000\n"
"Last-Translator: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>\n"
"Language-Team: Catalan <https://hosted.weblate.org/projects/home-manager/cli/"
"ca/>\n"
"Language: ca\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -27,7 +27,7 @@ msgstr "%: falta un argument per %s"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
msgid "%s: %s can only be used after %s"
msgstr ""
msgstr "%s: %s només pot ser utilitzat rere %s"
#: home-manager/home-manager:71
msgid "No configuration file found at %s"
@@ -117,29 +117,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr "No s'han pogut inspeccionar les opcions de configuració de flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%: opció desconeguda '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Executa '%s --help' per veure l'ajuda d'ús"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "El fitxer %s ja existeix, deixant sense modificar..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Creant %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Creant generació inicial de Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -156,7 +156,7 @@ msgstr ""
"a veure totes les opcions disponibles."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -171,11 +171,11 @@ msgstr ""
"si l'error sembla culpa de Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "No es pot instanciar una configuració flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -189,77 +189,77 @@ msgstr[1] ""
"Hi han %d notícies rellevants no llegides.\n"
"Llegeix-les executant la comanda \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Configuració \"news.display\" no reconeguda \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Si us plau, defineix les variables de entorn $EDITOR o $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Impossible executar la compilació en un directori només lectura"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "La configuració no conté l'especialització \"%s\""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "No existeix la generació amb ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Impossible eliminar la generació actual %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Eliminant la generació %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "No s'han trobat generacions a expirar"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Cap paquet home-manager sembla estar instal·lat."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Argument desconegut %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Home Manager serà esborrat del sistema."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Això és un simulacre, res serà realment desinstal·lat."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Estàs segur que vols desinstal·lar Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Canviant a configuració buida de Home Manager..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Visca!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager ha estat desinstal·lat però el vostre home.nix es manté intacte."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations espera un argument, obtinguts %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Comanda desconeguda: %s"
+33 -33
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2024-12-22 17:00+0000\n"
"Last-Translator: David Chocholatý <chocholaty.david0@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:15+0000\n"
"Last-Translator: FireFragment <snaselik.m@gmail.com>\n"
"Language-Team: Czech <https://hosted.weblate.org/projects/home-manager/cli/"
"cs/>\n"
"Language: cs\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
"X-Generator: Weblate 5.10-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -114,29 +114,29 @@ msgstr "Nebyl nalezen vhodný adresář profilu, byly zkoušeny %s a %s"
msgid "Can't inspect options of a flake configuration"
msgstr "Nelze ověřit parametry z konfigurace flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: neznámý parametr '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Spusťte '%s --help' pro vypsání nápovědy"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Soubor %s již existuje, ponechán beze změn..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Vytvářím %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Vytvářím první generaci Home Manageru..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -153,7 +153,7 @@ msgstr ""
"k zobrazení všech dostupných možností."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -167,11 +167,11 @@ msgstr ""
" %s"
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Nelze vytvořit instanci flake konfigurace"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -188,76 +188,76 @@ msgstr[2] ""
"%d nepřečtených novinek.\n"
"Přečtěte je pomocí příkazu \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Neznáme nastavení \"news.display\" \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Nastavte, prosím, proměnnou prostředí $EDITOR nebo $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Sestavení nelze provést v adresáři dostupném pouze pro čtení"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Generace s ID %s neexistuje"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Nelze odstranit současnou generaci %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Odstraňuji generaci %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Žádná generace k vypršení platnosti"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Žádný home-manager balíček není nainstalován."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Neznámý parametr %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Toto odstraní Home Manager z vašeho systému."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Toto zkouška na nečisto, nic nebude odinstalováno."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Opravdu odinstalovat Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Přepínám na prázdou konfiguraci Home Manageru..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Hurá!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager se odinstalovává, ale váš home.nix nebyl změněn."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations očekává jeden parametr, přítomno %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Neznámý příkaz: %s"
+38 -35
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2024-05-25 11:09+0000\n"
"Last-Translator: DeeKahy <Lennart.Diego.Kahn@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:16+0000\n"
"Last-Translator: Matilde <matilde.alb@proton.me>\n"
"Language-Team: Danish <https://hosted.weblate.org/projects/home-manager/cli/"
"da/>\n"
"Language: da\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -27,7 +27,7 @@ msgstr "%s: manglende argument for %s"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
msgid "%s: %s can only be used after %s"
msgstr ""
msgstr "%s: %s kan kun blive anvendt efter %s"
#: home-manager/home-manager:71
msgid "No configuration file found at %s"
@@ -114,29 +114,29 @@ msgstr "Kunne ikke finde en passende profilmappe, forsøgte %s og %s"
msgid "Can't inspect options of a flake configuration"
msgstr "Kan ikke inspicere indstillinger af en flake konfiguration"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: ukendt indstilling '%s'"
msgstr "%s: ukendt valgmulighed '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Kør '%s --help' for brugsvejledning"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Filen %s eksisterer allerede, efterlader den uændret…"
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Opretter %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Laver initial Home Manager generation..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -154,7 +154,7 @@ msgstr ""
"se alle de mulige indstillinger."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -169,11 +169,11 @@ msgstr ""
"hvis fejlen fremstår som forskyldt af Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Kan ikke instantiere en flake konfiguration"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -187,78 +187,78 @@ msgstr[1] ""
"Der er %d ulæste og relavante nyheder.\n"
"Læs dem ved at køre \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Ubekændt \"news.display\" indstilling \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Indstil venligst miljøvariablen $EDITOR eller $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Kan ikke bygge i en læs-kun folder"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Ingen generation med ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Kan ikke fjerne den nuværende generation %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Fjern generation %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Ingen generationer som skal udløbes"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
"Det virker ikke som om der er nogle home-manager pakker der er installeret."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Ubekendt argument %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Dette vil fjerne Home Manager fra dit system."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Dette er en tør kørsel, intet vil rent faktisk blive uinstalleret."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Virkelig uinstaller Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Skifter til tom Home Manager konfiguration..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Juhuu!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager bliver uinstalleret, men din home.nix bliver forladt uberørt."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations forventer et argument, fik %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Ubekendt kommando: %s"
@@ -266,6 +266,9 @@ msgstr "Ubekendt kommando: %s"
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr "Denne derivation er ikke bygbar, venligst kør den gennem nix-shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "Konfigurationen indeholdt ikke specialiseringen \"%s\""
#, sh-format
#~ msgid "Please set the $EDITOR environment variable"
#~ msgstr "Venligst sæt $EDITOR miljøvariablen"
+37 -34
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-09-04 09:01+0000\n"
"Last-Translator: Josef Dalibor <josefkruse@googlemail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:12+0000\n"
"Last-Translator: JonathanB <ewu.uwent@gmail.com>\n"
"Language-Team: German <https://hosted.weblate.org/projects/home-manager/cli/"
"de/>\n"
"Language: de\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13.1-rc\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -117,29 +117,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr "Die Optionen einer Flake-Konfiguration können nicht inspiziert werden"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: unbekannte Option '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Führe '%s --help' aus, um Hilfe zur Verwendung zu erhalten"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Die Datei %s existiert bereits, sie bleibt unverändert..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Erstelle %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Erstelle initiale Home Manager Generation..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -157,7 +157,7 @@ msgstr ""
"um alle verfügbaren Optionen zu sehen."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -172,11 +172,11 @@ msgstr ""
"falls der Fehler auf Home Manager zurückzuführen ist."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Kann eine Flake-Konfiguration nicht instanziieren"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -190,77 +190,77 @@ msgstr[1] ""
"Es gibt %d ungelesene und relevante Nachrichten.\n"
"Lesen Sie sie, indem Sie den Befehl \"%s news\" ausführen."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Unbekannte \"news.display\" Einstellung \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Bitte setzen Sie die Umgebungsvariablen $EDITOR oder $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Build kann nicht im schreibgeschützten Ordner ausgeführt werden"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr "Die Konfiguration enthält keine Spezialisierung für \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "Die Spezialisierung \"%s\" ist nicht in der Konfiguration enthalten"
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Keine Generation mit ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Die jetzige Generation %s kann nicht entfernt werden"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Entferne Generation %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Keine ablaufenden Generationen"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Es scheint, als ob keine Home Manager Pakete installiert sind."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Unbekannte Argumente %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Dies wird Home Manager von Ihrem System entfernen."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Dies ist ein Probelauf, es wird nichts vom System deinstalliert."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Möchten Sie wirklich Home Manager deinstallieren?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Wechsle zu einer leeren Home Manager Konfiguration..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Juhu!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager ist installiert, aber Ihre home.nix Datei bleibt unberührt."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations erwartet ein Argument, hat aber %d erhalten."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Unbekannter Befehl: %s"
@@ -269,6 +269,9 @@ msgid "This derivation is not buildable, please run it using nix-shell."
msgstr ""
"Diese Derivation ist nicht kompilierbar. Bitte führen Sie nix-shell aus."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "Die Konfiguration enthält keine Spezialisierung für \"%s\""
#, sh-format
#~ msgid "Please set the $EDITOR environment variable"
#~ msgstr "Bitte legen Sie die $EDITOR Variable fest"
+37 -34
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-07-24 19:05+0000\n"
"Last-Translator: Harrizon Soler <harryalex0281@hotmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-04-06 10:09+0000\n"
"Last-Translator: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/home-manager/cli/"
"es/>\n"
"Language: es\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -116,29 +116,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr "No se pudo inspeccionar las opciones de la configuración flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: opción desconocida '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Ejecute '%s --help' para ver ayuda"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "El fichero %s ya existe, dejándolo sin modificar..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Creando %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Creando generación inicial de Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -155,7 +155,7 @@ msgstr ""
"ver todas las opciones disponibles."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -170,11 +170,11 @@ msgstr ""
"si el error parecer ser culpa de Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "No se pudo instanciar una configuración flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -188,76 +188,76 @@ msgstr[1] ""
"Hay %d noticias relevantes no leídas.\n"
"Léalas ejecutando el comando \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Configuración \"news.display\" no reconocida \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Por favor, defina la variable del entorno $EDITOR o $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "No se puede ejecutar en un directorio de sólo lectura"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr "La configuración no tenia incluida la especialización \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "La configuración no contiene la especialización \"%s\""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "No existe la generación con ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "No se pudo borrar la generación actual %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Borrando generación %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "No se encontraron generaciones para expirar"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "No se encontró ningún paquete home-manager instalado."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Argumento desconocido %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Home Manager será borrado del sistema."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Este es un simulacro, nada será realmente desinstalado."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Desinstalar Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Cambiando a configuración vacía de Home Manager..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Bien!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager desinstalado pero no se ha modificado home.nix."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations espera un argumento pero se dieron %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Comando desconocido %s"
@@ -265,6 +265,9 @@ msgstr "Comando desconocido %s"
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr "Esta derivación no se puede construir, ejecute con nix-shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "La configuración no tenia incluida la especialización \"%s\""
#, sh-format
#~ msgid "Please set the $EDITOR environment variable"
#~ msgstr "Defina la variable de ambiente $EDITOR"
+37 -34
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-09-20 10:01+0000\n"
"Last-Translator: ShadowTiger Raptor <sh4dowtig3r@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:13+0000\n"
"Last-Translator: Anonymous <noreply@weblate.org>\n"
"Language-Team: Basque <https://hosted.weblate.org/projects/home-manager/cli/"
"eu/>\n"
"Language: eu\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.14-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -115,29 +115,29 @@ msgstr "Ezin izan da profil karpeta egokirik aurkitu, %s eta %s saiatu dira"
msgid "Can't inspect options of a flake configuration"
msgstr "Ezin dira flake baten konfigurazio aukerak arakatu"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: aukera ezezaguna '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "'%s --help' exekutatu erabilera laguntzarako"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "%s fitxategia jada existitzen da, aldaketarik gabe uzten..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "%s sortzen..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Home Manager-en hasierako generazioa sortzen..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -155,7 +155,7 @@ msgstr ""
"aukera guztiak ikusteko."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -170,11 +170,11 @@ msgstr ""
"webgunean arazoa Home Manager-ena badirudi."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Ezin izan da flake ezarpen bat sortu"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -188,82 +188,85 @@ msgstr[1] ""
"Irakurri gabeko berri aipagarri %d daude .\n"
"Irakurri itzazu \"%s news\" exekutatzen."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "\"news.display\" ezarpen ezezaguna \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Mesedez, ezarri $EDITOR edo $VISUAL ingurumen aldagaia"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Ezin da konpilazioa exekutatu irakurtzeko soilik den direktorioan"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr "Konfigurazioak ez du \"%s\" espezializazioa izan"
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Ez dago generaziorik %s ID-arekin"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Ezin da oraingo generazioa %s ezabatu"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "%s generazioa ezabatzen"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Ez dago generaziorik iraungitzeko"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Ez dirudi home-manager paketerik instalatuta dagoenik."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Argumento ezezaguna: %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Honek Home Manager zure sistematik ezabatuko du."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Hau itxurazko exekuzioa da, benetan ez da ezer desinstalatuko."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Ziur zaude Home Manager desinstalatu nahi duzula?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Home Manager konfigurazio hutsera aldatzen..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Primeran!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager desinstalatua izan da baina zure home.nix fitxategia ez da "
"ikutu."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
"expire-generations argumentu bakarra espero izan du, baina %d jaso ditu."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Komando ezezaguna: %s"
#: home-manager/install.nix:21
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr "Deribazioa ezin da konpilatu, mesedez exekutatu nix-shell erabiliz."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "Konfigurazioak ez du \"%s\" espezializazioa izan"
+33 -34
View File
@@ -7,10 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-05-28 12:05+0000\n"
"Last-Translator: Parsa Nobahari <89968726+ParsaNobahari@users.noreply.github."
"com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:14+0000\n"
"Last-Translator: Artin Mobasher <mobasherartin.icm@gmail.com>\n"
"Language-Team: Persian <https://hosted.weblate.org/projects/home-manager/cli/"
"fa/>\n"
"Language: fa\n"
@@ -18,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.12-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -115,29 +114,29 @@ msgstr "بعد از امتحان کردن %s و %s , دایرکتوری مناس
msgid "Can't inspect options of a flake configuration"
msgstr "عدم امکان بررسی گزینه‌های تنظیمات Flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: آپشن مورد نظر شما یافت نشد %s"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "%s --help برای دیدن راهنمایی دستور رو به رو را اجرا کنید"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "فایل %s از قبل وجود داشته است، بدون تغییر رها شد..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "درحال ساختن %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "در حال ساخت نسل اولیه Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -154,7 +153,7 @@ msgstr ""
"دستور 'man home-configuration.nix' را اجرا کنید."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -169,11 +168,11 @@ msgstr ""
"اگر بنظر می‌رسد مشکل از Home Manager است."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "عدم امکان نمونه‌سازی کانفیگ flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -187,76 +186,76 @@ msgstr[1] ""
"%d خبر خوانده نشده وجود دارد.\n"
"میتوانید آنها را با اجرای دستور \"%s news\" بخوانید."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "تنظیمات \"news.display\" در \"%s\" شناخته شده نیست."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "لطفا متغیر محلی $EDITOR و یا $VISUAL را تنظیم کنید"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "نمیتوان دستور build را در یک دایکتوری read-only اجرا کرد"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "هیچ نسل‌ای با شناسه %s یافت نشد"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "نمی‌توان نسل فعلی %s را حذف کرد"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "حذف کردن نسل %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "هیچ نسلی برای منسوخ کردن وجود ندارد"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "بنظر میاید هیچ پکیجی از home-manager نصب نشده است."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "پارامتر %s شناخته نشده است"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "این عمل Home Manager را از سیستم شما حذف میکند."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "این یک عمل آزمایشی است, قرار نیست چیزی واقعا حذف شود."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "واقعا میخواهید Home Manager را حذف کنید؟"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "در حال انتقال به کانفیگ خالی Home Manager..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "ایول!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager حذف نصب شد اما home.nix شما دست نخورده باقی ماند."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations یک پارامتر نیاز دارد, اما %d پارامتر دریافت کرد."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "دستور ناشناخته: %s"
+33 -33
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-07-29 05:02+0000\n"
"Last-Translator: jarre johansson <jarre@johansson.today>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:17+0000\n"
"Last-Translator: Ricky Tigg <ricky.tigg@gmail.com>\n"
"Language-Team: Finnish <https://hosted.weblate.org/projects/home-manager/cli/"
"fi/>\n"
"Language: fi\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -94,29 +94,29 @@ msgstr "Sopivaa profiilihakemistoa ei löytynyt, yritettiin %s ja %s"
msgid "Can't inspect options of a flake configuration"
msgstr "Flake-konfiguraation asetuksia ei voi tarkastella"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: tuntematon optio '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Aja '%s --help' saadaksesi käyttöohjeita"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Tiedosto %s on jo olemassa, jätetään se muuttumattomaksi..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Luodaan tiedostoa %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Luodaan alkuperäistä Home Manager -generaatiota..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -127,7 +127,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -137,11 +137,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Flake-konfiguraatiota ei voi luoda"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -155,77 +155,77 @@ msgstr[1] ""
"Sinulla on %d lukematonta ja oleellista uutisartikkelia.\n"
"Lue ne ajamalla komento \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Tuntematon asetus \"news.display\" \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Aseta $EDITOR- tai $VISUAL-ympäristömuuttujaksi"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Käännöstä ei voi suorittaa kirjoitussuojatussa hakemistossa"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "ID:llä %s ei löytynyt yhtään versiota"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Nykyistä generaatiota %s ei voi poistaa"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Generaatio %s poistetaan"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Ei vanhentuvia versioita"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Näyttää siltä, ettei yhtään home-manager-pakettia ole asennettu."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Tuntematon argumentti %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Tämä poistaa Home Managerin järjestelmästäsi."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Tämä on kuivaharjoitus, mitään ei oikeasti poisteta."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Haluatko varmasti poistaa Home Managerin?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Vaihdetaan tyhjään Home Manager -konfiguraatioon..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Jes!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
"Home Manager on poistettu, mutta home.nix-tiedostosi jää koskemattomaksi."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Tuntematon komento: %s"
+33 -33
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2026-01-07 17:01+0000\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:13+0000\n"
"Last-Translator: Brian E <brianellingsgaard9@gmail.com>\n"
"Language-Team: Faroese <https://hosted.weblate.org/projects/home-manager/cli/"
"fo/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -94,29 +94,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr ""
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr ""
msgstr "%s: ókendur kostur '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr ""
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr ""
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr ""
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr ""
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -127,7 +127,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -137,11 +137,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr ""
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -151,76 +151,76 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr ""
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr ""
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr ""
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr ""
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr ""
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr ""
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
+49 -46
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-08-01 14:01+0000\n"
"Last-Translator: Yk Cheese <yakforcom@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-05-05 10:30+0000\n"
"Last-Translator: Ludovic Pagès <nanucq@proton.me>\n"
"Language-Team: French <https://hosted.weblate.org/projects/home-manager/cli/"
"fr/>\n"
"Language: fr\n"
@@ -17,12 +17,12 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.13-dev\n"
"X-Generator: Weblate 5.17.1\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
msgstr "%s: argument manquant pour %s"
msgstr "%s : argument manquant pour %s"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
@@ -52,7 +52,7 @@ msgstr ""
#: home-manager/home-manager:114
msgid "Home Manager not found at %s."
msgstr "Home Manager indisponible à %s."
msgstr "Home Manager absent dans %s."
#. translators: This message will be seen by very few users that likely are familiar with English. So feel free to leave this untranslated.
#: home-manager/home-manager:122
@@ -84,15 +84,15 @@ msgid ""
"\n"
" $ rm -r \"%s\""
msgstr ""
"Pour supprimer cet avertissement, exécutez l'une des actions suivantes:\n"
"\n"
"Pour supprimer cet avertissement, exécutez l'une des actions suivantes :\n"
" \n"
"1. Préciser explicitement à Home Manager d'utiliser le chemin d'accès, par "
"exemple en ajoutant ceci à votre configuration:\n"
"exemple en ajoutant ceci à votre configuration :\n"
"\n"
"\t{ programs.home-manager.path = \"%s\"; }\n"
"\n"
"Si vous importez Home Manager directement, vous pouvez utiliser le paramètre "
"`path` au lancement du package:\n"
"`path` au lancement du package :\n"
"\n"
"\tpkgs.callPackage /path/to/home-manager-package { path = \"%s\"; }\n"
"\n"
@@ -113,29 +113,29 @@ msgstr "Impossible de trouver le dossier de profil approprié, essayé %s et %s"
msgid "Can't inspect options of a flake configuration"
msgstr "Impossible d'inspecter les options de la configuration d'un flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: l'option '%s' est inconnue"
msgstr "%s : l'option '%s' est inconnue"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Exécuter « %s --help » pour de l'aide sur l'utilisation"
msgstr "Exécuter '%s --help' pour de l'aide sur l'utilisation"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Le fichier %s existe déjà, il sera laissé inchangé..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Création de %s ..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Création de la génération initiale de Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -144,16 +144,16 @@ msgid ""
"to configure Home Manager. Run 'man home-configuration.nix' to\n"
"see all available options."
msgstr ""
"Tout est fait! Home Manager devrait désormais être installé et vous pouvez "
"Terminé ! Home Manager devrait désormais être installé et vous pouvez "
"éditer\n"
"\n"
" %s\n"
"\n"
"pour configurer Home Manager. Pour avoir une liste des options disponibles,\n"
"essayez 'man home-configuration.nix'."
"lancez 'man home-configuration.nix'."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -161,19 +161,19 @@ msgid ""
"\n"
"if the error seems to be the fault of Home Manager."
msgstr ""
"Uh oh, l'installation n'a pas réussi! Veuillez signaler cette erreur à "
"l'adresse suivante\n"
"Uh oh, l'installation a échoué! Veuillez signaler cette erreur à l'adresse "
"suivante\n"
"\n"
" %s\n"
"\n"
"si l'erreur semble être liée à Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Impossible d'instancier une configuration flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -187,76 +187,76 @@ msgstr[1] ""
"Il y a %d nouveaux éléments non lus et pertinents.\n"
"Vous pouvez les lire en exécutant la commande \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Configuration \"news.display\" inconnue \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Veuillez remplir la variable d'environnement $EDITOR ou VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Impossible de lancer une compilation dans un dossier en écriture seule"
msgstr "Impossible de lancer une compilation dans un dossier en lecture seule"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "La configuration ne contient pas la spécialisation \"%s\""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Aucune génération avec l'ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Impossible de supprimer la génération courante %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Suppression de la génération %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Aucune génération expirée"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Aucun package home-manager ne semble être installé."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Argument inconnu %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Cela va supprimer Home Manager de votre système."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "C'est un essai, rien ne sera réellement désinstallé."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Voulez-vous vraiment désinstaller Home Manager ?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Changement vers une configuration vierge de Home Manager..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Yay !"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager est désinstallé mais votre home.nix reste intact."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations attend un argument, a obtenu %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Commande inconnue : %s"
@@ -264,6 +264,9 @@ msgstr "Commande inconnue : %s"
msgid "This derivation is not buildable, please run it using nix-shell."
msgstr "Cette dérivation ne peut être construite, essayez avec nix-shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "La configuration ne contient pas la spécialisation \"%s\""
#, sh-format
#~ msgid "Please set the $EDITOR environment variable"
#~ msgstr "Veuillez définir la variable d'environnement $EDITOR"
+34 -32
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-08-21 16:02+0000\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:14+0000\n"
"Last-Translator: Daniel Jacob Butcher <corpo@quokka.wiki>\n"
"Language-Team: Hebrew <https://hosted.weblate.org/projects/home-manager/cli/"
"he/>\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 5.13\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -93,29 +93,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr ""
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr ""
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr ""
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr ""
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "יוצר %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "יוצר דור ראשוני של Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -126,7 +126,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -136,11 +136,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr ""
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -149,77 +149,79 @@ msgid_plural ""
"Read them by running the command \"%s news\"."
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr ""
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr ""
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr ""
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr ""
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr ""
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr ""
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
+34 -34
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-09-02 00:02+0000\n"
"Last-Translator: Fareesh Vijayarangam <fareesh@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:15+0000\n"
"Last-Translator: Utkarsh Sharma <utkasharma19@gmail.com>\n"
"Language-Team: Hindi <https://hosted.weblate.org/projects/home-manager/cli/"
"hi/>\n"
"Language: hi\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.13.1-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -94,29 +94,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr ""
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr ""
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr ""
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr ""
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr ""
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr ""
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -127,7 +127,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -137,11 +137,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr ""
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -151,76 +151,76 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr ""
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr ""
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr ""
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr ""
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr ""
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
msgstr "खाली Home Manager कन्फि़गरेशन में बदलना।"
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr ""
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
+30 -30
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -91,29 +91,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr ""
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr ""
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr ""
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr ""
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr ""
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr ""
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -124,7 +124,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -134,11 +134,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr ""
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -148,76 +148,76 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr ""
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr ""
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr ""
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr ""
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr ""
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr ""
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
+33 -33
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2024-09-02 17:09+0000\n"
"Last-Translator: Ferenci Ákos <synthetace@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:12+0000\n"
"Last-Translator: Balint Barna Kovari <balint@kovari.cc>\n"
"Language-Team: Hungarian <https://hosted.weblate.org/projects/home-manager/"
"cli/hu/>\n"
"Language: hu\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.8-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -115,29 +115,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr "Nem lehet a flake konfiguráció beállításait megtekinteni."
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: ismeretlen opció '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Futtasa a '%s --help' parancsot a használattal kapcsolatos segítségért"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "A fájl %s már létezik és változatlan marad..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "%s létrehozása..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Kezdeti Home Manager generáció létrehozása..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -155,7 +155,7 @@ msgstr ""
"áttekintéséhez."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -170,11 +170,11 @@ msgstr ""
"helyen amennyiben a hiba a Home Manager miatt lépett fel."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Flake konfiguráció nem példányosítható"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -188,76 +188,76 @@ msgstr[1] ""
"%d olvasatlan és releváns hírt kapott.\n"
"Olvassa el őket a \"%s news\" futattásával."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Ismeretlen \"news.display\" opció \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Kérem állítása be az $EDITOR vagy a $VISUAL környezeti változókat."
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Build futtatása nem lehetséges csak-olvasható könyvtárban"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Nem található generáció a következő ID-val: %"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "A jelenlegi generáció %s nem eltávolítható"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "%s generáció eltávolítása"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Nincs lejárandó generáció"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Nem található installált Home Manager csomag"
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Ismeretlen argumentum %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Ez a művelet eltávolítja a Home Manager-t a rendszeréről."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Ez egy üres járat, semmi nem lesz valójában eltávolítva."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Biztosan eltávolítja a Home Managert-t?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Átváltás üres Home Manager konfigurációra..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Hurrá!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager eltávolítva, de a home.nix fájl érintetlenül maradt."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Ismeretlen parancs: %s"
+73 -46
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2024-02-16 22:01+0000\n"
"Last-Translator: Robert Helgesson <robert@rycee.net>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:15+0000\n"
"Last-Translator: Abdul V Vahry <cyberaioff@gmail.com>\n"
"Language-Team: Indonesian <https://hosted.weblate.org/projects/home-manager/"
"cli/id/>\n"
"Language: id\n"
@@ -17,17 +17,17 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.4\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
msgid "%s: missing argument for %s"
msgstr ""
msgstr "argument hilang untuk"
#. translators: For example: "home-manager: --rollback can only be used after switch"
#: home-manager/home-manager:22
msgid "%s: %s can only be used after %s"
msgstr ""
msgstr "hanya bisa digunakan setelah"
#: home-manager/home-manager:71
msgid "No configuration file found at %s"
@@ -82,6 +82,24 @@ msgid ""
"\n"
" $ rm -r \"%s\""
msgstr ""
"Untuk menghindari peringatan ini langkah-langkah berikut ini\n"
"\n"
"1. Beritahu Home Manager untuk menggunakan path, sebagai contoh tambahakn\n"
"\n"
"......{programs.home-manager.path = \"&s\";}\n"
"\n"
"... untuk konfigurasi kamu\n"
"\n"
"... jika kamu import Home Manager secara langsung, kamu dapat menggunakan "
"`path` parameter\n"
"\n"
"......pkgs.callPackage/path/to/home-manager-packager {path = \"%s\";}\n"
"\n"
"...ketika memanggil package Home Manager.\n"
"\n"
"2. Hapus path yang tidak digunakan.\n"
"\n"
"......$ rm -r \"%s\""
#: home-manager/home-manager:153
msgid "Sanity checking Nix"
@@ -96,29 +114,30 @@ msgstr "Tidak dapat menemukan direktori profil yang sesuai, coba %s dan %s"
msgid "Can't inspect options of a flake configuration"
msgstr "Tidak dapat memeriksa opsi konfigurasi flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: opsi tidak diketahui '%s'"
msgstr "opsi tidak diketahui"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Jalankan '%s --help' untuk bantuan penggunaan"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "File %s sudah ada, sehingga tidak berubah..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Membuat %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Membuat pembuatan Home Manager awal..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
#, fuzzy
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -127,9 +146,15 @@ msgid ""
"to configure Home Manager. Run 'man home-configuration.nix' to\n"
"see all available options."
msgstr ""
"Alat home-manager sekarang sudah terpasang dan Anda dapat mengedit\n"
"\n"
"\n"
"untuk mengkonfigurasi Home Manager. Jalankan 'man home-configuration.nix' "
"untuk\n"
"melihat semua opsi yang tersedia."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -144,11 +169,11 @@ msgstr ""
"jika error tersebut tampaknya merupakan kesalahan Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Tidak dapat membuat konfigurasi flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -159,78 +184,80 @@ msgstr[0] ""
"Ada %d item berita yang belum dibaca dan relevan. \n"
"Bacalah dengan menjalankan perintah \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Pengaturan \"news.display\" yang tidak diketahui \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
msgstr "Tolong atur $EDITOR atau $VISUAL variabel enviorment"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Tidak dapat menjalankan build di direktori hanya-baca"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "Konfigurasi tidak mengandung specialisation"
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Tidak ada generasi dengan ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Tidak dapat menghapus %s generasi saat ini"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Menghapus generasi %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Tidak ada generasi yang kedaluwarsa"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
msgstr "Tidak ada paket home-manager yang tampaknya terpasang."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
msgstr "Agument tidak diketahui"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
msgstr "Ini akan menghapus Home Manager dari sistem Anda"
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
"Ini hanya uji coba, tidak ada yang akan benar-benar dihapus instalasinya."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
msgstr "Yakin menghapus Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
msgstr "Mengalihkan ke konfigurasi Home Manager yang kosong"
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Yey!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
#, fuzzy
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
msgstr "Home Manager telah terhapus tapi home.nix tetap utuh"
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
msgstr "expire-generations mengharapkan satu argumen, tetapi menerima %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
msgstr "Perintah tidak diketahui: %s"
#: home-manager/install.nix:21
msgid "This derivation is not buildable, please run it using nix-shell."
+32 -32
View File
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2024-04-23 17:49+0000\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-03-31 16:14+0000\n"
"Last-Translator: Bjarki Gunnarsson <bjarkihg@gmail.com>\n"
"Language-Team: Icelandic <https://hosted.weblate.org/projects/home-manager/"
"cli/is/>\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n % 10 != 1 || n % 100 == 11;\n"
"X-Generator: Weblate 5.5-dev\n"
"X-Generator: Weblate 5.17-dev\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -97,29 +97,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr ""
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr ""
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr ""
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr ""
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr ""
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr ""
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -130,7 +130,7 @@ msgid ""
msgstr ""
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -140,11 +140,11 @@ msgid ""
msgstr ""
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr ""
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -154,76 +154,76 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr ""
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr ""
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr ""
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr ""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr ""
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr ""
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr ""
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr ""
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr ""
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr ""
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr ""
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr ""
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr ""
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr ""
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr ""
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr ""
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr ""
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr ""
+39 -36
View File
@@ -7,9 +7,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Home Manager\n"
"Report-Msgid-Bugs-To: https://github.com/nix-community/home-manager/issues\n"
"POT-Creation-Date: 2025-07-22 10:59+0200\n"
"PO-Revision-Date: 2025-08-11 17:02+0000\n"
"Last-Translator: Leonardo Randacio <leonardorandacio@gmail.com>\n"
"POT-Creation-Date: 2026-01-21 09:53+0100\n"
"PO-Revision-Date: 2026-07-19 08:01+0000\n"
"Last-Translator: Artur Sannikov <weblate.rbpxz@8shield.net>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/home-manager/cli/"
"it/>\n"
"Language: it\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.13-dev\n"
"X-Generator: Weblate 2026.8.dev0\n"
#. translators: For example: "home-manager: missing argument for --cores"
#: home-manager/home-manager:16
@@ -93,8 +93,8 @@ msgstr ""
"\n"
"· · · Se importi Home Manager direttamente, puoi usare il parametro `path`\n"
"\n"
"· · · · · pkgs.callPackage /percorso/di/home-manager-package { path = \"%s\""
";}\n"
"· · · · · pkgs.callPackage /percorso/di/home-manager-package { path = "
"\"%s\";}\n"
"\n"
"· · · quando chiami il pacchetto Home Manager\n"
"\n"
@@ -104,7 +104,7 @@ msgstr ""
#: home-manager/home-manager:153
msgid "Sanity checking Nix"
msgstr "Controllando Nix"
msgstr "Verifica di correttezza di Nix"
#: home-manager/home-manager:173
msgid "Could not find suitable profile directory, tried %s and %s"
@@ -116,29 +116,29 @@ msgstr ""
msgid "Can't inspect options of a flake configuration"
msgstr "Impossibile ispezionare le opzioni di configurazione di un flake"
#: home-manager/home-manager:305 home-manager/home-manager:328
#: home-manager/home-manager:734 home-manager/home-manager:1237
#: home-manager/home-manager:340 home-manager/home-manager:363
#: home-manager/home-manager:769 home-manager/home-manager:1289
msgid "%s: unknown option '%s'"
msgstr "%s: opzione non riconosciuta '%s'"
#: home-manager/home-manager:310 home-manager/home-manager:1238
#: home-manager/home-manager:345 home-manager/home-manager:1290
msgid "Run '%s --help' for usage help"
msgstr "Esegui '%s --help' per le informazioni d'uso"
#: home-manager/home-manager:336 home-manager/home-manager:441
#: home-manager/home-manager:371 home-manager/home-manager:476
msgid "The file %s already exists, leaving it unchanged..."
msgstr "Il file %s esiste già, non verrà modificato..."
#: home-manager/home-manager:338 home-manager/home-manager:443
#: home-manager/home-manager:373 home-manager/home-manager:478
msgid "Creating %s..."
msgstr "Creando %s..."
#: home-manager/home-manager:487
#: home-manager/home-manager:522
msgid "Creating initial Home Manager generation..."
msgstr "Creando la generazione iniziale di Home Manager..."
#. translators: The "%s" specifier will be replaced by a file path.
#: home-manager/home-manager:492
#: home-manager/home-manager:527
msgid ""
"All done! The home-manager tool should now be installed and you can edit\n"
"\n"
@@ -155,7 +155,7 @@ msgstr ""
"consultare tutte le opzioni disponibili."
#. translators: The "%s" specifier will be replaced by a URL.
#: home-manager/home-manager:497
#: home-manager/home-manager:532
msgid ""
"Uh oh, the installation failed! Please create an issue at\n"
"\n"
@@ -171,11 +171,11 @@ msgstr ""
"se l'errore sembra essere causato da Home Manager."
#. translators: Here "flake" is a noun that refers to the Nix Flakes feature.
#: home-manager/home-manager:508
#: home-manager/home-manager:543
msgid "Can't instantiate a flake configuration"
msgstr "Impossibile istanziare una configurazione flake"
#: home-manager/home-manager:584
#: home-manager/home-manager:619
msgid ""
"There is %d unread and relevant news item.\n"
"Read it by running the command \"%s news\"."
@@ -189,76 +189,76 @@ msgstr[1] ""
"Ci sono %d novità rilevanti non lette.\n"
"Leggile con il comando \"%s news\"."
#: home-manager/home-manager:598
#: home-manager/home-manager:633
msgid "Unknown \"news.display\" setting \"%s\"."
msgstr "Opzione \"news.display\" sconosciuta \"%s\"."
#: home-manager/home-manager:606
#: home-manager/home-manager:641
#, sh-format
msgid "Please set the $EDITOR or $VISUAL environment variable"
msgstr "Per favore definisci le variabili d'ambiente $EDITOR o $VISUAL"
#: home-manager/home-manager:624
#: home-manager/home-manager:659
msgid "Cannot run build in read-only directory"
msgstr "Impossibile eseguire la build in una cartella in sola lettura"
#: home-manager/home-manager:787
msgid "The configuration did not contain the specialisation \"%s\""
#: home-manager/home-manager:822
msgid "The configuration does not contain the specialisation \"%s\""
msgstr "La configurazione non contiene la specializzazione \"%s\""
#: home-manager/home-manager:841
#: home-manager/home-manager:876
msgid "No generation with ID %s"
msgstr "Nessuna generazione con ID %s"
#: home-manager/home-manager:843
#: home-manager/home-manager:878
msgid "Cannot remove the current generation %s"
msgstr "Impossibile rimuovere la generazione corrente %s"
#: home-manager/home-manager:845
#: home-manager/home-manager:880
msgid "Removing generation %s"
msgstr "Rimuovo la generazione %s"
#: home-manager/home-manager:866
#: home-manager/home-manager:901
msgid "No generations to expire"
msgstr "Nessuna generazione in scadenza"
#: home-manager/home-manager:877
#: home-manager/home-manager:912
msgid "No home-manager packages seem to be installed."
msgstr "Sembrerebbe che nessun pacchetto home-manager sia installato."
#: home-manager/home-manager:962
#: home-manager/home-manager:997
msgid "Unknown argument %s"
msgstr "Argomento sconosciuto: %s"
#: home-manager/home-manager:987
#: home-manager/home-manager:1022
msgid "This will remove Home Manager from your system."
msgstr "Questo rimuoverà Home Manger dal tuo sistema."
#: home-manager/home-manager:990
#: home-manager/home-manager:1025
msgid "This is a dry run, nothing will actually be uninstalled."
msgstr "Questo è un avvio a secco, nulla verrà realmente disinstallato."
#: home-manager/home-manager:994
#: home-manager/home-manager:1029
msgid "Really uninstall Home Manager?"
msgstr "Vuoi davvero disinstallare Home Manager?"
#: home-manager/home-manager:1000
#: home-manager/home-manager:1035
msgid "Switching to empty Home Manager configuration..."
msgstr "Passaando ad una configurazione Home Manager vuota..."
#: home-manager/home-manager:1015
#: home-manager/home-manager:1050
msgid "Yay!"
msgstr "Urrà!"
#: home-manager/home-manager:1020
#: home-manager/home-manager:1055
msgid "Home Manager is uninstalled but your home.nix is left untouched."
msgstr "Home Manager è disinstallato ma la tua home.nix non è stata toccata."
#: home-manager/home-manager:1285
#: home-manager/home-manager:1334
msgid "expire-generations expects one argument, got %d."
msgstr "expire-generations si aspetta un solo argomento, invece di %d."
#: home-manager/home-manager:1310
#: home-manager/home-manager:1359
msgid "Unknown command: %s"
msgstr "Comando sconosciuto: %s"
@@ -267,6 +267,9 @@ msgid "This derivation is not buildable, please run it using nix-shell."
msgstr ""
"Questa derivazione non è compilabile, prova ad eseguirla usando nix-shell."
#~ msgid "The configuration did not contain the specialisation \"%s\""
#~ msgstr "La configurazione non contiene la specializzazione \"%s\""
#, sh-format
#~ msgid "Please set the $EDITOR environment variable"
#~ msgstr "Per favore impostare la variabile d'ambiente $EDITOR"

Some files were not shown because too many files have changed in this diff Show More