Commit Graph

6810 Commits

Author SHA1 Message Date
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 Lenz
5a608a621b infat: allow customization of autoActivate 2026-06-01 14:38:27 -05:00
Tofaa
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 Delafontaine
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
randomscientist
c53d0150e9 prismlauncher: fix string escaping and hygiene 2026-06-01 14:08:48 -05:00
home-manager-ci[bot]
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ć
61e2c96593 voxtype: initial module implementation 2026-05-28 13:54:55 +02:00
qb114514
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 Rivera
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]
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]
f98332929b flake: bump nixpkgs from f83fc3c to 2991645
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `f83fc3c` to `2991645`.
- [Commits](f83fc3c307...2991645341)

---
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]
64f1f8dd8d flake: bump nixpkgs from da5ad66 to f83fc3c
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `da5ad66` to `f83fc3c`.
- [Commits](da5ad661ba...f83fc3c307)

---
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
jay
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]
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
SunOfLife1
62b325b47c fish: add SunOfLife1 as a maintainer 2026-05-20 23:09:02 -05:00
SunOfLife1
f9be3dd495 maintainers: add SunOfLife1 2026-05-20 23:09:02 -05:00
yilisharcs
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
6cfa655a20 rclone: clarify secrets description for both Linux and Darwin 2026-05-19 12:37:34 -05:00
jiezhuzzz
2f578ccd99 rclone: document macFUSE requirement and Darwin requiresUnit semantics 2026-05-19 12:37:34 -05:00
jiezhuzzz
6f5d412501 rclone tests: add Darwin serve sidecar test 2026-05-19 12:37:34 -05:00
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
jiezhuzzz
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
Ramses
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 Lewis
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 Delafontaine
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 Horstman
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 Horstman
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
eveeifyeve
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