6853 Commits

Author SHA1 Message Date
cinereal
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
cinereal
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
cinereal
1aabcdd470 modular-services: simple example using mpd
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinereal
db468b4822 modular-services: make configdata test use assertFileContent
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinereal
f77079ee8a modular-services: rename system-services -> home-services
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinereal
cdea7d89f5 modular-services: rename home-manager -> Home Manager
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinereal
7eb987d1a4 manual: fix link in modular services section
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
Andy Zhang
e4419d3123 zed-editor: add zh4ngx as maintainer 2026-05-07 09:59:16 +01:00
Andy Zhang
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
ketal
75fac36332 direnv: avoid duplicate fish hook 2026-05-07 01:42:54 +02:00
davidaf3
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ès
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'on
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
nescias
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
shimeoki
d987617879 generic-linux-gpu: don't pass kernel 2026-05-05 15:46:31 +02:00
Benedikt Rips
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
Jess
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 Fernandez
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]
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
cinereal
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 Verma
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
Seong Yong-ju
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
Seong Yong-ju
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
Seong Yong-ju
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 Okada
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 Okada
1b4806c50b news: add news entry for programs.man.{man-db,mandoc} 2026-05-03 18:41:26 -05:00
Thiago Kenji Okada
7914f8d7d7 tests/man: add tests for man-db/mandoc 2026-05-03 18:41:26 -05:00
Thiago Kenji Okada
f02e422b3e man: add mandoc and man-db option 2026-05-03 18:41:26 -05:00
Kelton Bassingthwaite
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 Martens
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
Meow
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]
fdf4d549ed flake: bump nixpkgs from 68d8aa3 to 1c3fe55
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `68d8aa3` to `1c3fe55`.
- [Commits](68d8aa3d66...1c3fe55ad3)

---
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 Zhang
0379e433a8 delta: configure as pager for git blame 2026-05-02 19:01:54 -05:00
Robin Stumm
561bd67464 wlsunset: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin Stumm
a53beb6353 foot: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin Stumm
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
coolGi
7c28dd52cb macchina: fix palette spacing config being missing 2026-05-02 09:32:34 -05:00
Utkarsh Gupta
9cb587ade2 launchd: use bootout --wait to wait for the service to stop 2026-05-01 18:52:52 -05:00
blkgoose
5c1b74905c keynav: add tests 2026-05-01 19:25:59 +01:00
blkgoose
d955574ea4 keynav: add configuration option 2026-05-01 19:25:59 +01:00