Commit Graph
100 Commits
Author SHA1 Message Date
Robert Helgesson 37f21dfa5d tests: fix integration tests
This updates the integration tests so that they pass. Also prevent
auto-fixing some integration test files.
2026-06-20 00:05:51 +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
Robert HelgessonandAustin Horstman 7832a664c4 feedr: fix enable option description
Also minor stylistic fixes.
2026-04-12 10:58:28 -05:00
Robert HelgessonandAustin Horstman 527e47b78f files: handle overlapping file targets
The current behavior of `home.file` is inconsistent when handling
recursive file with another, overlapping, non-recursive file.

Specifically, consider a configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  "foo/bar".text = "some other file";
};
```

where `./foo` is a directory containing a file `bar`. Switching to
this configuration will result in the `./foo` directory being
recursively symlinked while the "foo/bar" entry is ignored. Note,
building the home files derivation does log

> File conflict for file 'foo/bar'

On the other hand, the supposedly equivalent configuration

```nix
home.file = {
  "foo" = { source = ./foo; recursive = true; };
  abc = { target = "foo/bar"; text = "some other file"; };
};
```

results in the `./foo` directory not being recursively symlinked,
i.e., only the file `foo/bar` shows up in the built configuration.
This time the home files build log contains

> File conflict for file 'foo'

This commit makes the behavior more consistent in that we always
handle the file in a unified manner. The conflict resolution is
offered in three flavors, "ignore", "error", and "override" indicating
whether the recursively symlinked file wins, the entire build errors
out, and the regularly symlinked file wins.

The current default is "ignore" since it is the resolution that most
closely matches the current behavior, at least when the file attribute
name is used as the target path.

The other two resolutions can be chosen by setting the
`home.fileOverlapResolution` option, which is set as invisible due to
its experimental nature.
2026-04-07 23:33:05 -05:00
Robert Helgesson 5de7dbd151 restic: escape environment variables
This allows better handling of, e.g., file names with spaces.
2026-04-06 08:39:40 +02:00
Robert Helgesson de5154c348 timidity: remove amesgen as maintainer
Sadly amesgen passed away some time ago, see
<https://www.tweag.io/blog/2025-12-16-in-memoriam-amesgen/>.
2026-04-05 23:57:43 +02:00
Robert Helgesson f2d3e04e27 Translate using Weblate (Czech)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Norwegian Bokmål)

Currently translated at 75.0% (12 of 16 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/cs/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nb_NO/
Translation: Home Manager/Home Manager Modules
2026-03-31 23:19:10 +02:00
Robert Helgesson 175532b627 systemd: minor code cleanup
Trying to make more clear what is happening.
2026-01-29 22:45:38 +01:00
Robert Helgesson ec0247a7a1 Translate using Weblate (Swedish)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager Modules
2026-01-21 18:08:05 +01:00
Robert Helgesson f81ce8613f Translate using Weblate (Swedish)
Currently translated at 88.8% (16 of 18 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager Modules
2026-01-21 18:08:05 +01:00
Robert Helgesson 27b60942b7 home-manager: refactor activation checks
This is mainly to unify the error messages for more convenient and
consistent translation. Also allows somewhat more convenience if
additional checks are needed.
2026-01-21 13:14:01 +01:00
Robert Helgesson 8434914a03 tests: fix integration tests 2026-01-21 13:14:01 +01:00
Robert Helgesson 873c137ead Translate using Weblate (Swedish)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (French)

Currently translated at 83.3% (15 of 18 strings)

Translate using Weblate (Swedish)

Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (French)

Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:57:21 +01:00
Robert Helgesson 775294baf4 home-manager: simplify error messages slightly 2026-01-20 21:52:11 +01:00
Robert Helgesson 9c5f8aceb6 home-manager: improve a few i18n strings 2026-01-20 13:35:18 +01:00
Robert Helgesson d0aefc169f home-manager: update copyright year in man page 2026-01-10 18:16:55 +01:00
Robert HelgessonandAustin Horstman 4fee4bd14b ghostty: reload service on configuration change 2026-01-07 17:22:44 -05:00
Robert Helgesson 4e8b7bef66 ghostty: prevent service restarts
Stopping or restarting the service will destroy open Ghostty sessions,
potentially disrupting work. This change ensures that we leave the
existing service untouched.

Fixes #8485
2026-01-06 23:26:04 +01:00
Robert Helgesson 9bfca5b3a7 tree-wide: remove redundant platform checks
In the code base, there are lots of configurations locally guarded by
`stdenv.hostPlatform.is(Darwin|Linux)` despite the targeted options
already being guarded. Examples for these targeted options are:

- `systemd.user.*`: globally guarded by `systemd.user.enable`.
- `launchd.*`: globally guarded by `launchd.enable`.
- `lib.hm.darwin.assertInterval`: only effective on Darwin.

These local guards are an antipattern since they weaken the global
guards. Furthermore, they hamper readability. This series of commits
remove instances of these local guards.
2026-01-06 13:13:38 +01:00
Robert Helgesson b1421bdfe5 i18n: merge changes from weblate 2026-01-06 09:32:20 +01:00
Robert Helgesson a65c04965c gpg: update key hash in test
Fixes #8478
2026-01-05 14:29:03 +01:00
Robert Helgesson 3b3164dfe3 zsh: avoid escaping showing up in dotDir docs 2026-01-03 11:29:29 +01:00
Robert Helgesson bc43546503 docs: turn option references into links 2026-01-03 11:29:29 +01:00
Robert Helgesson 9ef24320f1 emacs: remove unnecessary rec 2026-01-03 11:10:00 +01:00
Robert Helgesson ea164b7c9c home-manager: remove rollback subcommand
This removes the possibility of running `home-manager rollback`. It
was added by mistake at some point and has never worked since it
immediately calls a non-existent function `doRollback`.
2025-11-17 22:57:32 +01:00
Robert Helgesson c3bc79be5e news: set nixpkgs channel in create-news-entry shebang 2025-11-15 10:17:24 +01:00
Robert Helgesson 173a29f735 docs: add note of Synthing tray option removal 2025-09-26 10:47:47 +02:00
Robert Helgesson 40e916658d maintainers: remove ipsavitsky
They are already in the Nixpkgs maintainers list.
2025-09-26 09:51:33 +02:00
Robert Helgesson f3235d91ab mods: get ipsavitsky from Nixpkgs maintainers list 2025-09-26 09:32:44 +02:00
Robert Helgesson 2324540520 syncthing: assert tray service content in test 2025-09-25 09:42:44 +02:00
Robert Helgesson ade850153b syncthing: remove deprecated code
Specifically, in 2021 the use of `services.syncthing.tray` as a
Boolean was deprecated. This removes the associated code.
2025-09-25 08:49:23 +02:00
Robert Helgesson 142acd7a7d bash: source session variable file directly 2025-09-24 15:18:50 +02:00
Robert Helgesson efcba687d3 xdg-mime-apps: add defaultApplicationPackages option
This option allows a user to inject default applications directly from
a list of specified packages. It was previously possible to do this,
but only through import from derivation.
2025-09-19 16:23:57 +02:00
Robert Helgesson 9f408dc51c ssh-tpm-agent: fix test case 2025-09-17 16:26:12 +02:00
Robert Helgesson 5c14260fad systemd: make unit definitions freeform modules
We add types for a few of the most common attributes.
2025-09-17 16:26:12 +02:00
Robert Helgesson 12dfb0cff9 restic: fix integration test 2025-09-17 16:24:18 +02:00
Robert Helgesson 11cc5449c5 tests: fix tests 2025-09-15 09:22:58 +02:00
Robert Helgesson 6d7c11a0ad waybar: use X-Reload-Triggers
This causes the running waybar to be reloaded rather that fully
restarted when only the configuration changes.
2025-09-11 15:51:52 +02:00
Robert Helgesson b7112b12ea dunst: various improvements 2025-09-11 10:15:56 +02:00
Robert Helgesson 6112458312 dunst: fix deprecated configuration in example 2025-09-11 10:15:27 +02:00
Robert Helgesson 584fccfdfa dunst: add tests 2025-09-11 10:15:27 +02:00
Robert Helgesson 174ba89ccb dunst: use dbus service file from configured package 2025-09-11 10:15:27 +02:00
Robert Helgesson 5cd2bf5153 dunst: support reload on configuration change 2025-09-11 10:15:27 +02:00
Robert Helgesson f56bf065f9 polybar: make sure X-Restart-Triggers is a list 2025-09-05 14:31:31 +02:00
Robert HelgessonandAustin Horstman 8b55a6ac58 nix-gc: remove unnecessary toString 2025-08-22 21:03:56 -05:00
Robert Helgesson 0e0a16b342 anyrun: minor description fix 2025-08-19 17:54:19 +02:00
Robert Helgesson d492e3c381 nixos: improve description of enableLegacyProfileManagement
Also applies to nix-darwin module.
2025-08-02 23:02:17 +02:00
Robert Helgesson bd82507edd home-manager: re-enable gcroot handling for NixOS module
It was a bit too ambitious to also remove production of the gcroot, we
need it to keep track of the currently active Home Manager
configuration.

Fixes #7583
2025-07-31 08:25:36 +02:00
Robert Helgesson 3156a1c419 docs: minor manual style fix
- Make sure the warning and note boxes are tall enough to fit the
  icon.

- Add styling of the h4 element.
2025-07-28 11:04:16 +02:00
Robert Helgesson 710771af3d docs: add a poison module
The poison module is intended to catch cases where the documentation
depends on the user's configuration. We want to keep such dependencies
to a minimum as it increases the risk of documentation rebuilds and
confusion caused by documentation being different depending on the
source.
2025-07-27 07:52:42 +02:00
Robert Helgesson 6ce4338185 nixos: increase laziness regarding shared modules 2025-07-27 07:21:15 +02:00
Robert Helgesson ed1eeeeee6 xdg-terminal-exec: make sure the module is imported 2025-07-27 07:02:11 +02:00
Robert Helgesson 42924f0eff xdg-terminal-exec: minor cleanup of option description 2025-07-27 07:02:11 +02:00
Robert Helgesson 63dd0e9409 opencode: minor cleanup of option description 2025-07-27 07:02:11 +02:00
Robert HelgessonandAustin Horstman b8d1a79235 Translate using Weblate (Swedish)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Swedish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-07-23 11:30:56 -05:00
Robert Helgesson 836741779f ci: apply dependabot on release-25.05 2025-07-22 12:28:46 +02:00
Robert Helgesson de448dcb57 home-manager: avoid profile management during activation
This commit deprecates profile management from the activation script.
The profile management is instead the responsibility of the driving
software, for example, the `home-manager` tool in the case of
standalone installs.

The legacy behavior is still available for backwards compatibility but
may be removed in the future.

The new behavior resolves (or moves us closer to resolving) a number
of long standing open issues:

- `home-manager switch --rollback`, which performs a rollback to the
  previous Home Manager generation before activating. While it was
  previously possible to accomplish this by activating an old
  generation, it did always create a new profile generation.

  This option has been implemented as part of this commit.

- `home-manager switch --specialisation NAME`, which switches to the
  named specialisation. While it was previously possible to accomplish
  this by manually running the specialisation activate script, it did
  always create a new profile generation.

  This option has been implemented as part of this commit.

- `home-manager switch --test`, which activates the configuration but
  does not create a new profile generation.

  This option has _not_ been implemented here since it relies on the
  current configuration being activated on login, which we do not
  currently do.

- When using the "Home Manager as a NixOS module" installation method
  we previously created an odd `home-manager` per-user "shadow
  profile" for the user. This is no longer necessary.

  This has been implemented as part of this commit.

Fixes #3450
2025-07-22 11:00:18 +02:00
Robert Helgesson bf893ad4cb tests: re-add module argument
These were removed as part of dead code removal, but they are actually
needed in the integration tests for comparing with the configuration
generated by the installation.
2025-07-13 12:27:35 +02:00
Robert Helgesson f111393987 ashell: minor description improvements 2025-06-13 10:07:01 +02:00
Robert Helgesson eee140958a home-manager: fix integration tests 2025-06-09 16:08:02 +02:00
Robert Helgesson 482c306ef7 home-manager: update xgettext and PO files 2025-05-30 15:09:12 +02:00
Robert Helgesson ee85cfc5c1 home-manager: add missing file 2025-05-18 11:07:58 +02:00
Robert Helgesson 9a4a9f1d6e home-manager: prepare 25.11 2025-05-18 10:26:50 +02:00
Robert Helgesson e08e6e2389 home-manager: set 25.05 as stable 2025-05-18 10:26:29 +02:00
Robert Helgesson 9ef92f1c6b waveterm: fix markdown in description 2025-05-10 23:30:17 +02:00
Robert Helgesson 1298a3418b ci: remove release-24.05 from dependabot setup 2025-05-02 09:07:04 +02:00
Robert Helgesson 015f191310 ci: remove GitLab rycee/nur-expression update
This removes the automatic update of the Home Manager packaging in
<https://gitlab.com/rycee/nur-expressions/>. That setup is very old
and brittle, it should therefore not be used.
2025-05-01 23:17:55 +02:00
Robert Helgesson 4e7ee4d02c home-manager: new formatting of generated configuration
Makes the formatting of the generated initial `flake.nix` match the
RFC style format.
2025-05-01 23:13:47 +02:00
Robert Helgesson a3c9e88177 nushell: temporarily disable test 2025-02-10 23:32:27 +01:00
Robert Helgesson 0f9e92302a neovim: re-enable test 2025-02-10 23:32:14 +01:00
Robert Helgesson 947eef9e99 neovim: disable neovim-coc-config test 2025-02-08 09:17:02 +01:00
Robert Helgesson f2d32e46fa broot: use hjson-go
Reduces the build closure quite a bit.
2025-02-04 23:58:20 +01:00
Robert Helgesson 7a3f0b3b8d tests: rework derivation stubbing
Instead of having to manually stub packages that should not be
downloaded we instead automatically stub all packages (except a small
list of whitelisted ones). Tests can re-introduce the real package by
using the `realPkgs` module argument.
2025-02-04 23:58:20 +01:00
Robert Helgesson c5c2cbc866 ci: tweak test command slightly
Specifically, increase initial GC heap size and allow parallel build
jobs.
2025-02-04 23:44:07 +01:00
Robert Helgesson 24bb01ea17 tests: avoid unnecessary test script interpolation 2025-02-04 22:46:40 +01:00
Robert Helgesson a8159195bf flake-module: fix naming 2025-01-30 23:22:29 +01:00
Robert Helgesson 420a0d9506 nushell: structured settings and more
PR #6184
2025-01-29 20:18:33 +01:00
Robert Helgesson 8c0671c513 himalaya: update for version 1 2025-01-25 00:50:31 +01:00
Robert Helgesson 1b9fe46e9f home-manager: move tests into new test flake
Having the tests available in the main Nix Flake introduces
unnecessary evaluation for non-developer users and, worse, a
dependency on the nmt library.

Fixes #6354
2025-01-24 22:31:22 +01:00
Robert Helgesson b93e17c73c neovim: fix flaky test
Seems the nvim command sometimes fails with error code 1.
2025-01-24 22:31:21 +01:00
Robert Helgesson 01d0172933 wezterm: update expected test result 2025-01-23 11:42:15 +01:00
Robert Helgesson b17008a795 swayr: update expected test result 2025-01-23 11:37:30 +01:00
Robert Helgesson 1757aca164 go: stub systemd dependency in test 2025-01-23 09:38:00 +01:00
Robert Helgesson ef64efdbac treewide: standardize wayland graphical services
PR #6253
2025-01-03 18:25:11 +01:00
Robert Helgesson 1e68dc759b home-manager: move profile management
This commit separates profile management (setting profile and creating
GC root) from file management (removing and adding managed files
within the user's home directory).

This is a step towards deprecating profile management within the
activation script, instead relying on the caller of the activation
script managing the profile.
2025-01-03 11:22:59 +01:00
Robert Helgesson f4f8d09f90 home-manager: update copyright year 2025-01-03 10:56:26 +01:00
Robert Helgesson 9a9fef316a systemd: use sd-switch by default
Also remove the legacy Ruby alternative.

Fixes #5452
2025-01-01 16:31:32 +01:00
Robert Helgesson 5518f9d439 home-manager: make show news a bit more robust 2025-01-01 16:31:32 +01:00
Robert Helgesson 35b98d20ca treewide: change pacien to euxane
To match a recent change in Nixpkgs.
2024-12-24 16:23:06 +01:00
Robert Helgesson afbf007bb5 tests: add integration test for nh 2024-12-24 16:19:17 +01:00
Robert Helgesson 6427258409 tests: change to wait for network.target 2024-12-24 16:02:48 +01:00
Robert Helgesson aa8c3d7f7d tests: remove stray line 2024-12-24 09:13:32 +01:00
Robert HelgessonandGitHub cb27edb522 waybar: add systemd restart triggers
Fixes #3186
2024-12-22 11:13:25 +01:00
Robert Helgesson 1395379a7a home-manager: improve path handling when building news
Fixes #6217
2024-12-19 16:30:15 +01:00
Robert Helgesson d00c6f6d0a nix: simplify tests 2024-12-06 12:24:37 +01:00
Robert Helgesson 63eb786e04 xresources: simplify tests 2024-12-06 12:22:03 +01:00
Robert Helgesson 0b42cc1b1c cmus: reduce test closure 2024-12-06 12:19:59 +01:00
Robert Helgesson 953521f759 fcitx5: fix package reference in test 2024-12-06 12:08:32 +01:00
Robert Helgesson b1c19f1dcb home-cursor: use profileExtra instead of initExtra
The initExtra code is executed after systemd graphical-session.target
starts, which means graphical applications started by
graphical-session.target cannot get these X settings.
2024-12-04 12:38:17 +01:00