Commit Graph
6760 Commits
Author SHA1 Message Date
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