7086 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