1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 11:36:05 +01:00
Commit graph

4682 commits

Author SHA1 Message Date
Andrew Marshall
708074ae6d treewide: Prevent IFD by default
Import-from-derivation (IFD) has problematic performance, and is disabled in
Nixpkgs by policy. It is arguably good practice for libraries to avoid
it whenever possible, as it has poor ergonomics in some cases,
especially with dry builds, as it requires multiple eval+build phases.

As such, prevent its use in Home Manager by default by putting existing
tests that use IFD behind a config. In CI, run a first pass with IFD
disabled, skipping tests without the config. Then run a second pass with
IFD enabled and including tests with the config. This second pass will
also run tests without the config, but they should be cached from the
previous run, so the cost is not double (only eval time should be paid
twice). It’s necessary to change from using NMT’s `run` to `build` as
`run` itself uses IFD.

Of the tests that have the config:

- kitty/theme-to-themeFile: this is a test for deprecated config, and so
  should be removed eventually anyway
- podman: the implementation relies on IFD to create individual systemd
  units from the derivation output, and so it is not straightforward to
  remove the IFD; doing so would require rethinking how the module works
  to instead have the systemd unit files included as-is rather than as
  individually configured units in the Nix config.
2025-05-07 10:34:18 -05:00
Andrew Marshall
ae44268529 prezto: Remove unnecessary import-from-derivation 2025-05-07 10:34:18 -05:00
Ramses
f3384e688d
tmpfiles: also remove files that need to be removed during activation (#6980)
Make sure that tmpfiles entries that ask for files/directories to be removed, are also executed
2025-05-07 10:27:02 -05:00
home-manager-bot
1d5fb9da10
flake.lock: Update (#6992)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7a2622e2c0dbad5c4493cb268aba12896e28b008?narHash=sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ%3D' (2025-05-03)
  → 'github:NixOS/nixpkgs/3730d8a308f94996a9ba7c7138ede69c1b9ac4ae?narHash=sha256-7%2BpG1I9jvxNlmln4YgnlW4o%2Bw0TZX24k688mibiFDUE%3D' (2025-05-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-07 10:26:32 -05:00
awwpotato
5da6eafceb
treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
Austin Horstman
76274a2130 tests/man: index.bt -> index.db
Looks like the generated cache is now using index.db
2025-05-07 10:02:56 -05:00
Austin Horstman
ba45438996 tests/darwinScrublist: add newsboat 2025-05-07 10:02:56 -05:00
Austin Horstman
f78a171fe4 mako: use toKebabCase for option transformation
Update mako module to pass lib.hm.strings.toKebabCase to the
mkSettingsRenamedOptionModules
function, which ensures option names are properly converted to
kebab-case format.
2025-05-07 10:02:56 -05:00
Austin Horstman
327885ceae lib/deprecations: add mkSettingsRenamedOptionModules with transform parameter
Add a new library module for deprecation utilities with a configurable
transformation function that allows specifying how option names should
be
converted (snake_case, kebab-case, etc.).
2025-05-07 10:02:56 -05:00
Austin Horstman
94d32062ca lib/strings: add toCaseWithSeparator
Utility function accepting a separator for converting camelCase settings
2025-05-07 10:02:56 -05:00
Austin Horstman
9cebc4cb8a lib/strings: add toKebabCase
Utility function for converting camelCase strings to kebab-case
2025-05-07 10:02:56 -05:00
Austin Horstman
e121442b65 lib/strings: add toSnakeCase
Utility function for converting camelCase strings to snake_case
2025-05-07 10:02:56 -05:00
awwpotato
35535345be
television: add shell integrations (#6983) 2025-05-06 21:35:55 -05:00
Aguirre Matteo
60964ff845
mako: fix example config (#6987) 2025-05-06 21:06:15 -05:00
Aguirre Matteo
8a318641ac
sway-easyfocus: add module (#6976) 2025-05-04 21:46:28 -05:00
Austin Horstman
5f1f472565
mako: use ini atom type (#6977)
Fix backwards compatibility
2025-05-04 21:44:38 -05:00
Nick K.
1a1793f6d9
ghostty: fix config syntax file location on darwin (#6970)
Home Manager creates broken link to the Ghostty config
syntax highlighting definition file, because it has different location
on Darwin. This commit updates path to the config for Darwin users.

Fixes #6961
2025-05-04 09:42:05 -05:00
awwpotato
8167af657c
mako: fix criterias typo (#6968) 2025-05-04 09:17:09 -05:00
home-manager-bot
3a185176e4
flake.lock: Update (#6969)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae?narHash=sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ%2B5dck%3D' (2025-04-29)
  → 'github:NixOS/nixpkgs/7a2622e2c0dbad5c4493cb268aba12896e28b008?narHash=sha256-MHmBH2rS8KkRRdoU/feC/dKbdlMkcNkB5mwkuipVHeQ%3D' (2025-05-03)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-04 09:16:26 -05:00
Aguirre Matteo
621986fed3
i3bar-river: add module (#6967) 2025-05-03 19:12:02 -05:00
Aguirre Matteo
64f7d5e6b9
wofi: allow path to style.css (#6966) 2025-05-03 19:11:10 -05:00
Aguirre Matteo
d1bbab6b04
mako: refactor (#6948)
Refactors the services.mako module to replace all its configuration options with a freeform settings option and criterias. I also added a test for the configuration.
2025-05-03 19:09:56 -05:00
Austin Horstman
94f4c66660
tests/darwinScrublist: add more packages (#6965) 2025-05-03 19:08:12 -05:00
Ihar Hrachyshka
75268f6252
tests: enable all firefox tests on darwin (plus derivations) (#6960) 2025-05-03 10:51:18 -05:00
Ihar Hrachyshka
929f8ee836
thunderbird: deprecate darwinSetupWarning option (#6531)
nixpkgs support thunderbird for darwin now
2025-05-03 10:40:34 -05:00
MithicSpirit
c0962eeeab
thunderbird: fix accounts being removed (#6959)
Even if no accounts were configured, it was defaulting to just account1,
which meant all other accounts were deleted every time thunderbird was
restarted. This fixes that by defaulting to the empty list (so it
remains unset in the user.js).
2025-05-02 22:32:45 -05:00
Aguirre Matteo
123297c57e
onagre: add module (#6958) 2025-05-02 22:09:45 -05:00
Dawid Ciężarkiewicz
1e8c62c651 gpg-agent: avoid console output when using ssh
Without `--quiet` gpg-connect-agent sometimes prints

```
gpg-connect-agent: connection to the agent is in restricted mode
```
2025-05-02 18:56:14 +02:00
Aguirre Matteo
d6b0c05457
visidata: add module (#6956) 2025-05-02 11:14:19 -05:00
Joaquín Triñanes
355a6b937d
nushell: throw instead of abort (#6870) 2025-05-02 08:45:16 -05:00
Jess
2eabb26d08
restic: allow the convenience script to source environmentFile (#6947) 2025-05-02 08:23:57 -05:00
Aguirre Matteo
f15be4feb6
clipcat: add module (#6946) 2025-05-02 08:22:35 -05:00
milanglacier
c5cad190ba
zsh: update doc to show how to add initContent at multiple location. (#6945) 2025-05-02 08:18:11 -05:00
Aguirre Matteo
669e813c75
element-desktop: add module (#6935) 2025-05-02 08:17:24 -05:00
Marien Zwart
f045bd46b7 fish: keep all fish-completions packages around
...even empty ones.

For packages in `home.packages` with no Fish completions, we build an
empty directory that is not included in our runtime closure (because we
build a collection of symlinks to their contents: if there are no
contents, there is nothing to symlink). This means these empty
completion packages get garbage-collected by Nix. They are not that
expensive to rebuild but there can be enough of them it adds up, and any
change to any package in `home.packages` is enough to trigger a rebuild.

Fix this by forcing a dependency on all of them. Since we already
depended on them anyway if they were non-empty, this only adds
dependencies on empty directories (so should not significantly affect
storage space).

Fixes #6157.
2025-05-02 11:11:28 +02:00
Marien Zwart
361ab4484e home-environment: add home.extraDependencies
This should have the same effect `system.extraDependencies` has in
nixpkgs: adds paths to the runtime closure without installing them
anywhere.

This is useful for preventing garbage collection of packages that are
expensive to rebuild. For example:

- nixpkgs itself suggests using this for `factorio.src`, which requires
  a token to fetch.
- we can use it to address #6157: avoid needlessly rebuilding
  completions for packages that do not have any.

The implementation mirrors nixpkgs: add a file containing the store
paths we want to keep around to the home-manager-generation derivation.
2025-05-02 11:11:28 +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
pancho horrillo
81431b6d6f
gpg-agent: fix typo (#6950)
See 46e634be05/pkgs/by-name/wa/wayprompt/package.nix (L60)
2025-05-01 15:11:25 -05:00
Jess
5f217e5a31 restic: change service type from simple to oneshot
Fixes #6930
2025-04-30 14:19:59 -05:00
Jess
7f301a4d96 restic: fix certain integration tests 2025-04-30 14:19:59 -05:00
June Stepp
272eb00d13
fcitx5: ensure config doesn't get overwritten (#6940)
fcitx5 overwrites config files unless the entire folder is readonly. With this PR, a single fcitx5 symlink is made instead of multiple fcitx5/* ones. The link is only created when relevant options are set.
2025-04-30 14:19:29 -05:00
nakoo
c9c2c1a14e
kime: fix systemd service (#6911) 2025-04-30 14:18:20 -05:00
home-manager-bot
d2b3e6c83d
flake.lock: Update (#6937)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f771eb401a46846c1aebd20552521b233dd7e18b?narHash=sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA%3D' (2025-04-24)
  → 'github:NixOS/nixpkgs/46e634be05ce9dc6d4db8e664515ba10b78151ae?narHash=sha256-y3h3NLnzRSiUkYpnfvnS669zWZLoqqI6NprtLQ%2B5dck%3D' (2025-04-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-29 23:25:35 -05:00
Bryn Edwards
ca39b34829
carapace: fix nushell PATH env var (#6936)
`carapace _carapace nushell` adds `/homeless-shelter/.config/carapace/bin`
to PATH, this changes it to ` $HOME/.config/carapace/bin`. Other shells
don't have this problem as they run the command and source on startup
whereas Nix writes the command output to a file as part of the build.
2025-04-29 23:15:32 -05:00
isabel
84d262115e
nixos,darwin: add osClass (_class) as a specialArg (#6906) 2025-04-29 20:37:59 -05:00
Austin Horstman
9389f373be
pls: enableAliases -> enableShellIntegration (#6932)
Allow granular control of alias creation utilizing our shell integration
options.
2025-04-29 20:37:20 -05:00
Austin Horstman
e9c80e277b tests/gpg-agent: add pinentry-program test
Add test that the code works to generate the correct pinentry-program
configuration when supplying both options.
2025-04-29 20:36:45 -05:00
Austin Horstman
a4c3ce44fc gpg-agent: pinentryPackage -> pinentry.package and add pinentry.program`
Alternative option for allowing a user to automatically configure what
binary to use from a `pinentry` package. Previously, we always used
`meta.mainProgram` but, there are packages that provide multiple
binaries and this would allow flexibility for a user to override the
default program used.
2025-04-29 20:36:45 -05:00