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)
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.
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.
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
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.
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.
`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.
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.
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.
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.
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.
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.
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
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.
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>
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>
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>