Compare commits

...
Author SHA1 Message Date
Benedikt RipsandAustin Horstman 079a3b5d1a sshAuthSock: for Zsh, initialize in .zprofile and .zshenv 2026-07-24 12:12:39 -05:00
Benedikt RipsandAustin Horstman 40d502faf2 sshAuthSock: indent initialization code 2026-07-24 12:12:39 -05:00
Marius BärandRobert Helgesson 32de400b6a direnv: fix nushell integration failing to unset variables
The nushell pre_prompt hook applied direnv's export diff with `load-env`,
which cannot remove a variable. Variables direnv marks for removal (null
values) were left behind as empty ghosts. Hide those keys explicitly and
drop them before `load-env`.
2026-07-24 09:16:45 +02:00
Eman ResuandRobert Helgesson 3b0e6bbd65 modules: partially apply .nix suffix check
hasSuffix runs some checks on the suffix, that can be done all at once
rather than every single time.
2026-07-23 08:47:55 +02:00
Eman ResuandRobert Helgesson cbfe673271 modules: stop filtering files starting with _
There are no instances of this in-tree.
2026-07-23 08:47:55 +02:00
YethalandAustin Horstman 041a999e8c modules/misc/ssh-auth-sock: correct nushell init 2026-07-22 08:08:47 -05:00
Sebastián EstrellaandAustin Horstman 6d8d615678 herdr: Use the binary outside Nix to reload the config when package is unset 2026-07-21 22:14:27 -05:00
abba1081f5 rclone: add nfsmount mount type
Add a per-mount 'mountType' option ('mount' | 'nfsmount') selecting
which rclone command performs the mount. 'nfsmount' runs rclone's
in-process NFS server and mounts it via the system NFS client, so no
FUSE driver is needed — on macOS this removes the module's documented
macFUSE requirement (and the kernel-extension approval plus Reduced
Security boot policy that come with it).

When 'nfsmount' is selected, 'nfs-cache-type = "disk"' is merged
into the mount's options (user-overridable, mirroring the existing
'vfs-cache-mode' defaulting) so NFS file handles survive rclone
restarts; with the in-memory default, every service restart would
leave the kernel client with stale handles.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-21 22:13:44 -05:00
yaaaarnandAustin Horstman a2a9fec572 senpai: use correct config directory on darwin systems 2026-07-21 22:13:04 -05:00
Matt SchreiberandRobert Helgesson deeb6b7eb7 files: fix unintended subshell expansion 2026-07-21 00:53:36 +02:00
Arnaud VenturiandRobert Helgesson cbcbd8b043 kanshi: Fix scale example values from int to float 2026-07-21 00:24:25 +02:00
JessandRobert Helgesson 7e2199f4bc rclone: set programs.fuse.enable to fix integration tests 2026-07-21 00:23:33 +02:00
DimaniojkandRobert Helgesson 56ccab8918 programs.claude-code: avoid watching the Nix store 2026-07-21 00:19:38 +02:00
AstreaprtclandRobert Helgesson a02190edf9 wlsunset: add duration option
Add an option to set the easing duration if the times have been set
manually.
2026-07-20 23:18:26 +02:00
Eman ResuandRobert Helgesson 411408f523 lib/file-type: partially apply hasPrefix and removePrefix 2026-07-20 23:17:54 +02:00
reducedradiusandRobert Helgesson 7834e3fb36 Translate using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: reducedradius <137701630+flytothehighest@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translation: Home Manager/Home Manager CLI
2026-07-20 23:00:06 +02:00
Artur SannikovandRobert Helgesson 7d7a2566f6 Translate using Weblate (Italian)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Italian)

Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Russian)

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Russian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Artur Sannikov <weblate.rbpxz@8shield.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-07-20 23:00:06 +02:00
greenpsiandMatthieu Coudron e3dea8e479 tirith: zsh initExtra -> initContent
Migrate usage of zsh initExtra to initContent because initExtra is
deprecated.
2026-07-20 13:17:44 +02:00
diniamoandMatthieu Coudron 3139deb8ca maintainers: remove diniamo 2026-07-19 21:31:31 +02:00
Jason BowmanandRobert Helgesson 39411a8e12 syncthing: use localhost authority for unix-socket REST calls
When services.syncthing.guiAddress is a unix socket, curlAddressArgs built
`--unix-socket <sock> http://.<path>`. curl >= 8.21 tightened URL parsing and
rejects the bare-dot authority with "URL rejected: Bad hostname" (exit 3), so
every REST call in the merge script fails. Combined with `--retry 1000
--retry-delay 1 --retry-all-errors`, syncthing-init.service retries until
systemd terminates it at the start timeout and Home Manager activation fails.

Use `localhost` as the placeholder authority; --unix-socket still routes the
request to the socket, and localhost is accepted by all curl versions. Add a
regression test asserting the unix-socket path uses http://localhost.
2026-07-18 22:41:57 +02:00
Sebastián EstrellaandAustin Horstman 460108009c herdr: Automatically reload config 2026-07-18 00:08:44 -05:00
Mike ThaiandAustin Horstman 18f9047340 navi: update url for config file docs 2026-07-18 00:04:03 -05:00
home-manager-ci[bot]andAustin Horstman c71e83ef50 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:** 305 → 307 maintainers

** Added:** ReeSilva, ratakor

Generated by: lib/python/generate-all-maintainers.py
2026-07-18 00:02:55 -05:00
Austin Horstman 165228b0ef launchd: restore gui domain defaults
User-domain agents are not rediscovered from the user LaunchAgents directory after reboot. Let built-in agents inherit the GUI default while keeping explicit user-domain configuration available.
2026-07-15 10:29:26 -05:00
6dc9e081ba docs: fix cross-page links broken by mdbook migration
The mdBook migration split the manual into one HTML page per section,
but same-page fragment links (e.g. [Standalone setup](#sec-flakes-standalone))
were left pointing at anchors that now live on other pages, so they
silently do nothing when clicked.

Rewrite all cross-page fragment links in docs/manual and
docs/release-notes to page-qualified relative links. Option anchor
links (#opt-*, #nixos-opt-*, #nix-darwin-opt-*) are untouched since
convert-markup.py rewrites those at build time.

Also give the previously empty-label [](#sec-tests) link in the 25.05
release notes a "Tests" label, since the mdBook renderer does not
auto-fill labels from the target heading.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 08:56:06 -05:00
Thierry DelafontaineandMatthieu Coudron a45a7c4514 opencode: use meta.mainProgram to wrap the main binary
Resolves #9640
2026-07-13 19:22:27 +02:00
David ThievonandAustin Horstman 7566825d46 swayimg: support new lua config
Closes: #9479
2026-07-11 21:30:09 -05:00
port22exposedandAustin Horstman ae6f976083 psd: remove aliased packages
aliased packages result in breakage on systems with them disabled and home-manager set to use global nixpkgs
2026-07-11 20:49:16 -05:00
Thierry DelafontaineandAustin Horstman c74f4f6cdd opencode: document plugin option usage in settings description 2026-07-11 19:45:00 -05:00
pancho horrilloandAustin Horstman e473bdcd87 home-cursor: update URL to Freedesktop.org specs
The old one returns a `404 - Page not found` error.

Located the content via archive.org¹ and a quick search yielded the
current URL for the spec.

¹: https://web.archive.org/web/20161024065530/https://specifications.freedesktop.org/icon-theme-spec/latest/ar01s03.html
2026-07-11 18:57:34 -05:00
Rachit Kumar VermaandAustin Horstman 564bc37de5 kitty: fix diff.conf being generated regardless of user config
'cfg.diffConfig' is an implicit submodule with sub-options that carry
their own defaults, so it never actually equals `{ }` - the previous
`cfg.diffConfig != { }` check was always true. This caused
'kitty/diff.conf' to be written (and clobber any existing unmanaged file)
even when the user configured nothing under `programs.kitty.diffConfig`.
2026-07-11 18:56:44 -05:00
csanthiagoandAustin Horstman 0992a29487 television: add extraPackages option with default dependencies
Add an extraPackages option to the television module that wraps the `tv`
binary with additional packages in PATH. Defaults to fd, bat, and ripgrep
which are the dependencies required by television's default channels.

Existing tests updated to set extraPackages = [ ] since they test config
generation, not binary wrapping.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-07-11 15:00:36 -05:00
Austin Horstman 2afec152df tests/darwinScrublist: add podman
podman pulls in vfkit on darwin, which fails to build on
aarch64-darwin with the current nixpkgs pin (cctools ld crashes
with 'Trace/BPT trap: 5'). The podman darwin tests reference the
real package through the machine watchdog script, establishing a
build dependency. Stub it on darwin test runs.
2026-07-10 23:35:26 -05:00
dependabot[bot]andAustin Horstman d29a1c0f34 flake: bump nixpkgs from 9e92285 to 767b0d3
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `9e92285` to `767b0d3`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/9e92285f211dad236540fd617d7e30e0b99bc0e1...767b0d3ec98a143ad9ed7dfc0d5553510ac27133)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 767b0d3ec98a143ad9ed7dfc0d5553510ac27133
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-10 23:35:26 -05:00
Austin Horstman 3e2af6c9e5 tests/darwinScrublist: add colima, gurk-rs
Both fail to build on aarch64-darwin with the current nixpkgs pin
(cctools ld crashes with 'Trace/BPT trap: 5'): gurk-rs directly, and
vfkit as a colima dependency. Stub them on darwin test runs.
2026-07-10 23:06:34 -05:00
Austin Horstman f938277527 claude-code: tighten module implementation
Remove redundant option machinery, centralize skills shape checks, and use narrower list composition while preserving generated behavior.
2026-07-10 14:19:11 -05:00
Austin Horstman 437ae5be42 claude-code: test plugin collisions
Cover duplicate personal-plugin directory names and collisions between managed plugins and configured skills.
2026-07-10 14:19:11 -05:00
Austin Horstman 5c7199cd3b claude-code: split module files
Move public option declarations and file-entry helpers into dedicated files while keeping module assembly in default.nix. Update the AI labeler for the new module directory.
2026-07-10 14:19:11 -05:00
Austin Horstman 1c029fb0dc claude-code: load plugins without wrapper
Persist managed plugins in Claude Code's personal skills directory so strict-parser subcommands do not receive injected --plugin-dir arguments. Retain version-gated legacy behavior for older and unversioned packages.
2026-07-10 14:19:11 -05:00
Eason20000andAustin Horstman 79e6082586 launchd: treat absent domain as harmless in bootoutAgent
When an agent's launchd.agents.<name>.domain is changed from gui to
user (or the agent is newly installed on a headless macOS system
where the gui/<UID> domain never existed), bootoutAgent attempts to
unload the agent from the old domain first. On such systems, this
fails with: Boot-out failed: 125: Domain does not support specified
action.

The bootoutAgent function only treated "No such process" as a
non-fatal condition (return 2). This change adds the domain-not-exist
error to the same handling path: the agent wasn't running in a domain
that doesn't exist, so we can safely skip the boot-out and proceed
with bootstrap into the new domain.
2026-07-10 08:22:30 -05:00
Austin Horstman 144f4e36d0 files: respect executable for recursive directories
Apply explicit executable settings to recursive directory leaves so directory sources behave like documented file sources.
2026-07-09 12:27:58 -05:00
reesilvaandAustin Horstman f4d01c1d87 posting: add module
posting: add news
2026-07-08 17:33:28 -05:00
reesilvaandAustin Horstman a1fc9a1cc3 maintainers: add reesilva 2026-07-08 17:33:28 -05:00
Austin Horstman 1aac8895fe home-cursor: warn before removing implicit enable
Follow up on home-cursor: remove legacy enable by preserving the implicit enable path that was not covered by the earlier deprecation warning.

Configurations that set home.pointerCursor without top-level enable now continue to work and emit a warning asking users to set home.pointerCursor.enable explicitly.
2026-07-08 10:46:52 -05:00
Austin Horstman cee3f0e7fe yubikey-agent: switch to gui domain for hardware key PIN prompts
yubikey-agent triggers OS-level CCID/PIV PIN entry dialogs when SSH
authentication is requested. These system security prompts require
access to the macOS Aqua session (window server). Running in the user
domain (LimitLoadToSessionType=Background) blocks these prompts,
causing authentication to fail or hang.

Revert to the default gui domain so PIN prompts can render in the
graphical login session.
2026-07-07 22:02:13 -05:00
Austin Horstman 7a62d63707 gpg-agent: switch to gui domain for graphical pinentry support
gpg-agent is commonly configured with graphical pinentry programs
(pinentry-mac, pinentry-gnome3) on macOS that need access to the Aqua
session to display passphrase prompts. Running in the user domain
(LimitLoadToSessionType=Background) prevents these prompts from
rendering, causing passphrase entry to fail silently or hang.

Revert to the default gui domain so the agent runs in the graphical
login session where pinentry can interact with the window server.
2026-07-07 22:02:13 -05:00
Thierry DelafontaineandAustin Horstman 53ebbdc405 proton-pass-agent: switch to gui domain to prevent error accessing keyring
Fixes the following accessing issue:

```
Error accessing credential on keyring: PlatformFailure(Error { code: -25308, message: "User interaction is not allowed." })
```
2026-07-07 16:08:19 -05:00
isabelandAustin Horstman 2ad49968c3 home-cursor: remove legacy enable
its been 482 days since this was merged. users should have had enough
time to migrate
2026-07-07 15:47:40 -05:00
Batuhan Baserdem, Ph.D.andGitHub 3c6f1244ed firefox: allow setting persistent StoreID
Added a new config option programs.firefox.profiles.<name>.storeId.
Setting this option now writes the StoreID both to the profiles.ini
and to the settings."toolkit.profiles.storeID" of the profile.
Firefox has two different profile implementations;
- the old one that home-manager module can declare
- the new "Selectable Profile Service" introduced in 150
The new profiles are managed in a runtime db, and reads from profiles.ini
Migration without database operations is not possible right now,
but when it becomes available, this option will stop home-manager from
clobbering the linked storeIDs.
2026-07-07 15:46:26 -05:00
Thierry DelafontaineandAustin Horstman f09af49406 opencode: assume most recent version when package=null
Resolves #9589
2026-07-07 09:54:30 -05:00
Austin Horstman cd863288d4 codex: stop duplicating hook script deployment
Write path-backed hook bundles only under the active Codex home so XDG mode no longer mirrors scripts into ~/.codex.
2026-07-07 09:53:53 -05:00
RatakorandAustin Horstman 52f93adbac walker: fix systemd dependency cycle with elephant
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
RatakorandAustin Horstman 16acb8c7ff maintainers: add ratakor to walker & elephant
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
RatakorandAustin Horstman 8de7488af2 elephant: fix service unit
Signed-off-by: Ratakor <ratakor@disroot.org>
2026-07-07 09:50:48 -05:00
Saad NadeemandAustin Horstman ed10fd394e clipse: support store paths for theme option 2026-07-07 09:50:12 -05:00
Leon SchwarzäuglandAustin Horstman 63d02d1c19 attic-client: init module 2026-07-06 20:46:24 -05:00
Austin Horstman 0d33882bd4 codex: support path-backed hooks
Allow path-backed hook bundles to provide both hooks.json and supporting scripts through programs.codex.hooks.
2026-07-06 12:20:20 -05:00
Austin Horstman a1645f4077 maintainers: regenerate all-maintainers
Regenerate all-maintainers.nix from module metadata after removing duplicate yarn maintainer entry.
2026-07-04 22:28:41 -05:00
Austin Horstman cf0c5c3e9f maintainers: drop duplicate yarn entry
Remove HM-only yarn maintainer definition and keep module references aligned with nixpkgs maintainer data.
2026-07-04 22:28:41 -05:00
dependabot[bot]andAustin Horstman 40545758d8 flake: bump nixpkgs from 89570f2 to 9e92285
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `89570f2` to `9e92285`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/89570f24e97e614aa34aa9ab1c927b6578a43775...9e92285f211dad236540fd617d7e30e0b99bc0e1)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 9e92285f211dad236540fd617d7e30e0b99bc0e1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-04 22:28:41 -05:00
pancho horrilloandAustin Horstman bfb67e07a3 difftastic: fix jujutsu integration
Don’t append `--color=always` and `--sort-paths` unconditionally, since
`difftastic` doesn’t like repeated arguments, and the user might have
already set them (via `config.programs.difftastic.options`).

To clarify, if `difft` gets called with any parameter repeated, it will
croak:

    difft --color=always --color=always
    error: the argument '--color <WHEN>' cannot be used multiple times

    Usage: difft [OPTIONS] OLD-PATH NEW-PATH

    For more information, try '--help'.

By patching `cfg.options` we ensure that the parameters are defined, and
have the required value, since the user might have selected differently
for their general setup (again, via `config.programs.difftastic.options`).
2026-07-04 22:13:42 -05:00
SigheryandAustin Horstman a7209b6794 syncthing: fix badly escaped ignore patterns test
The previous test would pass no matter what the `ignoreString` was. I
don't know enough Bash/Grep to explain it, but it was easy to test by
just changing the pattern to have `WRONG` instead of `val1`, and that
would still pass the `assertFileContains` test.

I've hopefully fixed it now, by using `lib.escapeShellArg` before
passing it to `assertFileContains`, and I've also added a negative test
case, to ensure that a bad ignore string is _not_ found in the merge
script.
2026-07-04 22:02:21 -05:00
b885baad53 syncthing: add option for ignore patterns
Taken from this nixpkgs commit by @zorrobert:
https://github.com/NixOS/nixpkgs/commit/7a223b26858aaebb44009c8966a1756918e936e3

Syncthing shared folders can be configured to ignore paths. These
changes add support for this functionality.

Co-authored-by: zorrobert <118135271+zorrobert@users.noreply.github.com>
2026-07-03 22:08:35 -05:00
Ben BrownandAustin Horstman b2e4390ff3 kanshi: Add test to check service when settings are unset 2026-07-03 12:27:00 -05:00
Ben BrownandAustin Horstman 1c9ddc707c kanshi: fix check for empty settings
Fixes regression introduced by me in 74b3817.
2026-07-03 12:27:00 -05:00
isabelandAustin Horstman 3a60d513d0 clipse: use rfc 042 style settings 2026-07-03 12:26:19 -05:00
Austin Horstman a4d410db95 fzf: group related module attributes
Group repeated attr prefixes so the fzf module and new tests are easier to scan without changing behavior.
2026-07-02 15:28:15 -05:00
Austin Horstman 0396024ea5 fzf: warn on conflicting ctrl-r bindings
Detect active fzf and history-manager Ctrl-R bindings by their configured values, warn with the winning precedence, and let the normal binding options silence the warning.
2026-07-02 15:28:15 -05:00
Austin Horstman f15a4bf065 fzf: add per-shell widget overrides
Allow each shell integration to override widget commands and options before fzf is sourced, so users can disable or tune bindings only where needed.
2026-07-02 15:28:15 -05:00
Austin Horstman 2d92f5398d fzf: export environment variables to nushell
Pure Nushell sessions do not source hm-session-vars, so feed the same FZF_* values through programs.nushell.environmentVariables before sourcing fzf integration.
2026-07-02 15:28:15 -05:00
Austin Horstman fe3ce0a527 fzf: add historyWidget.command option
Expose FZF_CTRL_R_COMMAND again so users can disable fzf's Ctrl-R binding explicitly, and warn when the configured package is too old to support it.
2026-07-02 15:28:15 -05:00
Austin Horstman cde77509b6 fzf: restructure widget options
Move widget settings under nested option groups while preserving behavior through rename aliases, and centralize FZF environment variable rendering for later reuse.
2026-07-02 15:28:15 -05:00
Austin Horstman 31ca071a7d fzf: remove legacy shell integration fallback
fzf 0.48.0 embeds shell integration scripts, so keep only the supported fzf --bash, --zsh, and --fish paths and assert that integrations use a new enough package.
2026-07-02 15:28:15 -05:00
Austin Horstman 2fca6a7372 atuin: order nushell integration after fzf
Source the Nushell integration at order 2000 so fzf can keep chaining carapace at mkAfter while Atuin still wins Ctrl-R like it does in other shells.

Users who used programs.nushell.extraConfig = lib.mkAfter ... to beat Atuin now need lib.mkOrder 2001 or later.
2026-07-02 15:28:15 -05:00
Benedikt RipsandAustin Horstman f469c79b95 home: document defaults inherited from NixOS/nix-darwin 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman 7b64c06f1d home: use lib.literalMD 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman 937e85df03 home: check username being non-empty through its type 2026-07-02 10:19:51 -05:00
Benedikt RipsandAustin Horstman c0b7cadd81 home: remove redundant non-emptiness assertion
The option type `path` checks that the path starts with a slash, hence
it can not be empty.
2026-07-02 10:19:51 -05:00
andre4ik3andAustin Horstman ebc87daabc launchd: only use --wait on macOS 26 and later 2026-07-01 22:54:10 -05:00
Ben BrownandAustin Horstman 74b38179ac kanshi: Reload on config change 2026-07-01 15:07:43 -05:00
_andAustin Horstman d32537981c lib: escape backslash in lib.hm.generators.toKDL 2026-06-30 23:49:47 -05:00
Austin Horstman 2f3da3d45f launchd: fix user domain agents
User-domain agents need the Background session type to bootstrap into user/501, and activation should fail rather than silently unloading services when launchctl bootstrap fails.
2026-06-30 23:39:07 -05:00
Amadej KastelicandAustin Horstman 2a37d71bbe herdr: add module 2026-06-30 12:14:44 -05:00
Matej BlagšičandGitHub 5d72a29fc3 hyprpaper: add system target option
Adding option `systemdTarget` to hyprpaper to match other
wayland/hyprland modules. This allows easy fixup of startup dependencies
for the service, depending on system.
2026-06-29 11:13:51 -05:00
Austin Horstman 8f096963ae maintainers: regenerate all-maintainers
Regenerate the combined maintainer list with the lock-aware extractor so migrated nixpkgs maintainers and Home Manager source labels are correct.
2026-06-29 11:12:43 -05:00
Austin Horstman 7042d2b31b lib/nix: use locked nixpkgs for maintainer extraction
Importing <nixpkgs> tied extraction to the caller's NIX_PATH. When that
channel lacks a maintainer referenced through `with lib.maintainers`
(such as sherlock's `_74k1`, which exists in the locked nixpkgs but not
in an older channel), evaluation fails outright and the generated list
varies by machine. Resolve nixpkgs from flake.lock so extraction matches
what Home Manager builds with.

Also classify maintainers by identity (github/name) rather than attribute
name so renamed entries like `_9p4` still match, and correct the
arguments passed to the manual derivation so its maintainer is collected.
2026-06-29 11:12:43 -05:00
Austin Horstman 9eec3ef087 maintainers: remove quoted names in set
Prefer underscore to match nixpkgs.
2026-06-29 11:12:43 -05:00
Austin Horstman 789a35fbde maintainers: remove duplicate maintainers 2026-06-28 22:04:23 -05:00
dependabot[bot]andAustin Horstman 2c661cc960 flake: bump nixpkgs from 3e41b24 to 89570f2
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `3e41b24` to `89570f2`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/3e41b24abd260e8f71dbe2f5737d24122f972158...89570f24e97e614aa34aa9ab1c927b6578a43775)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 89570f24e97e614aa34aa9ab1c927b6578a43775
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-28 22:04:23 -05:00
Felix StuppandGitHub 1cba40f931 vscode: refactor profile paths to use unified profileDir helper
Refactor code to remove duplicated code. The location of the profile directory dependent on the profile name was duplicated over several locations. This PR unifies this into one single helper function profileDir.
2026-06-28 21:50:51 -05:00
Felix StuppandGitHub abeeea1221 vscode: fix userMcp option example syntax
literalExample with JSON code is wrong, changed to direct Nix attr
2026-06-28 21:50:04 -05:00
Jure VarlecandAustin Horstman 4ad9aaae70 generic-linux-gpu: add EGL support for Nvidia 2026-06-28 09:30:28 -05:00
Joshua FergusonandAustin Horstman 8d8a6cc50d gpg: make package optional 2026-06-26 20:08:58 -05:00
Peter BittnerandAustin Horstman 6eba758fee uv: prune Python versions and tools by diff
The prune option uninstalled all managed Python versions (and tools)
and reinstalled them on every activation, which is slow. Instead,
resolve each requested version to the install target uv would produce
and uninstall only the difference; already-correct versions are left
untouched. Resolving to the install target (not every installed match)
also prunes superseded patch releases, which uv retains on upgrade.

Tools are diffed by PEP 503-normalized package name: requested names
are extracted and normalized at build time, and the installed set is
read from uv's tool directory, whose entries are already normalized, so
no uv output is parsed. Pruning to an empty set still removes everything.
2026-06-26 20:08:04 -05:00
Vinicius DeolindoandAustin Horstman 5d320ab301 fzf: source nushell integration after carapace 2026-06-25 16:45:22 -05:00
Austin Horstman 19d7472aca codex: reorganize module files
Move option definitions and helper functions into dedicated files while keeping module assembly in default.nix.
2026-06-25 14:21:12 -05:00
Austin Horstman 2ebe9c0fe7 codex: sanitize plugin cache paths
Use sanitized plugin name and version components for cache targets while preserving manifest names in Codex config.
2026-06-25 14:21:12 -05:00
Austin Horstman 64221f9c87 codex: add lifecycle hooks option
Manage CODEX_HOME/hooks.json directly while covering the generated file in the existing TOML test.
2026-06-25 14:21:12 -05:00
Austin Horstman 1c64122e70 codex: add context override file
Expose AGENTS.override.md declaratively and cover it in the existing TOML generation test.
2026-06-25 14:21:12 -05:00
Austin Horstman 01e23f497c codex: update upstream config reference
Use the current Codex configuration docs URL and snake_case model provider keys in examples and fixtures.
2026-06-25 14:21:12 -05:00
Austin Horstman 9e3e1d95be codex: add maintainer khaneliman 2026-06-25 14:21:12 -05:00
Austin Horstman 3d8f49f360 alacritty: normalize key binding escape sequences
`pkgs.formats.toml` escapes backslashes and cannot emit raw control
characters, so key-binding `chars` written as escape text (e.g.
"\uXXXX" or the "\^[" caret form) ended up as invalid literals in the
generated config. Rewrite each escape to a placeholder before
generation and restore it to "\u" afterward.

Use `builtins.split` so escapes are handled anywhere in the value,
including when repeated or mixed with other text.
2026-06-25 14:20:58 -05:00
085e92b04a github-copilot-cli: preserve args for local-type MCP servers
forCopilotFormat only checked for type == "stdio" to add back args,
missing the case where a server already has type = "local" (e.g. set
directly by a third-party module). This caused args to be absent in the
generated mcp-config.json, failing validation.

Also, running forCopilotFormat as an extraTransform meant it ran inside
transformMcpServer, which then filtered out args = [] in its cleanup
pass. Move forCopilotFormat to run after transformMcpServer so the
empty args list is preserved in the output.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 14:16:07 -05:00
Dionisie StratulatandGitHub 3b3ff17621 firefox: legacyUserProfileCustomizations when userChrome is present
When a user configures the userChrome option, automatically enable the
`toolkit.legacyUserProfileCustomizations.stylesheets` preference with
`mkDefault` priority so that the user chrome CSS is actually loaded.
The user can still override this in the settings option if needed.
2026-06-25 14:15:06 -05:00
r-vdpandAustin Horstman 3a70e333f2 fish: extract completion generator from the fish binary
fish 4.8.0 stops installing share/fish/tools/ and embeds the script
in the binary instead. Instead we use `status get-file` to extract it,
which works for fish >= 4.1.

See NixOS/nixpkgs#534907.
2026-06-24 22:36:00 -05:00
Austin Horstman a9232b8b10 launchd: use user domain for background agents
Move non-graphical Darwin services out of the GUI launchd domain so they can be managed from non-Aqua contexts such as SSH sessions.
2026-06-24 20:38:38 -05:00
Austin Horstman dc89b0c0bb launchd: add agent domain option
Allow Darwin LaunchAgents to target either the GUI or user launchd domain while preserving gui as the compatibility default.
2026-06-24 20:38:38 -05:00
Austin Horstman 062581938b claude-code: reject disabled mcp servers instead of dropping
Filtering disabled shared servers out of `.mcp.json` (#9457) collapsed
"present but disabled" and "absent" into the same output, so a server
set
`enabled = false` for OpenCode could no longer remain present in Claude
Code. `.mcp.json` has no per-server `enabled` field, but settings.json
does via `disabledMcpjsonServers`.

Keep disabled servers in `.mcp.json` and list them under
`disabledMcpjsonServers` (merged with any user-set value). This honors
the
disabled intent without dropping the server, and covers both shared and
Claude Code-native servers.
2026-06-23 11:54:25 -05:00
Benedikt RipsandAustin Horstman 1ac720f007 home: document the 'home.profileDirectory' default 2026-06-23 11:11:50 -05:00
ReStrangerandAustin Horstman d6b7bf1695 hyprland-qt-support: add news entry
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 16fdc3504e hyprland-qt-support: add test case
Signed-off-by: ReStranger <restranger@disroot.org>
2026-06-23 11:10:25 -05:00
ReStrangerandAustin Horstman 83c0e03687 hyprland-qt-support: init module 2026-06-23 11:10:25 -05:00
Bruno BELANYIandAustin Horstman 4b0b947474 zsh: add 'fastSyntaxHighlighting' 2026-06-23 08:09:29 -05:00
leiserfgandAustin Horstman 471a1d2f84 news: Add devenv entry 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 6cb9da2a4d devenv: init module 2026-06-22 17:14:11 -05:00
leiserfgandAustin Horstman 351959fcdb fzf: Add tests 2026-06-22 15:17:52 -05:00
leiserfgandAustin Horstman cb6bcc43e7 fzf: add nushell integration 2026-06-22 15:17:52 -05:00
mikaeladevandAustin Horstman af11a877f2 nvibrant: add module 2026-06-22 13:55:29 -05:00
Austin Horstman 66eb0fc116 docs: clarify new module news conditions
Clarify that new-module news should remain visible to users who have not enabled the new module yet.
2026-06-22 12:35:03 -05:00
leiserfgandAustin Horstman 979bfee6e1 vicinae: add firefox mesaging host 2026-06-22 08:19:19 -05:00
Austin Horstman d8dac1f668 ci: build docs in buildbot output
GitHub Actions runners lack a reusable /nix/store, so rendering the full
manual, options JSON, and manpages on every docs PR pays that cost
uncached. buildbot has a persistent store, so expose the docs outputs
there instead and leave the GHA docs step at the lightweight maintainers
check.
2026-06-21 23:44:06 -05:00
Austin Horstman f3dc0b8583 docs: update platform module guidance
Program and service modules are auto-imported now, so contributor docs should point platform-specific work at guarded module behavior and tests instead of loadModule.
2026-06-21 22:58:48 -05:00
Austin Horstman db97e414d5 docs: describe embedded module integration
Document the extra module arguments, shared modules hook, and NixOS activation modes so embedded Home Manager setup matches the current integration code.
2026-06-21 22:51:39 -05:00
Austin Horstman e731ff60ec docs: correct test command guidance
Document list and run commands separately, keep test runner usage through the flake wrapper, and avoid stale legacy full-suite commands.
2026-06-21 22:43:01 -05:00
Austin Horstman e45cc6e15a docs: fix manpage path
The generated home-configuration manpage is not compressed, so point contributors at the file that docs.manPages actually creates.
2026-06-21 22:20:43 -05:00
Austin Horstman 8f3bc61192 news: remove duplicate module announcements
Drop sparse duplicate entries for amberol and mpdscribble while keeping the richer platform-gated announcements.
2026-06-21 22:07:39 -05:00
Austin Horstman 5bf17310cf docs: preserve legacy manual links
Generate XHTML-safe redirect shims that route old single-page manual anchors to their mdBook pages.
2026-06-21 22:02:16 -05:00
Thierry DelafontaineandAustin Horstman d1ccd0721e news: add podman registries v2 entry 2026-06-21 09:20:14 -05:00
Thierry DelafontaineandAustin Horstman e3e24bfd0f podman: generate v2 registries.conf
Convert `services.podman.settings.registries` output to v2 format.
Keep legacy `insecure` and `block` inputs, add `registry` entries,
and warn when legacy options are used.

Update podman configuration tests and expected registries.conf output.

Resolves #9501
2026-06-21 09:20:14 -05:00
Austin Horstman 78e7d8b13e ci: checkout base ref for backports
Checkout v7 still treats the pull_request_target default ref as fork PR code, so pin the backport checkout to the trusted base SHA.
2026-06-20 16:06:13 -05:00
Austin Horstman ee6b160bcb ci: avoid fork head checkout in backport
Checkout v7 blocks fork PR head checkouts in pull_request_target workflows, so keep backport on the trusted base checkout and let the backport action fetch PR commits itself.
2026-06-20 16:01:01 -05:00
Anton MosichandAustin Horstman 61157d3c01 pimsync: have type be the first directive in storage blocks
pimsync 0.5.10 introduced a change to config parsing which now mandates
that the type directive is the first one in each storage block.
2026-06-20 15:54:19 -05:00
Austin Horstman 8695ecb389 tests/firefox: avoid building librewolf
Stub the Librewolf package in module tests so shared Firefox logic still runs without evaluating or building the insecure nixpkgs package.
2026-06-20 13:40:22 -05:00
Austin Horstman 8762262054 tests/darwinScrublist: add parallel-full
Scrub the default GNU Parallel package on Darwin so the module test does not build the failing DBD::CSV dependency.
2026-06-20 13:40:22 -05:00
dependabot[bot]andAustin Horstman 72a8bf11c8 flake: bump nixpkgs from ffa10e2 to 3e41b24
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `ffa10e2` to `3e41b24`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/ffa10e26ae11d676b2db836259889f1f571cb14f...3e41b24abd260e8f71dbe2f5737d24122f972158)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 3e41b24abd260e8f71dbe2f5737d24122f972158
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 13:40:22 -05:00
Juan C NunoandAustin Horstman a4ee5403ca home-manager: Pass extraArgs to nix-instantiate
My NIX_PATH is empty because of the new system.nix NixOS entry point.
I've been relying on -I options more and here they're not being passed
to nix-instantiate.
2026-06-20 12:38:59 -05:00
dependabot[bot]andAustin Horstman c3dfce6c63 ci: bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-20 12:35:00 -05:00
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
Austin Horstman 153bad8fb5 qt: stop rewriting platformTheme name gtk to gtk2
Setting `qt.platformTheme.name = "gtk"` silently rewrote the
QT_QPA_PLATFORMTHEME session variable to `gtk2` and pulled in the
qtstyleplugins and qt6gtk2 packages, which is not what users asked for
and relies on unmaintained packages. There is no `gtk` Qt platform
theme, so `gtk` now maps to Qt's built-in `gtk3` platform-theme plugin
and installs no extra packages.

Users who want the previous behavior can set
`qt.platformTheme.name = "gtk2"` explicitly, which keeps
QT_QPA_PLATFORMTHEME=gtk2 and installs qtstyleplugins and qt6gtk2. The
`qt.useGtkTheme` -> `qt.platformTheme` migration now maps the legacy
option to `{ name = "gtk2"; }` so existing configs are unaffected.

Fixes #8663
2026-06-19 12:28:04 -05:00
Austin Horstman e061b00885 broot: fix nushell integration br command
broot 1.51 renamed the printed nushell entry point from `br` to `main`,
intended to be loaded with `use` where the command takes the module's
name. Home Manager sources the snippet with `source`, so it began
defining a global `main` instead of `br`, breaking the `br` command in
nushell.

Rewrite the definition line back to `br` for the nushell shell function
so `source` keeps exposing `br` globally. Other shells are unaffected.

Fixes #9392
2026-06-19 10:53:03 -05:00
Austin Horstman 55730a2e34 ssh: document DAG ordering patterns
Expand the settings example so users can discover stable headers and list-shaped DAG helpers for ordered Host and Match blocks.
2026-06-19 10:13:44 -05:00
Austin Horstman fea021792d treefmt: format Python with ruff
Add ruff to the tree formatter so Python sources are kept consistently
formatted by 'nix fmt' and the CI format check. Test fixtures under
tests/modules are excluded since some are intentionally invalid Python.
Reformats the existing lib/python and tests scripts accordingly.
2026-06-19 10:00:25 -05:00
Austin Horstman 6aaf73d18d docs: build manual with mdbook
Switch the HTML manual renderer to mdBook while preserving existing docs package outputs and legacy redirect paths.
2026-06-19 10:00:25 -05:00
Austin Horstman 9b2afbdd47 docs: add contributing pointer
Point contributors at the manual contribution guidelines from the
repository root.
2026-06-19 10:00:10 -05:00
Austin Horstman 0043376f4e docs: clarify module contribution guidance
Document reviewer expectations for new modules so contributors can align option design, news, test organization, and commit structure before review.
2026-06-19 10:00:10 -05:00
mikaeladevandAustin Horstman 43f9f0abc6 misc: move modules spanning multiple files into subdirs
- modules/misc/qt.nix -> modules/misc/qt/default.nix
- modules/misc/gtk.nix -> modules/misc/gtk/default.nix
- modules/misc/news.nix -> modules/misc/news/default.nix
- modules/misc/xdg*.nix -> modules/misc/xdg/...
- modules/misc/nix*.nix -> modules/misc/nix/...
2026-06-19 08:59:16 -05:00
pancho horrilloandAustin Horstman c804fab681 difftastic: fix typo in example
The "dark" value actually applies to the `background` setting (which
I’ve omitted here since "dark" is its default value.)

I’ve given `color` the value "always", which will preserve colorization
when using `less` as a pager.

Extracted from `difft --help`¹:

Options:
...
        --color <WHEN>
            When to use color output.

            [env: DFT_COLOR=]
            [default: auto]
            [possible values: always, auto, never]

        --background <BACKGROUND>
            Set the background brightness. Difftastic will prefer brighter colours on dark backgrounds.

            [env: DFT_BACKGROUND=]
            [default: dark]
            [possible values: dark, light]

¹: which seems to be the authoritative source of documentation, as per
https://difftastic.wilfred.me.uk/usage.html#configuration-options
2026-06-18 23:47:04 -05:00
DrymarchonShaunandGitHub 266211649f hyprland: fix plugin loading when using lua
Move plugin loading to the top of the rendered ~/.config/hypr/hyprland.lua as plugins must be loaded before hl.config can be called with config keys added by the plugin, (binds using dispatchers added by plugins also fail if they are defined before the plugin is loaded)

This also switches over to using the (undocumented?) hl.plugin.load("/path/to/plugin.so") to load plugins, which has solved some strange race condition weirdness caused by using exec_cmd with hyprctl plugin load (I first tried moving renderStartHook to the top of the rendered config, but sometimes it seemed the hyprctl plugin load wouldn't finish loading the plugin before the rest of the config was loaded, causing the same errors about unknown config keys)
2026-06-18 22:39:21 -05:00
Dietrich DarochandAustin Horstman 3abeedcf40 zellij: Avoid starting on dumb terminals
This avoids https://github.com/zellij-org/zellij/issues/3824
2026-06-18 21:57:40 -05:00
0f4a317c06 lib.hm.dag: performance improvements
Avoid repeated attribute lookups and unnecessary intermediate allocations in
DAG helpers. Cache DAG names while normalizing before-edges to improve topoSort
performance on large DAGs.

Co-authored-by: Eman Resu <78693624+quatquatt@users.noreply.github.com>
2026-06-18 21:53:23 -05:00
Benedikt RipsandAustin Horstman c8f0b8ed44 fontconfig: add RFC42-style config file settings 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4441446672 fontconfig: generate config with pkgs.formats.xml 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 27a3154f42 fontconfig: disallow null as config file source
This brings `fonts.fontconfig.configFile.*.source` in line with
`home.file.*.source` and the like.
2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4ce682641d fontconfig: add 'configFile.<name>.target' option
This brings `fonts.fontconfig.configFile` in line with `home.file` and
the like.
2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 4666af39e9 fontconfig: clarify 'configFile.<name>.*' descriptions 2026-06-18 14:16:03 -05:00
Benedikt RipsandAustin Horstman 82432731d3 fontconfig: check warning in legacy default test 2026-06-18 14:16:03 -05:00
Austin Horstman a786067676 mkFirefoxModule: assert managed package for global extensions
Reject globalExtensions when Home Manager has no browser-managed policy
carrier. This follows up the global extension policy work with a clear
failure mode, a regression test, and a news entry so affected users know
how to fix package = null setups.
2026-06-18 12:53:30 -05:00
9f9b23ae21 mkFirefox: add policy to accept added extensions
This commit adds extensions added via
profiles.<name>.globalExtensions to the policy.
In consequence the extensions are added without complaint and don't need
to be enabled manually.

Co-authored-by: khaneliman <khaneliman@users.noreply.github.com>
2026-06-18 12:38:01 -05:00
glmlmandAustin Horstman 8af17160d1 nixgl: preserve __functionArgs when forwarding .override
Forwarding `.override` calls strips the attached metadata, which leads to unexpected behavior in some modules.

Closes #9494
2026-06-18 12:01:25 -05:00
Austin Horstman d456f483f1 codex: add profile config support
Codex 0.134.0 stopped reading profile settings from [profiles.<name>] in config.toml and no longer supports the top-level profile selector.

Add a dedicated programs.codex.profiles option so Home Manager can write CODEX_HOME/<name>.config.toml files that match the current CLI --profile behavior. For Codex 0.134.0 and later, legacy programs.codex.settings.profiles entries are migrated into profile files with a warning, and removed legacy profile keys are omitted from config.toml so strict config loading keeps working. Older Codex versions keep the legacy config shape.
2026-06-18 08:19:47 -05:00
glmlmandGitHub 6274683ee4 mkFirefoxModule: add warning for dropped options on wrapped packages
Warns only if the package lacks a `cfg` override and relevant options are configured.

References
https://github.com/nix-community/home-manager/pull/9486
2026-06-18 08:17:43 -05:00
Austin Horstman 5ccd408ca7 dunst: use DAG ordered generator helper 2026-06-18 07:59:18 -05:00
Austin Horstman b9a29e51c5 opencode: support ordered settings entries
Use the shared DAG-aware JSON generator for programs.opencode.settings so order-sensitive permission rules can be expressed with lib.hm.dag entries.

Add a focused NMT test for last-match-wins permission output and news for existing opencode users.
2026-06-18 07:59:18 -05:00
Austin Horstman 6716d811e5 lib: add DAG-aware format generators
Add reusable Home Manager generator helpers for rendering freeform attrsets that contain lib.hm.dag entries.

This keeps ordering support available to JSON and future generated formats without forcing each module to carry its own DAG sorting boilerplate.
2026-06-18 07:59:18 -05:00
Austin Horstman 652f754686 difftastic: support difftool-only git integration
Splitting git diff tools into the separate programs.difftastic module
made it impossible to register difftastic as a git difftool without also
forcing it as diff.external, since the boolean git.diffToolMode only
toggled between "external" and "external + difftool".

Replace git.diffToolMode with a git.mode enum ("external", "difftool",
"both") so difftastic can be wired as the difftool only, leaving
`git diff` untouched. The deprecated boolean is migrated automatically
via mkChangedOptionModule (true -> "both", false -> "external"),
preserving existing behavior.

Fixes #8592
2026-06-18 07:45:53 -05:00
Fida Waseque ChoudhuryandAustin Horstman 5bcff43156 antigravity-cli: fix mcp validation error for remote/local servers
Do not serialize null/empty fields (command, args, env) for remote servers.
Also fix 'isRemote' check to check for non-null url fields instead of
using the ? operator, which evaluates to true even if the key is null.
2026-06-17 21:59:28 -05:00
csanthiagoandAustin Horstman c187002980 television: add themes option
Add a `themes` option to the television module, allowing users to define
custom themes that are written to `$XDG_CONFIG_HOME/television/themes/`
as individual TOML files. This follows the same pattern used by the
halloy and helix modules.


💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-06-17 19:16:21 -05:00
csanthiagoandAustin Horstman eb0eb170bb television: add csanthiago as maintainer 2026-06-17 19:16:21 -05:00
csanthiagoandAustin Horstman a20c21b2fe maintainers: add csanthiago
💘 Generated with Crush

Assisted-by: Crush:glm-5.2
2026-06-17 19:16:21 -05:00
Peter BittnerandAustin Horstman c51ac59e59 uv: manage Python versions and tools
Add programs.uv.python.{versions,default,prune} and
programs.uv.tool.{packages,prune} to install uv-managed Python versions
and tools during activation.

Install requests are passed verbatim to uv. Unpinned entries track the
latest release on each activation while pinned ones stay put: Python
requests without a patch component are installed with `uv python install
--upgrade` (exact patches, which uv refuses to upgrade, get a plain
install), and tools are refreshed with `uv tool upgrade <packages>`
scoped to the configured list. Both upgrades are scoped to the managed
entries, so installs Home Manager does not own are left untouched. prune
makes a set declarative by running `uv ... uninstall --all` before
reinstalling the listed entries.

The activation blocks run after linkGeneration so uv sees the freshly
linked uv.toml, and a null programs.uv.package is rejected once the
module emits activation commands.
2026-06-17 15:47:24 -05:00
Peter BittnerandAustin Horstman a69317872e uv: add bittner as a maintainer 2026-06-17 15:47:24 -05:00
Peter BittnerandAustin Horstman bfc003171b maintainers: add bittner 2026-06-17 15:47:24 -05:00
Austin Horstman ea0bf49c9d thunderbird: merge account prefs with mergeAttrsList
The SMTP, identity, and profile pref sets were combined with linear foldl'
of //. mergeAttrsList performs the equivalent right-biased shallow merge and
scales with the account/address count without quadratic recopies.
2026-06-17 13:04:43 -05:00
Austin Horstman 50978d4bf6 neomutt: merge account rc files with mergeAttrsList
Per-account rc files were combined with a linear foldl' of //. mergeAttrsList
is the equivalent shallow merge without the quadratic accumulator recopy.
2026-06-17 13:04:43 -05:00
Austin Horstman b3f454e5c2 zsh: merge plugin home.file entries with mergeAttrsList
Plugin source links were combined with a linear foldl' of //. mergeAttrsList
performs the equivalent shallow merge and scales with the plugin count.
2026-06-17 13:04:43 -05:00
Austin Horstman cbbddc4a6f go: merge package src links with mergeAttrsList
The GOPATH src symlinks were combined with a linear foldl' of //.
mergeAttrsList is the equivalent shallow merge and scales with the package
count without quadratic recopies.
2026-06-17 13:04:43 -05:00
Austin Horstman b06723c4d4 getmail: merge home.file entries with mergeAttrsList
Per-account config files were combined with a linear foldl' of //.
mergeAttrsList performs the equivalent shallow merge without the quadratic
accumulator recopy.
2026-06-17 13:04:43 -05:00
Austin Horstman 9b262cb738 browserpass: merge home.file entries with mergeAttrsList
The native-messaging host files were combined with a linear foldl' of //,
which recopies the accumulator on every step (O(n^2)). mergeAttrsList does
the same right-biased shallow merge with a balanced binary merge.
2026-06-17 13:04:43 -05:00
Austin Horstman 71b4b46f23 thunderbird: use foldl' for profiles.ini merge
profilesIni folded recursiveUpdate over the profile list with the
non-strict foldl, building a thunk chain over the growing accumulator.
Use the strict foldl'.
2026-06-17 13:04:43 -05:00
Austin Horstman b8818d5a65 neovim: collect plugin configs with filter and map
generatedConfigs built its list with a non-strict foldl that appended via
acc ++ [ p.config ], an O(n^2) pattern. Filtering out null configs and
mapping is equivalent, order-preserving, and avoids the repeated list
copies.
2026-06-17 13:04:43 -05:00
Austin Horstman ce68ac6958 lib/generators: short-circuit important-field check with any
toHyprconf' tested every important prefix with a non-strict foldl that
always scanned the full list. lib.any expresses the same any-prefix-matches
intent and stops at the first match. Runs once per attribute in the
Hyprland generator.
2026-06-17 13:04:43 -05:00
Austin Horstman a69e55d05b fusuma: use lib.makeBinPath for service PATH
The local makeBinPath helper reimplemented lib.makeBinPath with a
non-strict foldl accumulator. Use the stdlib function instead: it is
strict and removes the duplicated logic.
2026-06-17 13:04:43 -05:00
K900andAustin Horstman fa4e2f7e10 modules/kdeconnect: stop overriding PATH, remove support for prehistoric versions
Bad. No. Why.
2026-06-17 10:48:18 -05:00
adisbladisandAustin Horstman d2d79394a4 maintainers: remove adisbladis
I haven't even used home-manager in a very long time, much less maintained it.
2026-06-17 10:48:10 -05:00
0xda157andAustin Horstman a2e23ee8f8 helix: make package nullable 2026-06-17 09:32:40 -05:00
Austin Horstman 89fda2248e mise: add usage dependency for shell completions
The generated script calls the separate `usage` CLI at completion time,
so add `pkgs.usage` to `home.packages` whenever mise is installed.
Stub it on Darwin test runs via `tests/darwinScrublist.nix`.
2026-06-17 09:32:24 -05:00
Austin Horstman 524d73a903 mise: add bash completion to bash integration
The bash integration previously only ran `mise activate bash`, so tab
completion for `mise` was never set up. Source the generated completion
script via `mise completion bash --include-bash-completion-lib`; the
flag self-bundles the bash-completion helpers so it also works on
systems whose bash-completion predates `_comp_initialize`.

Fixes #8539
2026-06-17 09:32:24 -05:00
ErinaYipandAustin Horstman 7664e05e24 maintainers: add ErinaYip 2026-06-16 22:42:18 -05:00
ErinaYipandAustin Horstman 2a7b54df12 prismlauncher: add themes option 2026-06-16 22:42:18 -05:00
0xda157andAustin Horstman 45e97d1e88 television: remove da157 from maintainers 2026-06-16 22:32:46 -05:00
Pat L.andGitHub df4e046571 codex: Add support for installing plugins and marketplaces
Install the referenced plugins into $CONFIG_DIR/plugins and add them to
the marketplace file in `~/.agents/plugins/marketplace.json`. The
plugins are then enabled in `$CONFIG_DIR/config.toml`.

Also add support for custom plugin marketplaces via the `marketplaces`
option. Each marketplace entry is a local directory (or fetched package)
that Codex can browse to discover additional plugins. Marketplaces are
registered in `$CONFIG_DIR/config.toml` under [marketplaces.<name>] with
`source_type = "local"` pointing at the provided path. Setting either
`plugins` or `marketplaces` automatically enables the `features.plugins`
flag in the generated config.

Warn that if a derivation is being used as the source of the plugin, the
name of the derivation needs to match the plugin name in the manifest.
2026-06-16 15:35:13 -05:00
Austin Horstman 34dd288e65 antigravity-cli: update skills deployment path
The skills folder deployment path has been updated to
'~/.gemini/antigravity-cli/skills/' to align with the application's
configuration path structure from docs. I think the other path is just a
weird compatibility shim that app supports. strace shows it will search
it, but it also checks the documented path.
2026-06-16 08:06:05 -05:00
Ihar HrachyshkaandAustin Horstman c03e475289 programs/thunderbird: stop writing directory prefs
Thunderbird prefers[1] directory-rel for account local paths and only
falls back to directory when the relative pref is absent. To add, the
generated directory values were home-relative paths while the app
expects absolute paths when reading the setting. Instead of fixing
these, just drop the redundant settings.

[1] https://searchfox.org/comm-central/source/mailnews/base/src/nsMsgIncomingServer.cpp#745
2026-06-15 16:01:52 -05:00
home-manager-ci[bot]andAustin Horstman 2d4f4e2788 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:** 300 → 301 maintainers

** Added:** superflash41

Generated by: lib/python/generate-all-maintainers.py
2026-06-15 15:53:00 -05:00
glmlmandGitHub 8aec76cc1e mkFirefoxModule: fix unexpected argument error on derivatives
Fix a compilation error when using a wrapper package that does not accept the `cfg` argument in its override.

Closes #9485
2026-06-15 09:26:48 -05:00
Fida Waseque ChoudhuryandAustin Horstman a813a04113 antigravity-cli: fix programs.mcp.servers integration for remote servers
Do not rename url to serverUrl in transformMcpServer's extraTransforms.
This caused the core library to incorrectly default the server type to stdio,
and subsequently erase the serverUrl attribute entirely during cleanup.

The renaming is already handled at the end by the transformMcpServers helper.
2026-06-15 09:25:46 -05:00
Changseo JangandAustin Horstman 1285cd3d68 keepassxc: Support macOS KeePassXC configuration
Refactor configuration for KeePassXC settings based on platform.
2026-06-14 23:23:24 -05:00
Cody ShearerandAustin Horstman ed8263e7d7 voxtype: fix output mode paste
Voxtype requires the command `cat` from
`coreutils` when using the output mode `paste`,
but fails with the current configuration because
it cannot find `cat`.

```
WARN paste (clipboard + keystroke) failed: Text
injection failed: wl-copy exited with error,
trying next
```

This commit adds `coreutils` to the runtime path
to resolve the path to `cat`.
2026-06-14 17:58:52 -05:00
Aguirre MatteoandAustin Horstman 1b7fb5e6b4 maintainers: dump aguirre-matteo from almost all modules 2026-06-14 17:57:38 -05:00
EdontinandAustin Horstman 5b6f573372 zed-editor: fix programs.mcp.servers compatibility
Default args to an empty list on stdio servers as it's a Vec<String>,
and loading the configuration fails if it's missing. This cannot be done
in extraTransforms due to the final filterAttrs.

Remove addType call as ContextServerSettings doesn't use type to
differentiate server types.

Link: https://github.com/zed-industries/zed/blob/601ecb3ee5c16940191818ee7f244837abf6983c/crates/settings_content/src/project.rs#L484
Link: https://github.com/zed-industries/zed/blob/601ecb3ee5c16940191818ee7f244837abf6983c/crates/project/src/project_settings.rs#L182
2026-06-13 10:42:15 -05:00
Tommaso SoncinandAustin Horstman c87a39aa97 Translate using Weblate (Italian)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Italian)

Currently translated at 93.7% (15 of 16 strings)

Co-authored-by: Tommaso Soncin <soncintommaso@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-06-12 18:04:56 -05:00
blokykandAustin Horstman 486595d2cf zsh: make sure siteFunction names don't contain slashes 2026-06-11 09:45:14 -05:00
blokykandAustin Horstman 19c41a5a6d zsh: escape siteFunction names 2026-06-11 09:45:14 -05:00
blokykandAustin Horstman d29e0ab7c2 zsh: correctly handle autoloading functions starting with '-' 2026-06-11 09:45:14 -05:00
Austin Horstman bb68a1a2e7 docs: add release notes contributing guidance 2026-06-11 09:05:37 -05:00
toastalandRobert Helgesson 7dbd305f8b darcs: add defaults
This adds support for specifying default values for Darcs commands.
2026-06-11 00:13:36 +02:00
Austin Horstman f96f717a47 vscode: support path literals in userSettings
programs.vscode.profiles.<name>.userSettings accepts either JSON settings or a path to a settings.json file. The update-check defaults were merged into userSettings before deciding whether to generate JSON or link a source file, so path values failed when Nix tried to apply // to them.

Skip those merges for path-like values and use the shared isPathLike helper for VS Code's source-or-generated JSON options so Nix paths, store path strings, and derivation outputs are handled consistently.

Fixes #7726
2026-06-10 13:10:31 -05:00
Austin Horstman 2b394beca7 docs: fix sshAuthSock reference in rl-2605
The link to `#opt-sshAuthSock.enable` broke the manual build on
release-26.05, where the `enable` option does not exist. Drop the
broken reference and the inaccurate "enabled and" wording.
2026-06-10 13:05:30 -05:00
superflash41andAustin Horstman 74887eaee2 kiro-cli: add module 2026-06-10 09:48:41 -05:00
superflash41andAustin Horstman 6cf5b64c12 maintainers: add superflash41 2026-06-10 09:48:41 -05:00
Austin Horstman cadadbc6f4 claude-code: omit unsupported mcp enabled field 2026-06-10 08:38:54 -05:00
MalikandAustin Horstman 1ffdc28076 news: add entry for programs.mcp typed schema 2026-06-09 23:03:52 -05:00
MalikandAustin Horstman ebc55fd103 claude-code, codex, antigravity-cli, github-copilot-cli, opencode, vscode, zed-editor: use mcp lib
- use lib.hm.mcp.transformMcpServer for MCP integration
- Update tests to reflect new merged server configuration
2026-06-09 23:03:52 -05:00
MalikandAustin Horstman 6a66db1360 mcp: extract helper functions into lib/mcp.nix
Extract MCP-related helper functions (renderEnv, mkEnvFilesWrapper,
wrapEnvFilesCommand, addType, transformMcpServer) into a new shared
library module at modules/lib/mcp.nix.
- Add lib.hm.mcp for sharing transformMcpServer logic across consumers
- Add enabled/disabled conflict detection assertion
- Add tests for new library functions
2026-06-09 23:03:52 -05:00
Austin Horstman c30f177760 docs: update release notes for 26.05
Lots of missing information about major changes throughout the last
release.
2026-06-09 22:44:48 -05:00
Austin Horstman bd4277722d tests: add nixpkgs-disabled warning/assertion coverage
Evaluate `nixpkgs-disabled.nix` standalone (the harness always loads the
real `nixpkgs.nix`) to verify the warning and assertion report the offending
`nixpkgs.config`/`nixpkgs.overlays` definition locations.
2026-06-09 17:15:30 -05:00
Austin Horstman d6f3413874 nixpkgs-disabled: show offending definition locations in warning
Surface the files that defined `nixpkgs.config`/`nixpkgs.overlays` in the
`useGlobalPkgs` warning and assertion, so users can find what set them
without inspecting `options.*.files` in the repl.
2026-06-09 17:15:30 -05:00
Austin Horstman 408a6918a0 docs: advise contributors to generate module news entries
The news section told module contributors they did not need to add a
news entry because the merger would create one, contradicting the
earlier instruction to use the create-news-entry generator. Point
contributors at the generator so new modules ship with their own entry.
2026-06-09 16:40:46 -05:00
0xda157andAustin Horstman 8ff67d938c i18n/inputMethod: remove da157 as maintainer 2026-06-09 16:28:30 -05:00
Austin Horstman c58ead12ef voxtype: assert full service file in test
Replace the piecemeal assertFileRegex checks with a single
assertFileContent against the normalized unit, so the test pins the
entire generated service file rather than a handful of lines.
2026-06-09 07:49:19 -05:00
Austin Horstman 449012836e voxtype: restart service when configuration changes
Add the rendered config path to X-Restart-Triggers so the service restarts
whenever the configuration changes.
2026-06-09 07:49:19 -05:00
Austin Horstman df39142474 nushell: remove redundant abbreviations option
Nushell abbreviations are regular config settings, so users can already express them through programs.nushell.settings.abbreviations. Keep test coverage on that native path instead of maintaining a second option.
2026-06-08 13:35:42 -05:00
Austin Horstman e9cbe69850 sshAuthSock: avoid cycles for socket providers
PR #9420 added set-SSH_AUTH_SOCK.service and ordered it before sshAuthSock.systemd.socketProviderUnit. When that provider is a socket unit, systemd default dependencies already order the socket before sockets.target while service defaults place set-SSH_AUTH_SOCK.service after basic.target. That creates a sockets.target -> basic.target -> set-SSH_AUTH_SOCK.service -> provider.socket -> sockets.target cycle.

For gpg-agent this makes systemd drop gpg-agent-ssh.socket, leaving SSH_AUTH_SOCK pointing at the expected S.gpg-agent.ssh path but with no socket listening there.

Only order and install the environment service against non-socket providers. Socket providers still get SSH_AUTH_SOCK imported through default.target.

Fixes #9432.
2026-06-08 12:04:33 -05:00
Perchun PakandAustin Horstman 301871cd96 zellij: add support for plugins 2026-06-08 11:16:17 -05:00
Perchun PakandAustin Horstman ec56189b4f zellij: add myself to maintainers 2026-06-08 11:16:17 -05:00
azahiandAustin Horstman 78da10c4af zed-editor: wrap meta.mainProgram 2026-06-08 10:56:10 -05:00
home-manager-ci[bot]andAustin Horstman 5c34a3c759 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:** 298 → 300 maintainers

** Added:** kayskayskays, semi710

Generated by: lib/python/generate-all-maintainers.py
2026-06-08 09:37:01 -05:00
Austin Horstman 4fe95527cb pi-coding-agent: scrub package in Darwin tests 2026-06-07 21:22:10 -05:00
Austin Horstman 0c42c7a66f darkman: replace removed python2 in test 2026-06-07 21:22:10 -05:00
Austin Horstman aa14fc7b46 tests: update generated TOML expectations 2026-06-07 21:22:10 -05:00
dependabot[bot]andAustin Horstman e4b8f8c8bf flake: bump nixpkgs from 4100e83 to ffa10e2
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `4100e83` to `ffa10e2`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/4100e830e085863741bc69b156ec4ccd53ab5be0...ffa10e26ae11d676b2db836259889f1f571cb14f)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: ffa10e26ae11d676b2db836259889f1f571cb14f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-06-07 21:22:10 -05:00
Dzming LiandAustin Horstman d4d5d9bb4a nushell: add abbreviations option
Add `programs.nushell.abbreviations`, mirroring `shellAliases`, to
declaratively configure fish-style abbreviations (nushell 0.113.0+).
The set is emitted as `$env.config.abbreviations = { ... }` after the
aliases so it survives a wholesale `$env.config = { ... }` written in
`extraConfig`.

Unlike aliases, abbreviations expand inline in the line editor, so the
expanded command is what ends up in history.
2026-06-07 21:06:57 -05:00
Ben BaldwinandAustin Horstman ddb7082625 lib: separate eval config file
Move the `homeManagerConfiguration` function into its own file to allow
importing without passing an unused `lib` argument.
2026-06-07 21:04:30 -05:00
Austin Horstman b2b7db486e antigravity-cli: robust rename support
Handle module system merge priority resolution issues with suboptions.
2026-06-05 12:15:34 -05:00
Austin Horstman e621f12c02 pi-coding-agent: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman c321a1c8a7 opencode: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 6d4fb02e34 github-copilot-cli: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 4b9a995519 codex: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 09ff165ba6 claude-code: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman 3a647b158e antigravity-cli: use lib.hm.strings.isPathLike 2026-06-05 11:39:28 -05:00
Austin Horstman d33c97ec1b lib/strings: add isPathLike helper 2026-06-05 11:39:28 -05:00
Austin Horstman eaca478c95 antigravity-cli: add migration news 2026-06-05 11:39:28 -05:00
Austin Horstman ff77a72fe5 antigravity-cli: rename gemini-cli module 2026-06-05 11:39:28 -05:00
Austin Horstman 0450574818 flake: gate development outputs to supported systems
Keep the home-manager package exposed for all nixpkgs flakeExposed systems, but only expose formatter, devShell, docs, tests, CI helpers, and legacy test packages on supported Home Manager systems.

This prevents nix flake check --all-systems from forcing unavailable formatter toolchains such as GHC on riscv64-linux and x86_64-freebsd.

Fixes #9389.
2026-06-05 11:33:38 -05:00
Nikhil SinghandAustin Horstman 37e8eef933 pi-coding-agent: add module 2026-06-05 11:13:52 -05:00
Nikhil SinghandAustin Horstman 5fadbec07a maintainers: add semi710 2026-06-05 11:13:52 -05:00
Benedikt RipsandAustin Horstman 447fd9ff62 sshAuthSock: add news entry 2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman f1d5aa6f69 sshAuthSock: set in systemd
`SSH_AUTH_SOCK` is exported in shells only, which systemd does not
inherit from. With this commit, it is also set in systemd such that
systemd-managed applications can access the SSH agent by declaring
dependencies onto 'sshAuthSock.systemd.socketProviderUnit'.

Closes #7971.
2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman f4534a4f3c sshAuthSock: add option for initialization in Zsh
Initialization in Zsh defaults to the Bash initialization code since Zsh
is mostly Bash-compatible. This commit adds a dedicated Zsh
initialization code option to make the defaulting behaviour transparent
while also enabling overrides.
2026-06-04 12:20:50 -05:00
Benedikt RipsandAustin Horstman efe95f113a sshAuthSock: use enable flag instead of nullable submodule 2026-06-04 12:20:50 -05:00
Austin Horstman dc641330e2 infat: use deprecation warning helper 2026-06-04 12:20:09 -05:00
Austin Horstman 18b4e1ea6f xdg-user-dirs: assert extraConfig key warning 2026-06-04 12:20:09 -05:00
Austin Horstman 6459fc4aee firefox: assert bookmarks migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 6a6941ad20 hyprpanel: assert theme name warning 2026-06-04 12:20:09 -05:00
Austin Horstman c81a3d2383 helix: assert languages migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 9a638c1442 swayidle: assert events migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman ff53fe10e0 qt: assert kde6 migration warning 2026-06-04 12:20:09 -05:00
Austin Horstman 5ded124f91 lib: add deprecated option warning helpers 2026-06-04 12:20:09 -05:00
Austin Horstman 4c5c1e8ba1 alacritty: fix toml escape generation 2026-06-03 14:45:20 -05:00
KaysandAustin Horstman f384af1bec macos-terminal: add module 2026-06-02 08:56:09 -05:00
KaysandAustin Horstman a7c15f4f65 maintainers: add kayskayskays 2026-06-02 08:56:09 -05:00
kinnraiandAustin Horstman 70fc4b4b5e aerospace: add regression test for reload guard 2026-06-02 08:54:53 -05:00
kinnraiandAustin Horstman 58e05d16d7 aerospace: skip config reload when AeroSpace is not running
Avoid failing Home Manager activation when the generated AeroSpace
configuration changes while AeroSpace is not yet running.

The onChange hook can run before a running AeroSpace instance is
available. Probe the running instance with `aerospace list-modes --current`
before calling `reload-config`, and skip the reload if AeroSpace is not
yet running.
2026-06-02 08:54:53 -05:00
Léana 江andAustin Horstman f15c764b14 password-store: improve warning message 2026-06-02 08:23:08 -05:00
Benedikt RipsandAustin Horstman 68227a9363 fontconfig: add test for font discovery 2026-06-02 08:22:25 -05:00
Benedikt RipsandAustin Horstman af1588ad6f fontconfig: add test for default fonts 2026-06-02 08:22:25 -05:00
Benedikt RipsandAustin Horstman c0436bc028 fontconfig: enable config files by default
This commit makes the `fonts.fontconfig.configFile.<name>.enable` option
true by default which matches the behaviour of `home.file` and the like.
2026-06-02 08:22:25 -05:00
Austin Horstman 07c723c3fe zsh: fix oh-my-zsh custom path expansion
Preserve shell-variable paths for programs.zsh.oh-my-zsh.custom while
still escaping values for a double-quoted shell assignment.

This restores runtime expansion for values like $HOME/extra/zsh, which
otherwise became a literal path after the previous escapeShellArg
change.
2026-06-02 08:00:49 -05:00
Austin Horstman a7a4158831 infat: use list for autoActivate extraArgs 2026-06-01 22:28:08 -05:00
Kevin StoneandAustin Horstman 274299642b vscode: make keybindings submodule freeform
vscode supports overrides per platform key combinations at `mac`, `win` and `linux`

Enables `freeformType = jsonFormat` in the keybindings submodule. This enables support for per-platform bindings and any other arbitrary keybinding attributes.

Code pointer: https://github.com/microsoft/vscode/blob/83b7ce68a7c2496ad9a40ba370656050a9096491/src/vs/workbench/services/keybinding/browser/keybindingService.ts#L105-L120
2026-06-01 21:40:49 -05:00
Austin Horstman 26e34a99e4 hyprland: reorganize config generation
Move local render helpers closer to their generated outputs and split xdg.configFile construction into named builders.

Keep luaFiles behavior in the preceding feature commit; this only reduces duplicated predicates and makes the module layout easier to scan.
2026-06-01 21:32:10 -05:00
Austin Horstman a6a13bb0a0 hyprland: add extraLuaFiles option
Allow Lua configs to be split across managed files under XDG_CONFIG_HOME/hypr.

Treat extraLuaFiles attribute names as Lua module names, so dotted names such as lib.helpers write lib/helpers.lua while autoloading with require("lib.helpers").

Add assertions for invalid configType usage, generated hyprland.lua collisions, and duplicate resolved Lua file targets.
2026-06-01 21:32:10 -05:00
Julien GautierandAustin Horstman 5148001968 nix-search-tv: add keybindings and actions
Use the same keybindings as nix-search-tv's author used here:
https://github.com/3timeslazy/nix-search-tv/blob/main/nixpkgs.sh#L26

Also, handle case where the package is null
2026-06-01 21:23:56 -05:00
Austin Horstman c7e4087b4d zsh: rename plugin completions to functions
The option appended directories to fpath, but fpath is zsh's lookup path for all autoloadable functions, not just completion functions.

Rename the option to functions with mkRenamedOptionModule so existing completions users are migrated through the standard Home Manager deprecation path.

Link: https://github.com/nix-community/home-manager/discussions/8701#discussioncomment-16966141
2026-06-01 21:22:13 -05:00
Austin Horstman c7c139f742 zsh: escape double-quoted values
The zsh value renderer emits strings in double quotes so session variables can still expand references such as $HOME. Embedded quotes, backslashes, and backticks were not escaped, which could corrupt generated zsh code or trigger command substitution.

Escape those double-quote-sensitive characters while preserving dollar expansion for existing session-variable semantics.
2026-06-01 21:22:13 -05:00
Austin Horstman 3e17edd5e6 zsh: escape named directory hashes
Named directory hash values are rendered into zsh code. Interpolating them inside double quotes is not enough for values containing quotes, glob syntax, or other shell metacharacters.

Render both the hash name and target with shell escaping so dirHashes entries are emitted as literal zsh arguments.
2026-06-01 21:22:13 -05:00
Austin Horstman d00b16c511 zsh: escape cdpath entries
Zsh cdpath is an array. Rendering entries by joining on spaces breaks paths containing spaces, glob characters, or other shell syntax.

Use the shared shell array formatter so each configured cdpath entry is emitted as a quoted array element.
2026-06-01 21:22:13 -05:00
Austin Horstman 112a3a3783 zsh: add common plugin function paths
Nixpkgs zsh plugin packages often install functions and completions below share/zsh/plugins/<name>, share/zsh/site-functions, or share/zsh/vendor-completions rather than at the package root.

Keep the existing root path and fpath entries, but add those standard subdirectories to fpath when present so plugin-provided functions and completions are discoverable without extra per-plugin configuration.

Link: https://github.com/nix-community/home-manager/discussions/8701#discussioncomment-16966141
2026-06-01 21:22:13 -05:00
Austin Horstman 04ec113f8b zsh: load session vars from zprofile for login shells
Zsh reads .zshenv before system login startup files. On NixOS and macOS those later files can replace or reorder PATH, so home.sessionPath entries loaded from .zshenv may disappear or move behind system paths.

Keep .zshenv coverage for non-login shells, but source Home Manager session variables from .zprofile for login shells so PATH-like values are applied after system login setup.

Fixes #2991
2026-06-01 21:22:13 -05:00
Austin Horstman d0af9b8bf3 claude-code: mark hook scripts executable
Inline hooks are scripts, so write them with the executable bit set. Add NMT assertions covering default and custom config directories.
2026-06-01 16:06:08 -05:00
Mirko LenzandAustin Horstman 5a608a621b infat: allow customization of autoActivate 2026-06-01 14:38:27 -05:00
TofaaandAustin Horstman 8962c2a0f4 Translate using Weblate (Azerbaijani)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Azerbaijani)

Currently translated at 18.7% (3 of 16 strings)

Add translation using Weblate (Azerbaijani)

Add translation using Weblate (Azerbaijani)

Co-authored-by: Tofaa <tofig.adigozalov.180904@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/az/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/az/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-06-01 14:17:00 -05:00
Thierry DelafontaineandAustin Horstman 3d64f2875e podman: fix container config mount on Darwin
On Darwin, `services.podman` mounts `~/.config/containers` into the Fedora CoreOS VM, but this did not work correctly for two reasons:

* `xdg.configFile` creates symlinks into `/nix/store`, which are broken inside the guest.
* The mount target `~/\.config/containers` is not canonical on Fedora CoreOS, so Podman rejects it.

To fix this, we now:

* materialize the generated Podman config files as real files with `runCommand`
* sync them into `~/.config/containers` during activation, between `linkGeneration` and `podmanMachines`
* use the canonical guest path `/var/home/<user>/.config/containers`

Because adding the config directory to the volume mounts overrides the defaults, we also restore the default Podman volumes as the defaults for the  `machines.<machine>.volumes` attribute while still allowing full overrides.

This change does not affect Linux: `xdg.configFile` still produces store symlinks there.

Closes #9327.
2026-06-01 14:13:42 -05:00
randomscientistandAustin Horstman c53d0150e9 prismlauncher: fix string escaping and hygiene 2026-06-01 14:08:48 -05:00
home-manager-ci[bot]andAustin Horstman 16110b65b2 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:** 297 → 298 maintainers

** Added:** marijanp

Generated by: lib/python/generate-all-maintainers.py
2026-06-01 14:08:07 -05:00
Austin Horstman 7d8127d308 flake: track nixpkgs-unstable 2026-05-29 19:01:27 -05:00
Austin Horstman da8f8fcd69 ci: update release branch 2026-05-29 19:01:27 -05:00
Austin Horstman 948753061a home-manager: prepare 26.11
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-29 19:01:27 -05:00
Marijan PetričevićandMatthieu Coudron 61e2c96593 voxtype: initial module implementation 2026-05-28 13:54:55 +02:00
qb114514andRobert Helgesson d17712ec7a Translate using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Toki Pona)

Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Toki Pona)

Currently translated at 94.8% (37 of 39 strings)

Translate using Weblate (Chinese (Simplified Han script))

Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: qb114514 <GNUqb114514@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tok/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/tok/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hans/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-28 12:23:23 +02:00
Tomas RiveraandRobert Helgesson 874ae4cccf Translate using Weblate (Spanish)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Tomas Rivera <tomas.riveral@icloud.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/es/
Translation: Home Manager/Home Manager Modules
2026-05-28 12:23:23 +02:00
Austin Horstman 1a95e2efb4 home-manager: set 26.05 as stable
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-05-25 11:31:36 -05:00
home-manager-ci[bot]andAustin Horstman f4df9da960 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:** 0 maintainers
**Removed:** 1 maintainers
**Total:** 298 → 297 maintainers

** Removed:** SebTM

Generated by: lib/python/generate-all-maintainers.py
2026-05-25 11:28:34 -05:00
Austin Horstman 612bbe3b40 tests/darwinScrublist: add pimsync 2026-05-24 22:10:29 -05:00
dependabot[bot]andAustin Horstman f98332929b flake: bump nixpkgs from f83fc3c to 2991645
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `f83fc3c` to `2991645`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1...29916453413845e54a65b8a1cf996842300cd299)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: 29916453413845e54a65b8a1cf996842300cd299
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-24 22:10:29 -05:00
Austin Horstman 044c30c195 vicinae: allow npmDepsHash for extensions
Vicinae extension helpers always used importNpmLock, which reads package.json and package-lock.json during evaluation. When extension src comes from fetchgit or fetchFromGitHub, that forces Nix to realize the fetched source during eval and trips allow-import-from-derivation = false.

Accept npmDepsHash in mkExtension and mkRayCastExtension so fetched extension sources can use buildNpmPackage's fixed npm dependency fetcher path instead. Keep the existing importNpmLock behavior for local sources and document the hash requirement in the option example.
2026-05-24 08:00:36 -05:00
Austin Horstman 23703a32ef betterlockscreen: drop sebtm
https://github.com/NixOS/nixpkgs/pull/516087
2026-05-23 22:11:28 -05:00
Austin Horstman 50aaf8f284 tests/darwinScrublist: add intelli-shell 2026-05-23 22:11:28 -05:00
dependabot[bot]andAustin Horstman 64f1f8dd8d flake: bump nixpkgs from da5ad66 to f83fc3c
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `da5ad66` to `f83fc3c`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/da5ad661ba4e5ef59ba743f0d112cbc30e474f32...f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1)

---
updated-dependencies:
- dependency-name: nixpkgs
  dependency-version: f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-23 22:11:28 -05:00
Austin Horstman 6e92bf094d nix-darwin: pass DRY_RUN to activation
Ensure nix-darwin Home Manager activation preserves DRY_RUN when
invoking per-user activation through sudo.

Closes #7344
2026-05-23 19:02:40 -05:00
jayandAustin Horstman 509ed3c603 Translate using Weblate (Dutch)
Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: jay <jj8z@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translation: Home Manager/Home Manager CLI
2026-05-22 22:30:42 -05:00
Austin Horstman 928d723769 dunst: support ordered settings
Closes #8961
2026-05-20 23:13:58 -05:00
home-manager-ci[bot]andAustin Horstman 374742adb6 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:** 3 maintainers
**Removed:** 0 maintainers
**Total:** 295 → 298 maintainers

** Added:** Eveeifyeve, SunOfLife1, kpbaks

Generated by: lib/python/generate-all-maintainers.py
2026-05-20 23:11:44 -05:00
SunOfLife1andAustin Horstman 62b325b47c fish: add SunOfLife1 as a maintainer 2026-05-20 23:09:02 -05:00
SunOfLife1andAustin Horstman f9be3dd495 maintainers: add SunOfLife1 2026-05-20 23:09:02 -05:00
yilisharcsandAustin Horstman bd868f769a nushell: create if environment variable exists
on the off-chance that the user only provided environment variables,
they would not take effect. that's bad.
2026-05-19 12:52:29 -05:00
jiezhuzzzandAustin Horstman 93b932fdbb rclone: extend mount unit PATH for non-NixOS fusermount
The mount user-service set Environment=PATH=/run/wrappers/bin, which is
a NixOS-only directory. On standalone home-manager hosts running other
Linux distros the directory does not exist, and because Environment=PATH=
replaces systemd's inherited PATH, the resulting unit has no usable PATH
at all.

libfuse falls back to a hardcoded /usr/bin/fusermount3 lookup so the
helper still executes, but the eventual mount(2) syscall returns EPERM,
likely because libfuse's internal system()/popen() invocations into
mount.fuse3 fail without /bin/sh and friends on PATH. Empirically, the
EPERM goes away the moment PATH is widened to include standard Linux
locations.

Enumerate /run/wrappers/bin and /run/current-system/sw/bin alongside the
usual /usr/{local/,}{s,}bin and /{s,}bin entries. Path search order is
preserved, so the NixOS wrappers still win where they exist, and
fusermount/fusermount3 is found at /usr/bin on Ubuntu/Debian/Fedora and
similar distros.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman fd272ce76e rclone: make requiresUnit read-only on non-systemd platforms
The option only feeds the systemd config-install service; on Darwin the
launchd agent ignores it, and on any other non-Linux platform the
option is similarly inert. Marking it readOnly with a null default
when systemd is unavailable prevents users from setting a value that
would silently do nothing, and surfaces the platform constraint in the
option itself rather than only in the description.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 8da35b6f14 rclone: drop unused sidecarType arg from sidecar builders
mkLaunchdSidecar uses a strict argument pattern that did not include
sidecarType, but the call site was passing it via inherit, breaking
evaluation of any darwin config that defined a mount or serve sidecar.

Since isMount already encodes the same information as
sidecarType == "mounts", remove sidecarType from the call site and
replace the two systemd uses with isMount / !isMount.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 6cfa655a20 rclone: clarify secrets description for both Linux and Darwin 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 2f578ccd99 rclone: document macFUSE requirement and Darwin requiresUnit semantics 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 6f5d412501 rclone tests: add Darwin serve sidecar test 2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 13e1296711 rclone: add launchd mount/serve sidecar agents for Darwin
Adds the Darwin launchd mount/serve sidecar agents together with the
mount sidecar generation test.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman d4e015754e rclone: add launchd config agent for Darwin
Renders rclone.conf at login on macOS using the same secret-injection
script as the Linux systemd path. Retries on failure via
KeepAlive.Crashed=true.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman fd3a68e640 rclone tests: cross-platform basic-configuration gating
Lets basic-configuration run on both Linux and Darwin with
platform-specific assertions. Mount/serve generation tests stay
Linux-only for now.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 2b6c692c95 rclone: add rclone-sidecar-wrapper derivation
Bash helper that waits up to 5 minutes for rclone.conf to exist
before exec'ing its arguments. Will be wired into the launchd
sidecar agents in a follow-up commit.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman f99cd3d4f4 rclone: lift config-install script to a named derivation
Prepares the script for reuse by the launchd config agent. No
behavioral change: the systemd unit references the same script
content via lib.getExe.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 1060e2e170 rclone: parameterize mkRcloneSidecars over a value builder
Pure refactor in preparation for adding a launchd value builder.
The systemd output is unchanged.
2026-05-19 12:37:34 -05:00
jiezhuzzzandAustin Horstman 5df5159c78 rclone: default cache-dir to xdg.cacheHome on Darwin
Linux keeps the systemd %C/rclone cache-dir specifier. Darwin has no
%C specifier, so the cache-dir default there is
${config.xdg.cacheHome}/rclone. Behaviour on Linux is unchanged.
2026-05-19 12:37:34 -05:00
RamsesandGitHub 16663cb138 ssh: add settings.<name>.header option
The RFC 42 settings option derives the Host/Match line from the
attribute name. That makes it impossible to express headers that carry
Nix string context (e.g. Match exec referring to a store path), and
forces long computed patterns into attribute names where a stable
logical name would be nicer for dag ordering.

Add an explicit `header` option on each block that defaults to the
attribute name (with the existing Host/Match prefix detection), and
have the legacy matchBlocks shim populate it instead of the
__hmSshBlockHeader internal.
2026-05-19 09:50:05 -05:00
John LewisandAustin Horstman 866412a198 git: use absolute paths for git-lfs in config
This allows the git config to be used by programs that have git
installed natively and where other programs access git but don't have
the nix path available, so cannot access git-lfs.
2026-05-18 21:21:03 -05:00
Thierry DelafontaineandRobert Helgesson 736c2084ea podman: ensure openssh is available in PATH
Specifically, the machine initialization command `podman machine init`
requires `ssh-keygen` to generate keys, but `openssh` may not be
available in the system `PATH` by default. This change ensures
`openssh` is available before attempting to create podman machines.

Resolves #9325
2026-05-19 00:24:51 +02:00
Austin HorstmanandRobert Helgesson f968ed5961 syncthing: support legacy config dir
Syncthing still supports existing Linux installations that keep config.xml under XDG_CONFIG_HOME/syncthing. Resolve the runtime directory from the generated scripts so Home Manager waits on and copies keys into the existing legacy directory when no state-dir config exists.

Fixes #6933
2026-05-19 00:17:05 +02:00
Austin HorstmanandRobert Helgesson 3ee415b292 gnome-shell: use user-themes extension
Use the standalone User Themes extension package when enabling GNOME Shell theme support instead of installing the full gnome-shell-extensions package.

Closes #9171
2026-05-19 00:11:21 +02:00
b0e2077789 eww: added improvements
Co-authored-by: Dixon Sean Low Yan Feng <dixonseanlow@protonmail.com>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2026-05-18 23:42:01 +02:00
Austin Horstman fab3fd7327 ssh: fix ssh enableDefaultConfig description
Text wasn't rendering properly in the generated docs.
2026-05-18 12:25:51 -05:00
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
nesciasandRobert Helgesson bc63bedcab email: add warning to documentation of useStartTls 2026-05-11 23:15:25 +02:00
David Sierra DiazGranadosandMatthieu Coudron 85ba629c79 rofi: change configPath type to nonEmptyStr 2026-05-11 14:45:01 +02:00
Vincent GatineandMatthieu Coudron c0729fa3f0 kanshi: Remove myself from the maintainers
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.
2026-05-11 14:04:26 +02:00
ketalandMatthieu Coudron dcebe66f95 atuin: precompute fish init script 2026-05-10 22:22:32 +02:00
davidaf3andAustin Horstman 2f41903703 mako: allow null package
Make `services.mako.package` nullable and add the corresponding checks.
2026-05-09 17:31:04 -05:00
cinerealandRobert Helgesson fdb2ccba9d modular-services: document ghostunnel as a service that was not written for use as a user-level service
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 67625b8c31 modular-services: add php-fpm as a service meant to run as a user
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 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
cinerealandRobert Helgesson 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
cinerealandRobert Helgesson 1aabcdd470 modular-services: simple example using mpd
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson db468b4822 modular-services: make configdata test use assertFileContent
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson f77079ee8a modular-services: rename system-services -> home-services
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson cdea7d89f5 modular-services: rename home-manager -> Home Manager
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
cinerealandRobert Helgesson 7eb987d1a4 manual: fix link in modular services section
Signed-off-by: cinereal <cinereal@riseup.net>
2026-05-08 15:56:35 +02:00
Andy ZhangandBruno BELANYI e4419d3123 zed-editor: add zh4ngx as maintainer 2026-05-07 09:59:16 +01:00
Andy ZhangandBruno BELANYI 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
ketalandMatthieu Coudron 75fac36332 direnv: avoid duplicate fish hook 2026-05-07 01:42:54 +02:00
davidaf3andMatthieu Coudron 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èsandRobert Helgesson 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'onandRobert Helgesson 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
nesciasandRobert Helgesson 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
shimeokiandMatthieu Coudron d987617879 generic-linux-gpu: don't pass kernel 2026-05-05 15:46:31 +02:00
Benedikt RipsandAustin Horstman 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
JessandMatthieu Coudron 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 FernandezandMatthieu Coudron 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]andMatthieu Coudron 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
cinerealandMatthieu Coudron 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 VermaandMatthieu Coudron 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
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
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
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 OkadaandAustin Horstman 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 OkadaandAustin Horstman 1b4806c50b news: add news entry for programs.man.{man-db,mandoc} 2026-05-03 18:41:26 -05:00
Thiago Kenji OkadaandAustin Horstman 7914f8d7d7 tests/man: add tests for man-db/mandoc 2026-05-03 18:41:26 -05:00
Thiago Kenji OkadaandAustin Horstman f02e422b3e man: add mandoc and man-db option 2026-05-03 18:41:26 -05:00
Kelton BassingthwaiteandMatthieu Coudron 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 MartensandAustin Horstman 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
MeowandAustin Horstman 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]andAustin Horstman fdf4d549ed flake: bump nixpkgs from 68d8aa3 to 1c3fe55
Bumps [nixpkgs](https://github.com/NixOS/nixpkgs) from `68d8aa3` to `1c3fe55`.
- [Commits](https://github.com/NixOS/nixpkgs/compare/68d8aa3d661f0e6bd5862291b5bb263b2a6595c9...1c3fe55ad329cbcb28471bb30f05c9827f724c76)

---
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 ZhangandAustin Horstman 0379e433a8 delta: configure as pager for git blame 2026-05-02 19:01:54 -05:00
Robin StummandAustin Horstman 561bd67464 wlsunset: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin StummandAustin Horstman a53beb6353 foot: require WAYLAND_DISPLAY env var 2026-05-02 17:20:47 -05:00
Robin StummandAustin Horstman 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
coolGiandAustin Horstman 7c28dd52cb macchina: fix palette spacing config being missing 2026-05-02 09:32:34 -05:00
Utkarsh GuptaandAustin Horstman 9cb587ade2 launchd: use bootout --wait to wait for the service to stop 2026-05-01 18:52:52 -05:00
blkgooseandBruno BELANYI 5c1b74905c keynav: add tests 2026-05-01 19:25:59 +01:00
blkgooseandBruno BELANYI d955574ea4 keynav: add configuration option 2026-05-01 19:25:59 +01:00
Austin Horstman edf3f59954 github-copilot-cli: add lsp server support 2026-05-01 12:40:55 -05:00
Austin Horstman feda41500e github-copilot-cli: add context, agents, and skills
Add support for managing Copilot CLI global instructions via programs.github-copilot-cli.context, written to copilot-instructions.md under COPILOT_HOME.

Also manage custom agents and skills from inline definitions, file paths, and directories, with focused tests and a news entry covering the new options.
2026-05-01 12:06:19 -05:00
home-manager-ci[bot]andAustin Horstman 9a3efa079c 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:** 290 → 292 maintainers

** Added:** 0xdsqr, ojsef39

Generated by: lib/python/generate-all-maintainers.py
2026-05-01 11:39:03 -05:00
Austin Horstman d181e6ac2a treewide: support store path strings for skills dirs
Filtered or generated skill directories can evaluate to Nix store path
strings rather than path values. The previous top-level skills handling
only used lib.isPath, so those directory values fell through instead of
being linked or expanded.

Treat store-path strings as path-like for the top-level skills option in
Codex, Claude Code, Gemini CLI, and OpenCode, matching the behavior
already used for individual skill entries. Add NMT coverage for
store-path-string skill directories.
2026-05-01 09:54:56 -05:00
Ludovic PagèsandAustin Horstman 94db028632 Translate using Weblate (French)
Currently translated at 100.0% (16 of 16 strings)

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/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-01 08:39:56 -05:00
TroyandAustin Horstman f92dc91642 Translate using Weblate (Arabic)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Arabic)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Troy <radiohotline@disroot.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ar/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ar/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-05-01 08:39:56 -05:00
Austin Horstman e6613dd625 codex: keep managed skills under CODEX_HOME
Codex still loads skills from $CODEX_HOME/skills, so the module should keep managing skills there instead of switching to .agents/skills.

This keeps the module aligned with current Codex behavior and avoids coupling generic agents state to the Codex module.
2026-05-01 08:10:28 -05:00
Austin Horstman 899c08a15b github-copilot-cli: fix mcp integration
MCP servers require the args in json, even if not configured.
2026-04-30 19:17:57 -05:00
0xdsqrandAustin Horstman 2e54a938cd exo: add module 2026-04-29 22:07:11 -05:00
0xdsqrandAustin Horstman 7a45713b5d maintainers: add dsqr 2026-04-29 22:07:11 -05:00
Josef HoferandAustin Horstman 503480e513 github-copilot-cli: add module 2026-04-29 16:37:13 -05:00
Josef HoferandAustin Horstman f92e976f40 maintainers: add ojsef39 2026-04-29 16:37:13 -05:00
Alex MartensandAustin Horstman 8c8e5389e7 tldr-update: add dependency on network-online 2026-04-29 10:35:04 -05:00
N4CH723HR3RandAustin Horstman d3b4e4b1bd services.walker: fix paths for walker v2 2026-04-28 22:42:54 -05:00
Austin Horstman af59809e94 thunderbird: add language packs and policies
Install Thunderbird language packs through enterprise policies so Home
Manager can use Mozilla's release-hosted XPIs without vendoring or
hashing them.

This also exposes programs.thunderbird.policies for configuring
supported Thunderbird enterprise policies directly and wraps the
configured Thunderbird package with merged extraPolicies.
2026-04-28 16:27:37 -05:00
Austin Horstman b1b08eeaff thunderbird: clarify external gnupg
Clarify that this option only enables Thunderbird external GnuPG
integration and does not import or accept public keys in the Thunderbird
OpenPGP key manager.
2026-04-28 16:27:37 -05:00
Austin Horstman c357182707 thunderbird: support ews accounts
Generate the Thunderbird identity and outgoing server preferences
needed for explicit accounts.email.accounts.<name>.ews accounts,
and add an outlook.office365.com-ews flavor preset for Office365
Exchange accounts.

Closes #8011
2026-04-28 16:27:37 -05:00
Austin Horstman c2f07e2dca thunderbird: default office365 to oauth2
Default Office365 Thunderbird IMAP/SMTP settings to OAuth2 while
keeping the existing outlook.office365.com flavor on IMAP and SMTP.
2026-04-28 16:27:37 -05:00
Austin Horstman ae6aeb9dbc thunderbird: map account auth methods
Closes #5137
2026-04-28 16:27:37 -05:00
Austin Horstman 8ec5a714db rofi: allow list values in extraConfig 2026-04-28 10:19:50 -05:00
Austin Horstman 9821396285 thunderbird: add msg filter rules description 2026-04-28 09:39:47 -05:00
Austin Horstman 4f77c535e0 thunderbird: html signature support 2026-04-28 09:39:47 -05:00
Mateusz KubicaandAustin Horstman dd6a8772d4 qalculate: add autocalc to the example
I believe the `-s autocalc` is very popular option. However, in the
setting file, it's called `calculate_as_you_type`. I propose adding it
to the exmaple config, to make it easier to discover.
2026-04-28 08:35:40 -05:00
JessandAustin Horstman 79f8430e7d restic: unset systemd PrivateTmp option
This option works with the NixOS version of the module as host services
have different user namespace permissions to user services. Programs
like ssh get confused when certain config files aren't owned by root.
2026-04-28 08:33:38 -05:00
Jennings ZhangandAustin Horstman c114054053 gurk: change config signal_db_path to data_dir 2026-04-27 23:15:11 -05:00
Austin Horstman a28e848a01 chromium: address plasma integration review
Hide the Plasma integration options on non-Linux platforms so the Chromium module does not need fallback access for platform-specific options.

Switch the integration package option to mkPackageOption and document the kdePackages default path with pkgsText. Also tighten the focused NMT test so Darwin does not set the Linux-only option while still asserting that no native host file is produced there.
2026-04-27 11:45:48 -05:00
Andrew MarshallandAustin Horstman d45a13f96c {home-environment,bash,zsh}: support ignoring null sessionVariables
Some applications consider environment variables to be “true” simply if
they are set. Previously it was not possible to have a var set and later
override (e.g. with `lib.mkForce`) to *unset* it. This makes that
possible. The filtering must be done in the `exportAll` as attempting to
do it in the option’s `apply` causing infinite recursion (likely why it
is `lazyAttrsOf`).
2026-04-27 11:20:51 -05:00
Andrew MarshallandAustin Horstman 62f445c13c {bash,zsh}: align sessionVariables type
This matches `home.sessionVariables`.
2026-04-27 11:20:51 -05:00
Andrew MarshallandAustin Horstman 466d5909eb tests: remove unused file
Missing change from e44faef21c.
2026-04-27 11:20:51 -05:00
KiriaandAustin Horstman b408d49b84 syncthing: fix the application of allProxy
`systemd.user.services.<name>.Service.Environment` should be of type `(list of string) or string convertible to it`
2026-04-27 08:03:20 -05:00
home-manager-ci[bot]andAustin Horstman e97a9fd6a6 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:** 1 maintainers
**Total:** 289 → 290 maintainers

** Added:** isaacST08, s0racat

** Removed:** pinage404

Generated by: lib/python/generate-all-maintainers.py
2026-04-27 08:02:43 -05:00
Austin Horstman 7f8bbc93d6 mkFirefoxModule: document impermanence extensions
Clarify that extensions.autoDisableScopes only handles manual extension approval. Firefox still owns mutable extension runtime state, so impermanent setups must persist the relevant profile state or configure supported extension settings declaratively.

Closes #6398
2026-04-26 21:59:15 -05:00
Austin Horstman c97d921373 mkFirefoxModule: add firefox devedition example
Help explain profile name requirement for devedition. Firefox won't load
profile unless the name matches.
2026-04-26 21:47:58 -05:00
Austin Horstman 4883af6edb syncthing: avoid init for default gui address
The gui address option always has a default value, so #8644 ended up
making syncthing-init run for every enabled Syncthing setup.

Treat the default gui address as unset for updater purposes so the init
unit is only generated when Home Manager is actually managing Syncthing
configuration. Add regression tests for the default and explicit
guiAddress cases.
2026-04-26 19:44:29 -05:00
jae bellerandAustin Horstman e82d4a4ecd copyApps: workaround for macOS 26.3 signature bug
macOS throws a code signing error when the modification time on an app
is set to 1. This seems to have started on macOS 26.3, but I'm not fully
sure. Hitting this is uncommon. macOS caches signatures, so apps that
were opened prior to updating macOS continue to work. I ran into this
because Ghostty 1.3.0 added a new signature to their bundle.
2026-04-26 15:52:06 -05:00
c55c498c9a targets/darwin: set TERMINFO_DIRS
Make terminfo descriptions from Home Manager-installed packages (e.g.
kitty, alacritty) discoverable on macOS by exporting TERMINFO_DIRS via
hm-session-vars.sh. macOS has no systemd/environment.d equivalent, so
the shell session file is the available entry point.

Closes nix-community/home-manager#2918 for macOS.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 10:44:45 -05:00
Ludovic PagèsandAustin Horstman 0add2d439a Translate using Weblate (French)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (French)

Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Ludovic Pagès <nanucq@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-26 09:59:09 -05:00
NikodemandAustin Horstman 7cdccd0db9 Translate using Weblate (Polish)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Polish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Nikodem <35564466+x1pper@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-26 09:59:09 -05:00
Austin Horstman c968134e06 floorp: fix Darwin app bundle name
The package attribute is floorp-bin, but the macOS bundle is Floorp.app. Allow Firefox-family modules to override the derived Darwin app name so Floorp paths match the real package layout.
2026-04-26 09:55:25 -05:00
Austin Horstman 5bfbc1f6ca tests: fix neovim program test 2026-04-26 09:55:25 -05:00
Austin Horstman 8a2fdaf6b4 tests: fix firefox program tests 2026-04-26 09:55:25 -05:00
Austin Horstman 00b9fac376 tests: buildbot tests enableBig
Keep missing test failures due to them not being included in CI. Now
that we have a buildbot nix store, there's little reason to not include
them in our CI.
2026-04-26 09:55:25 -05:00
Gutyina GergőandAustin Horstman 3e4b311842 onlyoffice: fix settings option example type 2026-04-26 09:53:06 -05:00
Tae SongandRobert Helgesson 38bf0202ca files: change target type to disallow empty strings 2026-04-26 11:47:55 +02:00
Austin Horstman 6f59831b23 ci: only parse/format on linux
Will not differ between platforms, use the faster ci runner for these
checks Also fix missing parse condition in install-nix-action
2026-04-25 16:14:15 -05:00
Austin Horstman b7d6241c2a rofi: fix nested extraConfig rendering 2026-04-25 16:03:43 -05:00
Austin Horstman ed2ee7b313 tests: enable more tests on darwin
Several programs / modules support darwin but weren't being tested on
darwin.
2026-04-25 15:59:45 -05:00
Austin Horstman 026e210389 firefox: fix legacy configPath default
The deferred state-version warning helper keeps .default on the current branch so warnings can be emitted from config. Firefox passed that .default through as the Linux configPath default, which made home.stateVersion < 26.05 still use the XDG path.

Use effectiveDefault for the platform default so legacy state versions keep .mozilla/firefox, while preserving the warning. Adjust the config-path tests to cover explicit legacy and XDG paths.
2026-04-25 12:34:58 -05:00
electriaandAustin Horstman 5826802354 modules/nix-search-tv: add run and shell actions 2026-04-24 22:01:46 -05:00
Austin Horstman ffbd94a1c9 tests: support override-inputs in test runner
Help resolve issue reported a while ago about override inputs not being
respected. Allows testing against a different nixpkgs revision easier.
2026-04-24 13:06:58 -05:00
Austin Horstman 6012cf1fed mkFirefoxModule: make profile extensions extensible
Restore nested option extensibility for
`programs.firefox.profiles.<name>.extensions` by keeping it as a plain
submodule.

This removes the deprecated `programs.firefox.profiles.<name>.extensions
= [ ... ]` shorthand. Add-ons must now be declared with
`programs.firefox.profiles.<name>.extensions.packages`, while
declarative settings remain under `extensions.settings`.

Add a regression test for downstream `extensions.*` option extension and
a news entry documenting the migration.
2026-04-23 23:19:12 -05:00
Austin HorstmanandHeitor b869d6cadb firefox: default configPath to XDG on 26.05
Use `lib.hm.deprecations.mkStateVersionOptionDefault` to keep the legacy `.mozilla/firefox` default for existing configurations while switching new Linux configurations to `"${config.xdg.configHome}/mozilla/firefox"`.

Add focused tests for the legacy and XDG defaults plus a news entry describing the transition.

Closes #8200.
Supersedes #8716 and the earlier attempt in #8672.

Co-authored-by: Heitor <44377258+HeitorAugustoLN@users.noreply.github.com>
2026-04-23 22:58:59 -05:00
Austin Horstman 4bf1f0bcd1 mkFirefoxModule: reject container id 0
Set the default Firefox container id to 1 and reject ids outside the
supported 1..4294967293 range.

Firefox reserves userContextId = 0 for the default, non-container
context:
- nsIScriptSecurityManager::DEFAULT_USER_CONTEXT_ID = 0:

https://searchfox.org/firefox-main/source/caps/nsIScriptSecurityManager.idl
- nsIPrincipal documents that the default userContext returns
DEFAULT_USER_CONTEXT_ID:

https://searchfox.org/firefox-main/source/caps/nsIPrincipal.idl#1135-1147
- Mozilla review discussion also distinguishes default context 0 from
public identities:
  https://bugzilla.mozilla.org/show_bug.cgi?id=1337964#c7

Also cover the lower bound with a dedicated Firefox container test and
update the default container fixture.
2026-04-23 22:07:30 -05:00
Austin Horstman d035caf3ac mkFirefoxModule: serialize path prefs as strings
Treat Nix paths like plain string preferences when generating user.js so
values such as browser.bookmarks.file are not JSON-quoted twice.

Add a regression case in the Firefox settings test for a path-valued
preference.
2026-04-23 22:06:37 -05:00
Miles WirhtandGitHub 5bba6a1e02 flashspace: init module 2026-04-24 00:16:15 +00:00
Miles WirhtandGitHub ae97a15455 rectangle: init module 2026-04-23 19:06:39 -05:00
Austin Horstman 99814d2a67 fcitx5: capitalize boolean settings
Fcitx5 accepts only exact True/False values for typed boolean options.

Normalize booleans before generating fcitx5 config files so Home Manager emits values that upstream will parse instead of resetting to defaults.
2026-04-23 18:12:37 -05:00
Austin Horstman bb0aaf91cc tests: split stub derivation attrs from methods
Apply non-function stub attributes through overrideAttrs so derivation metadata and wrapper-facing fields remain visible to downstream consumers.

Keep function-valued attributes like override on the outer attrset so they are not serialized into derivations and do not break unrelated tests.
2026-04-23 18:12:20 -05:00
Miles WirhtandGitHub 5a9efa93c5 qalculate: init module 2026-04-23 17:27:29 -05:00
Austin Horstman e09259dd2e git: clean up literalExpression 2026-04-23 12:13:58 -05:00
Austin Horstman 30db803c98 git: support ordered settings fragments
Allow programs.git.settings to keep its existing attrset shorthand while also accepting an ordered list of fragments for repeated sections and order-sensitive config. Cover the new list form with a focused Git config snapshot test.
2026-04-23 12:13:58 -05:00
Perchun PakandAustin Horstman 6837e0d6c5 wayle: fix example 2026-04-23 08:18:13 -05:00
Austin Horstman 667b3c4732 home-manager-auto-upgrade: state-version gate preSwitchCommands
Migrate the preSwitchCommands default to
lib.hm.deprecations.mkStateVersionOptionDefault instead of using a
null sentinel.

Keep the legacy flake update behavior for older state versions and add
tests for the explicit, legacy, and current flake paths.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 2706309aeb news: add home-manager-auto-upgrade options entry
Document the new flags and preSwitchCommands options for the
auto-upgrade service.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 0d1314d6fe home-manager-auto-upgrade: clarify option documentation
Improve the option descriptions for enable, useFlake, flakeDir,
and the systemd timer format.
2026-04-22 19:34:24 -05:00
TakumiandAustin Horstman 8f259af671 home-manager-auto-upgrade: add switch flags and pre-switch commands
Add a flags option for passing extra arguments to home-manager
switch and a preSwitchCommands option for running commands before the
switch.

Preserve the legacy flake update behavior behind a deprecation warning,
clean up the shell script, and cover the flake path in tests.
2026-04-22 19:34:24 -05:00
soracatandAustin Horstman 9c7dcc55bd home-manager-auto-upgrade: set maintainer to soracat 2026-04-22 19:34:24 -05:00
soracatandAustin Horstman ad16ee43a8 maintainers: add soracat 2026-04-22 19:34:24 -05:00
Perchun PakandAustin Horstman 508daf831a equibop: init 2026-04-22 15:50:22 -05:00
Perchun PakandAustin Horstman 6a1992acd9 mkVesktopLikeModule: init 2026-04-22 15:50:22 -05:00
83b3ecce2e wayle: add module
Co-authored-by: Perchun Pak <github@perchun.it>
2026-04-22 15:26:03 -05:00
Isaac Shiells ThomasandAustin Horstman 78bf0fe29d maintainers: add isaacST08 2026-04-22 15:26:03 -05:00
Thierry DelafontaineandAustin Horstman f8e57407f4 proton-pass-agent: adapt the services to match the documentation
See https://protonpass.github.io/pass-cli/commands/ssh-agent/#setting-ssh_auth_sock-automatically-on-login section 'Starting the daemon automatically on login'.
2026-04-22 15:25:18 -05:00
isabelandAustin Horstman d1759673d7 tests/pipewire: test for LADSPA 2026-04-22 15:24:44 -05:00
isabelandAustin Horstman 38d4260bc8 pipewire: add LADSPA plugin path handling 2026-04-22 15:24:44 -05:00
Austin Horstman d79c987e65 chromium: install plasma browser integration
Reuse existing plasmaSupport option to install browser integration
package.
2026-04-22 14:14:13 -05:00
Austin Horstman f9d2b2da81 chromium: document finalPackage
Clarify that finalPackage is the customized browser derivation after Home Manager overrides and that it can be referenced from other Home Manager options.
2026-04-22 12:30:51 -05:00
Austin Horstman ca6fd05c13 tests/chromium: cover brave package routing
Add a regression test showing that programs.chromium.package = brave writes extension metadata into Brave's config directory rather than Chromium's.
2026-04-22 12:30:51 -05:00
Austin Horstman 5d947202cf chromium: document ungoogled extensions
ungoogled-chromium does not reliably support the default Chrome Web Store update URL workflow, but Home Manager already supports local CRX descriptors via crxPath and version.

Document that Linux users should prefer that path and add a regression test covering pkgs.ungoogled-chromium.
2026-04-22 12:30:51 -05:00
Austin Horstman 14b81a1630 chromium: support google-chrome extensions on Darwin
Allow the Google Chrome browser modules to manage Chrome Web Store extensions on Darwin while keeping Linux explicit via assertions, since Home Manager cannot write Chrome's system-managed extension directories there.

Add focused regression tests for the Linux and Darwin branches, update the existing google-chrome coverage, and add a news entry.
2026-04-22 12:30:51 -05:00
Austin Horstman 36f1bd655f tests/chromium: add more test coverage 2026-04-22 12:30:51 -05:00
Austin Horstman c5ceab9d94 tests/darwinScrublist: add chromium packages 2026-04-22 12:30:51 -05:00
Austin Horstman f4e008848a chromium: expose google-chrome dictionaries and native hosts
Keep the proprietary Chrome extensions option removed, but make dictionaries and nativeMessagingHosts available for the explicit google-chrome, google-chrome-beta, and google-chrome-dev modules.

Add a focused regression test covering dictionary and native host files for all three browser namespaces.
2026-04-22 12:30:51 -05:00
Austin Horstman c95595f732 chromium: fix native host paths for google-chrome
Follow the configured browser package when choosing NativeMessagingHosts paths so chromium overrides to google-chrome install manifests in Chrome's config directory. Keep extension and dictionary handling gated for proprietary Chrome, but always generate native messaging hosts, and cover the override case with a focused regression test.
2026-04-22 12:30:51 -05:00
Alex EpeldeandGitHub 936d579f53 obsidian: no IFD, use RFC42 settings
The current communityPlugins and themes implementations do IFD, slowing down evaluation of user configurations. Instead of reading the plugin IDs and theme names from the package outputs' manifest.json, I have made it so the plugin ID / theme name is read from the package's passthru if possible.

Using (pkgs.formats.json { }).type gives better type checking than nullOr (attrsOf anything).
2026-04-22 10:56:48 -05:00
Rachit Kumar VermaandGitHub 875f2fcbb1 kitty: add option to configure $XDG_CONFIG_HOME/kitty/diff.conf
Add option to configure '$XDG_CONFIG_HOME/kitty/diff.conf'.
See sw.kovidgoyal.net/kitty/kittens/diff for more documentation.
2026-04-22 10:55:50 -05:00
Alex EpeldeandAustin Horstman f2b06589e3 thunderbird: add generic per-calendar settings option 2026-04-22 10:49:55 -05:00
Austin Horstman afd5607108 rofi: support nested extraConfig sections
Render flat extraConfig entries inside the configuration block and nested attrsets as top-level Rasi sections so mode-specific and filebrowser configuration can be expressed directly in Nix. Fold the reported nested cases into the existing valid-config test instead of keeping issue-specific test files.
2026-04-22 09:59:56 -05:00
Austin Horstman c77ebe06b4 khal: honor explicit default calendar
Closes #9040
2026-04-22 09:59:17 -05:00
Utkarsh GuptaandAustin Horstman 5d5640599a atuin: fix logs.dir override for preferXdgDirectories 2026-04-21 08:25:32 -05:00
Austin Horstman 7076272297 ci: bound runtime and force sandboxed builds
The test workflow currently relies on GitHub Actions defaults for both
job lifetime and Nix sandboxing. That is acceptable when everything
behaves, but it makes failures noisier: a hung job can run indefinitely
until the platform kills it, and the macOS leg inherits a weaker sandbox
default than Linux.

Add explicit timeout-minutes values to the lightweight change-detection
job and the main test matrix job, and pass sandbox = true through
install-nix-action. The sandbox setting is primarily about making the
macOS runner match the stricter execution model we already expect on
Linux.
2026-04-21 08:24:02 -05:00
Austin Horstman 6658732d33 ci: drop default workflow token permissions
The test workflow only needs to evaluate and build repository code. It
does not write statuses, labels, comments, or pull request metadata, so
keeping GitHub's default token scope is broader than necessary.
2026-04-21 08:24:02 -05:00
Austin Horstman 67f2a145a9 ci: run both parse checks in one keep-going step
The parse workflow currently runs the nix and Lix checks as two separate
steps. If the first parser fails, GitHub Actions stops the job before
the second parser runs, which hides useful failure information and
weakens the signal from the new parse gate.

Collapse the two steps into a single invocation that builds both parse
derivations with --keep-going. This keeps the job surface small,
preserves the dedicated parse trigger, and ensures both parser variants
are attempted on every relevant run.
2026-04-21 08:24:02 -05:00
c555a4a34a ci: add nix and lix parse checks
Co-authored-by: Wolfgang Walther <walther@technowledgy.de>
Co-authored-by: piegames <git@piegames.de>
2026-04-20 16:46:54 -05:00
Austin Horstman c81775b640 xdg-autostart: allow empty readonly autostart
Create the readonly autostart link even when no managed entries are
present, so the option behavior matches its documentation and stays
covered by a focused regression test.
2026-04-20 11:12:32 -05:00
Austin Horstman 56b4526cfd nixos: guard home.uid with tryEval
Use tryEval when reading users.users.<name>.uid so configured NixOS
UIDs still propagate to home.uid while nix-darwin users without a
UID do not trigger a no-value-defined eval error.

Refs #8351
2026-04-20 10:58:30 -05:00
Austin Horstman 1072f064e2 fish: clarify setCursor option mapping
Explain that the Home Manager option name differs from fish's CLI flag
so users can map setCursor to abbr --set-cursor without guessing.
2026-04-20 10:26:09 -05:00
Bruno BELANYIandAustin Horstman 78ceb2dd5c rbw: do not serialize 'null' settings 2026-04-20 10:07:54 -05:00
Austin Horstman 0a8d50edf2 docs/nix-flakes: clarify extraSpecialArgs usage
Explain when to use extraSpecialArgs versus _module.args in the flake setup guides, and keep the generated standalone fixture aligned with the updated template output.
2026-04-20 09:36:51 -05:00
Bruno BELANYIandAustin Horstman 4bfce11ea8 xdg-user-dirs: add 'projects' 2026-04-20 00:08:02 -05:00
Bruno BELANYIandAustin Horstman 12ceb3974a tests/xdg-user-dirs-*: do not use 'PROJECTS'
Use `XDG_CUSTOM_DIR` instead, as it is unlikely to be added to the spec.
2026-04-20 00:08:02 -05:00
Austin Horstman 1ab3a4b78e test(tests): add --big-only filter
Keep the default test list broad so chunk targets remain visible
for CI debugging.

The new flag narrows module test discovery to cases gated by
test.enableBig when you want to focus on unique big test cases.
2026-04-19 23:49:40 -05:00
Austin Horstman 29f355a733 tests: decode non-UTF-8 nix build output
Closes #9007
2026-04-19 22:51:34 -05:00
Austin Horstman b85e8fff94 lib/deprecations: suppress no-op state-version warnings
Closes #9045
2026-04-19 22:48:45 -05:00
Austin Horstman 1e9bdc6d35 swaync: update style documentation link
Closes #9098
2026-04-19 22:47:50 -05:00
SamandBruno BELANYI 5b56ad02dc modules/helix: fix pkill line on Darwin
On Darwin the previous ordering resulted in `-U` being parsed as a flag
with the value `SR1`. Moving the signal flag to the start of the command
fixes this issue, and pkill from procps doesn't care.
2026-04-19 02:35:31 +01:00
Veselin IvanovandGitHub 565e534920 neovim: expose sideloadInitLua option to control the generation of init.lua
Add option to control generation of `init.lua` to allow opting out of the automatic generation. Add news entry about changed behavior and new option.
2026-04-17 14:27:57 -05:00
K900andGitHub dee1c38cf0 modules/helix: fix incorrect string escape 2026-04-17 14:11:03 -05:00
Rachit Kumar VermaandGitHub 08b283aeda yazi: add option for {file}$XDG_CONFIG_HOME/yazi/vfs.toml
Add option to configure the vfs.toml file in yazi
See yazi-rs.github.io/docs/configuration/vfs for more details
2026-04-17 13:28:40 -05:00
Luk-ESCandAustin Horstman a0dab60284 helix: reload config with USR1 signal
automatically reload config files onChange by sending USR1 to running processes
2026-04-17 13:27:28 -05:00
betaboonandAustin Horstman 8941f29d42 opencode: add extraPackages option 2026-04-17 13:26:53 -05:00
Thiago Kenji OkadaandAustin Horstman 6ddeb76a5d zsh: expose internal lib 2026-04-17 13:20:50 -05:00
AliaksandrandMatthieu Coudron d401492e2a files: prefix relative path literal with './'
Fixes the `warn-short-path-literals` warning:

  warning: relative path literal 'lib/file-type.nix' should be
  prefixed with '.' for clarity

Nix recommends prefixing relative path literals with './' to
distinguish them from other path forms.
2026-04-16 23:01:46 +02:00
Ihar HrachyshkaandGitHub 3c7524c683 treewide: set git pager for specific commands, not for core.pager
Setting `core.pager` may result in issues like swallowed `git grep` results. 
To avoid this, apply pagers to specific commands where we expect `diff`-ish output only. 
Use a common helper to set pager for all modules that configure it.
2026-04-14 11:31:44 -05:00
Austin Horstman 8a423e444b ci: adjust flake lock update pr titles 2026-04-13 22:16:51 -05:00
Austin Horstman 78f7d3d6ab git: ignore deadnix treewide blame 2026-04-13 22:16:51 -05:00
Austin Horstman eff7ee75f0 ci: add release branch label
Make it more obvious when someone is targeting a release branch.
2026-04-13 22:16:51 -05:00
Jamie MageeandAustin Horstman 5843fa302b ci: migrate to Dependabot for nix flake updates 2026-04-13 22:03:14 -05:00
Benedikt RipsandAustin Horstman 970cd853bf hyprland: use previously unused lambda parameter 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman 5a728e434d tests/integration: simplify pkgs.linkFarm usage 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman a93d80bcec treewide: remove unused attrs patterns 2026-04-13 22:02:40 -05:00
Benedikt RipsandAustin Horstman 71402c5df3 treewide: mark unused lambda arguments 2026-04-13 22:02:40 -05:00
home-manager-ci[bot]andAustin Horstman 2de7205ce6 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:** 1 maintainers
**Total:** 289 → 289 maintainers

** Added:** yaaaarn

** Removed:** Vortriz

Generated by: lib/python/generate-all-maintainers.py
2026-04-13 16:10:41 -05:00
betaboonandAustin Horstman 287f84846c opencode: align tools directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboonandAustin Horstman 26c9d5dca1 opencode: align agents directory with upstream documentation 2026-04-12 21:14:59 -05:00
betaboonandAustin Horstman a5e824c862 opencode: align commands directory with upstream documentation 2026-04-12 21:14:59 -05:00
Adam DinwoodieandRobert Helgesson 49088dc2e7 syncthing: rewrite credential management
Syncthing's web GUI will only require login credentials if both a
username and password are configured.  Expose both of these through a
new services.syncthing.guiCredentials submodule, and require migration
to the new configuration to catch anyone who has only configured a
password using the old services.syncthing.passwordFile option.

Additionally, make sure that the syncthing-init script to set
configuration using the API is enabled if there is any such
configuration that needs setting.  Without this fix, configuration that
was set using the API, notably guiCredentials/passwordFile and
guiAddress, would not be set at all if there wasn't also something to
configure under services.syncthing.settings.

Co-authored-by: Robert Helgesson <robert@rycee.net>
2026-04-12 23:41:45 +02:00
Rosario PulellaandRobert Helgesson adc677d02e kakoune: remove unused options 2026-04-12 23:05:36 +02:00
Felix StuppandAustin Horstman f6196e5b4d oh-my-zsh: Fix plugins escapeShellArgs use 2026-04-12 12:33:37 -05:00
Robert HelgessonandAustin Horstman 7832a664c4 feedr: fix enable option description
Also minor stylistic fixes.
2026-04-12 10:58:28 -05:00
Vinicius DeolindoandAustin Horstman 30ca31c87a news: add entry about the unification of agents "context" and "skills" 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 16e50c6ffe gemini-cli: unify context description and let skills be a directory 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman d6d2468b88 opencode: migrate rules to context 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 447796d64a codex: migrate custom-instructions to context 2026-04-12 10:53:57 -05:00
Vinicius DeolindoandAustin Horstman 13df3b4e44 claude-code: migrate memory to context & skills{,Dir} to skills 2026-04-12 10:53:57 -05:00
yaaaarnandRobert Helgesson ffa740c0df syshud: add module
PR #9075
2026-04-12 17:45:41 +02:00
Felix StuppandAustin Horstman 89b2d575ee zsh/oh-my-zsh: improve escaping of shell arguments 2026-04-12 10:42:19 -05:00
Felix StuppandAustin Horstman 46ecfa22a6 antidote: improve escaping of shell arguments & use pkgs.writeText 2026-04-12 10:42:19 -05:00
Pol DellaieraandAustin Horstman adf6e3aafb feedr: add module
Feedr is a modern terminal-based RSS/Atom feed reader with advanced filtering, categorization, and search capabilities. It supports both RSS and Atom feeds with compression handling and provides an intuitive TUI interface.
2026-04-12 10:39:55 -05:00
Michael HoangandAustin Horstman fd22058b43 copyApps: fix linkApps migration
Prior to this commit, the migration would not run as the condition in `ourLink`
would not be fulfilled by the symlink created by `linkApps`.
2026-04-12 10:39:04 -05:00
Michael HoangandAustin Horstman 23d85301a5 copyApps: skip check when migrating from linkApps 2026-04-12 10:39:04 -05:00
David ChocholatýandAustin Horstman 44111a5c6f jjui: Add options to configure settings in Lua including plugins
Options for https://idursun.github.io/jjui/customization/config-lua/.
2026-04-12 10:11:23 -05:00
David ChocholatýandAustin Horstman 0c8ef0f2b9 jjui: Fix default config directory path on Darwin
The default taken from jjui documentation:
https://idursun.github.io/jjui/customization/config-toml/
2026-04-12 10:11:23 -05:00
Cirios SanthiagoandRobert Helgesson e0ca734ffc starship: add extraPackages options 2026-04-12 10:42:57 +02:00
DaruandRobert Helgesson b0569dc6ec fresh-editor: add defaultEditor option 2026-04-11 11:33:31 +02:00
DaruandRobert Helgesson fb821d6422 fresh-editor: add extra packages option 2026-04-11 11:33:31 +02:00
mikaeladevandRobert Helgesson f899c5d6f3 pipewire: add module 2026-04-11 11:21:32 +02:00
William PhetsinorathandRobert Helgesson f7f6a559c2 xdg: add support for local bin path
Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>

Signed-off-by: William Phetsinorath <william.phetsinorath@shikanime.studio>
Change-Id: I045f07415467ca6d409a6f4d52e753866a6a6964
2026-04-11 09:58:37 +02:00
MrQuboandAustin Horstman e35c39fca0 tmux: reduce default escapeTime 2026-04-09 19:43:45 -05:00
Austin Horstman 0eddb2cc1a neovim: use improved submodule deprecation detection
Prevent false positives with deprecation warning.
2026-04-09 19:09:46 -05:00
Austin Horstman fbc97e23f6 lib/deprecations: improve submodule warning support
Allow warning on specific submodule options with trigger fields and
omitted fields that trigger the warning.
2026-04-09 19:09:46 -05:00
tetoandAustin Horstman 7f6c5834ca neovim: change the plugin default type from viml -> lua
When introduced the neovim lua API was not as good as it is today.
I suspect the majority of users now default to lua rather than viml so
let's default to it.
2026-04-09 19:09:46 -05:00
philip-730andAustin Horstman a91f37efba services.darkman: add unified scripts option
Add a `scripts` option that places scripts in `$XDG_DATA_HOME/darkman/`,
darkman's unified script interface. The legacy `darkModeScripts` and
`lightModeScripts` options remain supported.

Closes #8940
2026-04-09 19:09:27 -05:00
Akshett Rai JindalandAustin Horstman 5c663d5781 gemini-cli: add option for integration with programs.mcp.servers 2026-04-09 19:08:48 -05:00
Akshett Rai JindalandAustin Horstman 5ef2b9862f gemini-cli: add skills option
Add programs.gemini-cli.skills for declarative skill files under ~/.gemini/skills.

Includes module tests for file and directory skill sources and inline content.
2026-04-09 19:08:48 -05:00
Matt DembiczakandAustin Horstman 0f9090a77c aerc: encode username in account URLs
Usernames containing special characters like '@' were included
verbatim in IMAP/SMTP URLs, producing invalid URIs. Apply
'lib.strings.escapeURL' to the username so that these characters
are properly encoded.
2026-04-09 18:36:49 -05:00
jtrrllandAustin Horstman 505e91f877 glance: add darwin support 2026-04-09 18:13:04 -05:00
Lorenzo ManacordaandAustin Horstman c975a66a56 niriswitcher: remove module
The upstream project has been archived.
2026-04-09 14:16:59 -05:00
Dennis SchriddeandAustin Horstman 2877554a72 programs.nheko: link to upstream issue in description for settings
See-also: https://github.com/Nheko-Reborn/nheko/issues/1591
2026-04-09 14:13:59 -05:00
Jan SpennemannandAustin Horstman 7ba4ee4228 thunderbird: allow configuration of EWS accounts
Add configuration options for EWS in Thunderbird which is
supported since version 145.
2026-04-08 16:28:57 -05:00
Utkarsh GuptaandAustin Horstman 35f8c398b4 atuin: add default value for log.dir 2026-04-08 16:28:21 -05:00
Austin Horstman 230199801b statix: enable misc rules that we already respect
Misc no-hit rules that we already are in compliance with. Ignoring
`faster_` rules because those prefer builtin > lib and we have lib
compat behavior to prefer.
2026-04-08 16:20:15 -05:00
Austin Horstman f04b520e5b git: ignore more statix cleanup commits 2026-04-08 16:20:15 -05:00
Austin Horstman de90ee2408 statix: enable eta_reduction
Enable statix's eta_reduction rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 74b0e97937 statix: enable empty_pattern
Enable statix's empty_pattern rule and apply its auto-fixes across the affected modules and tests.
2026-04-08 16:00:28 -05:00
Austin Horstman 11ad9d2e42 statix: enable useless_has_attr
Enable statix's useless_has_attr rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 5209a256fd statix: enable empty_list_concat
Enable statix's empty_list_concat rule and apply its auto-fixes across the affected modules.
2026-04-08 16:00:28 -05:00
Austin Horstman 838db3b5a8 git: ignore statix collapsible let in cleanup 2026-04-08 16:00:28 -05:00
Austin Horstman 74d8d47034 statix: enable collapsible_let_in
Enable statix's collapsible_let_in rule and apply its auto-fixes in the podman linux modules.

This keeps the ratchet focused on one auto-fixable warning at a time.
2026-04-08 15:28:35 -05:00
Austin Horstman 58a6be9fae git: ignore statix inherit commit 2026-04-08 15:28:35 -05:00
Austin Horstman 01ea51d706 treewide: use inherit for attribute assignments
This change converts redundant attribute assignments of the form `a =
a;` or `a = someSet.a;` into cleaner `inherit` statements. This reduces
verbosity and follows common Nix style for bringing attributes into
scope.

Statix Codes: W03 (manual_inherit), W04 (manual_inherit_from)

Also include statix and the rule in our configuration.
2026-04-08 14:47:48 -05:00
Austin Horstman 9ddbb69d18 vicinae: guard refresh-apps activation 2026-04-08 14:38:50 -05:00
Austin Horstman 7843c0025a vicinae: fix x-restart triggers 2026-04-08 14:38:50 -05:00
Austin Horstman 4ac0a4fd15 maintainers: update all-maintainers 2026-04-08 10:10:44 -05:00
Austin Horstman 4a0ded6f84 mbsync: KarlJoad -> ravenjoad 2026-04-08 10:10:44 -05:00
Austin Horstman 991a001751 mu: KarlJoad -> ravenjoad 2026-04-08 10:10:44 -05:00
home-manager-ci[bot]andAustin Horstman dd82782450 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6201e203d09599479a3b3450ed24fa81537ebc4e?narHash=sha256-ZojAnPuCdy657PbTq5V0Y%2BAHKhZAIwSIT2cb8UgAz/U%3D' (2026-04-01)
  → 'github:NixOS/nixpkgs/68d8aa3d661f0e6bd5862291b5bb263b2a6595c9?narHash=sha256-vPKLpjhIVWdDrfiUM8atW6YkIggCEKdSAlJPzzhkQlw%3D' (2026-04-05)
2026-04-08 10:10:44 -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
Austin Horstman 34cb41efe4 ci: fix labeler file count logic 2026-04-07 23:27:55 -05:00
Austin Horstman f0c13b0ebc ci: limit labeler to small pull requests 2026-04-07 23:14:48 -05:00
Austin Horstman c59483f8dc ci: improve robustness of maintainer extraction 2026-04-07 23:14:48 -05:00
Austin Horstman 41f55c248a ci: limit number of automated reviewer requests 2026-04-07 22:58:13 -05:00
Bernardo Meurer CostaandAustin Horstman 6f35bb9799 tmux: use idempotent new-session to avoid duplicate sessions
When both system-level (e.g., NixOS programs.tmux) and home-manager
tmux configs set newSession = true, tmux would create two sessions
on startup since both /etc/tmux.conf and ~/.config/tmux/tmux.conf
contain the new-session command.

Change new-session to new-session -A -s 0, which attaches to session
"0" if it exists, otherwise creates it. This makes the command
idempotent so multiple configs can safely enable newSession.
2026-04-07 21:52:27 -05:00
Miles WirhtandGitHub 3d822c1dba dbeaver: init module 2026-04-07 21:32:28 -05:00
tarzstandAustin Horstman 98b4d61cfa neovim: disable python3 and ruby providers by default 2026-04-07 16:44:58 -05:00
Benedikt RitterandAustin Horstman 9cc761169a tmuxinator: use yml file ending
Files with yaml file ending are recognized by `tmuxinator start` but not
by `tmuxinator list`.

Resolves #9031
2026-04-07 13:40:48 -05:00
philip-730andAustin Horstman 530d83a5a8 programs.wezterm: add philip-730 as maintainer 2026-04-07 13:39:56 -05:00
philip-730andAustin Horstman 92d382b982 programs.wezterm: add settings option
Add a `settings` option that allows WezTerm to be configured
declaratively using a Nix attribute set. Settings are serialized to
Lua using `lib.generators.toLua`. Raw Lua expressions such as
`wezterm.font` and `wezterm.action.*` can be embedded using
`lib.generators.mkLuaInline`.

When `settings` is set, `extraConfig` is still supported. It is
wrapped in an immediately invoked function expression so that any
`return` statement (including the common `return {}` and
`return config` patterns) is captured and merged on top of the
generated settings, preserving full backward compatibility.

The merge between `settings` and `extraConfig` is shallow: a key
returned from `extraConfig` replaces the entire corresponding value
from `settings`, including nested tables and arrays.

Closes #6047
2026-04-07 13:39:56 -05:00
philip-730andAustin Horstman d65fb79dcc maintainers: add philip-730 2026-04-07 13:39:56 -05:00
leiserfgandGitHub b0cf7b520c vicinae: refresh app list on activation 2026-04-07 13:33:38 -05:00
Adam DinwoodieandRobert Helgesson 4bdfeff1d9 syncthing: set systemd start limits
Add StartLimitIntervalSec and StartLimitBurst configuration to the
Syncthing systemd unit.  This prevents Syncthing restarting indefinitely
if it hits a bug such as NixOS/nixpkgs#502836.

The values here are taken from the values provided in the upstream
Syncthing example systemd unit[0].

[0]: https://github.com/syncthing/syncthing/blob/1a3cbca0170306541d3d1877cc1a9efbd8d8c017/etc/linux-systemd/user/syncthing.service
2026-04-07 12:00:24 +02:00
Nara Díaz ViñolasandRobert Helgesson 2bd16b16a7 Translate using Weblate (Catalan)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Spanish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Nara Díaz Viñolas <nara.diaz.vinolas@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translation: Home Manager/Home Manager CLI
2026-04-07 08:41:37 +02: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
home-manager-ci[bot]andRobert Helgesson 7e7269ac06 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8110df5ad7abf5d4c0f6fb0f8f978390e77f9685?narHash=sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg%3D' (2026-03-28)
  → 'github:NixOS/nixpkgs/6201e203d09599479a3b3450ed24fa81537ebc4e?narHash=sha256-ZojAnPuCdy657PbTq5V0Y%2BAHKhZAIwSIT2cb8UgAz/U%3D' (2026-04-01)
2026-04-06 00:15:30 +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
cinerealandRobert Helgesson c65923b58d xdg-mime-apps: document performance caveat
Passing a large number of packages (e.g. all of home.packages) to
defaultApplicationPackages causes slow builds because every .desktop
file in every listed package is scanned at build time. Add a note
warning users to list only the specific packages they need.
2026-04-05 23:35:01 +02:00
RoverpandAustin Horstman 2097a5c82b news: add opencode TUI configuration entry 2026-04-04 22:48:59 -05:00
1089b2caba opencode: add programs.opencode.tui option
OpenCode v1.2.15 introduced a separate tui.json file for TUI-specific
settings, deprecating theme/keybinds in config.json.
Changes:
- Add programs.opencode.tui option for TUI settings
- Generate separate ~/.config/opencode/tui.json with proper schema
- Add deprecation warnings for theme/keybinds in settings
- Add tests for new functionality
- Fix existing tests that used deprecated theme in settings

See: https://opencode.ai/docs/config#tui
Release: https://github.com/anomalyco/opencode/releases/tag/v1.2.15

Co-authored-by: Thierry Delafontaine <delafthi@pm.me>
2026-04-04 22:48:59 -05:00
Benedikt RipsandAustin Horstman 8ec54491cd sshAuthSock: fix naming scheme 2026-04-04 22:28:41 -05:00
Bruno BELANYIandAustin Horstman 7923d24b0b home-cursor: use submodule-specific 'size' 2026-04-04 22:28:11 -05:00
nesciasandAustin Horstman e78a997d2e restic: allow setting password command
Includes asserting that either password file or password command
should be set.
2026-04-04 22:27:18 -05:00
Yiheng HeandAustin Horstman 5ee3b3ef63 awww: remove blank space after awww-daemon when extraArgs is empty
awww: split graphical-session-target test into awww-default and awww-extraArgs
2026-04-04 11:33:34 -05:00
Yiheng HeandAustin Horstman 5b6f55b784 awww: run daemon dependent on program mainProgram name 2026-04-04 11:33:34 -05:00
Benedikt RipsandAustin Horstman 9dc93220c1 ssh_auth_sock: assert that at most one agent is enabled 2026-04-03 21:15:34 -05:00
Benedikt RipsandAustin Horstman a61b22e323 ssh_auth_sock: init module
`$SSH_AUTH_SOCK` must not be set unconditionally through
'home.sessionVariables' since its value needs to be preserved if it
stems from a forwarded SSH agent. Hence, this commit establishes a
centralized, internal 'ssh_auth_sock.initialization' option for setting
`$SSH_AUTH_SOCK`. It checks whether its value has to be preserved and
injects the initialization code into the proper
'programs.(bash|fish|nushell|zsh).*' options.
2026-04-03 21:15:34 -05:00
Yiheng HeandAustin Horstman 03bdcf84f0 awww: rename swww to awww
Upstream project name has changed
2026-04-03 15:21:14 -05:00
Marko MilovanovandRobert Helgesson f68887a4c1 Translate using Weblate (Serbian)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-04-03 15:45:10 +02:00
teto d166a07854 neovim: fix viml plugin config appearing twice
nixpkgs is now in charge of aggregating viml config so no need to
duplicate the work in HM.
2026-04-02 17:27:31 +02:00
oneorseveralcatsandRobert Helgesson eb6f347055 aria2: add systemd service 2026-04-02 16:20:22 +02:00
Austin Horstman 41e6e2ab37 codex: add support for managed rules files 2026-04-01 23:29:17 -05:00
squatandAustin Horstman 6267895e98 opencode: add environmentFile option to set OPENCODE_SERVER_PASSWORD
This commit introduces a new option for the Opencode web service to
allow configuring an environment file so that we can safely specify an
`OPENCODE_SERVER_PASSWORD` environment variable to secure access to the
service without exposing the secret to the Nix store.
2026-04-01 16:47:32 -05:00
home-manager-ci[bot]andAustin Horstman 51f49da12c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9?narHash=sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc%3D' (2026-03-24)
  → 'github:NixOS/nixpkgs/8110df5ad7abf5d4c0f6fb0f8f978390e77f9685?narHash=sha256-D3Q07BbIA2KnTcSXIqqu9P586uWxN74zNoCH3h2ESHg%3D' (2026-03-28)
2026-04-01 16:02:07 -05:00
Matthieu CoudronandGitHub f21d8ebbc9 neovim: test pure lua dependencies (#8991)
a revert of https://github.com/nix-community/home-manager/pull/8959 since we now relies on nixpkgs wrapper for that.

adding a test to avoid regressions. Choosing  telescope as starting point is https://github.com/nix-community/home-manager/issues/8787

I find the nmt test setup lacking: it doesnt set $PATH or $HOME (nvim
will error when it can't write into $HOME).
2026-04-01 22:27:03 +02:00
Matthieu CoudronandGitHub 1ce9e62690 mpd: expose generated config (#8968)
The systemd service links a generated config, but some users may like
to have it in ~/.config/mpd instead.
This PR helps working around that limitation allowing users to run:

  configFile."mpd/mpd.conf".text = config.services.mpd.generatedConfig;

this way one can skip systemd altogether and test mpd more easily in CLI.
2026-04-01 14:39:19 +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
+151
Weblate (bot)GitHubPedro de MattiaAlex MirandaFelipe SilvagutoGabriel GrysukOğuz ErsenEmre ÇebiSilkDoğu UsJosef DaliborprogrammerlexiFrederik EngelsManu [tennox] <tennox@posteo.de>mainrsReiner GereckehalbGefressenJonathanBUrocissa Caerulea.TwWhiredPlanck807Ferenci ÁkosBalint Barna KovariDanСергійМаксим ГорпинічwadsaekLucas EduardossantosSrGesusJulius MarozasKornelijus TvarijanavičiusYogurtDeleted UserMario RodasMauricio SchefferHarrizon SolerBrian EKeivanParsa NobahariMarko MilovanovLeix bAlejandro Masó BonillaPeter PfeuferViktor IllmerSven KeidelVollowHongtyu BheSam ChuimmwindnanliuZexin YuanFrankie McEyesLeonardo RandacioFareesh VijayarangamUtkarsh SharmaMuxutrukShadowTiger RaptorPeng GuanwenYubo-CaoethinxDaniel Jacob ButcherPablo BollanseeZurgaHylke de VriesErwin MintiensEric HoNara Díaz ViñolasAdolfo Jayme BarrientosTomi OckierBruno FragosoOmar MohamedBorislav RangelovKiril PanayotovKiril Mihaylov박수원Suwon Parkhonniplentil32Mohammad AbdoliradArtin MobasherBjarki GunnarssonAnon YmousJakub JanczakEryk MichalakMateusz KubicaTomasz CzyżTymoteusz DolegaTANIGUCHI KoheiTakeru MikenuHeman GandhiTurmoil NailsisNarazaki ShujiMarkus AmanoKento OkamotoHeartBlin913861820c094e37SMFlorisFelix PuscasuDavid HoudekmaxDark TemplarAtomicDudeReza AlmandaWildan NursyamsiAbdul V VahryKamontat ChantrachirathumrongEise ZimmermanAllan NordhøyLilleAilaKim A. ØdegaardRobert Helgessonjarre johanssonRicky TiggMarcin KaczorekMateusz PGabriel Fontesbittin1ddc447d824349b2Naïm Camille FavierPink PonyDorian BurgunJ. Lavoie6KHCPCPOswapsSzabin HamrikJay Thomasadityalal01Karel KremelDavid ChocholatýFireFragmentதமிழ்நேரம்DeeKahycafkafkMatildeJulien H. GibsonGuilloux NicolasAlexis RossfelderYk CheeseLouis ThevenetTheBlackBeansLuna JernbergBlezz RotMikhail ChekanNikolay MokrinskyPetr Portnov | PROgrm_JARvisEr1ckR1ck0NikSneLorenzo BrzekFedFer98123Lorenzo BevilacquaMustafa Çalışkangoatastronaut0212Nguyen KhanhRepentantKnight121Deleted UserRasmus Enevoldsenbgo-eiuPetter KGavagai53Vladimirteu5us
0adb999327 Translations update from Hosted Weblate (#9010)
Co-authored-by: Pedro de Mattia <pedromattia@gmail.com>
Co-authored-by: Alex Miranda <alexmirandamoraes@gmail.com>
Co-authored-by: Felipe Silva <git@felipeqq2.rocks>
Co-authored-by: guto <joaoaugustolanjoni@gmail.com>
Co-authored-by: Gabriel Grysuk <gabrielgrysuk@gmail.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: Emre Çebi <emrecebi03@gmail.com>
Co-authored-by: Silk <omerntuzun@gmail.com>
Co-authored-by: Doğu Us <usdogu@gmail.com>
Co-authored-by: Anonymous <noreply@weblate.org>
Co-authored-by: Josef Dalibor <josefkruse@googlemail.com>
Co-authored-by: programmerlexi <lexi@reyer.name>
Co-authored-by: Frederik Engels <frederik.engels92@gmail.com>
Co-authored-by: Manu [tennox] <tennox@posteo.de>
Co-authored-by: mainrs <github619064@zerotask.net>
Co-authored-by: Reiner Gerecke <me@reinergerecke.de>
Co-authored-by: halbGefressen <chzi@pm.me>
Co-authored-by: JonathanB <ewu.uwent@gmail.com>
Co-authored-by: Urocissa Caerulea.Tw <urocissa.tw@proton.me>
Co-authored-by: WhiredPlanck <whiredplanck@outlook.com>
Co-authored-by: 807 <s10855168@gmail.com>
Co-authored-by: Ferenci Ákos <synthetace@gmail.com>
Co-authored-by: Balint Barna Kovari <balint@kovari.cc>
Co-authored-by: Dan <jonweblin2205@protonmail.com>
Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Co-authored-by: Максим Горпиніч <gorpinicmaksim2005ukr@protonmail.com>
Co-authored-by: wadsaek <wadsaek@gmail.com>
Co-authored-by: Lucas Eduardo <lucas59356@gmail.com>
Co-authored-by: ssantos <ssantos@web.de>
Co-authored-by: SrGesus <gabriel.fcf04@gmail.com>
Co-authored-by: Julius Marozas <marozas.julius@gmail.com>
Co-authored-by: Kornelijus Tvarijanavičius <kornelijus@tvaria.com>
Co-authored-by: Yogurt <donatas.karta@gmail.com>
Co-authored-by: Deleted User <noreply+48943@weblate.org>
Co-authored-by: Mario Rodas <rodasmario2@gmail.com>
Co-authored-by: Mauricio Scheffer <mauricioscheffer@gmail.com>
Co-authored-by: Harrizon Soler <harryalex0281@hotmail.com>
Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Co-authored-by: Keivan <keyvan0082@gmail.com>
Co-authored-by: Parsa Nobahari <89968726+ParsaNobahari@users.noreply.github.com>
Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Co-authored-by: Leix b <abone9999@gmail.com>
Co-authored-by: Alejandro Masó Bonilla <alejandrobonilla2001@gmail.com>
Co-authored-by: Peter Pfeufer <info@ppfeufer.de>
Co-authored-by: Viktor Illmer <accounts@viktor.im>
Co-authored-by: Sven Keidel <svenkeidel@pm.me>
Co-authored-by: Vollow <muffinslog@proton.me>
Co-authored-by: Hongtyu Bhe <mfthits@gmail.com>
Co-authored-by: Sam Chu <samchu-primary@outlook.com>
Co-authored-by: immwind <i@immwind.com>
Co-authored-by: nanliu <nan.liu@gmail.com>
Co-authored-by: Zexin Yuan <yuan.zx@outlook.com>
Co-authored-by: Frankie McEyes <mceyes@protonmail.com>
Co-authored-by: Leonardo Randacio <leonardorandacio@gmail.com>
Co-authored-by: Fareesh Vijayarangam <fareesh@gmail.com>
Co-authored-by: Utkarsh Sharma <utkasharma19@gmail.com>
Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Co-authored-by: ShadowTiger Raptor <sh4dowtig3r@gmail.com>
Co-authored-by: Peng Guanwen <pg999w@outlook.com>
Co-authored-by: Yubo-Cao <Cao2006721@gmail.com>
Co-authored-by: ethinx <eth2net@gmail.com>
Co-authored-by: Daniel Jacob Butcher <corpo@quokka.wiki>
Co-authored-by: Pablo Bollansee <pablo.bollansee@gmail.com>
Co-authored-by: Zurga <jim.lemmers@gmail.com>
Co-authored-by: Hylke de Vries <hylke94+weblate@gmail.com>
Co-authored-by: Erwin Mintiens <erwin.mintiens@protonmail.com>
Co-authored-by: Eric Ho <eric913@gmail.com>
Co-authored-by: Nara Díaz Viñolas <rdvdev2@gmail.com>
Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Co-authored-by: Tomi Ockier <ockier1@gmail.com>
Co-authored-by: Bruno Fragoso <darth_signa@hotmail.com>
Co-authored-by: Omar Mohamed <mohamed.omar67492@gmail.com>
Co-authored-by: Borislav Rangelov <borislav.y.rangelov@gmail.com>
Co-authored-by: Kiril Panayotov <eccyboo@protonmail.com>
Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Co-authored-by: 박수원 <bboxone@gmail.com>
Co-authored-by: Suwon Park <sepiabrown@naver.com>
Co-authored-by: honnip <me@honnip.page>
Co-authored-by: lentil32 <lentil32@icloud.com>
Co-authored-by: Mohammad Abdolirad <m.abdolirad@gmail.com>
Co-authored-by: Artin Mobasher <mobasherartin.icm@gmail.com>
Co-authored-by: Bjarki Gunnarsson <bjarkihg@gmail.com>
Co-authored-by: Anon Ymous <mivon27841@shackvine.com>
Co-authored-by: Jakub Janczak <kubek2k@gmail.com>
Co-authored-by: Eryk Michalak <gnu.ewm@protonmail.com>
Co-authored-by: Mateusz Kubica <mw.kubica@gmail.com>
Co-authored-by: Tomasz Czyż <tomasz.czyz@eskapizm.pl>
Co-authored-by: Tymoteusz Dolega <tymoteuszdolega@gmail.com>
Co-authored-by: TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com>
Co-authored-by: Takeru Mikenu <mikenu-jp@users.noreply.hosted.weblate.org>
Co-authored-by: Heman Gandhi <hemangandhi@gmail.com>
Co-authored-by: Turmoil Nailsis <indianrunner@duck.com>
Co-authored-by: Narazaki Shuji <shujinarazaki@protonmail.com>
Co-authored-by: Markus Amano <markus.a.amano@gmail.com>
Co-authored-by: Kento Okamoto <kentokamoto@protonmail.com>
Co-authored-by: HeartBlin913861820c094e37 <heartblin@proton.me>
Co-authored-by: SMFloris <floris.sm@gmail.com>
Co-authored-by: Felix Puscasu <puscasu.felix1@gmail.com>
Co-authored-by: David Houdek <sarejnovec@gmail.com>
Co-authored-by: max <weblate@p2502.net>
Co-authored-by: Dark Templar <dark.templar0007@gmail.com>
Co-authored-by: AtomicDude <vasilescutoma4@gmail.com>
Co-authored-by: Reza Almanda <rezaalmanda27@gmail.com>
Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Co-authored-by: Abdul V Vahry <cyberaioff@gmail.com>
Co-authored-by: Kamontat Chantrachirathumrong <uein2@users.noreply.hosted.weblate.org>
Co-authored-by: Eise Zimmerman <eiscomania@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: LilleAila <olai.solsvik@gmail.com>
Co-authored-by: Kim A. Ødegaard <kim@dyktig.no>
Co-authored-by: Robert Helgesson <robert@rycee.net>
Co-authored-by: jarre johansson <jarre@johansson.today>
Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Co-authored-by: Marcin Kaczorek <hostedweblateorgmk@karek.pl>
Co-authored-by: Mateusz P <medan1993@gmail.com>
Co-authored-by: Gabriel Fontes <hi@m7.rs>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Co-authored-by: Naïm Camille Favier <n@monade.li>
Co-authored-by: Pink Pony <dreammc@protonmail.com>
Co-authored-by: Dorian Burgun <docdoomduck@protonmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: 6KHCPCPO <lxh43qf2b@relay.firefox.com>
Co-authored-by: swaps <swapgs@users.noreply.hosted.weblate.org>
Co-authored-by: Szabin Hamrik <h.szabin@gmail.com>
Co-authored-by: Jay Thomas <jay@gfax.ch>
Co-authored-by: adityalal01 <erc202009@gmail.com>
Co-authored-by: Karel Kremel <charles@alembiq.net>
Co-authored-by: David Chocholatý <chocholaty.david0@gmail.com>
Co-authored-by: FireFragment <snaselik.m@gmail.com>
Co-authored-by: தமிழ்நேரம் <tamilneram247@gmail.com>
Co-authored-by: DeeKahy <Lennart.Diego.Kahn@gmail.com>
Co-authored-by: cafkafk <christina@cafkafk.com>
Co-authored-by: Matilde <matilde.alb@proton.me>
Co-authored-by: Julien H. Gibson <julienhgibson@protonmail.com>
Co-authored-by: Guilloux Nicolas <novares.x@gmail.com>
Co-authored-by: Alexis Rossfelder <rossfelderalexis@gmail.com>
Co-authored-by: Yk Cheese <yakforcom@gmail.com>
Co-authored-by: Louis Thevenet <louis.thevenet@proton.me>
Co-authored-by: TheBlackBeans <adrien.mathieu.net@gmail.com>
Co-authored-by: Luna Jernberg <droidbittin@gmail.com>
Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Co-authored-by: Mikhail Chekan <chekoopa@mail.ru>
Co-authored-by: Nikolay Mokrinsky <me@mokrinsky.ru>
Co-authored-by: Petr Portnov | PROgrm_JARvis <mrJARVIScraft@gmail.com>
Co-authored-by: Er1ckR1ck0 <eryckov37@gmail.com>
Co-authored-by: NikSne <commits@niksne.ru>
Co-authored-by: Lorenzo Brzek <lorenzo@brzek.it>
Co-authored-by: FedFer98123 <fede.ferrari123@gmail.com>
Co-authored-by: Lorenzo Bevilacqua <lorenzobevilacqua02@gmail.com>
Co-authored-by: Mustafa Çalışkan <muscaln@protonmail.com>
Co-authored-by: goatastronaut0212 <goatastronaut0212@proton.me>
Co-authored-by: Nguyen Khanh <nguynkhan479@gmail.com>
Co-authored-by: RepentantKnight121 <repentantknight121@outlook.com>
Co-authored-by: Deleted User <noreply+69728@weblate.org>
Co-authored-by: Rasmus Enevoldsen <rasmus@enev.dk>
Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com>
Co-authored-by: Petter K <petterkarlsrud@me.com>
Co-authored-by: Gavagai53 <masella_portlock@aleeas.com>
Co-authored-by: Vladimir <kirillov.vladimir@gmail.com>
Co-authored-by: teu5us <paulkreuzmann@gmail.com>
2026-03-31 14:12:35 -05:00
Benedikt RitterandAustin Horstman b399348e9d tmuxinator: move to dedicated module with projects support
Extract tmuxinator from tmux.nix into its own programs/tmuxinator.nix
module. The new module adds:

- programs.tmux.tmuxinator.package for customising the tmuxinator package
- programs.tmux.tmuxinator.projects for declaring projects declaratively;
  each project is written to $HOME/.config/tmuxinator/<name>.yaml

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-31 14:05:50 -05:00
Caleb NortonandAustin Horstman a7d2aca3f0 opencode: use serve command for web interface 2026-03-31 10:05:09 -05:00
Marko MilovanovandGitHub a184bd2f84 Fix Serbian translation merge conflict (#9003)
* Translate using Weblate (Serbian)

Currently translated at 79.4% (31 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 75.0% (12 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.0% (4 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.6% (10 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 6.2% (1 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 5.1% (2 of 39 strings)

Add translation using Weblate (Serbian)

Add translation using Weblate (Serbian)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

* Translate using Weblate (Serbian)

Currently translated at 93.7% (15 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/

* Translate using Weblate (Serbian)

Currently translated at 84.6% (33 of 39 strings)

Translation: Home Manager/Home Manager CLI
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
2026-03-30 21:24:36 +02:00
home-manager-ci[bot]andAustin Horstman 9340f51314 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6c9a78c09ff4d6c21d0319114873508a6ec01655?narHash=sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws%3D' (2026-03-21)
  → 'github:NixOS/nixpkgs/46db2e09e1d3f113a13c0d7b81e2f221c63b8ce9?narHash=sha256-4hAV26quOxdC6iyG7kYaZcM3VOskcPUrdCQd/nx8obc%3D' (2026-03-24)
2026-03-30 08:03:35 -05:00
Max CabrajacandAustin Horstman 53797f71b9 news: fix entry formatting
The `"` string delimiter prevents leading spaces from being removed from the string.
2026-03-30 08:00:37 -05:00
home-manager-ci[bot]andMatthieu Coudron 293490e1c1 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:** 3 maintainers
**Removed:** 0 maintainers
**Total:** 286 → 289 maintainers

** Added:** Kladki, dosten, philocalyst

Generated by: lib/python/generate-all-maintainers.py
2026-03-30 13:34:20 +02:00
Ihar HrachyshkaandBruno BELANYI 5ed75a0312 services/ssh-agent: treat SIGTERM exit as clean
OpenSSH ssh-agent exits with status 2 when systemd stops it in
non-socket-activated mode.

Home Manager runs ssh-agent that way, so normal user-manager
shutdowns show up as unit failures.

Set SuccessExitStatus=2 for the Linux user service to match
upstream behavior. Startup failures and other unexpected exits
still fail the unit.
2026-03-30 12:14:23 +01:00
kfizandGitHub 769e07ef8f aerc: add notmuch integration
Currently enabling aerc in accounts.email.accounts.<account> doesn't handle existing configs where accounts.email.accounts.<account>.notmuch.enable is set to true. This pr proposes to automatically set notmuch as backend for aerc if this is the case, see rjarry/aerc@master/doc/aerc-notmuch.5.scd.

For set-ups where accounts.email.notmuch.enable has been enabled this was previously ignored, so this is probably a breaking change for these configs, but from running this set up during the last weeks I would consider the upside of better search and filtering performance as significantly larger than the minor changes in query handling as noted here rjarry/aerc@master/doc/aerc-notmuch.5.scd#usage.
2026-03-28 17:55:35 -05:00
Marko MilovanovandAustin Horstman 4a8e31396a Translate using Weblate (Serbian)
Currently translated at 25.0% (4 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 25.6% (10 of 39 strings)

Translate using Weblate (Serbian)

Currently translated at 6.2% (1 of 16 strings)

Translate using Weblate (Serbian)

Currently translated at 5.1% (2 of 39 strings)

Add translation using Weblate (Serbian)

Add translation using Weblate (Serbian)

Co-authored-by: Marko Milovanov <markomilovanov03@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-03-28 14:56:35 -05:00
oneorseveralcatsandAustin Horstman 027539a127 vesktop: make package nullable 2026-03-28 14:50:47 -05:00
Austin Horstman 43c0145a48 ci: sync module changes with labeler 2026-03-28 12:42:22 -05:00
teto 6569d9e171 neovim: attempt at reusing nixpkgs upstream config 2026-03-28 18:41:26 +01:00
oneorseveralcatsandMatthieu Coudron 557f5e38ce swayidle: allow multiple systemd targets 2026-03-28 17:32:51 +01:00
oneorseveralcatsandAustin Horstman 02371c05a0 aria2: use formats.keyValue to generate aria2.conf instead of custom method 2026-03-27 16:42:50 -05:00
oneorseveralcatsandAustin Horstman 2e3550192e aria2: remove extraConfig 2026-03-27 16:42:50 -05:00
oneorseveralcatsandAustin Horstman 13587c3ace aria2p: add module 2026-03-27 16:42:50 -05:00
Miles WirhtandGitHub 9df3a63900 macchina: add module (#8855) 2026-03-27 10:42:17 -05:00
r-vdpandAustin Horstman 2b8f732e15 atuin: use daemon start subcommand on >= 18.13.0
Atuin 18.13.0 deprecated `atuin daemon` in favour of `atuin daemon start`
and prints a warning on every daemon startup. Keep the old invocation for
older versions so NixOS stable (currently shipping 18.10.0) keeps working.

Also drop the 18.2.0 minimum version assertion since all supported
nixpkgs branches ship newer versions.
2026-03-27 10:41:46 -05:00
oneorseveralcatsandAustin Horstman accd450fcd waybar: allow multiple systemd targets 2026-03-27 09:41:16 -05:00
Austin Horstman 4b1be5c38b vicinae: move lib to separate file
Not used internally and cleaner to separate

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-26 23:01:54 -05:00
Austin Horstman bf6215e0cb vicinae: support local sources for raycast extensions
Support extensions without fetchgit, useful when providing the sources
from a flake input or derivation for all extensions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-26 23:01:54 -05:00
Pat L.andGitHub 7126ec6a55 claude-code: Add support for installing plugins (#8934)
Allow for configuring marketplaces or individual plugins.

Both are provided as a list of either paths or packages.

The lone plugins are enabled by adding a --plugin-dir argument to the wrapper script.

Marketplaces are saved to the nix store and enabled by adding to the claude settings and known_marketplaces files.

With the marketplace "installed", the plugin can just be enabled via the enabledPlugins setting.
2026-03-26 22:59:48 -05:00
Diego Saint EstebenandAustin Horstman 0143d6ca9b grype: add module
Grype is a vulnerability scanner for container images and filesystems.
2026-03-26 22:51:09 -05:00
Diego Saint EstebenandAustin Horstman f7a3fe06c5 maintainers: add dosten 2026-03-26 22:51:09 -05:00
Miles WirhtandGitHub 7c046c63ac Ttyper: add module (#8864) 2026-03-26 16:47:14 -05:00
Ryan HoriguchiandAustin Horstman 051da45e96 vscode: add null package support 2026-03-26 16:41:41 -05:00
Matthias AhouansouandAustin Horstman 3aeefa9db2 mpdris2-rs: add module 2026-03-26 16:34:36 -05:00
oneorseveralcatsandAustin Horstman 40955dc50a atool: add module
atool is a commandline archive manager that uses packages like gnutar,
p7zip, unrar, and zip as backends for viewing, creating, and extracting
their corresponding archive formats.
2026-03-26 16:24:39 -05:00
StellessiaandAustin Horstman 0e0e7a072a generic-linux-gpu: Update NVIDIA driver version regex pattern 2026-03-26 16:03:37 -05:00
home-manager-ci[bot]andAustin Horstman 7622882af8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b40629efe5d6ec48dd1efba650c797ddbd39ace0?narHash=sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4%3D' (2026-03-18)
  → 'github:NixOS/nixpkgs/6c9a78c09ff4d6c21d0319114873508a6ec01655?narHash=sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws%3D' (2026-03-21)
2026-03-26 13:36:09 -05:00
teto e2e5f512b3 neovim: support lua plugin transitive dependencies
TODO: 
- add a test
- see if we can pass the list of plugins instead, overriding the final
  list so it doesn't get added to rtp
2026-03-26 16:37:38 +01:00
David SánchezandBruno BELANYI 86014e836c tldr-update: darwin support 2026-03-26 14:10:44 +00:00
Austin Horstman 1eb0549a1a password-store: silence settings default warning
Use the deferred state-version helper mode for programs.password-store.settings
so explicit empty and explicit legacy values silence the warning correctly,
while partial legacy-era settings still inherit PASSWORD_STORE_DIR until the
user resolves the migration.

Add integration coverage for password-store and pass-secret-service to verify
legacy, explicit empty, explicit legacy, and partial-settings behavior.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 14:08:36 -05:00
Austin Horstman 66aa75f6e8 lib/deprecations: support deferred state-version warnings
Extend mkStateVersionOptionDefault so merged attrset callers can defer
warning emission to config.warnings while still exposing the effective
state-version default and option priority metadata.

Add dedicated lib tests for deferred warning behavior on both legacy and
current state versions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 14:08:36 -05:00
Austin Horstman b8cb89f2c4 codex: support store-path skill sources
Handle per-skill values that come through as store-path strings, such as fetcher outputs with subdirectories appended. This restores the previously working pattern for packaged skill directories and adds a regression test for both directory and file sources.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 12:03:06 -05:00
Austin Horstman 5068d0b03e news: add qt kvantum entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 11:02:52 -05:00
Austin Horstman a8931b2575 kvantum: add enable option
Missed previously, prefer gating enablement on real opt in.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-24 11:02:52 -05:00
mikaeladevandAustin Horstman 61463d50fc qt: add kvantum options 2026-03-24 08:04:04 -05:00
oneorseveralcatsandAustin Horstman bc357c75e3 w3m: add module
adds a pretty complete module for w3m, a terminal web browser and pager.
2026-03-23 14:10:42 -05:00
MeowandAustin Horstman 3cea83bf84 rclone: make mounts wait for config 2026-03-23 13:53:26 -05:00
dependabot[bot]andAustin Horstman 90913f8313 ci: bump cachix/cachix-action from 16 to 17
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 16 to 17.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v16...v17)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-version: '17'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-23 09:02:52 -05:00
home-manager-ci[bot]andAustin Horstman 681b47993a 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:** 285 → 286 maintainers

** Added:** oneorseveralcats

Generated by: lib/python/generate-all-maintainers.py
2026-03-23 09:02:18 -05:00
Austin Horstman b02a36dc79 Revert "swaylock: warn on implicit enable default"
This reverts commit 45e3b622b1.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-23 09:02:01 -05:00
Austin Horstman c6fe2944ad codex: symlink directories for all skills
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 15:08:53 -05:00
oneorseveralcatsandAustin Horstman 932ca46013 nom: add module
adds a module for nom, a terminal-based rss feed reader.
2026-03-22 12:39:22 -05:00
oneorseveralcatsandAustin Horstman 2c629ba7ed maintainers: add oneorseveralcats 2026-03-22 12:39:22 -05:00
Utkarsh GuptaandAustin Horstman 38539206d0 cargo: add cargoHome option 2026-03-22 11:53:53 -05:00
Austin Horstman b92cad188c git: warn on signing format default change
The default value for programs.git.signing.format changed in 25.05
from an implicit "openpgp" to null. Keep the existing gated
mkOptionDefault behavior so the signing block only materializes when
other signing settings are in use, but route the versioned value and
static docs text through the shared state-version helper.

Add a focused current-state-version test that covers a non-empty
signing configuration with no explicit format, alongside the existing
legacy implicit-openpgp and explicit-format tests.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 45e3b622b1 swaylock: warn on implicit enable default
Before 23.05, programs.swaylock.enable implicitly followed whether
programs.swaylock.settings was non-empty. That compatibility path was
still active for older state versions, but it emitted no warning.

Route the default through the shared state-version helper so legacy
users get the standard deprecation warning before the implicit enable
behavior is removed. Add a focused current-state-version test and keep
the existing legacy and explicit-enable coverage in place.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 111b158a98 beets: warn on implicit enable default
Before 19.03, programs.beets.enable implicitly followed whether
programs.beets.settings was non-empty. That compatibility branch was
still active for older state versions, but it was silent.

Route the default through the shared state-version helper so legacy
users get a consistent deprecation warning before the implicit
enablement is cleaned up. Add focused tests for the legacy and current
default branches alongside the existing beets coverage.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman a49e2f1b5b password-store: warn on settings default change
The default value of programs.password-store.settings changed in 25.11
when Home Manager stopped exporting PASSWORD_STORE_DIR implicitly.
Route the default through the shared state-version helper so users on
older state versions keep the compatibility behavior with a consistent
warning and a single place to remove later.

The existing password-store tests already cover the legacy default, the
current empty default, and explicit override behavior, so no new test
fixture is needed for this migration.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman d3281688bf gtk: warn on gtk4 theme inheritance change
The gtk4 theme option still inherits from gtk.theme for users pinned
before 26.05, but that fallback was previously silent. Move the
default through the shared state-version helper so the compatibility
branch emits the standard deprecation warning and stays consistent
with other future cleanups.

Add a focused test that covers the legacy inheritance path alongside
the existing current-state-version test for the null default.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman acf65ad748 xdg-user-dirs: warn on setSessionVariables default change
Switch xdg.userDirs.setSessionVariables to the shared state-version default helper so older configurations get an explicit warning before the legacy default is removed.

Add focused tests for the legacy and current branches to verify that the session variable exports remain enabled before 26.05 and are disabled by default starting at 26.05.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman db91cbf795 yazi: use state version default helper
Replace the inline shellWrapperName migration logic with the shared state-version default helper. This keeps the existing warning and version-dependent default, but moves the message and defaultText formatting into one reusable implementation.

Inline the helper directly at the option declaration so the module stays small while matching the new deprecation-default pattern for future adoptions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Austin Horstman 95496df8c0 lib/deprecations: add state version default helper
Add a helper for options whose defaults change across home.stateVersion boundaries. This centralizes the warning text and documentation shape so modules do not need to hand-roll the same migration pattern at each call site.

The helper takes legacy and current branches with a runtime value plus optional static documentation text. That keeps the actual default version-gated while avoiding option docs that depend on evaluated config. Add a focused test covering the legacy warning path, the new-value path, and an explicit legacy pin that should not warn.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-22 11:46:51 -05:00
Malix - Alix BrunetandAustin Horstman 856b01ebd1 shell: DRY shellIntegrationParameters 2026-03-21 18:24:31 -05:00
Malix - Alix BrunetandAustin Horstman 887e96cf30 lib: remove rec in shell.nix 2026-03-21 18:23:54 -05:00
teto 9670de2921 neovim: reuse more of upstream logic 2026-03-20 12:59:40 +01:00
Austin Horstman 9d3c1d636e tests/darwinScrublist: add keepassxc
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 18:24:53 -05:00
tetoandAustin Horstman 1c10e6596f neovim: now include nixpkgs wrapper generated lua
now that home-manager always generates an init.lua we can take the
wrapper output instead of reimplemnting stuff in HM (notwithstanding rtp
changes that are not needed in HM).
This is necessary to keep the provider configuration available after
this change https://github.com/NixOS/nixpkgs/pull/487390

Also updated test to reflect ruby disabling
2026-03-19 18:24:53 -05:00
home-manager-ci[bot]andAustin Horstman 0c38ec560c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
  → 'github:NixOS/nixpkgs/b40629efe5d6ec48dd1efba650c797ddbd39ace0?narHash=sha256-TJ3lSQtW0E2JrznGVm8hOQGVpXjJyXY2guAxku2O9A4%3D' (2026-03-18)
2026-03-19 18:24:53 -05:00
Bob van der LindenandRobert Helgesson 9bc3ca1230 opencode: skill -> skills
The skills option was creating files under ~/.config/opencode/skill/
(singular) but OpenCode documentation only mentions
~/.config/opencode/skills/ (plural). Both work, but using an
undocumented directory can be confusing.

Fixes: https://github.com/nix-community/home-manager/issues/8907
2026-03-19 21:32:45 +01:00
Wildan NursyamsiandRobert Helgesson 5ae5f8cedf Translate using Weblate (Indonesian)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/id/
Translation: Home Manager/Home Manager Modules
2026-03-19 21:30:15 +01:00
Austin Horstman c4ab19c919 lib: extend lib to include hm maintainers
Upstream change is validating all maintainers against lib.maintainers,
need to merge our maintainer list in to pass doc building.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 15:16:56 -05:00
Austin Horstman a7ec544047 docs: match parent flake nixpkgs channel
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
Austin Horstman 7ca38ba694 docs: fix readme branch
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
Austin Horstman 445c6ead57 makefile: match flake.nix nixpkgs rev
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 10:49:27 -05:00
James DavidsonandBruno BELANYI f72ed9c97d smug: add project session setting
Add an optional session setting so that session names can be different
than the smug project name. This also enables using template variables
when naming sessions.
2026-03-19 15:36:43 +00:00
Austin Horstman ecf019baf4 claude-code: code style/lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 00:32:52 -05:00
Austin Horstman 0d200e1da7 claude-code: deduplicate module helpers
Factor the repeated claude-code module patterns into a small set of local helpers instead of open-coding them over and over.

This keeps the behavior the same, but removes duplication in the inline-or-path option declarations, the inline-vs-directory assertions, and the repeated .claude file generation code. The claude-code NMT test slice still passes after the refactor.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-19 00:32:52 -05:00
Austin Horstman 4fcef56c15 claude-code: load MCP config via plugin dir
Claude Code rejects `--mcp-config` once the Home Manager wrapper injects
it around subcommands, which breaks commands like `claude mcp list`.
Claude Code 2.1.76 fixed `--plugin-dir` so it no longer consumes
following subcommands, so use that path for the generated MCP config
instead.

Generate a plugin directory with a manifest and `.mcp.json`, wrap
`claude` with `--plugin-dir` before user arguments, and snapshot that
wrapper directly in the tests. Keep the existing LSP support in the
generated plugin directory as well, and add coverage for the combined
MCP+LSP case plus the MCP integration merge path.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-18 23:58:36 -05:00
stuebinmandAustin Horstman d47357a4c8 go: remove unneeded string escapes 2026-03-18 00:04:07 -05:00
rsahweandAustin Horstman ba197beccc rizin: cleanup according to feedback
In both prior feature pull requests for this module there was a review
after the pull request got merged, those are addressed here.
2026-03-18 00:02:59 -05:00
natsukiumandAustin Horstman a455ac1bb3 claude-code: add lsp servers support 2026-03-17 23:52:47 -05:00
FaeandAustin Horstman f0e123a7e2 clipman: Add extraArgs option to clipman service 2026-03-17 23:50:17 -05:00
RockWolfandAustin Horstman 54db7915d0 fish: change mode & setsMode bind options to allow arbitrary strings additional to default enum values 2026-03-17 23:47:50 -05:00
RockWolfandAustin Horstman 51895e1813 fish: add name field to binds module
Resolves: #8795
2026-03-17 23:47:50 -05:00
Austin Horstman b61330163e tests/gemini-cli: add policy assertions
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-17 23:46:59 -05:00
Austin Horstman 9fc7535efc gemini-cli: add policy engine support
Gemin now supports policy configuration through policy files in toml.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-17 23:46:59 -05:00
dependabot[bot]andMatthieu Coudron 57d5560ee9 ci: bump actions/create-github-app-token from 2 to 3
Bumps [actions/create-github-app-token](https://github.com/actions/create-github-app-token) from 2 to 3.
- [Release notes](https://github.com/actions/create-github-app-token/releases)
- [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/create-github-app-token
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 18:24:16 +01:00
dependabot[bot]andMatthieu Coudron ca53f083db ci: bump dorny/paths-filter from 3 to 4
Bumps [dorny/paths-filter](https://github.com/dorny/paths-filter) from 3 to 4.
- [Release notes](https://github.com/dorny/paths-filter/releases)
- [Changelog](https://github.com/dorny/paths-filter/blob/master/CHANGELOG.md)
- [Commits](https://github.com/dorny/paths-filter/compare/v3...v4)

---
updated-dependencies:
- dependency-name: dorny/paths-filter
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-16 14:12:48 +01:00
home-manager-ci[bot]andMatthieu Coudron dee018cd92 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:** 1 maintainers
**Total:** 285 → 285 maintainers

** Added:** alinnow

** Removed:** libewa

Generated by: lib/python/generate-all-maintainers.py
2026-03-16 14:12:07 +01:00
Austin Horstman 9a40ec3b78 sketchybar: refactor sbarlua support
Needs to handle different lua versions better. Determine lua version for
which luaPackages set to reference

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-15 16:01:32 -05:00
home-manager-ci[bot]andMatthieu Coudron 585a161ea6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9dcb002ca1690658be4a04645215baea8b95f31d?narHash=sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs%3D' (2026-03-08)
  → 'github:NixOS/nixpkgs/c06b4ae3d6599a672a6210b7021d699c351eebda?narHash=sha256-wvfdLLWJ2I9oEpDd9PfMA8osfIZicoQ5MT1jIwNs9Tk%3D' (2026-03-13)
2026-03-15 18:53:27 +01:00
Francis HamelandAustin Horstman ef12a9a2b0 obsidian: fix obsidian.json path on macOS 2026-03-13 12:21:53 -05:00
Francis HamelandAustin Horstman ef1e33949e obsidian: add cli option to obsidian.json 2026-03-13 12:21:53 -05:00
Max CabrajacandAustin Horstman be0c641a6a mergiraf: Prevent warnings related unmanaged VCSs
Add a guard to prevent people from getting warnings related to VCSs they
don't use.
2026-03-12 21:00:48 -05:00
teto 4aeef1941f neovim: update tests to work with latest nixpkgs
Since https://github.com/NixOS/nixpkgs/pull/495392, the wrapper doesn't
create provider executables along with the neovim wrapper. They still
exist but at locations indicated by the g:XXX_provider_host variable.
2026-03-12 17:17:57 +01:00
teto 7cd3093fc6 neovim: disable ruby provider by default 2026-03-12 15:01:04 +01:00
teto 52d053556a create-news-entry.sh: add more examples
To make it easier for contributors to customize their entry: it's easier
to remove the comments (or not since they wont be seen anyway) then
searching for those examples.
2026-03-12 15:00:50 +01:00
teto f9482fd109 neovim: fix test
package.path (mkOrder 100) is expected to be before `vim.cmd` (mkBegin -> mkOrder 500).
Not sure how the error was not detected before ?
2026-03-12 14:49:18 +01:00
luo jiyinandGitHub 7d06e0cefe treewide: fix spelling errors 2026-03-11 22:32:16 -05:00
AlinandAustin Horstman 45fe5c9854 zed-editor: add alinnow as maintainer 2026-03-11 22:13:46 -05:00
AlinandAustin Horstman 4536603a43 zed-editor: add enableMcpIntegration option
Integrate with the shared MCP module
2026-03-11 22:13:46 -05:00
Bruno BELANYIandGitHub d7ef0034e3 mergiraf: add 'enable{Git,Jujutsus}Integration' 2026-03-11 21:52:41 -05:00
home-manager-ci[bot]andAustin Horstman 32f78141a9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
  → 'github:NixOS/nixpkgs/9dcb002ca1690658be4a04645215baea8b95f31d?narHash=sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs%3D' (2026-03-08)
2026-03-11 16:28:16 -05:00
teto 3f98e2bbc6 neovim: reference neovim-unwrapped lua
less opportunities to mess the reference up by referencing unwrapped's lua directly.
2026-03-10 22:45:37 +01:00
teto 1b2dc84c81 neovim: filter attributes passed to makeVimPackageInfo
nixpkgs is going to emit errors when seeing unknown attributes so this
preemptively cleans the passe attributes to avoid errors on next
nixpkgs bump.
2026-03-10 22:45:37 +01:00
home-manager-ci[bot]andAustin Horstman 67cd089ee1 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:** 0 maintainers
**Removed:** 0 maintainers
**Total:** 285 → 285 maintainers

Generated by: lib/python/generate-all-maintainers.py
2026-03-10 16:14:10 -05:00
tetoandAustin Horstman 2912398c1c kitty: dont add unneeded newlines
triggers my OCD.
2026-03-10 16:01:24 -05:00
Linus WarnatzandMatthieu Coudron bb014746ed zed-editor: remove libewa as maintainer and resolve TODO
I no longer use Zed, and most of the code in the module is not mine.
I'd rather have someone who actually uses the module take it up.

The TODO was resolved a long time ago.
2026-03-09 23:04:00 +01:00
home-manager-ci[bot]andAustin Horstman 5be5d8245c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8c809a146a140c5c8806f13399592dbcb1bb5dc4?narHash=sha256-WGV2hy%2BVIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg%3D' (2026-03-03)
  → 'github:NixOS/nixpkgs/aca4d95fce4914b3892661bcb80b8087293536c6?narHash=sha256-E1bxHxNKfDoQUuvriG71%2Bf%2Bs/NT0qWkImXsYZNFFfCs%3D' (2026-03-06)
2026-03-08 10:54:45 -05:00
tetoandAustin Horstman 27b93804fb neovim: adapt provider tests
This checks the final provider value instead of the wrapper implementation.
This requires to run the real neovim so I removed the stub.

The providers at home-path/bin/nvim-X will disappear from nixpkgs
hopefully so I simplified the pattern to "X".

Probably in future we want to check "assertFileExists" against the
returned value node_host_prog
2026-03-06 19:05:25 -06:00
BikkuandAustin Horstman c804204306 lutris: fix proton packages not showing up
For versions of lutris 0.5.20+, it no longer links proton packages under
the proton folder, instead uses wine's folder for both types.
2026-03-06 19:04:28 -06:00
Wildan NursyamsiandAustin Horstman efba7917d5 Translate using Weblate (Indonesian)
Currently translated at 93.7% (15 of 16 strings)

Translate using Weblate (Indonesian)

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/id/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/id/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-03-06 19:01:13 -06:00
Vinicius DeolindoandBruno BELANYI daa2c22132 colima: only pass --save-config=false if settings were set 2026-03-06 14:28:38 +00:00
Zhanibek AdilbekovandAustin Horstman 5a75730e6f bash: support defining aliases beginning with a dash or plus 2026-03-04 08:08:47 -06:00
home-manager-ci[bot]andAustin Horstman ef26422ded flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dd9b079222d43e1943b6ebd802f04fd959dc8e61?narHash=sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE%3D' (2026-02-27)
  → 'github:NixOS/nixpkgs/8c809a146a140c5c8806f13399592dbcb1bb5dc4?narHash=sha256-WGV2hy%2BVIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg%3D' (2026-03-03)
2026-03-04 08:04:24 -06:00
Wildan NursyamsiandAustin Horstman 924e61f5c2 Translate using Weblate (Indonesian)
Currently translated at 82.0% (32 of 39 strings)

Co-authored-by: Wildan Nursyamsi <muhamad11wildan4n@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/id/
Translation: Home Manager/Home Manager CLI
2026-03-03 14:24:51 -06:00
Austin Horstman 4876d397c2 tests: scrub radio-cli and yt-dlp on darwin
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 57134be3b8 tests: align darwin getconf placeholder for ssh/proton agents
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 11c89ba2e5 tests: stop pueued via alice user session in nixos-basics
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman d76a12d115 maintainers: drop duplicated mikaeladev from HM
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman 8f7638b4db maintainers: drop duplicated karaolidis from HM
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
Austin Horstman f0e9edfe7f tests/mpv: stub wrapper
Pulling in external dependencies we aren't even trying to test against.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-03 14:24:37 -06:00
home-manager-ci[bot]andAustin Horstman c82ad3bc5c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ec7c70d12ce2fc37cb92aff673dcdca89d187bae?narHash=sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44%3D' (2026-02-11)
  → 'github:NixOS/nixpkgs/dd9b079222d43e1943b6ebd802f04fd959dc8e61?narHash=sha256-I45esRSssFtJ8p/gLHUZ1OUaaTaVLluNkABkk6arQwE%3D' (2026-02-27)
2026-03-03 14:24:37 -06:00
Karun SandhuandAustin Horstman 2b9504d5a0 hyprland: allow closing submaps on dispatch
This adds an 'onDispatch' option to the 'submaps' attribute set,
enabling the 'submap = name, ondispatch' syntax which allows submaps to
be closed automatically after a dispatch.
2026-03-02 23:43:40 -06:00
leiserfgandAustin Horstman 9d83727001 vicinae: restart service on config change 2026-03-02 23:37:26 -06:00
home-manager-ci[bot]andAustin Horstman 6ac68b96a8 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:** 284 → 285 maintainers

** Added:** mana-byte

Generated by: lib/python/generate-all-maintainers.py
2026-03-02 23:32:54 -06:00
Adam C. StephensandAustin Horstman a71c7c601e home-environment: revert use nix profile add instead of install
This reverts commit e8d5fc77c2.
2026-03-02 23:32:28 -06:00
Vinicius DeolindoandAustin Horstman f140aa04d7 colima: add kubectl to the service's $PATH 2026-03-01 09:54:21 -06:00
Jasper ChanandAustin Horstman 9c8b3cc2d5 nnn: allow setting default cli arguments 2026-03-01 09:51:08 -06:00
magicquarkandAustin Horstman 7608066893 pyradio: add group details to stations description 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 56c1ceb3c8 pyradio: add per-station player profile option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 358bafaf95 pyradio: add per-station buffering option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman e04cf4c16d pyradio: add per-station forceHttp option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 1efaaf2072 pyradio: add per-station icon url option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman ebe3ca5c9c pyradio: add per-station encoding option 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman fd40fa91a4 pyradio: refactor generation of csv row 2026-03-01 09:49:52 -06:00
magicquarkandAustin Horstman 53069c542e pyradio: add per-station volume option 2026-03-01 09:49:52 -06:00
Issam E. MaghniandAustin Horstman cf7448c589 accounts.email: add mailbox.org flavor
Based on the [official documentation][1].

[1]: https://kb.mailbox.org/en/private/e-mail/e-mail-configuration/
2026-03-01 09:49:04 -06:00
rsahweandAustin Horstman 92460de672 rizin: fix comment character typo 2026-03-01 09:48:35 -06:00
Austin Horstman 6f2cb27ea6 tests/codex: consolidate tests
Reduce test case setup to cover same logic branches.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Austin Horstman e0bcb05ce9 tests/codex: update skills tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Austin Horstman 680a967f21 codex: fix skills location for new version
Recently changed location where codex looks for skills. Version gate
where we install the skills.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-03-01 09:18:14 -06:00
Matthieu CoudronandGitHub 58fd7ff0ee justfile: moved format command from Makefile
Migrating command from Makefile to justfile.
I could not find any reference in the doc so I kept a migration
instruction in Makefile.
2026-02-28 20:03:31 -06:00
Austin Horstman 6656349da8 tests/lazyworktree: add integration asserts
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman f31dbc1042 lazyworktree: add shell integration
Add shell integration that functions similar to lazygit for navigating
to directory of the chosen worktree.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman 6da59c400c tests/lazyworktree: updated settings example
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Austin Horstman cd9d012ba3 lazyworktree: updated settings example
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-28 20:01:47 -06:00
Ondřej KvapilandMatthieu Coudron f3a30376bb difftastic: allow repeating options
The type was overly restrictive, see
https://github.com/nix-community/home-manager/pull/7947/changes#r2858054388
2026-02-27 19:59:12 +01:00
Austin Horstman 2a39b0828b tests/starship: add no settings and presets tests
Help catch future regressions

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Austin Horstman 3113094428 starship: only generate file when configured
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Austin Horstman d70de619f7 starship: lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-26 22:00:35 -06:00
Bruno BELANYIandAustin Horstman dcfc84871c mpv: add 'extraMakeWrapperArgs' 2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman 14e98b1d96 tests: mpv: add 'mpv-scripts' 2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman ccd5351436 tests: mpv: refactor stubs definition
I am about to introduce more tests making use of the stubs, let's
centralize them in one file.
2026-02-26 21:39:23 -06:00
Bruno BELANYIandAustin Horstman c3f348111f mpv: refactor wrapping
This makes it slightly easier to add additional wrapper options.
2026-02-26 21:39:23 -06:00
sollnissandAustin Horstman 04acdd8af8 anki: support multiple profiles 2026-02-26 21:37:56 -06:00
RaneandAustin Horstman bff85cb66b claude-code: add support for output styles
Adds an option to populate the output_styles directory,
which is used by Claude Code to make custom output styles available.
2026-02-26 21:37:08 -06:00
Utkarsh GuptaandAustin Horstman 920c07c691 colim|docker-cli: switch to xdg by default in 26.05 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 221046764c colima: set $DOCKER_HOST for default context in 26.05 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 91920e955f colima: add homeDir & respect XDG 2026-02-26 21:34:24 -06:00
Utkarsh GuptaandAustin Horstman 6f35059f9a docker-cli: allow absolute paths for configDir 2026-02-26 21:34:24 -06:00
mana-byteandAustin Horstman 3233912054 mistral-vibe: remove vim_keybindings from example 2026-02-26 21:30:37 -06:00
mana-byteandAustin Horstman f2579cddca mistral-vibe: add mana-byte to maintainers 2026-02-26 21:30:37 -06:00
bandithedogeandAustin Horstman ec4e1159d9 starship: add presets option 2026-02-26 21:30:07 -06:00
rsahweandAustin Horstman b96418f81b rizin: add settings option
This adds a settings option to the rizin module,
which allows configuring rizin with the e command.
All other configuration currently still requires extraConfig.
2026-02-26 21:26:20 -06:00
octvsandAustin Horstman 31ea32fa14 i3-sway: allow inverse_outer on smart_gaps
Change the boolean `smartGaps` option to an `enum` that expects common
values of i3 and sway ("on" "off" "inverse_outer").
2026-02-26 21:07:13 -06:00
cethienandAustin Horstman a5b92cc213 rclone: added sanitazion in systemd service name
- replaces $ and spaces
- escapes mount path
2026-02-26 21:02:03 -06:00
Ben BrownandAustin Horstman b42875c294 waybar: Avoid reload onChange when systemd integration is enabled
When systemd integration is enabled, systemd will handle the issuing of
`SIGUSR2` through `X-Reload-Triggers`.

All this would do is trigger multiple `SIGUSR2` signals, which can
exacerbate this upstream issue:
https://github.com/Alexays/Waybar/issues/3344#issuecomment-2390661508
2026-02-26 20:51:32 -06:00
tetoandAustin Horstman 4c4fd4ed6b feat: introduce development shell
flakes are not stable yet, community is divided but maintaining both
flake and a set of dependencies in our scripts is hard.
So provide a nix-shell that fetches the nixpkgs recorded in the
flake.lock to keep a single source of truth

doc: updated the doc to advise `nix-shell -A dev`
2026-02-26 20:44:57 -06:00
tetoandAustin Horstman 58330fd08d flake: add a devShell
that includes the formatter
2026-02-26 20:44:57 -06:00
Lyra AranhaandAustin Horstman 27ba84b1f0 nixpkgs: add setting nixpkgs.config.allowUnfreePackages = ["list" "of" "packages"] 2026-02-26 20:39:49 -06:00
Anton TetovandMatthieu Coudron ce9b6e5250 difftastic: fix example: s/sort-path/sort-paths/
Fixed the example, I realized it was wrong since I copied it and got an error:

```
$ difft --sort-path
error: unexpected argument '--sort-path' found

  tip: a similar argument exists: '--sort-paths'
```

The option is documented in `difft --help` and implemented in `difftastic/src/options.rs`.

https://github.com/Wilfred/difftastic/blob/7d8175dccfdde3a9046acd389980f7240ca58d96/src/options.rs#L375

It's used correctly in the jujutsu submodule at the end of this file.
2026-02-25 23:55:33 +01:00
home-manager-ci[bot]andRobert Helgesson 9a4b494b1a 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:** 283 → 284 maintainers

** Added:** rsahwe

Generated by: lib/python/generate-all-maintainers.py
2026-02-23 13:53:01 +01:00
rsahweandRobert Helgesson 5bd3589390 zed-editor: fix remote server executable name
The remote server executable in the zed-editor package has a '+stable'
appended at the end now. This uses the remoteServerExecutableName
attribute from the zed-editor package instead of guessing.
2026-02-22 11:33:56 +01:00
Bart SmyklaandRobert Helgesson e8d5fc77c2 home-environment: use nix profile add instead of install
nix profile install was renamed to nix profile add in Nix 2.28.
The old name still works as a deprecated alias but produces a warning
on every home-manager switch:

  warning: 'install' is a deprecated alias for 'add'

Signed-off-by: Bart Smykla <bartek@smykla.com>
2026-02-22 11:22:48 +01:00
Thierry DelafontaineandRobert Helgesson 603626a8da docs: add anchor link icons to headers 2026-02-22 09:48:42 +01:00
Gaetan LepageandAustin Horstman c6ed3eab64 mistral-vibe: set default for settings 2026-02-21 08:14:43 -06:00
Gaetan LepageandAustin Horstman 44773e1925 ruff: set default for settings 2026-02-21 08:14:43 -06:00
Gaetan LepageandAustin Horstman 436b27742c mistral-vibe: add module 2026-02-20 22:25:11 -06:00
André KuglandandAustin Horstman a913ae61bf firefox: add handlers.json configuration
Adds support for configuring Firefox's handlers.json file to
manage MIME type and URL scheme handlers declaratively (at
`programs.firefox.profiles.<profile>.handlers`). Handlers control
how Firefox opens files and protocols (e.g., PDF viewers,
`mailto:` handlers).
2026-02-20 16:08:03 -06:00
rsahweandAustin Horstman c9507a9aa5 rizin: use xdg.enable and home.preferXdgDirectories
rizin reads configuration from both $HOME/.rizinrc and
from $XDG_CONFIG_HOME/rizin/rizinrc and the module
now uses the relevant options for choosing between them.
2026-02-20 16:06:11 -06:00
rsahweandAustin Horstman 168fbe8891 rizin: add module
This adds a basic module for rizin which supports creating a basic
rizinrc for configuration.
2026-02-20 16:06:11 -06:00
rsahweandAustin Horstman 1dcebb44c6 maintainers: add rsahwe 2026-02-20 16:06:11 -06:00
Jasper ChanandAustin Horstman 8b6212ebd6 nnn: add cd on quit option 2026-02-20 16:05:11 -06:00
Austin Horstman 91be7cce76 claude-code: fix skills implementation
Claude skills are only found when using `SKILL.md` entrypoints.
Attribute names should be used for the directory structure, not the
filename.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-19 14:00:06 -06:00
Léana 江andMatthieu Coudron 167e0b6837 zsh: set nix-zsh-completions as lowPrio to avoid subpath conflict 2026-02-19 17:37:09 +01:00
Ayush PramanikandMatthieu Coudron a0a01d8811 sioyek: add startupCommands option 2026-02-19 13:44:24 +01:00
Vinicius DeolindoandAustin Horstman 2dedeb55b2 man: make package nullable and default to null on darwin 2026-02-18 21:19:39 -06:00
Austin Horstman f19a99503c ci: update buildbot test config
After https://github.com/nix-community/home-manager/pull/8464 we need to
update this to not try another flake.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-18 21:19:06 -06:00
tetoandAustin Horstman 0f156f177d doc: updated instructions with tests being moved around
no need to set flake now
2026-02-18 21:13:38 -06:00
tetoandAustin Horstman 8e0f4cdeee tests: merge both flakes
we used to have a flake in tests/flake.nix on top of the top-level one.
This results in 2 lockfiles for the same purpose and is not practical.
Instead this moves tests to legacyPackages:

- so they dont appear in "nix flake show" as it can be inconvenient
- legacyPackages supported nested attribute sets of derivations which
  could let us regroup tests under a same set and build that instead.
  For instance, one could `nix build .#tests.neovim` and build all of
  neovim packages. One could still pick a single `nix build
  .#tests.neovim.plugin-config`

dont expose tests into devShells to limit

fix python test runner to find the tests where appropriate
2026-02-18 21:13:38 -06:00
Léana 江andAustin Horstman f1ebddedab tmux: fix double press prefix passthrough 2026-02-18 20:55:51 -06:00
MrTipsonandMatthieu Coudron b3ccd4bb26 fish: source event handling functions on shell init
Functions that contain event handler switches should be sourced during init, otherwise they become active only after being called manually.
2026-02-18 14:49:42 +01:00
carschandlerandMatthieu Coudron 77c47a4542 carapace: ignoreCase option for case-insensitive completion
Add option for case-insensitive matching in carapace completions.
2026-02-18 11:50:04 +01:00
Thiago Kenji OkadaandMatthieu Coudron 4ebb171bc5 nnn: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron 30f54c7014 qt: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron 671ba1f70e mpv: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron f71fa310cf hexchat: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron bfc89f1936 nixpkgs-disabled: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
Thiago Kenji OkadaandMatthieu Coudron b0d7d25a46 i3status-rust: remove thiagokokada from maintainers 2026-02-18 11:40:48 +01:00
teto b0b01ab65b Revert "feat: introduce nix-shell"
This reverts commit bb45c03659.
2026-02-18 11:24:01 +01:00
home-manager-ci[bot]andAustin Horstman 5f1d42a97b 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:** 282 → 283 maintainers

** Added:** malikwirin

Generated by: lib/python/generate-all-maintainers.py
2026-02-16 13:17:35 -06:00
tetoandAustin Horstman c7d7ba954a mpv: fix include example/improve doc
I just learnt about "~~/config.inc" syntax from https://mpv.io/manual/stable/#paths
which is quite nice.
2026-02-16 13:17:21 -06:00
Austin Horstman ae8003d8b6 mkFirefoxModule: remove visible option
Just default everything to show options to remove confusion / chance of
disabling documentation. We already set visible = true so it wasn't even
being used really.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-15 14:42:12 -06:00
Austin Horstman 1e53254671 news: inform about yazi alias change
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-14 23:14:41 -06:00
phucleeuwuandAustin Horstman ee49ee29a1 yazi: change the default shellWrapperName yy y
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-14 23:14:41 -06:00
Bruno BigrasandAustin Horstman ff5e5d882c tirith: fix case sensitive example
`LOW`, `MEDIUM`, `HIGH` and `CRITICAL` are case sensitive
2026-02-14 15:02:25 -06:00
mikaeladevandMatthieu Coudron 05e6dc0f6e qt: fix typo in qtct example 2026-02-14 03:52:59 +01:00
Ryan HendricksonandAustin Horstman 26dfad95d9 nix: add assumeXdg option
The use-xdg-base-directories Nix setting can be set globally in
/etc/nix/nix.conf, in which case Home Manager doesn't know about it.
Users could fix that by also setting it, redundantly, in `nix.settings`,
but then Nix issues a lot of spurious warnings about
use-xdg-base-directories being a restricted setting that untrusted users
can't pass on to the daemon.

As an alternative, users can now set `nix.assumeXdg`, which makes Home
Manager assume that use-xdg-base-directories is in effect without adding
it to the user's nix.conf file.
2026-02-13 15:28:13 -06:00
Matthias BeyerandAustin Horstman b3258dece8 programs.radicle: Document how "rad auth" must be used with this
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2026-02-13 14:34:42 -06:00
Peter KlingandAustin Horstman e9b706bef7 syncthing: activate logging for macOS agents 2026-02-13 14:05:36 -06:00
Peter KlingandAustin Horstman cadfe449aa syncthing: more reliable syncthing launchd agent
Starts the syncthing-init launchd agent (responsible for updating the configuration) as a oneshot agent instead of via WatchPaths (the latter is too unreliable).

Ideally, the syncthing-init agent should be started after the syncthing agent started the Syncthing server, since syncthing-init updates the configuration using API calls to the Syncthing server. The Linux systemd service versions handle this via the Requires and After attribute. Launchd under macOS is missing a reliable way to order agents. Theoretically, one can achieve similar things via, e.g., WatchPaths (used before this commit). But this is known to be very unreliable (see also my comment in issue #6542). Thus, we just start syncthing-init and rely on the wrapped curl bash function (see curlShellFunction in nix file) to wait for the Syncthing server to be up and running.
2026-02-13 14:05:36 -06:00
Austin Horstman bc5652b227 tests/types: add suboptions doc test
Verify we are able to extract suboptions properly with our custom lib
extension.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 29d617ecc8 docs: improve submodule options rendering
Certain types don't offer `getSubOptions` upstream in nixpkgs, at the
moment. We can do some overriding and manually calling it for now to
fetch the options for docs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 4c4771cb01 rofi: add missing option description
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 3017414609 launchd: add missing option description
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:41:08 -06:00
Austin Horstman 54ab8bc155 maintainers: remove offline
Removed upstream https://github.com/NixOS/nixpkgs/pull/483520

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-13 13:26:06 -06:00
home-manager-ci[bot]andAustin Horstman 975606b2a5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d6c71932130818840fc8fe9509cf50be8c64634f?narHash=sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84%3D' (2026-02-08)
  → 'github:NixOS/nixpkgs/ec7c70d12ce2fc37cb92aff673dcdca89d187bae?narHash=sha256-9xejG0KoqsoKEGp2kVbXRlEYtFFcDTHjidiuX8hGO44%3D' (2026-02-11)
2026-02-13 13:26:06 -06:00
MalikandAustin Horstman 5e90b62996 tirith: add module
Adds Home Manager module for Tirith, a shell security monitor.

The module supports:
- Shell integration for Bash, Fish, and Zsh
- Allowlist configuration for bypassing Tirith analysis
- Policy configuration for customizing security behavior
2026-02-13 09:08:51 -06:00
Yus314andRobert Helgesson de4cfffc98 kitty: add autoThemeFiles option
Add support for kitty's automatic theme switching based on OS
color scheme. This creates the required auto theme config files:
- light-theme.auto.conf
- dark-theme.auto.conf
- no-preference-theme.auto.conf

Closes: nix-community/home-manager#6869
2026-02-13 10:32:36 +01:00
Austin Horstman a6c93262f3 pay-respects: minor style cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman f24a755980 news: add pay-respects rules addition
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman 2fe1e0ea38 tests/pay-respects: add rules test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
Austin Horstman 133585ddfa pay-respects: add rules support
Allow creating rules files now following docs from
https://github.com/iffse/pay-respects/blob/main/rules.md

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 23:45:12 -06:00
nesciasandAustin Horstman 9bdb693810 notmuch: add programs.notmuch.package option
Allow users to specify which notmuch package should be used.
2026-02-12 16:42:39 -06:00
nesciasandAustin Horstman 258db1d39b git: respect programs.msmtp.package
Since the user may override `programs.msmtp.package` using
`pkgs.msmtp` as the sendmail binary might result in the wrong package
being used.
2026-02-12 16:42:39 -06:00
Austin Horstman 2cc195b478 docs: update flake module example
Just include some more detail in example

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 15:13:04 -06:00
Austin Horstman 6a1f7101d2 news: add flameshot darwin entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
Austin Horstman ede6d1d95e tests/flameshot: add darwin tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
Austin Horstman 2363f5a377 flameshot: add darwin support
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-12 11:04:03 -06:00
teto 0825a0922a feat: introduce nix-shell
flakes are not stable yet, community is divided but maintaining both
flake and a set of dependencies in our scripts is hard.
So provide a nix-shell that fetches the nixpkgs recorded in the
flake.lock to keep a single source of truth
2026-02-12 16:27:35 +01:00
home-manager-ci[bot]andAustin Horstman 0acbd11806 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/00c21e4c93d963c50d4c0c89bfa84ed6e0694df2?narHash=sha256-AYqlWrX09%2BHvGs8zM6ebZ1pwUqjkfpnv8mewYwAo%2BiM%3D' (2026-02-04)
  → 'github:NixOS/nixpkgs/d6c71932130818840fc8fe9509cf50be8c64634f?narHash=sha256-ub1gpAONMFsT/GU2hV6ZWJjur8rJ6kKxdm9IlCT0j84%3D' (2026-02-08)
2026-02-11 08:04:04 -06:00
Adam PoitandAustin Horstman b3f43db171 colima: fix KeepAlive to prevent process accumulation on macOS
Change KeepAlive from boolean true to SuccessfulExit dictionary in the LaunchAgent configuration.
When colima fails to start (e.g., disk already attached), the boolean true setting causes
launchd to immediately restart it, spawning orphaned limactl usernet processes with each
restart.

Using SuccessfulExit = true ensures the service only restarts on clean exits (exit code 0),
preventing the aggressive restart loop that accumulates orphaned processes.
2026-02-10 21:19:55 -06:00
home-manager-ci[bot]andAustin Horstman 6c4fdbe1ad 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:** 282 → 283 maintainers

** Added:** mikaeladev

Generated by: lib/python/generate-all-maintainers.py
2026-02-09 10:28:40 -06:00
Austin Horstman 13a1beb7c9 news: add codex mcp integration
Just letting users know module has the integration enabled now.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-09 07:14:50 -06:00
Austin Horstman 6c8def1df8 codex: add enableMcpIntegration option
Work with the shared mcp module for integration and transformation.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-09 07:14:50 -06:00
Austin Horstman b1f916ba05 news: don't specify nixpkgs revision
Not necessary for using nix-shell and causes extra maintenance.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-08 15:31:12 -06:00
home-manager-ci[bot]andAustin Horstman a0da0f24fd flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e6eae2ee2110f3d31110d5c222cd395303343b08?narHash=sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc%3D' (2026-02-03)
  → 'github:NixOS/nixpkgs/00c21e4c93d963c50d4c0c89bfa84ed6e0694df2?narHash=sha256-AYqlWrX09%2BHvGs8zM6ebZ1pwUqjkfpnv8mewYwAo%2BiM%3D' (2026-02-04)
2026-02-08 15:21:52 -06:00
Francesco NoaccoandAustin Horstman afaa85cf32 vivid: add nushell integration 2026-02-08 15:20:51 -06:00
Aguirre MatteoandAustin Horstman 42c607ecb4 news: add lazyworktree entry 2026-02-08 15:14:18 -06:00
Aguirre MatteoandAustin Horstman f5d50fd8cb lazyworktree: add module 2026-02-08 15:14:18 -06:00
Austin Horstman cbd8a72e5f treewide: remove xorg package set
Xorg package set removed, now aliases.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-07 13:10:27 -06:00
Francesco NoaccoandAustin Horstman 6cee082157 zed-editor: don't generate empty keymap files
default value for user keymaps is an empty list, but the check was
made against an empty set, generating the file when no value
was given
2026-02-07 09:07:14 -06:00
Austin Horstman 471e6a065f prismlauncher: merge only when configured
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-05 13:11:00 -06:00
Austin Horstman f915881ba7 prismlauncher: code style and lint cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-05 13:11:00 -06:00
K900andAustin Horstman 332027bc0a treewide: use pkgs.lndir instead of pkgs.xorg.lndir
Follow the change in nixpkgs.
2026-02-05 10:59:19 -06:00
AntonandAustin Horstman bbccee8713 halloy: fix URL in description 2026-02-05 07:58:26 -06:00
mikaeladevandAustin Horstman 04e5203db6 prismlauncher: add module 2026-02-04 21:47:21 -06:00
mikaeladevandAustin Horstman 6f64dee491 maintainers: add mikaeladev 2026-02-04 21:47:21 -06:00
Léana 江andAustin Horstman cfb3b544f9 programs.git: test git integration options assertion 2026-02-04 21:43:38 -06:00
Léana 江andAustin Horstman 715e6d7f89 programs.git: fix assertion message inconsistency 2026-02-04 21:43:38 -06:00
Austin Horstman 6c79e409a5 news: add xdg-user-dirs changes entry
Inform users about the various changes to xdg-user-dirs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman c8f9edda94 xdg.userDirs: add notes for stateVersion changes 2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 9b62076484 xdg.userDirs: change the syntax for extraConfig
E.g., use `MISC` instead of `XDG_MISC_DIR`, the same way `xdg-user-dirs-update`
works.

This is conditionalized on 26.05, so in future `XDG_MISC_DIR` will be disallowed.
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman db9044b119 xdg.userDirs: add a setSessionVariables option
It defaults to `true` to maintain the current behavior.

This is conditionalized on 26.05, so in future `setSessionVariables` will
default to `false`.
2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 83cc9d32e3 xdg.userDirs: add a nullable package option 2026-02-04 21:16:02 -06:00
Greg PfeilandAustin Horstman 7c47cafa90 xdg.userDirs: don’t require Linux
Everything here works on Darwin, etc.
2026-02-04 21:16:02 -06:00
home-manager-ci[bot]andAustin Horstman 689e4a3423 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1?narHash=sha256-MJ27Cy2NtBEV5tsK%2BYraYr2g851f3Fl1LpNHDzDX15c%3D' (2026-01-21)
  → 'github:NixOS/nixpkgs/e6eae2ee2110f3d31110d5c222cd395303343b08?narHash=sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc%3D' (2026-02-03)
2026-02-04 20:53:11 -06:00
Johan LarssonandAustin Horstman 4fda26500b tomat: modify After, PartOf, Environment in service
This allows the tomat service to properly execute hooks, which is a
feature that requires a modifying the PATH and ensuring that the service
is started after the graphical session.
2026-02-03 18:17:40 -06:00
home-manager-ci[bot]andAustin Horstman 83e4f9b4d2 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:** 281 → 282 maintainers

** Added:** magicquark

Generated by: lib/python/generate-all-maintainers.py
2026-02-03 18:16:16 -06:00
Dennis SchriddeandAustin Horstman 36349274d7 home-manager: Prevent pipe failure when reading news
On my system (Fedora 43 with Nix 2.31.3) `home-manager news` exits
from `SIGPIPE` and never writes `~/.local/share/home-manager/news-read-ids`,
resulting in news items to never be marked read.  This is caused by
piping `(import ./news.nix).news.all` through `jq` and `less` failing
with an error as soon as `less` exits, which triggers `set -o pipefail`
to exit the shell running `home-manager` itself.

Avoiding the pipe into `$PAGER` avoids the problem.

Closes: https://github.com/nix-community/home-manager/issues/8690
References: https://github.com/jqlang/jq/issues/1017
References: https://www.greenend.org.uk/rjk/tech/shellmistakes.html#pipeerrors
2026-02-03 18:14:58 -06:00
teto 984708c34d neovim: make lua dependencies appear earlier in init.lua
We want t this to appear at the very beginning, before loading any other
plugin.
2026-02-01 21:39:55 +01:00
unlsycnandRobert Helgesson b593765639 vscode: fix extension path for antigravity
Standardize the extension installation path to `/share/vscode/extensions`
regardless of the package name.

Previously, setting the package name to 'antigravity' would change the
internal path to `/share/antigravity`, which caused a mismatch because
most upstream Nixpkgs extensions are hardcoded to install into
`/share/vscode/extensions`. This resulted in an empty or incomplete
extensions directory in the nix store.

Also added 'antigravity' to the list of packages requiring an
immutable extensions.json file.

Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-02-01 14:28:27 +01:00
koiandRobert Helgesson 47d542afdd vesktop: add QuickCSS support
vencord quickcss support with `extraQuickCss`
2026-02-01 14:09:05 +01:00
Vinicius DeolindoandRobert Helgesson 1742b5cb6a mergiraf: add jujutsu integration 2026-02-01 14:06:20 +01:00
Brenton SimpsonandRobert Helgesson ddf76d1618 gitignore: hide noisy Mac .DS_Store files from git 2026-02-01 13:13:00 +01:00
K900andRobert Helgesson 87d6611d26 desktoppr: fix useless escapes
Identified by recent changes in Lix.
2026-02-01 13:06:18 +01:00
Pedro de MattiaandRobert Helgesson f4ad5068ee Translate using Weblate (Portuguese)
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Portuguese)

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Pedro de Mattia <pedromattia@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt_BR/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-31 16:22:15 +01:00
nesciasandRobert Helgesson 475921375d email: add posteo.de email account flavor
Add `posteo.de` to `accounts.email.accounts.<name>.flavor`. See
<https://posteo.de/en/help/how-do-i-set-up-posteo-in-an-email-client-pop3-imap-and-smtp>
for their setup guide.
2026-01-30 23:59:05 +01:00
Brenton SimpsonandAustin Horstman 1a7b0c4315 chromium: add plasmaSupport option for google-chrome
This flag allows Chrome to dynamically link to QT in order to introspect
your Plasma theme and make Chrome match.

Note, you may still need to add this entry to your home-manager config:
```
home.sessionVariables = [
  QT_QPA_PLATFORMTHEME = "kde";
];
```
2026-01-30 16:38:34 -06:00
Nikita RudenkoandRobert Helgesson 0fba737f8d lazygit: fix incorrect bash integration #8669
bashIntegration for lazygit is missing "function" keyword,
which leads to broken `~/.bashrc` file with errors like:

```
bash: ~/.bashrc: line 82: syntax error near unexpected token `('
bash: ~/.bashrc: line 82: `lg() {'
```
2026-01-30 13:27:05 +01:00
Robert Helgesson 175532b627 systemd: minor code cleanup
Trying to make more clear what is happening.
2026-01-29 22:45:38 +01:00
teto 5786e42530 neovim: add missing bit for extraLuaPackages
turns out I forgot to remove the now unnecessary wrapper arguments in
https://github.com/nix-community/home-manager/pull/8606.
This meant that `xdg.configFile."nvim/init.lua".enable = false` was
enough to fix the user issues but this should not be the case anymore.
2026-01-29 22:19:21 +01:00
magicquarkandRobert Helgesson 2a08ab21ab pyradio: add module 2026-01-29 16:10:27 +01:00
N4CH723HR3RandRobert Helgesson fdafcac367 cargo: add package option 2026-01-29 15:44:12 +01:00
Loïc ReynierandGitHub bd9f031efc starship: move init at the end of .bashrc (#8662)
Move Starship's Bash init at the end of .bashrc using mkOrder 1900.

Starship uses $PROMPT_COMMAND to generate timing information. To do so, it copies the original content of $PROMPT_COMMAND into $STARSHIP_PROMPT_COMMAND. Therefore it should be loaded last to prevent other program to append to $PROMPT_COMMAND.

Only Zoxide, which is initialized with mkOrder 2000, should be loaded after, see: ajeetdsouza/zoxide#1136
2026-01-28 16:06:41 -06:00
nersandMatthieu Coudron 02d763228d difftastic: add jujutsu integration 2026-01-28 18:46:11 +01:00
Wael NasreddineandGitHub eec72f1278 launchd: wait for /nix/store before starting agent (#8609)
On Darwin, launchd may attempt to start agents before the Nix store is
mounted and available. This leads to failures when the agent's executable
or arguments reside in the Nix store.

This change wraps the agent's command in a shell script that uses
/bin/wait4path to ensure /nix/store is ready before executing the
original program. It also ensures that ProgramArguments are correctly
escaped and concatenated.
2026-01-27 21:51:48 -08:00
Nikolaos KaraolidisandAustin Horstman ef5da06269 obsidian: add jq empty config file coalesce
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
Nikolaos KaraolidisandAustin Horstman 1012b2d005 obsidian: avoid using raw type
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
Nikolaos KaraolidisandAustin Horstman 0c2c72e43f obsidian: allow partial module configuration
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2026-01-27 23:11:09 -06:00
programmerlexiandRobert Helgesson d505dc46dc Translate using Weblate (German)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (German)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: programmerlexi <lexi@reyer.name>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-27 21:04:46 +01:00
Brian EandRobert Helgesson fa1133a313 Translate using Weblate (Faroese)
Currently translated at 50.0% (8 of 16 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager Modules
2026-01-27 21:04:46 +01:00
sollnissandAustin Horstman a10c1e8f5a anki: fix autoSyncMediaMinutes and networkTimeout not being applied 2026-01-26 11:57:50 -06:00
Thierry DelafontaineandAustin Horstman 384786dc70 news: add proton-pass-agent entry 2026-01-26 09:44:48 -06:00
Thierry DelafontaineandAustin Horstman 85e3ee7e59 service.proton-pass-agent: init module 2026-01-26 09:44:48 -06:00
Aguirre MatteoandAustin Horstman 7213f7ee3e hyprlauncher: fix start every ten seconds 2026-01-26 09:42:51 -06:00
home-manager-ci[bot]andAustin Horstman f9ef8567c7 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:** 280 → 281 maintainers

** Added:** drupol

Generated by: lib/python/generate-all-maintainers.py
2026-01-26 09:42:25 -06:00
Austin Horstman 9de7d83327 tests/zsh: add highlighters overrride test
Test ability to drop main from arguments forcefully.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-26 09:42:11 -06:00
Austin Horstman d0cdb4101f zsh: fix highlighter backwards compatibility
Use the module system to set the default at user prio so that existing
configs don't clear out `main`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-26 09:42:11 -06:00
name.tar.xzandGitHub c37679d37b zsh: Set highlighters instead of appending to allow disabling main
This allows users to drop the main highlighter (or highlighters set by plugins sourced before eg: catppucin's zsh highlighting settings)
2026-01-25 21:12:10 -06:00
tarzstandAustin Horstman e3dc313032 zsh: refactor history to use setOptions 2026-01-25 20:00:42 -06:00
Austin Horstman 2590268ca7 ci: extract maintainers searches for main module
Some modules are broken up into multiple files. Search for primary
import file that will contain the meta information needed, when missing.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-25 16:56:02 -06:00
Mirza ArnautandGitHub 4d1a4cd3d9 news: add new web option in opencode 2026-01-25 16:48:26 -06:00
adityalal01andAustin Horstman 9637348153 Translate using Weblate (Hindi)
Currently translated at 17.9% (7 of 39 strings)

Co-authored-by: adityalal01 <erc202009@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hi/
Translation: Home Manager/Home Manager CLI
2026-01-25 16:04:04 -06:00
Austin Horstman 950704d781 ci: fix extract-maintainers, pass options to eval
Module eval was silently failing check... include options so that eval
works again with modules that require argument.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-25 16:01:03 -06:00
Mirza ArnautandAustin Horstman 63ecc7d495 opencode: handle string store paths in skill sources
Add support for store directory paths provided as strings, in addition
to the existing path type check for directories.
Context: certain project will include a `SKILL.md` file, and instead of
managing them via some 3rd party manager or manually, why not include
them from the source itself! I implemented this in my setup, since I
wanted to include the `SKILL.md` file from the
[beads](https://github.com/steveyegge/beads) project.
2026-01-25 15:50:05 -06:00
unlsycnandAustin Horstman db9cf9232f vscode: add Antigravity support
Signed-off-by: unlsycn <unlsycn@unlsycn.com>
2026-01-25 15:49:30 -06:00
home-manager-ci[bot]andAustin Horstman 1ba1569a82 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
  → 'github:NixOS/nixpkgs/88d3861acdd3d2f0e361767018218e51810df8a1?narHash=sha256-MJ27Cy2NtBEV5tsK%2BYraYr2g851f3Fl1LpNHDzDX15c%3D' (2026-01-21)
2026-01-25 15:47:32 -06:00
Mirza ArnautandAustin Horstman d9da6e6457 opencode: add web service configuration
Add configuration options for the opencode web service including host,
port, mDNS, logging, and CORS settings. Implement systemd user service
to run the web server with configurable parameters.
2026-01-25 15:46:27 -06:00
tetoandAustin Horstman 2539eba97a justfile: add a create-news-entry target
to help with discovery.
flakes can expose targets as well but:
1. they are not supported by everyone
2. there is a perf hit for now when copying the repo into the nix store
2026-01-24 15:18:44 -06:00
Jairo LlopisandAustin Horstman 082a4cd87c opencode: fix config file location
The file should be named `opencode.json`, not `config.json`.

Docs: https://opencode.ai/docs/config/#global

@moduon MT-13030
2026-01-23 10:55:49 -06:00
teto 356a88a574 neovim: rename extraLuaConfig to initLua
Now that the whole lua config is exposed via the extraLuaConfig option,
it's not "extra" anymore but the whole content. Renaming it to "initLua"
is more adequate and it makes the option more understandable I hope.
2026-01-23 17:41:46 +01:00
AerdenandAustin Horstman d055b309a6 mpdscribble: fix journal file location
It should be in the user's home directory instead of /var/lib
2026-01-22 19:45:34 -06:00
Austin Horstman 0b435f768e tests/neovim: add default/empty tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-22 19:39:50 -06:00
Austin Horstman bbd2e36fc9 neovim: handle empty user config lua
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-22 19:39:50 -06:00
Takeru MikenuandRobert Helgesson 64133886d9 Translate using Weblate (Japanese)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Japanese)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Takeru Mikenu <mikenu-jp@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ja/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-22 23:56:38 +01:00
teto b0491fe556 neovim: move LUA_(C)PATH setup from wrapping to init.lua
so alternative GUIs can find lua dependencies that are not plugins (for instance nio).
Some plugins depend on lua packages that are not vim plugins and thus
become "invisible" to nixpkgs as it stands.
For now they need to be specified manually via `extraLuaPackages` but
hopefully we can autodiscover those in nixpkgs.
2026-01-22 18:24:33 +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
Hosted WeblateandRobert Helgesson bc68ab001c Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
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
Pol DellaieraandAustin Horstman 2d7b64e32f fresh-editor: init module 2026-01-21 10:52:13 -06: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
home-manager-ci[bot]andRobert Helgesson d6e3935ec6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e4bae1bd10c9c57b2cf517953ab70060a828ee6f?narHash=sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc%3D' (2026-01-16)
  → 'github:NixOS/nixpkgs/80e4adbcf8992d3fd27ad4964fbb84907f9478b0?narHash=sha256-C2TjvwYZ2VDxYWeqvvJ5XPPp6U7H66zeJlRaErJKoEM%3D' (2026-01-20)
2026-01-21 09:38:39 +01:00
Hosted WeblateandRobert Helgesson 9997de2f62 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:57:21 +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
Hosted WeblateandRobert Helgesson a50511b63f Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 21:45:34 +01:00
Austin Horstman 63a87808f5 tests/bemenu: test short form empty prompt
Issue came up in migration that we couldn't do a supported short form
empty string.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-20 10:49:06 -06:00
Austin Horstman 987271a659 bemenu: revert back to toCommandLineShell
Just reverting back to manual approach for backwards compatibility.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-20 10:49:06 -06:00
Robert Helgesson 9c5f8aceb6 home-manager: improve a few i18n strings 2026-01-20 13:35:18 +01:00
MatildeandRobert Helgesson 895eddbee8 Translate using Weblate (Danish)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Danish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Matilde <matilde.alb@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/da/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/da/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-20 08:22:58 +01:00
home-manager-ci[bot]andAustin Horstman b56c5ad14f 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:** 2 maintainers
**Total:** 280 → 280 maintainers

** Added:** JasmineLowen, einetuer

** Removed:** 0x5a4, robwalt

Generated by: lib/python/generate-all-maintainers.py
2026-01-19 09:29:06 -06:00
teto 8968092456 neovim: move plugins where expected
so we dont have to add some nix store path to rtp in the wrapper.
Makes the setup more in line with what neovim users are used to.
Also it means other neovim GUIs can see the plugins without wrapping.

A first version of this PR conflicted with existing
~/.local/share/nvim/site folders but this should be fine as it makes
only a subfolder readonly. 
I am able to mix rocks.nvim/vim.pack vim packages along with the
home-manager one for instance.
2026-01-19 15:56:01 +01:00
JessandAustin Horstman 2954aa2944 rclone: add autoMount option 2026-01-18 23:02:16 -06:00
JessandAustin Horstman 9e07a347f4 rclone: respect mounts enable option 2026-01-18 23:02:16 -06:00
JessandAustin Horstman 83eeebd967 restic: fix evaluation error in rcloneOptions
`lib.add` only works on integers.
2026-01-18 23:01:16 -06:00
Austin Horstman b9ded38afa news: bump nixpkgs channel
Getting eval error with lix, bumping resolves it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 22:55:07 -06:00
Austin Horstman 3c8cdb4e7e news: add gtk2 preferXdgDirectories entry
Let user's know the location has changed.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 22:52:00 -06:00
Guanran WangandAustin Horstman a207da48e4 gtk2: respect home.preferXdgDirectories 2026-01-18 22:52:00 -06:00
leiserfgandAustin Horstman 521d5ea1a2 television: Add nushell support 2026-01-18 15:02:51 -06:00
Austin Horstman 01415693b0 maintainers: remove genericnerdyusername
https: //github.com/NixOS/nixpkgs/pull/477019
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-18 13:44:51 -06:00
home-manager-ci[bot]andAustin Horstman c1305a6607 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
  → 'github:NixOS/nixpkgs/e4bae1bd10c9c57b2cf517953ab70060a828ee6f?narHash=sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc%3D' (2026-01-16)
2026-01-18 13:44:51 -06:00
Ryan HoriguchiandAustin Horstman 5148e08046 vscode: fix argv.json path 2026-01-18 09:24:24 -06:00
Thierry DelafontaineandGitHub 83bcb17377 claude-code: add enableMcpIntegration
Add `enableMcpIntegration` option to merge MCP servers from
`programs.mcp.servers` into Claude Code configuration. Claude Code
servers take precedence over general MCP servers when both define
the same server name.
2026-01-17 21:33:01 -06:00
Ryan HoriguchiandAustin Horstman 1c27557d99 vscode: add argv.json support 2026-01-17 21:32:44 -06:00
ckgxrgandAustin Horstman 05fd3babab linux-wallpaperengine: add examples and clarify options usage 2026-01-17 20:25:15 -06:00
Yiheng HeandAustin Horstman 8fd20c8d48 wlsunset: add package to home.packages 2026-01-17 20:24:14 -06:00
Brian EandAustin Horstman c47b2cc64a Translate using Weblate (Faroese)
Currently translated at 41.1% (7 of 17 strings)

Translate using Weblate (Faroese)

Currently translated at 15.3% (6 of 39 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fo/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-16 15:16:50 -06:00
teto 3c71ea724c neovim: refactor to use neovimUtils.makeVimPackageInfo 2026-01-16 21:41:35 +01:00
Timothy GallionandAustin Horstman d21bee5abf floorp: Fix tests for floorp-bin change
Several of the `floorp` tests were broken by the upstream switch to
`floorp-bin`. Most changes were to do with not being able to use
`programs.floorp.wrappedPackageName` in expected results.
2026-01-15 20:29:15 -06:00
Jesung YangandAustin Horstman bba859cd85 yazi: fix unintended recursive calls
Use `command` (POSIX) and `^` (Nushell) to prevent recursive function
calls when `cfg.shellWrapperName` is set to "yazi".

Previously, if `cfg.shellWrapperName` was set to "yazi", the invocation
of `yazi` within the shell integration function triggered the function
itself instead of the binary. This name conflict prevents users from
using the binary name as-is when shell integration is enabled.

Hence, fix this by using shell-specific mechanisms to target the
underlying executable, bypassing any name collisions.

This aligns with the official documentation:
- https://github.com/yazi-rs/yazi-rs.github.io/blob/2c839b37c80917ac3cf2d8c98949a392212d93ba/docs/quick-start.md?plain=1#L29
- https://github.com/yazi-rs/yazi-rs.github.io/blob/2c839b37c80917ac3cf2d8c98949a392212d93ba/docs/quick-start.md?plain=1#L56
2026-01-15 15:28:09 -06:00
Hauke SchnauandAustin Horstman cae8abb629 news: add codex skills option entry 2026-01-15 15:26:27 -06:00
Hauke SchnauandAustin Horstman f1b5f20210 codex: unify skills option and tests 2026-01-15 15:26:27 -06:00
Hauke SchnauandAustin Horstman 34a9ab0fae codex: add skills options 2026-01-15 15:26:27 -06:00
Matthieu CoudronandGitHub b4d88c9ac4 pimsync: use 'users' as group and dont make calendar world-readable (#8564)
Using username as unix group doesnt work by default (at least on nixos):
janv. 14 14:54:14 jedha hm-activate-teto[100922]: removed '/home/teto/.local/state/home-manager/gcroots/new-home'
janv. 14 14:54:14 jedha systemd-tmpfiles[100921]: /home/teto/home/config/user-tmpfiles.d/home-manager.conf:4: Failed to resolve group 'teto': No such process

use "users" instead
2026-01-15 00:56:00 +01:00
Arthur KhashaevandGitHub 27613c7299 systemd: add packages option (#8540)
* systemd: add `packages` option

The `systemd.user.packages` option is the Home Manager equivalent of
NixOS’s `systemd.packages` option and provides a way to specify packages
providing systemd user units.

This option is similar to `dbus.packages`.
* systemd: only create the parent directory if there are packages to symlink
2026-01-15 00:51:28 +01:00
Greg HellingsandAustin Horstman 0b24f3a487 keychain: Fix module parsing in Nushell integration 2026-01-14 17:13:57 -06:00
Vidhan BhattandGitHub e8e0f53079 nixos: flip && to prevent recursion errors
The recent change to add the ability to use systemd units for users made it so configs with home-manager.users dependent on config.users.users failed with recursion errors. Simply flipping the &&s so it avoids running the check if the feature is disabled fixes this.
2026-01-14 16:35:15 -06:00
Aguirre MatteoandAustin Horstman 57e99ed4a1 news: add aphorme entry 2026-01-14 16:25:31 -06:00
Aguirre MatteoandAustin Horstman 9ccc5b1ef4 aphorme: add module 2026-01-14 16:25:31 -06:00
Aguirre MatteoandAustin Horstman 41cae63118 news: add aperture entry 2026-01-14 16:23:09 -06:00
Aguirre MatteoandAustin Horstman 9ab59a43cc aperture: add module 2026-01-14 16:23:09 -06:00
Naïm Camille FavierandAustin Horstman 85c83f7096 github: remove stale bot 2026-01-14 11:10:56 -06:00
Zack WeinbergandAustin Horstman df6eeded85 news entry for new home-manager.startAsUserService option 2026-01-14 09:19:49 -06:00
PasqualeandAustin Horstman 4a5f932f22 nixos: option to use user service for activation
Add an option, `home-manager.startAsUserService`, to use systemd user
services for per-user activation, rather than activating all users'
environments on boot using systemd system services. This option
enables use of home-manager in configurations where users' home
directories are not available until they log in (for example, when
using pam_mount).
2026-01-14 09:19:49 -06:00
Bruno BigrasandMatthieu Coudron a0a505f803 treewide: XDG_CONFIG_HOME/.config -> XDG_CONFIG_HOME
$XDG_CONFIG_HOME already contains the .config subdir
2026-01-14 14:27:34 +01:00
Austin Horstman 4e235a8746 treewide: nix fmt
nix fmt updated in nixpkgs with string handling changes

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-13 22:51:16 -06:00
Austin Horstman 0150937c66 maintainers: remove duplicate hey2022
Added to nixpkgs

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-13 22:51:16 -06:00
home-manager-ci[bot]andAustin Horstman 24ee2d29ce flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
  → 'github:NixOS/nixpkgs/ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38?narHash=sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs%3D' (2026-01-11)
2026-01-13 22:51:16 -06:00
Nikolaos KaraolidisandGitHub c5d67517bb obsidian: open last used vault on startup
Resolves #7406 and updates some obsidian configurations to the latest upstream defaults.
2026-01-13 18:11:23 -06:00
Etienne RobertandRobert Helgesson b1fa714d6c readme: fix typo 2026-01-13 18:36:59 +01:00
Evy GardenandAustin Horstman fbd566923a lib.generators.toKDL: add tests for root-level children 2026-01-12 20:38:42 -06:00
Evy GardenandAustin Horstman 3912c447ee lib.generators.toKDL: fix _children not being applied on root level 2026-01-12 20:38:42 -06:00
Damian PomykałaandGitHub 360620ec9d mise: remove the settings option
mise no longer supports the separate `settings.toml` file for settings.
Settings should be defined in the global configuration (`globalConfig`).
2026-01-12 14:15:13 -06:00
Hoang NguyenandAustin Horstman 1dc235b2fb kubecolor: clean up the handling of config path 2026-01-12 14:13:11 -06:00
Austin Horstman 94597e670f ci: fix validate-maintainers flake reference
Wasn't actually grabbing from the correct flake.lock revision of
maintainers in nixpkgs. Update to use the revision from the flake.lock
since the nix_path wasn't working.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-12 14:08:01 -06:00
home-manager-ci[bot]andAustin Horstman cbd4c02b06 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:** 280 → 281 maintainers

** Added:** farberbrodsky

Generated by: lib/python/generate-all-maintainers.py

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-12 14:08:01 -06:00
Alistair PottsandAustin Horstman 5da90b852b modules: propagate minimal variable in modules/default.nix
Setting minimal from a flake configuration was not working,
this propagates it so that it does.
2026-01-12 13:09:46 -06:00
BeLeapandMatthieu Coudron b3f737e70f tealdeer: allow freeform type 2026-01-12 18:55:57 +01:00
Luke AdamsandGitHub cdf6d7d594 pimsync: ensure local storage directories exist (#8359)
pimsync: ensure local storage directories exist

Unfortunately pipsync will throw an error if it trys to write into a
nonexistant local storage directory. This patch ensures that all local
storage directories are present for accounts with pimsync enabled.

* pimsync: use tmpfiles to create storage dirs
* pimsync: fix tests
* pimsync: only use tmpfiles on linux
* pimsync: format
* pimsync: use mkdir to create storage dirs if systemd is not available
2026-01-12 18:25:16 +01:00
Hoang NguyenandMatthieu Coudron 167452eb4c dbus: only create the parent directory if there are packages to symlink 2026-01-12 18:23:30 +01:00
Manuel TransfeldandMatthieu Coudron 773170b447 dconf: remove bad words from enable.description 2026-01-12 18:22:26 +01:00
teto 8bc5473b6b maintainers: remove duplicated aionescu
already exists in nixpkgs
2026-01-10 19:06:42 +01:00
home-manager-ci[bot]andMatthieu Coudron 3ca9701774 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
  → 'github:NixOS/nixpkgs/3497aa5c9457a9d88d71fa93a4a8368816fbeeba?narHash=sha256-dhhvQY67aboBk8b0/u0XB6vwHdgbROZT3fJAjyNh5Ww%3D' (2026-01-08)
2026-01-10 19:06:42 +01:00
Robert Helgesson d0aefc169f home-manager: update copyright year in man page 2026-01-10 18:16:55 +01:00
Austin Horstman 312c4fe0bb rclone: migrate to lib.cli.toCommandLineShellGNU
Replace deprecated lib.cli.toGNUCommandLineShell with
lib.cli.toCommandLineShellGNU. This changes the behavior but `rclone`
supports the `=` separator for its flags.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-10 11:29:16 -05:00
Benedikt RipsandAustin Horstman 7c5d9345ad news: add 'services.ssh-agent.pkcs11Whitelist' entry 2026-01-09 23:20:10 -05:00
Michael Farber BrodskyandAustin Horstman 0e4217b2c4 news: add workstyle entry 2026-01-09 10:17:21 -05:00
Michael Farber BrodskyandAustin Horstman 90e53291cb workstyle: add module 2026-01-09 10:17:21 -05:00
Michael Farber BrodskyandAustin Horstman 480b0b2b81 maintainers: add farberbrodsky 2026-01-09 10:17:21 -05:00
Thierry DelafontaineandAustin Horstman b52d47d670 news: add podman darwin support entry 2026-01-09 09:15:55 -05:00
Thierry DelafontaineandAustin Horstman f4bcc1ae1c podman: add darwin support with machine management
- restructure module from `podman-linux` to platform-agnostic `podman`
- move linux-specific implementation to `modules/services/podman/linux/`
- add darwin module with declarative machine management
- implement launchd-based watchdog for auto-starting machines
- maintains backward compatibility with existing linux functionality
2026-01-09 09:15:55 -05:00
Benjamin SaundersandAustin Horstman 297a085108 PULL_REQUEST_TEMPLATE: update treefmt shell
Previously, following these instructions lead to a failure with:

Error: failed to create composite formatter: failed to initialise formatter nixf-diagnose: formatter command not found in PATH: error looking up 'nixf-diagnose'
2026-01-08 22:40:51 -05:00
Lena FuhrimannandAustin Horstman cd6e96d56e hyprland: import XDG_SESSION_TYPE for systemd 2026-01-08 16:53:03 -05:00
Thierry DelafontaineandAustin Horstman b1b1c68033 opencode: add custom tools support
Adds support for custom tools - user-defined functions that the LLM can
call during conversations. Custom tools work alongside opencode's built-in
tools and are configured through the new `tools` option.

The configuration follows the same pattern as other opencode settings like
`agents` and `commands`, supporting:
- Inline TypeScript content
- Individual file paths
- Bulk directory imports
2026-01-08 16:32:29 -05:00
Thierry DelafontaineandAustin Horstman 081234b704 opencode: support directory-based configuration for commands, agents, and themes
The `commands`, `agents`, and `themes` options now accept either an
attribute set (existing behavior) or a path to a directory containing
multiple files. When a directory path is provided, it is symlinked to
the appropriate `$XDG_CONFIG_HOME/opencode/` subdirectory.

This change aligns with the existing `skills` option implementation and
provides a more convenient way to manage multiple configuration files
without needing to define each one individually in Nix.
2026-01-08 16:32:29 -05:00
Austin Horstman 2be878259a makefile: add nixf-diagnose
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
Austin Horstman fa6de26b4d treewide: nixf-diagnose cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
Austin Horstman 9fff37e6ff flake: add nixf-diagnose to treefmt
Start off conservative ignoring more things. Handle the simple auto-fix
things initially.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 16:30:04 -05:00
Austin Horstman a2cc7b0bab less: migrate to lib.cli.toCommandLineGNU
Migrates from the deprecated toCommandLine to toCommandLineGNU.

This changes the output format to use GNU-style options with equals
(--wheel-lines=3). Both formats were verified to work correctly with less.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 14:56:14 -05:00
Benedikt RipsandAustin Horstman 37158e5267 vesktop: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman cd74467526 streamlink: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman 72476602b9 sapling: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman e926e27968 rbw: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman db116ceb76 qutebrowser: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman f7b2bdf042 pueue: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman a1a11393d9 pistol: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman 802ce0a7b1 mullvad-vpn: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman e69fbc243a lazygit: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman ebab435f3e lazydocker: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman bacad23b8c kubecolor: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman 6067be4770 kitty: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Benedikt RipsandAustin Horstman 12a723df97 gurk-rs: deduplicate platform-dependent files 2026-01-08 14:49:34 -05:00
Austin Horstman 40deed4ffe ci: validate-maintainers all-maintainers update
Might as well, can't hurt.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 13:57:12 -05:00
Austin Horstman 9500721e96 maintainers: update all-maintainers
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 13:57:12 -05:00
Austin Horstman db105fadc4 maintainers: rrvsh moved to nixpkgs
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 13:57:12 -05:00
Austin Horstman 609846bfd2 maintainers: nickthegroot moved to nixpkgs
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 13:57:12 -05:00
Austin Horstman 2db6bcc7ca ci: validate-maintainers on flake.lock update
Keep missing conflicts from nixpkgs updates.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 13:57:12 -05:00
Jure VarlecandAustin Horstman a3ac4bb1f8 generic-linux-gpu: put systemd unit in lib/systemd
This is where unit files are expected to be, making GPU setup compatible
with things like selinux. Fixes #8438. The `resources/` directory was
kept because it is expected to be used in the future.
2026-01-08 13:15:31 -05:00
Xinyang LiandAustin Horstman 47db0fde35 ssh-agent: add allowedPKCS11Providers option 2026-01-08 13:10:56 -05:00
Michael StrobelandAustin Horstman 3351348827 sftpman: add missing options
- `authType` is missing the `authentication-agent` enum value
- `mountDestPath` is missing completely
2026-01-08 12:31:15 -05:00
NAHOandAustin Horstman 7688293f06 home-manager: update copyright year 2026-01-08 12:29:25 -05:00
Austin Horstman 92394f9dea difftastic: migrate to lib.cli.toCommandLineShellGNU
Migrates from the deprecated toCommandLineShell to toCommandLineShellGNU.

This changes the output format to use GNU-style concatenated options
(--color=always) with shell escaping for git config values. Both formats
were verified to work correctly with difftastic.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 11:44:04 -05:00
Austin Horstman fb6a8404ee redshift-gammastep: migrate to lib.cli.toCommandLineShellGNU
Migrates from the deprecated toCommandLineShell to toCommandLineShellGNU.

This changes the output format from space-separated short options
(-c /path) to concatenated GNU-style options (-c/path). Both formats
were verified to work correctly with redshift and gammastep.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 11:21:16 -05:00
Austin Horstman 9afe77a70b wlsunset: migrate to lib.cli.toCommandLineShellGNU
Migrates from the deprecated toGNUCommandLineShell to toCommandLineShellGNU.

This changes the output format from space-separated short options
(-t 3500) to concatenated GNU-style options (-t3500). Both formats
were verified to work correctly with wlsunset.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 11:18:42 -05:00
Austin HorstmanandGitHub 246b8eaffb linux-wallpaperengine: migrate to lib.cli.toCommandLineGNU
Replace deprecated lib.cli.toGNUCommandLine with lib.cli.toCommandLineGNU. 
Should support the GNU style of convention.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 10:17:17 -06:00
Austin Horstman f9ce7c5234 bemenu: migrate to lib.cli.toCommandLineShellGNU
Migrates from the deprecated toCommandLineShell to toCommandLineShellGNU.

This changes the output format to use GNU-style concatenated options
(--line-height=28) and adds shell escaping for values with special
characters (e.g., '#1e1e2e' becomes '--ab=#1e1e2e'). The format
was verified to work correctly with bemenu.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 11:11:43 -05:00
Benedikt RipsandRobert Helgesson d1da1de5c2 lib.darwin: simplify assertInterval 2026-01-08 14:29:57 +01:00
Ian ChamberlainandMatthieu Coudron af7f14ddf7 fish: expose session variables package
This allows fish users to source the `hm-session-vars.fish` if they are
not using the generated `config.fish` (which now sources the same file).
2026-01-08 10:25:35 +01:00
Austin HorstmanandMatthieu Coudron 46c9af8a92 fish: migrate to lib.cli.toCommandLineShell
Replace deprecated lib.cli.toGNUCommandLineShell with the new
lib.cli.toCommandLineShell API, migrating from the old mkOption
parameter format to the new optionFormat function.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-08 10:14:18 +01:00
AmneeshandGitHub a630bbdedd mpd: fix incorrect use of mkIf (#8504)
Currently, if cfg.network.listenAddress is set to "any", MPD_HOST causes
partial evaluation which fails the sanity check while trying to build a
home-manager generation. Hence make a separate attrset for MPD_HOST
which will be evaluated conditionally and then concatenated.

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2026-01-07 23:51:16 -06:00
home-manager-ci[bot]andAustin Horstman 86e0f6f227 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5?narHash=sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i%2BbwD6XxMb8A%3D' (2026-01-05)
  → 'github:NixOS/nixpkgs/5912c1772a44e31bf1c63c0390b90501e5026886?narHash=sha256-Mj3d3PfwltLmukFal5i3fFt27L6NiKXdBezC1EBuZs4%3D' (2026-01-07)
2026-01-08 00:37:14 -05:00
Brian EandAustin Horstman d4c406cfa8 Translate using Weblate (Faroese)
Currently translated at 23.5% (4 of 17 strings)

Translate using Weblate (Faroese)

Currently translated at 12.8% (5 of 39 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fo/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2026-01-08 00:01:18 -05:00
Robert HelgessonandAustin Horstman 4fee4bd14b ghostty: reload service on configuration change 2026-01-07 17:22:44 -05:00
Austin Horstman c068188a8e tests: output store path even for success
Useful when trying to double check the contents of a test directory even
when the tests are passing. ie: stub a test and see the stuff you want
to assert/validate.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-07 13:50:01 -05:00
Austin Horstman bdaa374383 tests/hyprpaper: update basic configuration
Show the newer format and test the proper generation of config.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-07 11:07:21 -05:00
Austin Horstman d28cc9f4a6 hyprpaper: add monitor importantPrefix
New config requires monitor at top of generated block.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-07 10:56:09 -05:00
Austin Horstman a97b0a0999 hyprland: add note about xwayland option
Add small blurb about how the option works and recommends settings

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2026-01-07 10:48:08 -05:00
Austin Horstman a4a571c2d6 Revert "hyprland: dont recompile when disabling xwayland"
This reverts commit c91dbdf61a.
2026-01-07 10:48:08 -05:00
Sefa EyeogluandMatthieu Coudron aea57993a8 direnv: make Fish integration read-write
As https://github.com/NixOS/nixpkgs/pull/475992 is merged, we can make
this option read-write.

Depends-on: https://github.com/NixOS/nixpkgs/pull/475992

Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2026-01-07 14:22:49 +01:00
home-manager-ci[bot]andMatthieu Coudron 1c7be243ea flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c0b0e0fddf73fd517c3471e546c0df87a42d53f4?narHash=sha256-coBu0ONtFzlwwVBzmjacUQwj3G%2BlybcZ1oeNSQkgC0M%3D' (2025-12-28)
  → 'github:NixOS/nixpkgs/9f0c42f8bc7151b8e7e5840fb3bd454ad850d8c5?narHash=sha256-UWYqmD7JFBEDBHWYcqE6s6c77pWdcU/i%2BbwD6XxMb8A%3D' (2026-01-05)
2026-01-07 14:06:45 +01:00
James HobsonandMatthieu Coudron 93da26b426 xmonad: removed buildScriptPackages and cleaned up
From the code-review, buildScriptPackages was deemed unnecessary and so
has been removed. The ghc package with dependencies was not needed when
building without a custom build script so this build dependency has been
made contingent on the presence of a custom build script. The install
command is used instead of cp and chmod. Finally, an example has been
added for the documentation.
2026-01-07 13:31:23 +01:00
James HobsonandMatthieu Coudron 0d3183953c xmonad: Added buildScript and buildScriptPackages
If you need to change ghc args, or maybe want to use cabal or stack to
build xmonad, a way of doing this is write a script called build which
overrides xmonad's default build behaviour.

This patch adds two extra (optional) config options to xmonad:
- buildScript, a path to said build script
- buildScriptPackages, any additional dependencies it may need
2026-01-07 13:31:23 +01: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
Benedikt RipsandMatthieu Coudron 6e94d8157c keepassxc: point to the default upstream branch 2026-01-06 22:08:42 +01:00
Benedikt RipsandMatthieu Coudron 6e3931c01f keepassxc: add note about error message in the GUI 2026-01-06 22:08:42 +01:00
N4CH723HR3RandMatthieu Coudron c91dbdf61a hyprland: dont recompile when disabling xwayland
xwayland can be disabled in the settings without recompiling hyprland
2026-01-06 22:07:12 +01:00
Timothy GallionandRobert Helgesson 38e187fd2f podman-linux: fix tests expected results and modules
Update the expected results to match changes in the podman generator
and fix not importing the podman stub overlay with module import
behind `mkIf` introduced in #6905.
2026-01-06 13:35:00 +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
leiserfgandRobert Helgesson bfaba198af vicinae: use simpler raycast extension in the test
This avoids npm issues.
2026-01-06 09:37:09 +01:00
Robert Helgesson b1421bdfe5 i18n: merge changes from weblate 2026-01-06 09:32:20 +01:00
sternenseemannandRobert Helgesson 4cd7ae4cd4 neovim: builtins.groupBy -> lib.groupBy
lib.groupBy is an alias for builtins.groupBy which should be
preferred, as it also has a compatibility shim in case the Nix
implementation doesn't have the builtin function.
2026-01-06 09:22:28 +01:00
Anderson TorresandRobert Helgesson e43f7c3321 treewide: remove AndersonTorres from maintainers. 2026-01-06 09:17:04 +01:00
Benedikt Rips 6841643203 yubikey-agent: remove redundant platform checks 2026-01-05 23:10:04 +01:00
Benedikt Rips a755d94ab0 xdg: remove redundant platform checks 2026-01-05 23:10:04 +01:00
Benedikt Rips 33fe25dbe5 ssh-agent: remove redundant platform checks 2026-01-05 23:10:04 +01:00
Benedikt Rips 337d3602c0 restic: remove redundant platform checks 2026-01-05 23:10:04 +01:00
Benedikt Rips 5d814af6af pueue: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips 787784fb6f ollama: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips 2379f704b0 nix-gc: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips a26335db1b nh: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips d016674f6a mpd: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips c2d3a75ebe home-manager-auto-expire: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips 93af99ec02 gpg-agent: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips c8b68aafed git-sync: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips bca7415de4 emacs: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips d070d83048 colima: remove redundant platform checks 2026-01-05 23:10:03 +01:00
Benedikt Rips 048104c098 clipse: remove redundant platform checks 2026-01-05 23:10:02 +01:00
Benedikt Rips af894fbbc7 borgmatic: remove redundant platform checks 2026-01-05 23:10:02 +01:00
Benedikt Rips 53084c95ce atuin: remove redundant platform checks 2026-01-05 23:08:11 +01:00
Robert Helgesson a65c04965c gpg: update key hash in test
Fixes #8478
2026-01-05 14:29:03 +01:00
Noah765andRobert Helgesson c4eabb884b hyprpaper: update settings example
The configuration format changed in v0.8.0, which is available on nixpkgs.
2026-01-05 10:52:37 +01:00
June SteppandRobert Helgesson 156b698b75 anki: fix answerKeys of length one 2026-01-05 10:51:38 +01:00
Hoang NguyenandMatthieu Coudron 9d1c71f390 gpg: add dirmngrSettings and gpgsmSettings options 2026-01-05 10:34:11 +01:00
Hoang NguyenandMatthieu Coudron 47e195783e gpg: remove obsolete default values in the settings
- charset option doesn't exist. The correct option name is display-charset.
- fixed-list-mode option is always used and thus obsolete since GNUPG 2.0.10.
- use-agent is a dummy option. gpg will always requires the agent.
2026-01-05 10:34:11 +01:00
Benedikt RipsandRobert Helgesson f894bc4ffd ssh-agent: improve handling of SSH_AUTH_SOCK variable
Specifically, only preserve `$SSH_AUTH_SOCK` when it points to a
forwarded agent.
2026-01-04 20:52:35 +01:00
Benedikt RipsandRobert Helgesson 73f5a5ecc9 ssh-agent: fix Nushell's check for emptiness
Previously, it would not succeed if `$env.SSH_AUTH_SOCK` is set to an
empty string.
2026-01-04 20:52:35 +01:00
Naïm Camille FavierandRobert Helgesson 7d5927b63c xfconf: fix package 2026-01-04 12:26:39 +01:00
Ivan IsakovandRobert Helgesson 8f7d6bacb6 launchd: Restore errexit after setting up launchd agents
At the beginning of the setup script `errexit` is disabled, but never
properly enabled again at the end. This causes potential issues/errors
in activation scripts following `setupLaunchAgents` to go unnoticed,
since the build doesn't actually fail.
2026-01-04 11:30:04 +01:00
Alex MartensandRobert Helgesson 12cc14271b hyprshell: fix broken links 2026-01-04 09:32:19 +01:00
Benedikt RipsandRobert Helgesson c211298f7e tree-wide: use lib.hm.assertions.assertPlatform 2026-01-04 09:31:10 +01:00
Tim KleinschmidtandRobert Helgesson 1cfa305fba opencode: add agent skills support
Adds support for OpenCode Agent Skills by managing skill definitions
under "/opencode/skill/<name>/SKILL.md" via `programs.opencode.skills`.

Documentation: https://opencode.ai/docs/skills/
2026-01-03 11:47:20 +01:00
Tim KleinschmidtandRobert Helgesson 3e87b442b5 opencode: update docs
.config is already part of $XDG_CONFIG_HOME
2026-01-03 11:47:20 +01:00
leiserfgandRobert Helgesson 99a037de18 vicinae: fix settings example 2026-01-03 11:31:39 +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
Aguirre MatteoandRobert Helgesson 78a8fae57f yt-dlp: remove redundant extraConfig test 2026-01-03 11:23:26 +01:00
Aguirre MatteoandRobert Helgesson b558d54215 yt-dlp: allow multiple declarations of the same option 2026-01-03 11:23:26 +01:00
Robert Helgesson 9ef24320f1 emacs: remove unnecessary rec 2026-01-03 11:10:00 +01:00
VladislavandRobert Helgesson 18f9d668aa anki: fix UI scale configuration
Use `numbers.between 1.0 2.0` for the UI scale type to match Anki's
actual behavior where ProfileManager.uiScale clamps values below 1.0
to 1.0.
2026-01-03 10:49:37 +01:00
bandithedogeandMatthieu Coudron 2f06b72606 mpd: set network settings as environment variables
https://mpd.readthedocs.io/en/stable/client.html#connecting-to-mpd

These environment variables are picked up by, amongst others, clients
based on libmpdclient:

- https://github.com/MusicPlayerDaemon/libmpdclient/blob/2a42a100674bb85fdaa442e639bc20b0976df8b5/src/settings.c#L108
- https://github.com/MusicPlayerDaemon/libmpdclient/blob/2a42a100674bb85fdaa442e639bc20b0976df8b5/src/settings.c#L135
2026-01-02 23:05:42 +01:00
PerchunPakandRobert Helgesson d4e4d5cfa3 lib: make toHyprconf support strings and attrs in sections
Adds support for

    section = [
      "abc"
      { a = 123; }
    ];

Which gets generated to

    section=abc

    section {
      a=123
    }

This is very useful with the new windowrule syntax, where you can
create anonymous window rules as strings and named rules as attribute
sets. See <https://wiki.hypr.land/Configuring/Window-Rules/>.
2026-01-02 15:56:43 +01:00
Austin Horstman e4e78a2cbe tests/linux-wallpaperengine: add execstart test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-30 08:22:50 -06:00
Austin Horstman ae1ea768ef linux-wallpaperengine: misc cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-30 08:22:50 -06:00
Austin Horstman 365cbc13c4 linux-wallpaperengine: fix ExecStart command
Make sure to properly separate command args.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-30 08:22:50 -06:00
teto d99b4ca5de meli: support jmap
Enabled when flavor == fastmail.com
2025-12-29 23:55:10 +01:00
tetoandAustin Horstman 64f4dadb80 neovim: fix extraLuaConfig example
reported by bruno
2025-12-29 16:00:00 -06:00
Austin Horstman 7a7b43c723 treewide: drop foo-dogsquared
Removed in https://github.com/NixOS/nixpkgs/pull/472804

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-28 22:03:17 -06:00
home-manager-ci[bot]andAustin Horstman a84cccefd4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3e2499d5539c16d0d173ba53552a4ff8547f4539?narHash=sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU%3D' (2025-12-25)
  → 'github:NixOS/nixpkgs/c0b0e0fddf73fd517c3471e546c0df87a42d53f4?narHash=sha256-coBu0ONtFzlwwVBzmjacUQwj3G%2BlybcZ1oeNSQkgC0M%3D' (2025-12-28)
2025-12-28 22:03:17 -06:00
teto 9d32c214db neovim: let user insert snippets in init.lua
It is a common complaint for users that they can't insert their own code
where they want in the init.lua.
2025-12-29 01:51:32 +01:00
leiserfgandAustin Horstman 87785ddbc7 vicinae: Add tests for old vicinae version 2025-12-28 17:17:29 -06:00
leiserfgandAustin Horstman 113b155fe8 vicinae: Update to post 0.17 settings 2025-12-28 17:17:29 -06:00
teto 398bc87bc8 neovim: refactor to get rid of makeNeovimConfig 2025-12-28 20:13:09 +01:00
home-manager-ci[bot]andAustin Horstman 3613abcbd7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a6531044f6d0bef691ea18d4d4ce44d0daa6e816?narHash=sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC%2B2IVK0NoVEzDoOh4DA4%3D' (2025-12-21)
  → 'github:NixOS/nixpkgs/3e2499d5539c16d0d173ba53552a4ff8547f4539?narHash=sha256-QEhk0eXgyIqTpJ/ehZKg9IKS7EtlWxF3N7DXy42zPfU%3D' (2025-12-25)
2025-12-28 10:30:53 -06:00
Austin Horstman d7e794fe12 tests/anyrun: add empty css test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-28 10:29:55 -06:00
Austin Horstman 8969535f1c anyrun: default extraCss to null
Prevent creating a file when not configured.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-28 10:29:55 -06:00
teto 80cca72314 meli: support account specific settings
also assert when overriding accounts. I had overriden settings when
testing this module, forgot about it and then wondered why my email
accounts were ignored.
2025-12-28 16:49:26 +01:00
Austin Horstman d2e0458d65 zsh: don't suggest stateVersion update
Generally best to avoid telling normal users to adjust their
stateVersion to avoid other home-manager module logic changes based on
stateVersion.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 18:30:08 -06:00
Austin Horstman b3ae822959 tests/zsh: add xdg dotDir tests
Verify we respect xdg.enable behavior when placing files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman d761c0ce89 news: add zsh dotDir default change
Default has changed to respect `xdg.enable`. Let user's know in case it
affects them surprisingly.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman f84f474c1b zsh: respect xdg.enable for dotDir
Make sure we actually respect a user's `xdg.enable` preference.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman ea6dfabe3c tests/zsh: add more test cases for dotdir
Adds tests for various dotDir configurations including trailing slashes
and spaces.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Austin Horstman 5432dc5bc4 zsh: fix dotDir path normalization and quoting
Fixes issue where dotDir with trailing slash caused failures.
Refactors lib.nix to use raw paths internally, fixing issues with spaces
in paths.
Updates history.path logic to correctly handle raw absolute paths.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-27 17:58:46 -06:00
Bruno BELANYIandAustin Horstman bec08ef6e3 programs/ssh: DRY address/port options
The end goal is to hoist the forwarded path assertion directly into this
module rather than the top-level.
2025-12-27 15:12:05 -06:00
Sandro MarquesandAustin Horstman 4067ca1ffb easyeffects: Fix race condition on Wayland session startup
Add systemd service ordering dependencies to prevent EasyEffects from
starting before the Wayland compositor is ready.

**Problem:** EasyEffects would crash during login with "Failed to create
wl_display (No such file or directory)" if started before the Wayland
display server was fully initialized.

**Solution:** Declaring the "After" property ensures EasyEffects waits
for the graphical session to be fully ready. The "PartOf" properly stops
EasyEffects when logging out. Got the tip from
https://github.com/wwmm/easyeffects/issues/1310.

Tested on NixOS 25.11 (Xantusia, 20251223.76701a1) and Home Manager 25.11
(0999ed8) with GNOME 49 on Wayland.
2025-12-27 12:56:02 -06:00
Oliver GeneserandMatthieu Coudron 2d36a6de2f ssh: add kexAlgorithms to matchBlocks
This commit adds the option to add kexAlgorithms as an matchBlock
option with updated test case.
2025-12-27 16:54:14 +01:00
Heitor AugustoandAustin Horstman 91cdb0e2d5 nixGL: patch systemd and d-bus services references 2025-12-25 11:16:13 -06:00
home-manager-ci[bot]andAustin Horstman 7eca7f7081 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c6245e83d836d0433170a16eb185cefe0572f8b8?narHash=sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc%3D' (2025-12-18)
  → 'github:NixOS/nixpkgs/a6531044f6d0bef691ea18d4d4ce44d0daa6e816?narHash=sha256-3xY8CZ4rSnQ0NqGhMKAy5vgC%2B2IVK0NoVEzDoOh4DA4%3D' (2025-12-21)
2025-12-23 23:24:11 -06:00
Austin Horstman 20728df08f release/25.11: add darwin copy apps change
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-23 16:36:16 -06:00
Austin Horstman af3c24de76 release/25.05: add git signing format change
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-23 16:36:16 -06:00
Austin Horstman 624c7e80fb release/23.05: add swaylock stateVersion change
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-23 16:36:16 -06:00
home-manager-ci[bot]andAustin Horstman 9c790e687e 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:** 0 maintainers
**Removed:** 0 maintainers
**Total:** 282 → 282 maintainers

Generated by: lib/python/generate-all-maintainers.py
2025-12-23 13:45:25 -06:00
Austin Horstman 527ad07e66 tests/radicle: stub radicle-node
Failing build is blocking CI, test only verifies generated config.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-22 01:11:39 -06:00
home-manager-ci[bot]andAustin Horstman 57a02fd7d9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1306659b587dc277866c7b69eb97e5f07864d8c4?narHash=sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4%3D' (2025-12-15)
  → 'github:NixOS/nixpkgs/c6245e83d836d0433170a16eb185cefe0572f8b8?narHash=sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc%3D' (2025-12-18)
2025-12-22 01:11:39 -06:00
aleksanaandAustin Horstman 3fe66908e0 television: fix keybindings 2025-12-21 23:41:33 -06:00
Austin Horstman 61fcc9de76 tests/neovim: add test to catch config eval
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 19:55:46 -06:00
Austin Horstman 7b73a6e98f neovim: fix eval
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 19:51:30 -06:00
Austin Horstman 4dc3c91c50 neovim: remove deprecated type coercion for extraXPackages
3 years old, no need to keep around.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman a7d6bba358 neovim: remove old removal options
3-4 years old, no need to keep around.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman bdb807dc28 neovim: modernize
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman 0a583021ea tests/neovim: add wrapper args test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman ab01ea24b2 neovim: add missing wrapper args
Add support for extraName, autowrapRuntimeDeps, waylandSupport, and
withPerl options in the neovim module. These options are passed to the
neovim wrapper to allow for more granular configuration.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:31 -06:00
Austin Horstman c764a377a0 gemini-cli: fix settings example
Supposed to represent the settigns to pass in, not the generated json.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:06 -06:00
Austin Horstman 28b3622b80 tests/gemini-cli: verify defaultModel behavior
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:06 -06:00
Austin Horstman c848303f1e gemini-cli: don't force GEMINI_MODEL
Default to null so user's can opt in to using this variable that will
override configurations.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-20 17:11:06 -06:00
Austin Horstman bb35f07cc9 tests/claude-code: add rules tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-19 13:19:35 -06:00
Austin Horstman 9bf54edf10 claude-code: add rules support
Support the `rules` directory for modular memory files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-19 13:19:35 -06:00
Benedikt RipsandAustin Horstman 89c9508bbe ssh-agent: set $SSH_AUTH_SOCK in non-interactive shells
Since PR #8099, the module sets `$SSH_AUTH_SOCK` through shells' options
for interactive shell initialization instead of
`home.sessionVariablesExtra`. The replacement was not faithful, however,
since `home.sessionVariablesExtra` is sourced also in non-interactive
shells. With this commit, the shells' profile options (where
`home.sessionVariablesExtra` is sourced) are used to set
`$SSH_AUTH_SOCK`.

Fixes #8129.
2025-12-17 08:15:55 -06:00
home-manager-ci[bot]andAustin Horstman 22202ff0d8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2fbfb1d73d239d2402a8fe03963e37aab15abe8b?narHash=sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0%3D' (2025-12-11)
  → 'github:NixOS/nixpkgs/1306659b587dc277866c7b69eb97e5f07864d8c4?narHash=sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4%3D' (2025-12-15)
2025-12-17 07:57:35 -06:00
Anton MosichandGitHub 09de9577d4 pimsync: add Install.WantedBy for default.target (#8344) 2025-12-15 22:40:45 -06:00
dependabot[bot]andAustin Horstman f575cb24f6 ci: bump korthout/backport-action from 3 to 4
Bumps [korthout/backport-action](https://github.com/korthout/backport-action) from 3 to 4.
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](https://github.com/korthout/backport-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-15 22:38:37 -06:00
DaRacciandAustin Horstman 3a92ffa192 home-manager: expose all attributes returned by evalModules
This change brings the homeConfigurations output inline with how the
nixosConfiguration output presents its attributes.

The primary purpose is for exposing the graph attribute however there is
no downside to exposing the rest along with it to prevent needing to add
each desired attribute individually in the future if more are added.
2025-12-15 22:36:33 -06:00
home-manager-ci[bot]andAustin Horstman 6cdf765eed flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/addf7cf5f383a3101ecfba091b98d0a1263dc9b8?narHash=sha256-hM20uyap1a0M9d344I692r%2Bik4gTMyj60cQWO%2BhAYP8%3D' (2025-12-08)
  → 'github:NixOS/nixpkgs/2fbfb1d73d239d2402a8fe03963e37aab15abe8b?narHash=sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0%3D' (2025-12-11)
2025-12-15 22:13:51 -06:00
home-manager-ci[bot]andRobert Helgesson 8315c1544f 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:** 0 maintainers
**Removed:** 0 maintainers
**Total:** 282 → 282 maintainers

Generated by: lib/python/generate-all-maintainers.py
2025-12-15 19:32:11 +01:00
willandAustin Horstman 58bf3ecb2d modules/services/colima: init 2025-12-13 21:17:23 -06:00
Benedikt RipsandAustin Horstman d787ec69c3 less: list options in correct order 2025-12-13 00:08:50 -06:00
Benedikt RipsandAustin Horstman 07d79726f1 less: enable options to be specified multiple times 2025-12-13 00:08:50 -06:00
Olmo KramerandAustin Horstman 4767a9c719 herbstluftwm: Make herbstclient alias optional
The `herbstclient` alias in the generated `autostart` made it impossible
to use bash functions.

This makes the `herbstclient` alias optional by adding an extra
`herbstclientAlias` option on the herbstluftwm configuration. The new
option defaults to `false` as to not confuse newcomers to the
herbstluftwm module, which is not a breaking change because it was only
an optimization.
2025-12-12 23:53:36 -06:00
Austin Horstman 39cb677ed9 news: add defaultEditor entry
Let users know about new variable being set.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-11 13:12:54 -06:00
Jacob AbelandGitHub 0cf525a5be option defaultEditor: Set {env}VISUAL on true (#8322)
The defaultEditor option sets {env}`EDITOR` however strictly speaking
{env}`EDITOR` is intended for editors that are fully compatible with
teletype terminals (ex: `ed` or `vi`'s `ex` mode).

The {env}`VISUAL variable is intended for modern "visual mode"
terminal editors (ex: `vi` or `emacs`).

Technically speaking editors that are assigned to {env}`EDITOR` should
be configured to operate in teletype compatible mode (see `vi -e` and
`vim -e`).

We don't do this currently because for most users this would be
unintuitive behavior when a script or program mistakenly checks
{env}`EDITOR` instead of first checking {env}`VISUAL`.

In the future it may be worthwhile to introduce an additional option to
these modules to configure {env}`EDITOR` in a strictly conforming manner
(i.e. using the teletype/`ex` mode flags or unsetting {env}`EDITOR`
entirely).

Related Issue: #8314

Signed-off-by: Jacob Abel <jacobabel@nullpo.dev>
2025-12-11 13:04:13 -06:00
Mirko LenzandAustin Horstman 9b5ac85d79 npm: add module 2025-12-11 12:58:36 -06:00
Austin Horstman 574f6d3526 hyprpanel: perchun -> PerchunPak
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-11 12:51:49 -06:00
Austin Horstman e52be4fb78 tldr-update: perchun -> PerchunPak
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-11 12:51:49 -06:00
home-manager-ci[bot]andAustin Horstman dd18018d06 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f61125a668a320878494449750330ca58b78c557?narHash=sha256-BmPWzogsG2GsXZtlT%2BMTcAWeDK5hkbGRZTeZNW42fwA%3D' (2025-12-05)
  → 'github:NixOS/nixpkgs/addf7cf5f383a3101ecfba091b98d0a1263dc9b8?narHash=sha256-hM20uyap1a0M9d344I692r%2Bik4gTMyj60cQWO%2BhAYP8%3D' (2025-12-08)
2025-12-11 12:51:49 -06:00
Nick DeGrootandMatthieu Coudron 7b34e428f3 chromium: fix null package 2025-12-11 14:56:50 +01:00
Kyure_AandMatthieu Coudron af7c726e8b sheldon: replace initExtra with initContent 2025-12-11 14:55:22 +01:00
fidgetingbitsandAustin Horstman 13cc1efd78 snixembed: add waybar incompatbility warning
If snixembed is enabled and you try to use the waybar tray the two tools
conflict with eachother and often waybar's tray will not show any icons.
This adds a warning about it, as the problem can be difficult to
diagnose.
2025-12-09 21:27:32 -06:00
June SteppandAustin Horstman e5b1f87841 anki: enable tests on Darwin
Anki is no longer marked as broken in nixpkgs.
2025-12-08 12:16:00 -06:00
home-manager-ci[bot]andAustin Horstman caa47b637d 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:** 281 → 282 maintainers

** Added:** xavwe

Generated by: lib/python/generate-all-maintainers.py
2025-12-08 08:04:06 -06:00
Austin Horstman a788734077 swayidle: fix events default
Changed from list to attrset, but default never updated.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-07 23:45:14 -06:00
Mirko LenzandAustin Horstman 6bdf2a68e1 ty: add module 2025-12-07 23:30:36 -06:00
Viktor TitovandGitHub f9d45d664e qt: added qt{5,6}ctSettings options (#8271)
Added qtctSettings option to qt module to make it possible to configure qt(5/6)ct declaratively.
2025-12-07 23:17:30 -06:00
home-manager-ci[bot]andAustin Horstman 082822b8a6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2d293cbfa5a793b4c50d17c05ef9e385b90edf6c?narHash=sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4%3D' (2025-11-30)
  → 'github:NixOS/nixpkgs/f61125a668a320878494449750330ca58b78c557?narHash=sha256-BmPWzogsG2GsXZtlT%2BMTcAWeDK5hkbGRZTeZNW42fwA%3D' (2025-12-05)
2025-12-07 23:14:56 -06:00
Austin Horstman 27a6182347 tests/diff-highlight: add null assertion test
Verify eval when setting git package to null.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-05 23:18:20 -06:00
Austin Horstman 012cfcc44a diff-highlight: add git package assertion
Git package can be made nullable now, but module is written with
expectation of its availability.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-05 23:18:20 -06:00
Hanwen GuoandAustin Horstman 36817384a6 programs/git: package nullable
Some platforms (e.g. macOS) provide their customized version of git with
exclusive features, and user might want to use that instead.
2025-12-05 23:03:42 -06:00
Aguirre MatteoandAustin Horstman 571c5eed1d news: add hyprlauncher entry 2025-12-05 22:35:12 -06:00
Aguirre MatteoandAustin Horstman 2e02e22e28 hyprlauncher: add module 2025-12-05 22:35:12 -06:00
Aguirre MatteoandAustin Horstman ccd22c13b2 restic: change cache directory to $XDG_CACHE_HOME/restic 2025-12-05 20:04:55 -06:00
Austin Horstman 519828bf1c claude-code: refactor wrapper to use append-flags
Alternative approach suggested in
https://github.com/nix-community/home-manager/pull/8290#discussion_r2593114782

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-05 10:42:15 -06:00
DavidandAustin Horstman 1a99a515a1 nixos/common: guard nix.package access when nix.enable is false
When nix-darwin has `nix.enable = false` (e.g., for Determinate Nix
users), accessing `config.nix.package` throws an error:

    error: nix.package: accessed when `nix.enable` is off

This regression was introduced in commit a521eab when adding the
`home.uid` option. The code restructuring changed `inherit (config.nix)
package` to be evaluated unconditionally, whereas PR #6383 had
previously ensured this worked correctly.

The fix wraps the package assignment in `mkIf config.nix.enable` to
only access `config.nix.package` when nix management is enabled in the
host OS configuration.

Fixes: #8303
2025-12-05 10:37:47 -06:00
Austin Horstman 6bcb2395ab home-environment: style cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-04 23:34:56 -06:00
Austin Horstman f16bfa59e3 home-environment: fix undefined access eval
`uid` isn't guaranteed to be defined, have fallback logic in place to
account for that. Even if we require it eventually, we can't show a
proper assertion/warning without being able to eval.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-04 23:34:56 -06:00
Aguirre MatteoandAustin Horstman 35545f71dd news: add screen entry 2025-12-04 22:41:15 -06:00
Aguirre MatteoandAustin Horstman 6bbc48804b screen: add module 2025-12-04 22:41:15 -06:00
JessandAustin Horstman a8b6296a1e tests/restic: fix timedatectl failure
Systemd
[added a check](https://github.com/systemd/systemd/commit/6a12c90ca39b45087a84c7faa014f24cd6dc330c)
which broke this test. So use `date` instead of `timedatectl`.
2025-12-04 22:39:18 -06:00
Aguirre MatteoandAustin Horstman 68f7b34179 news: add calibre entry 2025-12-04 22:38:55 -06:00
Aguirre MatteoandAustin Horstman 24cc5c080c calibre: add module 2025-12-04 22:38:55 -06:00
Aguirre MatteoandMatthieu Coudron df7bac2b2b rclone: change cache directory to $XDG_CACHE_HOME/rclone 2025-12-05 00:33:32 +01:00
Austin Horstman 05a56dbf24 claude-code: fix wrapper to inject --mcp-config after subcommands
Manually wrap program to maintain options called from cli.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-04 12:19:32 -06:00
Urocissa Caerulea.TwandAustin Horstman 9379fbf4f5 Translate using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (17 of 17 strings)

Co-authored-by: Urocissa Caerulea.Tw <urocissa.tw@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hant/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-12-04 10:33:19 -06:00
Bernardo MeurerandMatthieu Coudron a521eab881 home-environment: add home.uid option
Add a home.uid option similar to home.username. When set, the
activation script verifies the current UID matches the expected
value using the new checkUid function.

When using the NixOS or nix-darwin modules, home.uid is
auto-discovered from users.users.<name>.uid when that value
is set.

This is useful for constructing paths that depend on the user's
UID, such as /run/user/<uid> paths for gpg-agent sockets or
other user-specific runtime directories.
2025-12-04 17:22:25 +01:00
Urocissa Caerulea.TwandHosted Weblate 2f93d7333e Translate using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (39 of 39 strings)

Translate using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (17 of 17 strings)

Co-authored-by: Urocissa Caerulea.Tw <urocissa.tw@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hant/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-12-04 09:16:41 +00:00
tsrk.andMatthieu Coudron d441981b20 thunderbird: fix aliases SMTP configuration not being listed as usable
Signed-off-by: tsrk. <tsrk@tsrk.me>
2025-12-04 10:16:29 +01:00
Xaver WenhartandAustin Horstman fca4cba863 parallel: package nullable 2025-12-03 12:58:50 -06:00
trash-panda-v91-betaandAustin Horstman af324afa72 cargo: fix typo in tests
testing docker-cli instead of cargo in empty-config.nix
2025-12-03 10:43:50 -06:00
Bruno BELANYIandAustin Horstman 12e7786854 programs/ssh: use 'toList' 2025-12-03 09:48:51 -06:00
Bruno BELANYIandAustin Horstman 28741978a3 programs/ssh: use 'toKeyValue' for 'extraOptions'
A first step towards refactoring the module.

Unfortunately the config is not consistent in using comma-separated
values or repeated keys for lists, since the user can always add commas
by themselves, we should default to repeated keys in the generator.
2025-12-03 09:44:29 -06:00
Andrew JefferyandMatthieu Coudron 43173abcb4 pimsync: Make storage names unique
This includes the calendar/contacts prefix in the storage name as well
as the pair name to ensure that if the same name is used for contacts
and calendar then it is correctly referenced.
2025-12-03 13:46:21 +01:00
home-manager-ci[bot]andAustin Horstman bcc7afa1d8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2fad6eac6077f03fe109c4d4eb171cf96791faa4?narHash=sha256-sKoIWfnijJ0%2B9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI%3D' (2025-11-27)
  → 'github:NixOS/nixpkgs/2d293cbfa5a793b4c50d17c05ef9e385b90edf6c?narHash=sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4%3D' (2025-11-30)
2025-12-02 22:41:07 -06:00
Patrick SteinhardtandAustin Horstman 281e9398cc swayidle: improve confusing "events" configuration
With swayidle one can configure two different kinds of hooks:

  - Idle timeouts are executed after the session has been idle for a
    specific amount of time.

  - Events are executed when systemd notifies us that for example the
    user session is locked or that the device is about to suspend.

While not obvious, there is a significant difference between how these
two kinds are configured: there can be several timeouts with separate
commands to be executed, but each event can only be specified once. If
an event is specified multiple times, then the last command wins.

This can be very easy to miss in swayidle's documentation. Furthermore,
because the config is a list of `{ event = "..."; command = "..."; }`
attrset, we double down on this confusion and make it seem like having
multiple handlers for an event was actually supported.

Fix this by converting from a list of "event" submodules to an attrset
where the key is the event name and the value is the command to be
executed. This makes it impossible to specify multiple commands for a
single event by accident.

If a user _does_ want to have multiple commands executed on any event
they can for example use `pkgs.writeShellScript` and manually chain the
commands in that script.
2025-12-02 22:24:56 -06:00
Aguirre MatteoandAustin Horstman 93d907a205 news: ludusavi's default backup path changed entry 2025-12-02 21:57:23 -06:00
Aguirre MatteoandAustin Horstman eca5f967cd ludusavi: use config.xdg.stateHome instead of $XDG_STATE_HOME 2025-12-02 21:57:23 -06:00
Aguirre MatteoandAustin Horstman db44f38047 ludusavi: add test 2025-12-02 21:57:23 -06:00
Mirko LenzandAustin Horstman 06f81463bb infat: add module 2025-12-02 21:39:05 -06:00
Matt SturgeonandAustin Horstman ab8e4b2b5a home-environment: extend release check to include pkgs
`lib` comes from the Nixpkgs used to instantiate Home Manager itself and
cannot change within the module fixpoint. However, `pkgs` is configurable
(via `nixpkgs.*` or `_module.args`) and may come from a different Nixpkgs
instance from the one providing `lib`.

Mismatches between Home Manager's release and the release of the `pkgs`
instance are more common and also more likely to cause subtle issues.

This change extends the release check to include `pkgs.lib.trivial.release`
so that such mismatches can be detected and reported.
2025-12-02 21:35:34 -06:00
Anton MosichandMatthieu Coudron c3d1e5c65a pimsync: extend test to contacts
If I had added such a test right away, I would have encountered #8258
myself. I mistakenly believed the contact and calendar modules to be the
same.
2025-12-03 04:10:48 +01:00
Anton MosichandMatthieu Coudron bf003999ed accounts.contacts: fix eval error
You would encounter an eval error when a module (such as pimsync) would
try to access an attribute of `accounts.contacts.<name>.local`, since it
would default to `null`. The same problem was encountered in the
`accounts.calendar` module, and fixed in
2c157e22dc which has the same solution.

Closes #8258

Reported-by: redbeardymcgee
2025-12-03 04:10:48 +01:00
Xaver WenhartandGitHub ff067cfc61 parallel: init module (#8240) 2025-12-02 01:44:57 +01:00
Austin Horstman effe4c007d ci: remove unused dependabot ignore
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-12-01 09:37:35 -06:00
home-manager-ci[bot]andAustin Horstman 6cedf24ada 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:** 280 → 281 maintainers

** Added:** arunoruto

Generated by: lib/python/generate-all-maintainers.py
2025-12-01 09:34:48 -06:00
novenaryandAustin Horstman e4e25a8c31 fish: ensure generated completions considered last
home-manager's generated completions shadow built-in completion scripts.
fish actually has logic to deal with this when the path ends with
/generated_completions, so let's take advantage of it.

Link: https://github.com/fish-shell/fish-shell/blob/47c773300a40adf66e59e83ca2492f87b7ccb57d/src/autoload.rs#L421-L424
2025-11-30 17:12:04 -06:00
novenaryandAustin Horstman 13b089b586 Revert "fish: avoid shadowing builtin completions"
This reverts commit 23f2ba7ae0.
2025-11-30 17:12:04 -06:00
Victor EngmarkandAustin Horstman 784a83782c nixos: Don't "[a]ttempt to evaluate package pkgs.trash-cli"
Closes #8161.
2025-11-30 14:28:55 -06:00
Brian EandAustin Horstman 704b6ffa8a Translate using Weblate (Faroese)
Currently translated at 7.6% (3 of 39 strings)

Translate using Weblate (Faroese)

Currently translated at 17.6% (3 of 17 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fo/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fo/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-11-30 14:18:18 -06:00
CarlandGitHub 83053e1d33 GPU freedom (#8239)
* gpu: only add intel driver for x86_64-linux

* gpu: allow configuring drivers option

Allow overriding the drivers option if you're an advanced user
2025-11-30 14:48:38 +01:00
Aguirre MatteoandGitHub ae400a1dcc shikane: add package to PATH (#8233) 2025-11-30 14:48:16 +01:00
DDoSolitaryandGitHub edbb012a21 dconf: support configuring specific user databases (#6301)
By default, dconf uses $XDG_CONFIG_HOME/dconf/user as the user database, but this can be changed by specifying user-db:<name> in a profile file and setting the DCONF_PROFILE environment variable to that profile. One may want to use different user databases for different DE/WMs to avoid collision.

Currently the module invokes dconf without touching DCONF_PROFILE, which means that 1) it is unable to configure multiple different user databases, and 2) the behavior of activation script will be affected by the DCONF_PROFILE environment variable when it is invoked, possibly leading to undesired results.

This PR adds a dconf.databases option, so that settings under dconf.databases.<name> will be written to $XDG_CONFIG_HOME/dconf/<name>. The old dconf.settings option is left as-is to avoid breaking compatibility.
2025-11-30 14:37:17 +01:00
Jo²andGitHub b1bb534c17 xsession: only require xdg autostart target if explicitely enabled (#8237)
This is a fix for PR #7108 that forcibly enables xdg-desktop-autostart
units, whether or not `config.xdg.autostart` is enabled.
Partially fixes #7708, there is still a risk for conflict if
`xdg.autostart` and `services.picom` are enabled.
2025-11-30 14:35:54 +01:00
Austin Horstman 780be8ef50 tests: disable release check bypass
nixos-unstable bumped

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-28 14:27:50 -06:00
home-manager-ci[bot]andAustin Horstman 40c18076d8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5ae3b07d8d6527c42f17c876e404993199144b6a?narHash=sha256-6eeL1YPcY1MV3DDStIDIdy/zZCDKgHdkCmsrLJFiZf0%3D' (2025-11-24)
  → 'github:NixOS/nixpkgs/2fad6eac6077f03fe109c4d4eb171cf96791faa4?narHash=sha256-sKoIWfnijJ0%2B9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI%3D' (2025-11-27)
2025-11-28 14:27:50 -06:00
Austin Horstman d13041d6f0 tests/gtk4: add test for stateversion change
Ensure default behavior with new state version works properly.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-28 14:14:32 -06:00
FugiandAustin Horstman ae9f38e889 gtk4: don't enable theme by default
This is not officially supported and causes issues in some cases.
Also adds a warning to the option.
2025-11-28 14:14:32 -06:00
Friedrich AltheideandAustin Horstman 86ff0ef506 cargo: add module 2025-11-27 22:29:55 -06:00
damidougandAustin Horstman c220f242cd aerospace: add more tests and fix expected values 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman 1ed596c638 aerospace: remove extraConfig, use settings instead 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman 9f31ea236b aerospace: add more settings examples 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman b414c94d4e aerospace: fallback default settings 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman 5b8d259ee6 aerospace: auto-reload config on file changes; 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman 29b672194d aerospace: add assertion to ensure launchd.enable and after-startup-command are used instead of start-at-login and after-login-command 2025-11-27 22:27:29 -06:00
damidougandAustin Horstman f302550865 aerospace: rename userSettings → settings 2025-11-27 22:27:29 -06:00
Matt SturgeonandAustin Horstman 23f2ba7ae0 fish: avoid shadowing builtin completions
The fish shell comes with builtin completions. For example, git
completion supports context-aware completion of things like commit
hashes, branch names, sub-commands, etc.

Until fish 4.2, builtin completions were explicitly loaded from
`share/fish/completions`, however that is now deprecated and disabled.
In effect, this means generating manpage-based completion will shadow
and disable builtin completion.

Avoid that, by only generating completion when fish does not have
builtin support for the command.
2025-11-27 22:17:20 -06:00
Mirza ArnautandAustin Horstman 470d24d809 vivid: change colorMode type to enum 2025-11-27 22:07:41 -06:00
Mirza ArnautandAustin Horstman 740134d4af vivid: replace theme content from yaml with json
This should fix missinterpretation of hex colors (which should be a
string) as numbers in scientific notation. For example: 1e2030.
2025-11-27 22:07:41 -06:00
Mirza ArnautandAustin Horstman c23379a330 vivid: add arunoruto to maintainers list 2025-11-27 22:07:41 -06:00
Austin Horstman 9651819d75 ci: update checkout and update-flake-lock
https://github.com/DeterminateSystems/update-flake-lock/releases/tag/v28
updated with checkout v6 support.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 16:02:49 -06:00
Austin Horstman 8220473f95 ci: revert actions/checkout to v5 due to update-flake-lock incompatibility
Root cause: DeterminateSystems/update-flake-lock@v27 uses
peter-evans/create-pull-request@v6.0.5 internally, which is incompatible
with actions/checkout@v6's new credential storage mechanism.

The Problem Chain:
- actions/checkout@v6 moved credentials from .git/config to $RUNNER_TEMP
  (security improvement)
- peter-evans/create-pull-request@v6.0.5 cannot access credentials from
  the new $RUNNER_TEMP location
- This causes exit code 128 when update-flake-lock tries to create PRs

The Fix:
- create-pull-request@v7.0.9 fixed v6 compatibility
- However, update-flake-lock@v27 (released July 2025) hasn't upgraded yet
- Reverting to v5 restores working credential access

Next Steps:
- Can upgrade to v6 once update-flake-lock uses create-pull-request@v7.0.9+
  - https://github.com/DeterminateSystems/update-flake-lock/pull/224
- Dependabot configured to ignore v6 upgrades until compatibility is fixed

Fixes: https://github.com/nix-community/home-manager/actions/runs/19712979574
See: https://github.com/peter-evans/create-pull-request/issues/690

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 12:47:12 -06:00
Austin Horstman 946907fa6a maintaining.md: add note about dependabot release branch update
When creating a new release branch, dependabot.yml needs to be updated
to include the new branch for automated dependency updates.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 12:38:45 -06:00
Austin Horstman 201c883d0d ci: dependabot update release branch
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 12:38:45 -06:00
Austin Horstman cc0425becf ci: disable fail fast on flake update
We don't need to block a channels flake update because of a bug in
another.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:59:27 -06:00
Austin Horstman ee7f4646da maintaining.md: add note about flake.nix / lock update
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:20:41 -06:00
Austin Horstman ad0b497533 tests: disable release check temporarily
Remove after nixos-unstable bumped

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:16:38 -06:00
Austin Horstman 089d5bf615 ci: update release in matrix
New stable branch

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:16:38 -06:00
Austin Horstman 4d5fbb182e flake.lock: update
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:16:38 -06:00
Austin Horstman 8433591183 home-manager: prepare 26.05
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 11:16:38 -06:00
Austin Horstman f47d2e3821 home-manager: set 25.11 as stable
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 10:43:01 -06:00
Austin Horstman e3f8406683 maintaining.md: add maintaining document
Outline the places we need to update for releases and how we handle
certain things.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-26 10:43:01 -06:00
zowoqandAustin Horstman ceb884e4f3 treewide: fold -> foldr
deprecated in https://github.com/NixOS/nixpkgs/commit/f4d36941eba6c290a1f839b77f85d9579f087c22
2025-11-26 09:23:05 -06:00
t-monaghanandAustin Horstman f4cb25928f news: add claude-code's skills option entry 2025-11-25 23:35:00 -06:00
t-monaghanandAustin Horstman 6aff254343 claude-code: added 'skills' option to specify skills from filesystem 2025-11-25 23:35:00 -06:00
octvsandAustin Horstman a26b74229f test: update tests path for new pwd-store path 2025-11-25 23:33:06 -06:00
octvsandAustin Horstman 14bc4c56fc password-store: do not set non-default dir 2025-11-25 23:33:06 -06:00
Mikołaj LercherandGitHub 295d90e22d nix-index: add nushell integration (#8211)
https://github.com/nix-community/nix-index?tab=readme-ov-file#usage-as-a-command-not-found-replacement
2025-11-25 07:04:20 -06:00
AlexandGitHub 381f4f8a3a bash: don't explicitly set checkwinsize (#8182)
checkwinsize is enabled by default since bash5.

It's not much hassle if enabled, but it's not necessary anymore and it conflicts if attempting to piggy-back on .bashrc with other kinda-compatible shells (e.g. osh).
bash5 is default for a couple of years already, and there is no bash4 in there at all
2025-11-25 02:31:19 +01:00
hauskenandGitHub 125e40fa68 easyeffects: Make service compatible with v8.0.x (#8192)
Fixes #8185

The upstream easyeffects project has migrated from GTK to Qt, deprecating --gapplication-service and removing DBus integration. See #8185 for more details.
Tested with version 8.0.3 and 7.2.5 , uses lib.versionOlder cfg.package.version "8.0.0" to be backwards compatible.

    Removed DBus service configuration (Type=dbus, BusName)
    Move presets and config dir from $XDG_CONFIG_HOME to $XDG_DATA_HOME (new upstream location)

Other notes
Since they have moved config directory, it will warn show warnings because of empty dirs. These warnings will also show in the service until you remove them. I dont think this is a problem and new users will not experience this.

easyeffects --version
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/output directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/output
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/output
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/irs directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/irs
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/irs
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/rnnoise directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/rnnoise
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/rnnoise
easyeffects: presets_directory_manager.cpp:140  Old /home/hausken/.config/easyeffects/autoload/output directory detected. Migrating its files to /home/hausken/.local/share/easyeffects/autoload/output
easyeffects: presets_directory_manager.cpp:149  Could not copy any file. Aborting migration of /home/hausken/.config/easyeffects/autoload/output
2025-11-24 18:56:44 +01:00
Guanran WangandMatthieu Coudron df3eda5816 fcitx5: set im-module for X11 GTK apps 2025-11-24 18:40:58 +01:00
Kirill KuznetsovandGitHub b9c0dae3e4 generic-linux-gpu: export setupPackage and drivers from targets.genericLinux.gpu to configuration (#8189) 2025-11-24 09:20:46 -06:00
home-manager-ci[bot]andAustin Horstman 55af952c56 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:** 2 maintainers
**Total:** 281 → 280 maintainers

** Added:** 0xda157

** Removed:** da157, lucasew

Generated by: lib/python/generate-all-maintainers.py
2025-11-24 07:59:12 -06:00
dependabot[bot]andAustin Horstman 7702d14879 ci: bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-23 23:44:50 -06:00
Thomas MauriceandAustin Horstman 3d6c1c8fa0 modules: add minimal variable to modules/default.nix
Fix regression caused by missing `minimal` variable in
modules/default.nix
2025-11-23 08:04:53 -06:00
Austin Horstman 04c27d743d nixos: fix minimal description casing
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 21:50:04 -06:00
Eman ResuandAustin Horstman 44931fdc5d modules: add minimal entrypoint to only enable core modules 2025-11-22 21:50:04 -06:00
Austin Horstman 9a5042a88c treewide: assertions at top of config
Moving assertions to be consistently at top of the config blocks.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 15:00:15 -06:00
Austin Horstman 0b44044694 treewide: meta.maintainers at top
Just make it consistent throughout codebase and easier to find
maintainers for a module.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:51:05 -06:00
Austin Horstman d4a80f26bf syncthing: use mkPackageOption tray package
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:48:56 -06:00
Austin Horstman 6d38c711b6 nix: use mkPackageOption
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:48:56 -06:00
Austin Horstman 04d0a00132 meli: use mkPackageOption
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:48:56 -06:00
Austin Horstman 43ba5ee056 waybar: use mkPackageOption
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:48:56 -06:00
Austin Horstman 5beb2a373b activitywatch: use mkPackageOption for service
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 14:48:56 -06:00
Austin Horstman f07573df41 tests/darwinScrublist: add aider-chat
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 12:48:17 -06:00
Austin Horstman ae20265d9e treewide: awwpotato -> da157
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 12:48:17 -06:00
home-manager-ci[bot]andAustin Horstman c4e2316d43 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b3d51a0365f6695e7dd5cdf3e180604530ed33b4?narHash=sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw%3D' (2025-11-02)
  → 'github:NixOS/nixpkgs/117cc7f94e8072499b0a7aa4c52084fa4e11cc9b?narHash=sha256-%2BhBiJ%2BkG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s%3D' (2025-11-20)
2025-11-22 12:48:17 -06:00
Austin Horstman 2ed842c9ff tests/jrnl: add tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 12:35:42 -06:00
Austin Horstman 89544bf918 jrnl: modernize
cleanup with lib and other lint warnings

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-22 12:35:42 -06:00
Nathan HenrieandGitHub d10a9b16b2 espanso: fix accessibility permissions prompt for macos (#8180)
On macos 26 it seems that one has to run the binary from within the
application bundle to get the Accessibility prompt to work as expected

fixes https://github.com/nix-community/home-manager/issues/8179
2025-11-21 12:06:12 -06:00
Lucas EduardoandGitHub 10cfa0099b espanso: remove lucasew as maintainer (#8181) 2025-11-21 12:01:34 -06: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
SandWood JonesandMatthieu Coudron 7538d96535 fish: added abbr.name option 2025-11-17 15:24:59 +01:00
Tobias SchmalzandMatthieu Coudron 3670a78eee vdirsyncer: Add option to request vcard 4.0 2025-11-16 18:18:51 +01:00
zowoqandGitHub 96156a9e86 targets/darwin: change pathsToLink to a list (#8164)
https://github.com/NixOS/nixpkgs/commit/fbe214434a678004f8631a8f893d5c089e534db9
2025-11-15 11:33:35 -06:00
Robert Helgesson c3bc79be5e news: set nixpkgs channel in create-news-entry shebang 2025-11-15 10:17:24 +01:00
PoseidonandRobert Helgesson 7ec621b510 bluetuith: add module
Create the `programs.bluetuith` module with support for defining
settings.
2025-11-15 10:14:08 +01:00
Joonas RautiolaandRobert Helgesson 211594c88d swww: add package to service path
Signed-off-by: Joonas Rautiola <joonas@rautiola.co>
2025-11-15 09:51:45 +01:00
Naïm Camille FavierandRobert Helgesson 3ca51e0a33 glab: remove module 2025-11-15 09:44:58 +01:00
Mikenu TakeruandRobert Helgesson 0b2a2b3f33 Translate using Weblate (Japanese)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Japanese)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Mikenu Takeru <mikenu-jp@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ja/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-11-15 09:34:07 +01:00
TANIGUCHI KoheiandRobert Helgesson 229a7ab373 Translate using Weblate (Japanese)
Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translation: Home Manager/Home Manager CLI
2025-11-15 09:34:07 +01:00
Charlie CollardandGitHub 827f2a2337 atuin: add forceOverwriteSettings option (#8140) 2025-11-12 10:24:03 -06:00
AlephNoughtandGitHub 747a9a774e easyeffects: Fix service hanging on system shutdown (#8145)
* easyeffects: Fix service hanging on system shutdown
* Make systemd take dependencies automatically from dbus service instead of setting them manually
* Add TimeoutStopSpec for 10 seconds
2025-11-12 09:36:07 -06:00
Vladislav GrechannikandGitHub 33f63da61a chromium: add finalPackage option (#8155)
Adds a finalPackage option to chromium-based browsers. Allows users to use overriden package binary in their setups, without relying on PATH availability.
2025-11-12 09:33:11 -06:00
Marijan PetričevićandGitHub dfca39f8af lazygit: fix bash integration (#8153)
- if the shellWrapperName is equal to the binary, then calling the
binary without command will cause an infinite recursion
2025-11-12 09:31:32 -06:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
37a3d97f28 maintainers: update all-maintainers.nix (#8147)
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:** 4 maintainers
**Removed:** 0 maintainers
**Total:** 277 → 281 maintainers

** Added:** exzombie, jtrrll, leiserfg, prescientmoon

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-11-10 09:07:39 -06:00
Thierry DelafontaineandGitHub 8e0fa3f242 delta: use finalPackage instead of package in jujitsu config (#8150) 2025-11-10 09:06:43 -06:00
Devin DroddyandGitHub b8645b18b0 vicinae: update theme filetype (#8141)
As of v0.15.0, theme files use TOML instead of JSON and have a new structure.

The test actually didn't previously assert the existence of a theme file even though the example settings had a theme in them...
2025-11-09 14:49:57 -06:00
jtrrllandAustin Horstman be4a9233dd retroarch: add module
add a module for configuring retroarch through home-manager
2025-11-09 10:12:54 -06:00
jtrrllandAustin Horstman a31a6b2d30 maintainers: add jtrrll
add jtrrll to the list of home-manager maintainers
2025-11-09 10:12:54 -06:00
prescientmoonandAustin Horstman fa0c98a81c news: add discord entry 2025-11-09 10:12:08 -06:00
prescientmoonandAustin Horstman fb76be5dff tests/discord: init 2025-11-09 10:12:08 -06:00
prescientmoonandAustin Horstman 08abff6fbc discord service: init 2025-11-09 10:12:08 -06:00
prescientmoonandAustin Horstman a1224de197 maintainers: add prescientmoon 2025-11-09 10:12:08 -06:00
Jure VarlecandAustin Horstman d8efc4bfa7 docs/generic-linux-gpu: add instructions to manual 2025-11-09 09:02:58 -06:00
Jure VarlecandAustin Horstman 77b51dbb9f generic-linux-gpu: add a news entry 2025-11-09 09:02:58 -06:00
Jure VarlecandAustin Horstman 193e44d316 generic-linux-gpu: add module 2025-11-09 09:02:58 -06:00
Jure VarlecandAustin Horstman 066874efb5 nixgl: move under targets.genericLinux 2025-11-09 09:02:58 -06:00
Jure VarlecandAustin Horstman 0aceb6bef5 maintainers: add exzombie 2025-11-09 09:02:58 -06:00
XYenonandAustin Horstman c053d701d6 ssh-agent: add macOS support 2025-11-08 22:10:01 -06:00
Benedikt RipsandAustin Horstman d7b1ece79d xdg-portal: assert that required paths are linked on NixOS 2025-11-08 22:03:46 -06:00
leiserfgandAustin Horstman 0562fef070 vicinae: Remove BindTo from the systemd unit
Seems like it causes issues with kde logout.
2025-11-06 15:08:45 -06:00
Dietrich DarochandAustin Horstman f35d0cb75f misc: Add Justfile
This just lists the commands in the Contributing manual
2025-11-06 13:54:24 -06:00
Johan LarssonandGitHub 2907788315 tomat: init service (#8138) 2025-11-06 16:44:08 +00:00
Raul Rodrigues de OliveiraandGitHub ba15db2a15 fish: added completions option (#8127) 2025-11-06 10:27:58 -06:00
SunOfLife1andAustin Horstman 8929c5f3bc test/lazygit: add fish integration test
This does also add a test module for lazygit since there wasn't one
already
2025-11-06 09:06:14 -06:00
SunOfLife1andAustin Horstman d375dfc1ff lazygit: fix fish integration 2025-11-06 09:06:14 -06:00
Austin Horstman 432bc8a5da aerospace: simplify userSettings
Remove submodule and just use the generator type.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-06 07:22:43 -06:00
LeonandAustin Horstman 7f619d2a72 aerospace: remove broken on-window-detected option 2025-11-06 07:22:43 -06:00
Austin Horstman af119feb17 Revert "tmpfiles: migrate to an RFC42-style option"
This reverts commit 090aa14e5d.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
Austin Horstman 06aeeed62f Revert "tmpfiles: add option to purge rules' targets on change"
This reverts commit b4350d54c2.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
Austin Horstman 6a40be5eaf Revert "glab: remove the config file if it is empty or glab disabled"
This reverts commit b5ed4afc22.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
Austin Horstman 17c3ea43bf Revert "glab: coerce glab tmpfile rule argument to string"
This reverts commit 8c824254b1.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
Austin Horstman d21852e86c Revert "tmpfiles: use correct path in the onChange hook"
This reverts commit c93684cd87.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-05 12:26:46 -06:00
home-manager-ci[bot]andAustin Horstman b959c67241 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15?narHash=sha256-kJ8lIZsiPOmbkJypG%2BB5sReDXSD1KGu2VEPNqhRa/ew%3D' (2025-10-31)
  → 'github:NixOS/nixpkgs/b3d51a0365f6695e7dd5cdf3e180604530ed33b4?narHash=sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw%3D' (2025-11-02)
2025-11-05 08:10:18 -06:00
Martijn BoersandAustin Horstman 34fe48801d ghostty: Add systemd integration
The systemd unit already exists on the system, this gives the
option to enable it.
2025-11-04 16:56:11 -06:00
heyzecandAustin Horstman 1c75dd7022 vscode: don't break when profile name has spaces 2025-11-04 14:07:04 -06:00
Ryan HoriguchiandAustin Horstman 0a5a165aca superfile: add pinnded folder and first use option 2025-11-04 14:06:39 -06:00
Leon SchwarzäuglandAustin Horstman c39c07bf31 opkssh: init module 2025-11-04 08:34:45 -06:00
Austin Horstman aa6936bb63 tests/yazi: fix bash/zsh integration tests
Didn't fail even with incorrect assertion. Multi line string for
assertFileContains didn't properly work. Don't want to manage an entire
zsh config file in assertFileContent so just multi step asserting the
generated file.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-03 21:54:12 -06:00
meckandAustin Horstman 65bf99c579 yazi: update wrappers not to use cat in subshell
If cat is aliased to bat the non piping operation
in the script might include extra text, use builtins
instead
2025-11-03 21:54:12 -06:00
Austin Horstman 6feb368511 news: add vicinae entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-03 21:18:48 -06:00
leiserfgandAustin Horstman 5cdf9ef995 vicinae service: init
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-03 21:18:48 -06:00
Thierry DelafontaineandAustin Horstman 1342b821db news: add entry for mcp module and integrations
Add news entry documenting the new `programs.mcp` module and MCP
integration support in OpenCode and VSCode modules.
2025-11-03 20:25:16 -06:00
Thierry DelafontaineandAustin Horstman 9ff9a94fd4 vscode: add mcp module integration 2025-11-03 20:25:16 -06:00
Thierry DelafontaineandAustin Horstman c740351870 opencode: add mcp module integration 2025-11-03 20:25:16 -06:00
Thierry DelafontaineandAustin Horstman 083b20c1a0 mcp: init module 2025-11-03 20:25:16 -06:00
Pierre-Yves LanduréandAustin Horstman 1f34c2c855 zed-editor: options to generate debug.json
Add `mutableUserDebug` and `userDebug` options to generate `debug.json` file.
The options are heavily inspired by `mutableUserTasks` and `userTasks` options implementation.

Closes #8091
2025-11-03 20:24:19 -06:00
aldurandAustin Horstman 95d65dddae gpg: fix correctly setting trust for all keys
When passing `gpg.publicKeys` a `source` including _multiple_ keys,
only the first one in `source` will have `trust` set correctly.

This commit fixes the issue and adds a corresponding test
(failing without the patch, fixed with it).
2025-11-03 15:14:46 -06:00
Hoang NguyenandAustin Horstman a5fee07792 rio: reformat 2025-11-03 09:23:19 -06:00
Hoang NguyenandAustin Horstman 9d6e28fd32 rio: add support for custom themes 2025-11-03 09:23:19 -06:00
Hoang NguyenandAustin Horstman e22fb25cde rio: use stub package for all test cases 2025-11-03 09:23:19 -06:00
bruce obergandAustin Horstman 3c16ac3646 home manager: add test for option subcommand
- added a test to the standalone-basics unit:  the option subcommand queries the `home.username` value and ensures that something sane is returned.

details:

- the option subcommand was broken by upstream changes to the `nixos-option` command.
- hm had no tests for the option subcommand, so the problem was discovered by users.
- output from nixos-option probably starts with 'Value:\n  "alice"', but we're only looking for 'alice' because the output format is not guaranteed.
2025-11-03 09:12:22 -06:00
bruce obergandAustin Horstman 64c49b1aa5 home-manager: fix option subcommand
- calls nix-instatiate instead of nixos-option (using nix-option's underlying nix script).
- loops over options to display since nixos-option can only process a single option.
- passes through the --recursive flag from nixos-option. and includes --help and man page for the flag.

details:

nixos-option was changed from a C++ command to a shell script that feeds a nix script (with arguments) to nix-instatiate. in the process, the --config_expr and --options_expr we once passed to nixos-option were removed.

without changing the nixos-option shell script, we have no may to override the arguments to the nixos-option nix script.

luckily, we can use our modulesExpr as a direct argument to the new nixos-option nix script.

unluckily, the nix script does not accept multiple options per instantiation. so we are also looping through the given options ourselves and feeding them each to nixos-option's nix script.

the nixos-option shell and nix scripts are in different places in the nix store, so we have to search the store for the nix script given the location of the shell script.

also, the nixos-option nix script wants a 'recursive' flag, so we now honor that flag for the home-manager option subcommand.
2025-11-03 09:12:22 -06:00
Benedikt RipsandAustin Horstman c93684cd87 tmpfiles: use correct path in the onChange hook 2025-11-03 08:52:18 -06:00
Benedikt RipsandAustin Horstman 8c824254b1 glab: coerce glab tmpfile rule argument to string 2025-11-03 07:59:26 -06:00
Benedikt RipsandAustin Horstman 2318e30ea1 tests: hostPlatform -> stdenv.hostPlatform 2025-11-03 07:59:03 -06:00
Benedikt RipsandAustin Horstman b5ed4afc22 glab: remove the config file if it is empty or glab disabled 2025-11-02 23:02:10 -06:00
Benedikt RipsandAustin Horstman 7503ffb0b0 tmpfiles: add maintainer bmrips 2025-11-02 23:02:10 -06:00
Benedikt RipsandAustin Horstman b4350d54c2 tmpfiles: add option to purge rules' targets on change 2025-11-02 23:02:10 -06:00
Benedikt RipsandAustin Horstman 090aa14e5d tmpfiles: migrate to an RFC42-style option 2025-11-02 23:02:10 -06:00
Austin Horstman 32a671dce5 tests/gtk: ubuntu_font_family -> ubuntu-classic
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-02 22:59:59 -06:00
Austin Horstman ab0d3db1aa tests/darkman: python -> python2
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-02 22:59:59 -06:00
Austin Horstman 9901bb6afc taskwarrior-sync: taskwarrior -> taskwarrior2
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-02 22:59:59 -06:00
Austin Horstman 9f3a82bfd1 taskwarrior: taskwarrior -> taskwarrior2
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-02 22:59:59 -06:00
Austin Horstman acf7743c89 darwinScrublist: taskwarrior rename
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-02 22:59:59 -06:00
home-manager-ci[bot]andAustin Horstman 983cbdc75c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce?narHash=sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c%3D' (2025-10-25)
  → 'github:NixOS/nixpkgs/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15?narHash=sha256-kJ8lIZsiPOmbkJypG%2BB5sReDXSD1KGu2VEPNqhRa/ew%3D' (2025-10-31)
2025-11-02 22:59:59 -06:00
Austin HorstmanandGitHub d9cd40d2da local-ai: string -> str (#8116)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-11-03 04:41:08 +00:00
Ilya SavitskyandGitHub 61f2cc5908 local-ai: init module (#6718) 2025-11-02 22:04:44 -06:00
Alex IonescuandGitHub 50a5766d51 kitty: add option mouseBindings (#8111) 2025-11-02 21:55:45 -06:00
Raul Rodrigues de OliveiraandGitHub 0fe68257a9 fish: added repaint to binds (#8113) 2025-11-02 21:53:28 -06:00
Robert RadestockandGitHub 371608e69c rclone: add option to set log-level (#8105)
Add an option to set rclone's log-level per mount:
programs.rclone.remotes.<name>.mounts.<name>.logLevel = "DEBUG";
If no value is set, it'll use rclone's implicit default ("NOTICE")

Previously, the debug log-level got enforced (via "-vv"),
which caused noisy logs, and there was no easy way to change that.

Note: rclone global-flags can't be configured in the config file,
so this uses the environment variable approach.

references:
- https://rclone.org/docs/#logging
- https://rclone.org/docs/#v-vv-verbose

If no value is given, use the implicit default of rclone instead of redefining it through the options
2025-11-02 21:52:56 -06:00
Yechiel WorenkleinandAustin Horstman 43e205606a cbatticon: add package example
After batticonplus was merged into nixpkgs
2025-11-02 06:44:15 -06:00
pancho horrilloandAustin Horstman 5eaa0072ff gpg-agent: restore empty newlines after commands 2025-11-02 05:52:54 -06:00
pancho horrilloandAustin Horstman 363797f8a9 gpg-agent: fix syntax-breaking extraneous new line 2025-11-02 05:52:54 -06:00
jaredmontoyaandAustin Horstman c0016dd147 ssh-agent: add shell integrations
replaces `home.sessionVariablesExtra`
2025-11-01 18:56:56 -05:00
jaredmontoyaandAustin Horstman 3557df69ee gpg-agent: refactor 2025-11-01 18:56:08 -05:00
Bruno BigrasandAustin Horstman c537cb21e3 radicle: pkgs.hostPlatform -> pkgs.stdenv.hostPlatform 2025-11-01 18:55:02 -05:00
jaredmontoyaandAustin Horstman ae22fa930e lazygit: fix nushell and fish integrations 2025-11-01 18:54:42 -05:00
Matt SturgeonandAustin Horstman 87044c5722 tests: explicitly define NIX_CONFIG
Ensure NIX_CONFIG is correctly configured for the tests command.

It is possible that someone may enable experimental features on an
ad-hoc basis, e.g. via the `--extra-experimental-features` CLI flag.
In this scenario, the tests script cannot assume they are already
enabled.

In the future, we may also wish to configure other things, like extra
binary substitutors.
2025-11-01 14:29:06 -05:00
Matt SturgeonandAustin Horstman 7248450206 tests: add fzf dependency to package
The tests script depends on fzf when asking which test to run.
Explicitly make it available via `runtimeInputs`.
2025-11-01 14:29:06 -05:00
Matt SturgeonandAustin Horstman 9278414dcc tests: switch package to writeShellApplication 2025-11-01 14:29:06 -05:00
Matt SturgeonandAustin Horstman 5fb2203af7 tests: move package to its own file
Extract the `tests` package from `flake.nix`  into its own file
`tests/package.nix`.

This a) de-couples it from the flake (to a degree) and b) allows more
neatly using the callPackage pattern.
2025-11-01 14:29:06 -05:00
Christoph HollizeckandGitHub 4ac96eb21c easyeffects: use new typecheck (#8090) 2025-10-30 21:39:41 -05:00
Austin Horstman 97e3022a8d news: add backupCommand entry
Introduced in https://github.com/nix-community/home-manager/pull/7153

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-30 12:33:41 -05:00
Christina O'DonnellandGitHub ce76393bb7 home-manager: add support for custom backup command (#6424) (#7153)
This adds a new backupCommand option to allow users to specify a
custom command to run on existing files during activation, as an
alternative to the existing backupFileExtension mechanism.

Adds backupCommand option to NixOS and nix-darwin modules.

Exports HOME_MANAGER_BACKUP_COMMAND environment variable when set.

Updates file activation logic to use the custom backup command if
provided, falling back to the existing backup extension logic.

Updates collision checking and user-facing instructions to
mention the new option.

This enables advanced backup workflows, such as moving files to
trash or archiving with custom tools, before managing them with
Home Manager.
2025-10-30 12:26:13 -05:00
Benedikt RipsandAustin Horstman c6d4cb31d7 home-manager: define a central package 2025-10-30 08:20:54 -05:00
andre4ik3andAustin Horstman 124b99dbd1 aerospace: don't use ifd 2025-10-29 15:47:12 -05:00
MalikandMatthieu Coudron b8082c6803 khal: fix trailing slash bug for singlefile calendars
Fix the trailing slash bug described in issue #8024 by conditionally adding a slash only for filesystem type, not for singlefile. Also update the expected test output to match the correct order.
2025-10-29 16:14:04 +01:00
MalikandMatthieu Coudron 58d90d298d tests: khal: add testcase
for singlefile
2025-10-29 16:14:04 +01:00
Yechiel WorenkleinandAustin Horstman ca2ab1d877 cbatticon: add package to options 2025-10-28 10:45:54 -05:00
home-manager-ci[bot]andAustin Horstman d47259b685 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e2a59a5b1a82f89f2c7e598302a9cacebb72a67?narHash=sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs%3D' (2025-10-19)
  → 'github:NixOS/nixpkgs/6a08e6bb4e46ff7fcbb53d409b253f6bad8a28ce?narHash=sha256-Q/uhWNvd7V7k1H1ZPMy/vkx3F8C13ZcdrKjO7Jv7v0c%3D' (2025-10-25)
2025-10-28 09:06:15 -05:00
Benedikt RipsandAustin Horstman 05c7c900f1 fontconfig: fix cache existence tests 2025-10-28 08:55:38 -05:00
Benedikt RipsandAustin Horstman b53026f683 tmpfiles: echo the onChange command and respect $DRY_RUN 2025-10-28 08:55:07 -05:00
Thiago Kenji OkadaandAustin Horstman fca3fedcdc targets/darwin: do not use sudo to check for App Management
This is writing `.DS_Store` files as root in "~/Applications/Home
Manager Apps/<app>", and causing errors during the `rsync` call since it
will try to delete any files that is not present in the app bundle.

Fix #8067.
2025-10-28 08:54:13 -05:00
nanliuandAustin Horstman e82585308a Translate using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Chinese (Simplified Han script))

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: nanliu <nan.liu@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hans/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-10-27 11:54:37 -05:00
Hoang NguyenandAustin Horstman aa888ffc10 kraftkit: new module 2025-10-27 09:13:26 -05:00
Thierry DelafontaineandAustin Horstman 0a3fb53ee2 delta: add jujutsu integration option 2025-10-27 09:11:41 -05:00
home-manager-ci[bot]andAustin Horstman a12a837d99 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:** 276 → 277 maintainers

** Added:** lorenzleutgeb

Generated by: lib/python/generate-all-maintainers.py
2025-10-27 09:10:43 -05:00
Benedikt M. RipsandGitHub bbaeb9f1c2 glab: init module (#8066) 2025-10-26 20:59:05 -05:00
Aguirre MatteoandAustin Horstman 988f25531d news: add zapzap entry 2025-10-26 20:58:30 -05:00
Aguirre MatteoandAustin Horstman 5e3b79ac84 zapzap: add module 2025-10-26 20:58:30 -05:00
Sami HaahtinenandGitHub 255b6a0ef2 home-manager-auto-upgrade: add flake support (#8053)
Adds the ability for the auto-upgrade service to update a Nix flake
instead of Nix channels.

This is controlled by a new `useFlake` boolean option. When enabled, the
service will run `nix flake update` in the directory specified by the
`flakeDir` option.

`flakeDir` defaults to the standard Home Manager configuration directory
(`~/.config/home-manager`), making this feature work out-of-the-box for
most users. The path is passed to the upgrade script via an environment
variable in the systemd service unit.
2025-10-26 16:21:41 -05:00
Austin HorstmanandGitHub 2a9969b39c .git-blame-ignore-revs: add some no-op treewide cleanup (#8062)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-26 15:56:55 -05:00
Benedikt M. RipsandGitHub f2f1076c1f treewide: remove no-ops (#8061) 2025-10-26 15:43:53 -05:00
fk29gandGitHub 879e4d9060 clipse: fix keyBindings example syntax (#8058) 2025-10-26 15:36:37 -05:00
2aaf924e82 radicle: init (#5409)
Co-authored-by: Matthias Beyer <mail@beyermatthias.de>
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-26 15:34:09 -05:00
Amneesh SinghandMatthieu Coudron 1830716059 nixgl: fix wrapper name typo
Acknowledge nvidiaPrime when it is one of the wrappers in cfg.installScripts
2025-10-26 09:49:10 +01:00
Leon ErdandAustin Horstman 64020f453b aerospace: add extraConfig 2025-10-25 21:37:58 -05:00
musjjandAustin Horstman 5c54b182ab zed-editor: option to generate immutable settings 2025-10-25 21:30:50 -05:00
Jairo LlopisandAustin Horstman 80437a57ca lorri: don't start until daemon is really running
Sometimes a race condition will make the events stream start after the
daemon is running, and then no events will be streamed.

This fixes the problem by checking the daemon status and failing the
unit if not ready yet. It will restart 5 seconds later, which will
probably be enough.

@moduon MT-1075
2025-10-25 21:21:03 -05:00
Jairo LlopisandAustin Horstman d9ded14b74 lorri: restart notifications if events stream is disconnected
Before this patch, when events stream got disconnected (maybe because a
home rebuild), lorri-notify service wouldn't auto-restart.

@moduon MT-1075
2025-10-25 21:21:03 -05:00
Dixon Sean Low Yan FengandAustin Horstman b652e703f1 picom: add test for extraConfig 2025-10-25 21:15:52 -05:00
Dixon Sean Low Yan FengandAustin Horstman 0bc5f414f8 picom: add extraConfig to options
The picom module's `services.picom.settings` converts Nix expressions
to the libconfig format. However, that option currently does not have
a way to specify libconfig lists (enclosed in parentheses `()`), and
can only specify arrays (enclosed in square brackets `[]`). This makes
it impossible to specify certain picom configuration options, such as
animations (which are specified using lists).

This commit adds an `extraConfig` option to the picom module as an
escape hatch so that users can still specify picom options that are not
currently representable through `services.picom.settings`.
2025-10-25 21:15:52 -05:00
George HuebnerandMatthieu Coudron 7296022150 man: add extraConfig 2025-10-25 14:33:47 +02:00
Jairo LlopisandMatthieu Coudron c644cb018f lorri: better notifications
- They disappear automatically in GNOME.
- They display an icon indicating the status.
- The app name is "Lorri".

@moduon MT-1075
2025-10-25 00:26:19 +02:00
MioandAustin Horstman 82b58f3820 targets/darwin: better error message 2025-10-24 09:43:15 -05:00
Thiago Kenji OkadaandAustin Horstman 5c71d4a730 news: add news entry for targets.darwin.copyApps 2025-10-23 19:41:13 -05:00
Thiago Kenji OkadaandAustin Horstman 4b846fa3aa targets/darwin: init copyapps
This is basically a better version of `targets.darwin.linkApps` that
copy apps instead of linking (hence the name). While this is a
convoluted approach, it works with Spotlight, where the previous
approach doesn't. This is also the approach adopted by nix-darwin, see
PR: https://github.com/nix-darwin/nix-darwin/pull/1396.

There are a few particularities about this implementation, for one the
flags we use in rsync are different since we are not using root to copy
the apps to `~/Applications`. This may or may not cause some issues with
specific applications so further testing will be needed. Also the check
for App Management permission needs root (via sudo), so this check is
gated behind a flag that can be disabled if needed.

Fix: #1341.
2025-10-23 19:41:13 -05:00
Thiago Kenji OkadaandAustin Horstman 44ca573665 targets/darwin: refactor linkapps 2025-10-23 19:41:13 -05:00
Chenxin YanandAustin Horstman 24cad38b3f lazygit: add shell integrations 2025-10-23 19:38:13 -05:00
bgo-eiuandAustin Horstman af6bb5ea8e Translate using Weblate (Turkish (Ottoman))
Currently translated at 5.1% (2 of 39 strings)

Add translation using Weblate (Turkish (Ottoman))

Add translation using Weblate (Turkish (Ottoman))

Co-authored-by: bgo-eiu <huyaqoob+toolforge@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ota/
Translation: Home Manager/Home Manager CLI
2025-10-23 19:37:09 -05:00
Austin Horstman 36a7a673c0 ci: backport set permissions
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-23 19:16:57 -05:00
Thiago Kenji OkadaandAustin Horstman 0adf9ba3f5 kitty: make package nullable 2025-10-23 10:58:55 -05:00
home-manager-ci[bot]andAustin Horstman 4958aafe7b flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
  → 'github:NixOS/nixpkgs/5e2a59a5b1a82f89f2c7e598302a9cacebb72a67?narHash=sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs%3D' (2025-10-19)
2025-10-22 22:48:21 -05:00
PerchunPakandAustin Horstman 9b4a2a7c4f hyprpanel: remove dontAssertNotificationDaemons option
It didn't work anyway, and is now unnecessary as the upstream bugs were
fixed
2025-10-21 16:21:41 -05:00
home-manager-ci[bot]andAustin Horstman 13b2744e11 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:** 275 → 276 maintainers

** Added:** will-lol

Generated by: lib/python/generate-all-maintainers.py
2025-10-21 12:01:38 -05:00
JessandAustin Horstman 28907d1f77 restic: make sure pre and post hooks have interpreters 2025-10-21 11:12:48 -05:00
PerchunPakandAustin Horstman aa559a682b delta: add test where git integration is disabled 2025-10-21 10:37:08 -05:00
Dietrich DarochandAustin Horstman 84e1adb0cd zellij: Allow using extraConfig without settings
Fixes https://github.com/nix-community/home-manager/issues/8015
2025-10-20 19:04:33 -05:00
Anton MosichandMatthieu Coudron c3a5e5f0df services/pimsync: init
services/pimsync: add documentation
2025-10-20 17:10:44 +02:00
Anton MosichandMatthieu Coudron 2b0a46285b tests/pimsync: init 2025-10-20 17:10:44 +02:00
Anton MosichandMatthieu Coudron f4411d1e9b pimsync: init module
This adds a pimsync module using the rather verbose but feature-complete new SCFG generator.
2025-10-20 17:10:44 +02:00
Anton MosichandMatthieu Coudron db876d1d9f programs/senpai: use new toSCFG interface
I did not want to break any current configurations, and as it seems that
senpai doesn't rely on any of the patterns that weren't possible with
the old toSCFG generator.
2025-10-20 17:10:44 +02:00
Anton MosichandMatthieu Coudron 817ca5e948 types: add SCFGDirectives type
This is currently broken, as it causes a overflow when generation
documentation.
2025-10-20 17:10:44 +02:00
Anton MosichandMatthieu Coudron 89a9fa0f3f generators: rewrite toSCFG
The former toSCFG implementation had several shortcomings which
did not consider a few possibilities SCFG provides. Details were lined
out in #7465.
The new interface needs more verbosity, but reflects better the
properties of the SCFG format. I also chose to use the names used in the
[Specification].

[Specification]: https://git.sr.ht/~emersion/scfg#specification-draft
2025-10-20 17:10:44 +02:00
Bruno BELANYIandAustin Horstman c9d758b500 tests/delta: add 'delta-final-package'
This tests the usage of the wrapper program when `programs.git` is
disabled, and therefore home-manager is _not_ generating its
configuration.
2025-10-20 09:13:03 -05:00
Bruno BELANYIandAustin Horstman 022e7e3f95 delta: fix wrapper usage condition 2025-10-20 09:13:03 -05:00
Bruno BELANYIandAustin Horstman 0cb746a743 delta: set wrapper's 'meta'
Notably, this will set `meta.mainProgram`.
2025-10-20 09:13:03 -05:00
Ryan HoriguchiandAustin Horstman 189c21cf87 superfile: add zoxide when zoxide_support enabled 2025-10-19 22:07:47 -05:00
Austin Horstman aeabc1ac63 tests/git: add settigs deprecation test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman a709427248 git: aliases / user options -> settings
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman ac7c05a90c git: extraConfig -> settings
Remove string support and convert to rfc42 settings option

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 85cd07b8b0 diff-so-fancy: use freeform settings option
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman bb7bb23583 git: reorganize
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 7522ba8a0c tests/riff: add
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman b695586f92 riff: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 41fd9b197c tests/patdiff: add
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman c80be80282 patdiff: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 4fef8e73a6 tests/git: add git-lfs test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 2e527427b1 git: add git-lfs package option
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 4166d4e163 tests/difftastic: add
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 111329b475 difftastic: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 16cd8abad6 tests/diff-so-fancy: add
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 7a10f175db diff-so-fancy: new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 486487b5e9 tests/diff-highlight: add
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 7d03d5fb73 diff-highlight: new module
Break out diff-highlight into its own module.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman 2c8b962091 tests/delta: add tests
Create a new set of tests to verify the new module's behavior.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
Austin Horstman f436677f5f delta: create new module
Pull out of git module and deprecate old usage.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-19 10:24:15 -05:00
h7x4andAustin Horstman 90af98a2fc newsboat: add timer unit for automatically cleaning cache 2025-10-19 09:48:30 -05:00
h7x4andAustin Horstman a264fbea00 newsboat: add timer unit for automatically fetching articles 2025-10-19 09:48:30 -05:00
Thierry DelafontaineandAustin Horstman 6ea30b26cd opencode: make the themes also accept path
- Removed unnecessary empty-themes test.
2025-10-19 09:47:26 -05:00
Thierry DelafontaineandAustin Horstman fddb33a1a5 opencode: make the rules option also accept a path 2025-10-19 09:47:26 -05:00
JessandAustin Horstman c199de6cd8 restic: decouple helper script from linux-specific systemd logic
And make platform support explicit.
2025-10-19 09:46:41 -05:00
JessandAustin Horstman 12bca6d40a Revert "restic: add platform assertion (linux)" 2025-10-19 09:46:41 -05:00
home-manager-ci[bot]andAustin Horstman d7f5306637 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cf3f5c4def3c7b5f1fc012b3d839575dbe552d43?narHash=sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c%3D' (2025-10-12)
  → 'github:NixOS/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
2025-10-19 09:46:23 -05:00
Austin Horstman 870883ba11 cliphist: remove example package
Looks like example doesn't utilize --watch
https://github.com/YaLTeR/wl-clipboard-rs/issues/5
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-18 12:46:31 -05:00
Thierry DelafontaineandAustin Horstman 99977131d3 opencode: change tilde (~) to XDG_CONFIG_DIR for command and agent paths
Replace the use of `~` in the documentation for the command and agent
settings with the `XDG_CONFIG_DIR` environment variable to avoid
ambiguity about the config directory. Also switch to the
`{file}` path macro so paths render correctly in the docs and tooling.
2025-10-18 12:41:21 -05:00
JessandAustin Horstman 3fbc879021 restic: add platform assertion (linux) 2025-10-18 12:41:01 -05:00
Mirza ArnautandAustin Horstman fc837be107 opencode: add themes option
Add themes option to configure custom themes through nix.
Define a submodule for the settings option, to give the `theme` setting
a description.
2025-10-18 09:21:38 -05:00
Austin Horstman 722792af09 news: add wl-clip-persist entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-16 19:54:01 -05:00
Austin Horstman 7e0abd5db6 ci: add wl-clip-persist labels
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-16 19:26:10 -05:00
Austin Horstman 47c74e4fd0 wl-clip-persist: add module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-16 19:26:10 -05:00
Austin Horstman 673e47bb86 cliphist: add clipboardPackage
Allow customizig which clipboard package to use with the cliphist
service.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-16 19:25:26 -05:00
June SteppandAustin Horstman 847669dabf anki: fix boolean options 2025-10-16 14:03:28 -05:00
home-manager-ci[bot]andAustin Horstman c53e65ec92 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/0b4defa2584313f3b781240b29d61f6f9f7e0df3?narHash=sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw%3D' (2025-10-09)
  → 'github:NixOS/nixpkgs/cf3f5c4def3c7b5f1fc012b3d839575dbe552d43?narHash=sha256-TK9Kr0BYBQ/1P5kAsnNQhmWWKgmZXwUQr4ZMjCzWf2c%3D' (2025-10-12)
2025-10-14 23:03:03 -05:00
Bob van der LindenandAustin Horstman ba6aaa0e0a mergiraf: add merge.conflictStyle git configuration
Mergiraf expects merge.conflictStyle to be "diff3" in git. If this isn't
the case, mergiraf cannot operate correctly. This change adds this
option to git's configuration.
2025-10-14 22:59:58 -05:00
liyangauandAustin Horstman ed1eb4cfdd fix config file location on macOS and fix test 2025-10-14 17:10:47 -05:00
willandAustin Horstman 990e5ce679 docker-cli: add docker contexts support
Adds docker-cli.contexts support. This allows declarative configuration
of [docker
contexts](https://docs.docker.com/engine/manage-resources/contexts/).
2025-10-14 12:20:39 -05:00
willandAustin Horstman 25ca7d297f docker-cli: add will-lol as maintainer 2025-10-14 12:20:39 -05:00
willandAustin Horstman aac99d4065 maintainers: add will-lol 2025-10-14 12:20:39 -05:00
home-manager-ci[bot]andAustin Horstman 724bb5e56b 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:** 0 maintainers
**Removed:** 0 maintainers
**Total:** 275 → 275 maintainers

Generated by: lib/python/generate-all-maintainers.py
2025-10-14 12:13:39 -05:00
Aguirre MatteoandAustin Horstman 837525295f obsidian: allow null package 2025-10-14 12:13:15 -05:00
Austin Horstman e121f3773f gemini-cli: context support multiple file generation
Support multiple context files since gemini supports configuring
multiple names as supported / looked for.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 18:44:04 -05:00
Austin Horstman 5ead1867bb tests/gemini-cli: add context tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 18:44:04 -05:00
Austin Horstman e2d346936e gemini-cli: add context option
Support a GEMINI.md file for base context at global level.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 18:44:04 -05:00
Austin Horstman 02d23e6291 maintainers: remove swarsel duplicate
Exists in nixpkgs

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 17:34:57 -05:00
Austin Horstman 602913bfc5 pizauth: update maintainer entry
Point to nixpkgs so we can remove the home manager entry.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 17:34:57 -05:00
Austin Horstman 4d64989b8c autotiling: update maintainer entry
Point to nixpkgs so we can remove the home manager entry.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-12 17:34:57 -05:00
fk29gandAustin Horstman 175bf8ce19 maintainers: fix typo 2025-10-12 17:29:28 -05:00
fk29gandAustin Horstman 48ed66f59d maintainers: update link to NixOS' maintainer-list.nix
At the top of maintainers.nix it says that:

> Entries here are expected to be follow the same format as described in [1]

Typo aside, [1] links to NixOS' maintainer-list.nix file off a 5 year
old commit, which contains outdated information on which maintainer
fields are required. Notably, `github` and `githubId` have since become
mandatory, while `email` was moved to the list of optional fields.

This updates the link to point to the current version of the file.
2025-10-12 17:29:28 -05:00
home-manager-ci[bot]andAustin Horstman 5cd1f79c8a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c9b6fb798541223bbb396d287d16f43520250518?narHash=sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH%2B47XEBo%3D' (2025-10-07)
  → 'github:NixOS/nixpkgs/0b4defa2584313f3b781240b29d61f6f9f7e0df3?narHash=sha256-Oncbh0UmHjSlxO7ErQDM3KM0A5/Znfofj2BSzlHLeVw%3D' (2025-10-09)
2025-10-12 17:24:08 -05:00
Leon SchwarzäuglandAustin Horstman 416ad5c08a tests: remove flake.lock, add to .gitignore 2025-10-12 17:23:46 -05:00
Mirza ArnautandAustin Horstman 904fa32d77 vivid: modify themes option with custom nix entries 2025-10-12 13:58:58 -05:00
fidgetingbitsandAustin Horstman c4aaddeaec home-manager: Document 'force = true' option in error output
Add a note about 'force = true' as an option for addressing collision
errors
2025-10-11 22:20:30 -05:00
Leon SchwarzäuglandAustin Horstman ac16cc25c6 autotiling: init module 2025-10-11 22:19:18 -05:00
Aguirre MatteoandAustin Horstman 7afeff9d81 news: add anvil-editor entry 2025-10-11 22:14:37 -05:00
Aguirre MatteoandAustin Horstman f2cda99e4a anvil-editor: add module 2025-10-11 22:14:37 -05:00
Aguirre MatteoandAustin Horstman 2574bb4496 news: add anup entry 2025-10-11 22:12:56 -05:00
Aguirre MatteoandAustin Horstman 55091079d6 anup: add module 2025-10-11 22:12:56 -05:00
Aguirre MatteoandAustin Horstman e4c7df3a95 news: add anime-downloader entry 2025-10-11 22:12:37 -05:00
Aguirre MatteoandAustin Horstman 95419fb985 anime-downloader: add module 2025-10-11 22:12:37 -05:00
Aguirre MatteoandAustin Horstman 4889a25756 news: add andcli entry 2025-10-11 22:12:09 -05:00
Aguirre MatteoandAustin Horstman efb5aa7779 andcli: add module 2025-10-11 22:12:09 -05:00
Aguirre MatteoandAustin Horstman 2fffa806e7 news: add amp entry 2025-10-11 22:11:51 -05:00
Aguirre MatteoandAustin Horstman 91daee72ef amp: add module 2025-10-11 22:11:51 -05:00
Austin Horstman d305eece82 zsh: fix zsh history substring search generation
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-10 16:06:46 -05:00
Austin Horstman bcccb01d0a tests/firefox: change test case to verify we handle missing addonId
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-10 08:40:00 -05:00
Austin Horstman 5200f3903f mkFirefoxModule: support extensions without addonID
Properly handle extensions missing addonId without eval error.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-10 08:40:00 -05:00
musjjandAustin Horstman c7f4214fac firefox: new permission checks for extensions
Add two new options to customize how extension permissions are checked:

- `extensions.exhaustivePermissions`
  Ensures that the permissions requested by all extensions managed by
  home-manager are authorized
- `extensions.exactPermissions`
  When enabled, the user must authorize only the permissions that the
  extensions requests, not more nor less.
2025-10-09 21:06:28 -05:00
ChrisandAustin Horstman b27e551270 aerc: change stylesets option to reflect the structure aerc expects
Instead of placing all 'stylesets' attribute set values into the 'global'
section this places them in the specified section.
2025-10-09 21:01:58 -05:00
TaskForceTortureandAustin Horstman 88e62bcab2 swayidle: make sure it's actually installed when enabled 2025-10-09 20:53:47 -05:00
r-vdpandAustin Horstman 5d61767c8d alacritty: fix eval error 2025-10-09 13:05:52 -05:00
Austin Horstman 6564ee29d0 tests/darwinScrublist: add retext
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-09 08:16:36 -05:00
home-manager-ci[bot]andAustin Horstman 2a1df04868 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee?narHash=sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs%3D' (2025-10-02)
  → 'github:NixOS/nixpkgs/c9b6fb798541223bbb396d287d16f43520250518?narHash=sha256-vgPm2xjOmKdZ0xKA6yLXPJpjOtQPHfaZDRtH%2B47XEBo%3D' (2025-10-07)
2025-10-09 08:16:36 -05:00
r-vdpandAustin Horstman 87f75c1044 alacritty: add package option for the theme package 2025-10-09 08:16:17 -05:00
r-vdpandAustin Horstman f8e0560734 alacritty: check existence of the theme without using IFD
This makes it possible to evaluate a config using the theme option with
--no-allow-import-from-derivation
2025-10-09 08:16:17 -05:00
WeetHetandAustin Horstman 7add554458 macos-remap-keys: add Fn (Globe) keycode 2025-10-09 08:15:50 -05:00
WeetHetandAustin Horstman 219150a73c macos-remap-keys: add japanese Kana and Eisuu keycodes 2025-10-09 08:15:50 -05:00
Lena FuhrimannandMatthieu Coudron 685d8d85d0 desktopEntry: Remove deprecated category from example
The `Application` category is deprecated and should not be used as an
example anymore.
2025-10-09 12:25:12 +02:00
Aguirre MatteoandAustin Horstman 1a09eb84fa news: add amoco entry 2025-10-07 11:06:11 -05:00
Aguirre MatteoandAustin Horstman c6f8669f09 amoco: add module 2025-10-07 11:06:11 -05:00
jaredmontoyaandAustin Horstman 6c5025e2bb tests/dircolors: add nushell integration tests 2025-10-07 11:02:19 -05:00
jaredmontoyaandAustin Horstman 38fbd8909e dircolors: add nushell integration 2025-10-07 11:02:19 -05:00
jaredmontoyaandAustin Horstman 462363e248 dircolors: remove no-op 2025-10-07 11:02:19 -05:00
Aguirre MatteoandAustin Horstman 5443ca20ed news: add amfora entry 2025-10-07 08:28:39 -05:00
Aguirre MatteoandAustin Horstman 40ff79012e amfora: add module 2025-10-07 08:28:39 -05:00
Bruno BELANYIandAustin Horstman 929535c308 git: difftastic: use 'option' attrset
This will avoid having to enumerate and hard-code default values.
2025-10-06 09:41:50 -05:00
home-manager-ci[bot]andAustin Horstman ed10023224 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:** 0 maintainers
**Removed:** 1 maintainers
**Total:** 276 → 275 maintainers

** Removed:** Kritnich

Generated by: lib/python/generate-all-maintainers.py
2025-10-06 08:07:07 -05:00
Brian LylesandAustin Horstman 7d3d323e90 git: add extraArgs option for difftastic
This option will cover any other arguments that aren't made available
with dedicated options.
2025-10-06 08:06:53 -05:00
Brian LylesandAustin Horstman 1652349e57 git: add option for difftastic context
The ability to control the number of contextual lines is a basic
expectation of a diff program, so a dedicated option feels warranted.
2025-10-06 08:06:53 -05:00
Brian LylesandAustin Horstman d328666dba git: add tests for difftastic 2025-10-06 08:06:53 -05:00
Brian LylesandAustin Horstman e46b52ab56 darwinScrublist: add difftastic 2025-10-06 08:06:53 -05:00
DashandGitHub b72be79a42 smug: add new option introduced by v0.3.7 (#7930)
Adds 'selected' option for tmux windows
2025-10-06 08:03:47 -05:00
Austin Horstman 6f4021da5d deprecations: move just module deprecation to new module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 19:36:44 -05:00
Austin Horstman 3f07ce05c3 deprecations: add deprecations/removal module
Add a module for consolidating the module level deprecations in an
easier to spot location.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 19:36:44 -05:00
Austin Horstman 5b45dcf479 tests/hyprshot: add tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 17:19:26 -05:00
Austin Horstman 9f2912e3a6 hyprshot: add platform assertion
Only available on linux.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 17:19:26 -05:00
Austin Horstman 3c3076b1c1 tests/discoss: add tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:38:57 -05:00
Austin Horstman 6e8ab005bc tests/darwinscrublist: add discocss and discord
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:38:57 -05:00
Austin Horstman f72f660976 discocss: only generate css when provided
No need to generate a file with empty contents.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:38:57 -05:00
Austin Horstman aa10fe094b discocss: fix discordPackage override
error: cannot coerce a set to a string: { _type = "if"; condition =
«thunk»; content = «thunk»; }

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:38:57 -05:00
Austin Horstman 994d854a4a tests/grep: add tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:22:37 -05:00
Austin Horstman c2e3f1cacd tests/gcc: add tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:22:37 -05:00
Austin Horstman 78fda50bd6 gcc: fix sessionVariables mkIf evaluation error
error: The option `home.sessionVariables.GCC_COLORS' was accessed but
has no value defined. Try setting the option.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:22:37 -05:00
Austin Horstman 51870a37a3 grep: fix sessionVariables mkIf evaluation error
error: The option `home.sessionVariables.GREP_COLORS' was accessed but
has no value defined. Try setting the option.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 16:22:37 -05:00
Austin Horstman 06e268d66b services/barrier: drop module
Upstream package removed and unmaintained project. Recommended to
replace with maintained alternatives such as `deskflow` and `input-leap`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-05 14:19:07 -05:00
home-manager-ci[bot]andAustin Horstman b52ece2bb6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127?narHash=sha256-0m27AKv6ka%2Bq270dw48KflE0LwQYrO7Fm4/2//KCVWg%3D' (2025-09-28)
  → 'github:NixOS/nixpkgs/7df7ff7d8e00218376575f0acdcc5d66741351ee?narHash=sha256-gTrEEp5gEspIcCOx9PD8kMaF1iEmfBcTbO0Jag2QhQs%3D' (2025-10-02)
2025-10-05 14:19:07 -05:00
Aguirre MatteoandAustin Horstman 9070d7d32b news: add am2rlauncher entry 2025-10-05 14:01:08 -05:00
Aguirre MatteoandAustin Horstman 87570dbc43 am2rlauncher: add module 2025-10-05 14:01:08 -05:00
Aguirre MatteoandAustin Horstman 8b62404497 news: add amber entry 2025-10-05 14:00:51 -05:00
Aguirre MatteoandAustin Horstman 2b64e332a0 amber: add module 2025-10-05 14:00:51 -05:00
andre4ik3andRobert Helgesson 5f06ceafc6 vscode: also test unknown package if IFD is enabled 2025-10-04 12:18:56 +02:00
03f83f513d vscode: get paths from product.json
The VSCode packages contain a product.json which is used to determine
the extension and config dirs. When the package name is not known,
this change parses this file (using IFD) (which may appear in a few
places) and uses that to generate the paths.

This hopefully allows more VSCode derivatives to "just work" without
Home Manager updates.

Co-authored-by: andre4ik3 <andre4ik3@fastmail.com>
2025-10-04 12:18:50 +02:00
Jairo LlopisandAustin Horstman 817ace497b lorri: make notifications service auto-start if enabled
Without this fix, the notifications service would need to start by hand
every time.

@moduon MT-1075
2025-10-03 23:01:12 -05:00
Enrico StemmerandAustin Horstman 66e9a024b9 hyprshell: fixed tests to use correct name for style file 2025-10-03 23:00:58 -05:00
Enrico StemmerandAustin Horstman bdf78c2d2c hyprshell: fixed path for style file 2025-10-03 23:00:58 -05:00
Aidan GaulandandAustin Horstman edfbe06e1a treewide: remove aidalgol 2025-10-03 22:59:59 -05:00
Aguirre MatteoandAustin Horstman edafd6da19 news: add aliae's configLocation option entry 2025-10-03 19:01:20 -05:00
Aguirre MatteoandAustin Horstman 2126d13d7f aliae: add configLocation option 2025-10-03 19:01:20 -05:00
S0AndS0andAustin Horstman bd92e8ee4a asciinema: Add module to configure package
Enabling and defining minimal config file example;

```nix
{
  programs.asciinema = {
    enable = true;
    settings = {
      session.idle_time_limit = 2;
    };
  };
}
```

...  _Should_ result in output `~/.config/asciinema/config.toml` of;

```toml
[session]
idle_time_limit = 2
```

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-03 14:21:22 -05:00
Aguirre MatteoandAustin Horstman dd2b0f7492 news: add alistral entry 2025-10-03 13:36:26 -05:00
Aguirre MatteoandAustin Horstman 6bbfe2d697 alistral: add module 2025-10-03 13:36:26 -05:00
saygo-pngandAustin Horstman 004753ae6b home-manager: add backup overwrite option
When using the backupFileExtension option, if the backup file exists,
the activation process fails. This adds an option to instead overwrite
the old backup instead of failing.
2025-10-01 11:45:00 -05:00
x71c9andAustin Horstman 7500458e85 files: improve collision error message formatting for readability
Render each bullet as a single line at runtime while keeping ~80-column source formatting. Prevents truncation of the colliding path in service logs, reducing the need to inspect journal output.
2025-10-01 11:43:30 -05:00
Austin Horstman a42e05d9b1 Revert "fish: support theme plugins"
This reverts commit 5a21f4819e.
2025-10-01 11:17:30 -05:00
Austin Horstman 5890176f85 ci: backport use ubuntu latest
Doesn't need to be fixed and can follow same runners we use elsewhere.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-10-01 10:13:36 -05:00
home-manager-ci[bot]andAustin Horstman 9d5b443cc8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e643668fd71b949c53f8626614b21ff71a07379d?narHash=sha256-NY3kSorgqE5LMm1LqNwGne3ZLMF2/ILgLpFr1fS4X3o%3D' (2025-09-24)
  → 'github:NixOS/nixpkgs/e9f00bd893984bc8ce46c895c3bf7cac95331127?narHash=sha256-0m27AKv6ka%2Bq270dw48KflE0LwQYrO7Fm4/2//KCVWg%3D' (2025-09-28)
2025-10-01 09:55:27 -05:00
Thiago Kenji OkadaandAustin Horstman 6b1b122c1b tests: fix zsh-session-variables test 2025-10-01 09:50:11 -05:00
NovaViperandAustin Horstman 5a21f4819e fish: support theme plugins
Allows for linking fish plugin theme files to [fish's themes
folder](https://fishshell.com/docs/current/cmds/fish_config.html#theme-files).
Fully allowing for theme plugins to properly be installed declaratively.
Fixes nix-community/home-manager#3724
2025-09-30 14:48:53 -05:00
Aguirre MatteoandAustin Horstman dcf52ade95 news: add aliae entry 2025-09-30 14:45:48 -05:00
Aguirre MatteoandAustin Horstman 10bcab77af aliae: add module 2025-09-30 14:45:48 -05:00
Aguirre MatteoandAustin Horstman 48e7d82187 news: add algia entry 2025-09-30 14:41:57 -05:00
Aguirre MatteoandAustin Horstman a65df80783 algia: add module 2025-09-30 14:41:57 -05:00
Thiago Kenji OkadaandAustin Horstman 9e0453a9b0 zsh: source session variable file directly
Right now we load `hm-session-vars.sh` from
`config.home.profileDirectory`, generally resulting in the following
code being generated in `zshenv`:

```
. "/etc/profiles/per-user/<username>/etc/profile.d/hm-session-vars.sh"
```

This is problematic in a few situations. For example, when entering a
`distrobox` environment I got the following error:

```
/home/<username>/.zshenv:.:2: no such file or directory: /etc/profiles/per-user/<username>/etc/profile.d/hm-session-vars.sh
```

Instead, let's point to the path directly to the `/nix/store` by using
`config.home.sessionVariablesPackage` instead. This is more robust and
it is more consistent with other things we source in ZSH.
2025-09-30 07:50:26 -05:00
home-manager-ci[bot]andRobert Helgesson 12fa8548fe 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:** 276 → 277 maintainers

** Added:** aionescu

Generated by: lib/python/generate-all-maintainers.py
2025-09-29 21:05:51 +02:00
Aguirre MatteoandAustin Horstman 619ae56929 news: add intelli-shell entry 2025-09-28 19:47:46 -05:00
Aguirre MatteoandAustin Horstman 580ff74a71 intelli-shell: add module 2025-09-28 19:47:46 -05:00
Aguirre MatteoandAustin Horstman 50375df1f7 git-worktree-switcher: use cfg.package 2025-09-28 19:40:56 -05:00
Austin Horstman 6ee8473173 tests: improve debugging for failed test runs
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 16:28:05 -05:00
Austin Horstman e9114f96ef tests: rename test-all-* tests
Make the names more unique so it's easier to run the one you want from
cli.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 16:26:13 -05:00
Austin Horstman a97df40c19 zsh: envVarsStr fix indentation
Use new indentation support to generate properly indented variables

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 14:44:14 -05:00
Austin Horstman 2b03dc82bb lib/zsh: revert escapeShellArg in toZshValue
Causes variables to be generated with single ticks breaking shell
expansion.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 14:44:14 -05:00
Austin Horstman 64a809b198 lib/zsh: exportAll add support for indentation
Allow indenting the output level

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-28 14:44:14 -05:00
fk29gandRobert Helgesson c75fd8e300 gurk-rs: remove references to deprecated 'data_path' option
The 'data_path' key was deprecated upstream a while ago.
See commit d9b538d0 (https://github.com/boxdot/gurk-rs/commit/d9b538d0)
for details.
2025-09-28 09:08:41 +02:00
S0AndS0andRobert Helgesson 1dbb3fd2f7 radio-active: add module to create config files
Configuration entry similar to;

```nix
programs.radio-active.enable = true;
```

By default `ffplay` is used for recording/playback, but that can be
changed by applying either of the following;

```nix
programs.radio-active.settings.AppConfig.player = "vlc";
programs.radio-active.settings.AppConfig.player = "mpv";
```

All other configuration options documented by;
https://github.com/deep5050/radio-active?tab=readme-ov-file#default-configs
maybe applied under the `AppConfig` attribute set.

Finally, the `aliases` attribute set allows for defining key/value pares
that will generate a `~/.radio-active-alias` of bookmarked stations, for
example something like;

```nix
programs.radio-active.aliases = {
  "Deep House Lounge" = "http://198.15.94.34:8006/stream";
};
```

... will result in;

```
Deep House Lounge==http://198.15.94.34:8006/stream
```

WARN: Darwin hosts may report issues about `pkgs.vlc`

Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-09-28 08:58:42 +02:00
Austin Horstman 26ace005b7 tests/zsh: add comprehensive smart formatting test
Add test to verify intelligent width optimization of shell arrays.
The test demonstrates how formatShellArrayContent packs multiple items
per line
within reasonable width limits rather than one item per line.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman 3aaf340173 zsh: optimize setOptions with array-based loops
Replace individual setopt statements with array-based loops for cfg.setOptions.
Use lib.hm.zsh.define for consistent array formatting and add unset statements
to clean up temporary variables, improving consistency with other zsh optimizations.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman 04f672b5db zsh/history: optimize history options with array-based loops
Replace individual setopt/unsetopt statements for history options with efficient
array-based loops. Also optimize history substring search key bindings using
the same pattern. Use lib.hm.zsh.define for consistent array formatting and
add unset statements to clean up temporary variables.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman c26a2ac2e4 zsh/plugins: optimize plugin loading with array-based loops
Replace individual plugin PATH/fpath statements and conditional sourcing with
efficient array-based loops. Use lib.hm.zsh.define for consistent array
formatting and add unset statements to clean up temporary variables.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman bd81c11eb3 tests/darwinScrublist: add zsh-history-substring-search
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman 5176d93c0a lib/zsh: fix shell escaping and integrate formatShellArrayContent
Replace naive string quoting with lib.escapeShellArg for proper shell escaping
of special characters, spaces, and quotes. Integrate with new formatShellArrayContent
for intelligent multi-line array formatting in zsh array definitions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Austin Horstman a8dbb4e325 lib/shell: add formatShellArrayContent function for intelligent width optimization
Add shared utility function that formats shell arrays with smart width optimization.
Packs multiple items per line based on available width (~78 chars per line) while
maintaining readability. Includes helper functions wrapLines and formatMultiLine.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-27 13:18:01 -05:00
Karolis LabrencisandAustin Horstman 11cc3d55de macos-remap-keys: add NonUSBackslash keycode 2025-09-27 09:59:25 -05:00
Er1ckR1ck0andAustin Horstman bc2afee55b Translate using Weblate (Russian)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Russian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Er1ckR1ck0 <eryckov37@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-09-26 18:21:00 -05:00
Aguirre MatteoandAustin Horstman 497e2bfa8a news: add aichat agents option entry 2025-09-26 14:53:41 -05:00
Aguirre MatteoandAustin Horstman e3e15e765d aichat: add agents option 2025-09-26 14:53:41 -05:00
Aguirre MatteoandAustin Horstman 35329d44f3 news: add aider-chat entry 2025-09-26 14:52:49 -05:00
Aguirre MatteoandAustin Horstman 9947d3c003 aider-chat: add module 2025-09-26 14:52:49 -05:00
Aguirre MatteoandAustin Horstman fb2ae64bed news: add airlift entry 2025-09-26 14:52:31 -05:00
Aguirre MatteoandAustin Horstman 8a1357854d airlift: add module 2025-09-26 14:52:31 -05:00
YethalandGitHub 6238bbc0ae tailscale-systray: add module (#7821)
Added module for official Tailscale systray app
2025-09-26 15:14:09 +00:00
Robert Helgesson 173a29f735 docs: add note of Synthing tray option removal 2025-09-26 10:47:47 +02:00
Alex IonescuandRobert Helgesson b91c7e43ed syncthing: add aionescu as maintainer 2025-09-26 10:06:37 +02:00
Alex IonescuandRobert Helgesson 29e8b08f65 maintainers: add aionescu 2025-09-26 10:06:37 +02:00
Alex IonescuandRobert Helgesson 800941320b syncthing: install tray package when tray is enabled
Closes https://github.com/nix-community/home-manager/issues/4309
2025-09-26 10:06:36 +02:00
Robert Helgesson 40e916658d maintainers: remove ipsavitsky
They are already in the Nixpkgs maintainers list.
2025-09-26 09:51:33 +02:00
home-manager-ci[bot]andRobert Helgesson ef5c1426bf 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:** 275 → 276 maintainers

** Added:** andre4ik3

Generated by: lib/python/generate-all-maintainers.py
2025-09-26 09:38:19 +02:00
Robert Helgesson f3235d91ab mods: get ipsavitsky from Nixpkgs maintainers list 2025-09-26 09:32:44 +02:00
andre4ik3andGitHub c1a47eae05 desktoppr: init module (#7878) 2025-09-25 21:28:13 -05:00
Simon GateandGitHub 39d26c1686 ssh-agent: add defaultMaximumIdentityLifetime setting (#7876)
Add option to ssh-agent to add a default value for the maximum lifetime
of identities added to the agent.
2025-09-25 09:26:39 -05: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
home-manager-ci[bot]andRobert Helgesson 74a78aacb7 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:** 0 maintainers
**Removed:** 1 maintainers
**Total:** 276 → 275 maintainers

** Removed:** 06kellyjac

Generated by: lib/python/generate-all-maintainers.py
2025-09-25 08:40:42 +02:00
Austin HorstmanandRobert Helgesson e2ecfbf6d0 tahoe-lafs: update default package
Using old name that was changed in 2018.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-25 08:26:37 +02:00
Aguirre MatteoandAustin Horstman 2e260431fc news: add aiac entry 2025-09-24 16:11:30 -05:00
Aguirre MatteoandAustin Horstman 68a92b0301 aiac: add module 2025-09-24 16:11:30 -05:00
Robert Helgesson 142acd7a7d bash: source session variable file directly 2025-09-24 15:18:50 +02:00
Mel BourgeoisandRobert Helgesson d398f95f1e nixgl: use original package name
Some Home Manager modules depend on the name, so changing it in the
wrapper can break them.
2025-09-24 15:05:12 +02:00
Josh RomerandAustin Horstman f678263ecf mpvpaper: fix typos 2025-09-24 08:01:25 -05:00
David ChocholatýandAustin Horstman 6ce2e18007 nix-your-shell: Allow using nom for nix commands 2025-09-24 00:33:25 -05:00
cb68b5cd6a syncthing: handle per-folder encryptionPasswordFile
This change allows configuring per-folder encryption passwords declaratively (and without leaking them into the store), modeled after the upstream Nixpkgs changes from https://github.com/NixOS/nixpkgs/pull/383442.

Closes https://github.com/nix-community/home-manager/issues/7318.

Co-authored-by: Jeremy Fleischman <jeremyfleischman@gmail.com>
Co-authored-by: Aurimas Blažulionis <0x60@pm.me>
2025-09-24 00:31:30 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
ef3762499b flake.lock: Update (#7864)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8eaee110344796db060382e15d3af0a9fc396e0e?narHash=sha256-iCGWf/LTy%2BaY0zFu8q12lK8KuZp7yvdhStehhyX1v8w%3D' (2025-09-19)
  → 'github:NixOS/nixpkgs/554be6495561ff07b6c724047bdd7e0716aa7b46?narHash=sha256-pHpxZ/IyCwoTQPtFIAG2QaxuSm8jWzrzBGjwQZIttJc%3D' (2025-09-21)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-09-24 00:30:24 -05:00
Edwin Mackenzie-OwenandGitHub 676c0159ed sway: print hint when checking the config file fails (#7665) 2025-09-23 20:20:06 -05:00
June SteppandAustin Horstman 131f4e22c3 anki: rename sync.passwordFile, improve documentation
The account password is different from the sync key needed here. Add
instructions for how to get the sync key, and make the option name
accurate.
2025-09-23 13:44:15 -05:00
June SteppandAustin Horstman f5852ea36c anki: fix ankiAddons.passfail2 example 2025-09-23 13:44:15 -05:00
June SteppandAustin Horstman 293d105993 anki: strip usernameFile and passwordFile contents 2025-09-23 13:44:15 -05:00
Aguirre MatteoandAustin Horstman 5468c92a23 news: add ahoviewer entry 2025-09-23 12:26:21 -05:00
Aguirre MatteoandAustin Horstman 366b60b8a0 ahoviewer: add module 2025-09-23 12:26:21 -05:00
Dietrich DarochandAustin Horstman 9a2dc0efbc zellij: Add extraConfig
This allows working around [#4659](https://github.com/nix-community/home-manager/issues/4659)

While fixing `toKDL` might be fun, I just don't think it's a good use of
anyone's time.

---

This is still untested.
2025-09-22 21:08:51 -05:00
André SilvaandAustin Horstman f59891d511 xdg-mime-apps: no spaces in default app entries 2025-09-22 20:56:58 -05:00
home-manager-ci[bot]andAustin Horstman de5369834f 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:** 275 → 276 maintainers

** Added:** mdaniels5757

Generated by: lib/python/generate-all-maintainers.py
2025-09-22 07:57:53 -05:00
Austin HorstmanandMatthieu Coudron 9b6e609a6e octant: remove module
Package removed from nixpkgs, project repository was archived two years
ago and no longer maintained.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-22 13:37:04 +02:00
Aguirre MatteoandAustin Horstman 939e91e1cf news: add fabric-ai entry 2025-09-21 09:18:26 -05:00
Aguirre MatteoandAustin Horstman 61c84a3bbf fabric: add module 2025-09-21 09:18:26 -05:00
Aguirre MatteoandAustin Horstman f3ff73a5e1 news: add animdl entry 2025-09-21 09:15:59 -05:00
Aguirre MatteoandAustin Horstman 20d75ecd36 animdl: add module 2025-09-21 09:15:59 -05:00
home-manager-ci[bot]andAustin Horstman 7a615e2a56 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
  → 'github:NixOS/nixpkgs/8eaee110344796db060382e15d3af0a9fc396e0e?narHash=sha256-iCGWf/LTy%2BaY0zFu8q12lK8KuZp7yvdhStehhyX1v8w%3D' (2025-09-19)
2025-09-21 09:09:16 -05:00
Austin Horstman edc7468e12 yazi: add extraPackages option for wrapper PATH extension
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-20 08:41:17 -05:00
ShadowTiger RaptorandAustin Horstman d5fb6ebc4f Translate using Weblate (Basque)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Basque)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: ShadowTiger Raptor <sh4dowtig3r@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/eu/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/eu/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-09-20 08:40:45 -05:00
jaredmontoyaandGitHub 55b1f5b7b1 wleave: init (#7835) 2025-09-19 10:43:34 -05: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
Gaetan LepageandAustin Horstman e387519338 news: add entry for nix-remote-build 2025-09-19 08:33:40 -05:00
Gaetan LepageandAustin Horstman e81d71d53a nix-remote-build: add module 2025-09-19 08:33:40 -05:00
Bot_wxt1221andGitHub ace8759715 swaync: fix eval problem (#7844) 2025-09-19 08:15:27 -05:00
Joaquín TriñanesandAustin Horstman 363007f129 nushell: expose config dir location as option 2025-09-18 21:58:26 -05:00
Joaquín TriñanesandAustin Horstman b47ea12ff4 mise: statically generate nushell config 2025-09-18 21:45:45 -05:00
Joaquín TriñanesandAustin Horstman 3f47f72c97 mise: disable shell integration when package == null
There's a warning already in place for this, but instead of skipping the
shell integration the build process would fail due to `lib.getExe` being
passed a null value.
2025-09-18 21:45:45 -05:00
Michael DanielsandAustin Horstman 3cb08dd360 nvchecker: add module 2025-09-18 21:36:47 -05:00
Aguirre MatteoandAustin Horstman 891d675cd6 news: add acd-cli entry 2025-09-18 21:18:14 -05:00
Aguirre MatteoandAustin Horstman b8596c1b23 acd-cli: add module 2025-09-18 21:18:14 -05:00
Aguirre MatteoandAustin Horstman 32bfbc996e news: add abaddon entry 2025-09-18 21:17:45 -05:00
Aguirre MatteoandAustin Horstman acaf3971c1 abaddon: add module 2025-09-18 21:17:45 -05:00
Aguirre MatteoandRobert Helgesson b5698ed57d retext: add module 2025-09-18 16:56:09 +02:00
mcnesiumandRobert Helgesson bf7056c6a2 nextcloud-client: add stop and restart settings to the service
The service fails on Home Manager switch every now and then. This
commit add explicit stop and restart settings to it.

This also adds some additional parameters used in the upstream service
definition.
2025-09-18 10:30:48 +02:00
Kiril PanandRobert Helgesson be9c10d4a7 Translate using Weblate (Bulgarian)
Currently translated at 100.0% (17 of 17 strings)

Co-authored-by: Kiril Pan <eccyboo@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/bg/
Translation: Home Manager/Home Manager Modules
2025-09-18 10:22:14 +02:00
Kiril MihaylovandRobert Helgesson 6450736148 Translate using Weblate (Bulgarian)
Currently translated at 100.0% (17 of 17 strings)

Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/bg/
Translation: Home Manager/Home Manager Modules
2025-09-18 10:22:14 +02:00
Borislav RangelovandRobert Helgesson 4dbbc965c0 Translate using Weblate (Bulgarian)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Bulgarian)

Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Bulgarian)

Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Bulgarian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Borislav Rangelov <borislav.y.rangelov@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/bg/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/bg/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-09-18 10:22:14 +02:00
Kiril MihaylovandRobert Helgesson 9e771132aa Translate using Weblate (Bulgarian)
Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/bg/
Translation: Home Manager/Home Manager CLI
2025-09-18 10:22:14 +02:00
Aguirre MatteoandAustin Horstman a504aee7d4 news: add formiko entry 2025-09-17 20:58:54 -05:00
Aguirre MatteoandAustin Horstman 9093a3f200 formiko: add module 2025-09-17 20:58:54 -05: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
Joaquín TriñanesandAustin Horstman bc8967cdb0 gpg-agent: write nushell initialization to config file
According to the nushell docs (https://www.nushell.sh/book/configuration.html#configuration-overview):

"The first file loaded is env.nu, which was historically used to override environment variables. However, the current "best-practice" recommendation is to set all environment variables (and other configuration) using config.nu and the autoload directories below."
2025-09-17 08:15:29 -05:00
Austin Horstman b035546241 news: add opencode entry for new agent and command support
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 07:23:42 -05:00
Austin Horstman 53538044d9 tests/opencode: expand tests for agents / commands
Include various tests for the agents and command file generation and
different ways of configuring it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 07:23:42 -05:00
Austin Horstman c104ee92bf opencode: path support for agents/commands
Support paths for the commands/agents since we are linking files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 07:23:42 -05:00
Austin Horstman d7686f26e8 opencode: add support for agent and command files
Opencode can support loading agents/commands from files in the config
folder. This allows re-using the same agents/commands between different
coding assistants easier than trying to fit their structured json
configuration.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 07:23:42 -05:00
Austin Horstman fb928abb67 tests/claude-code: add path tests for agents/commands
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 00:07:05 -05:00
Austin Horstman 846f27fba8 claude-code: support paths for agents/commands
Support passing actual files to the agents/commands since they will be
used to generate files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 00:07:05 -05:00
Austin Horstman 10f5a0cc4b tests/oh-my-posh: expand test coverage
Cover some more scenarios with the module.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 00:06:30 -05:00
Austin Horstman 51372c4afb oh-my-posh: add assertion for config source
We only use one of the config methods, let user know their configuration
will be discarded if they attempt to use more than one.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-17 00:06:30 -05:00
Yechiel WorenkleinandAustin Horstman 624c97de9c oh-my-posh: added option to supply config path 2025-09-17 00:06:30 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
d507f57df2 maintainers: update all-maintainers.nix (#7815)
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:** 274 → 276 maintainers

** Added:** S0AndS0, adda0

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-09-16 23:00:10 -05:00
fad8e3033e fontconfig: add fonts.fontconfig.extraConfigFiles option (#7754)
Co-authored-by: Tim Keller <tjk@tjkeller.xyz>
Co-authored-by: Benedikt M. Rips <benedikt.rips@gmail.com>
2025-09-16 22:31:54 -05:00
novenaryandGitHub 75f97fcbe3 sway: order input config from least to most specific (#7684)
Workaround for https://github.com/swaywm/sway/issues/7271.
2025-09-16 22:22:28 -05:00
Ryan HoriguchiandGitHub ec73c06d34 vscode: add config and exension dir for kiro (#7825) 2025-09-16 22:11:12 -05:00
Michael DanielsandGitHub 6efc49be7c floorp: use -bin, as source package was dropped (#7818)
See NixOS/nixpkgs#439994
2025-09-16 21:50:28 -05:00
gotjoshuaandGitHub 0a2145eae2 activitywatch: add service status cmd to desc (#7823) 2025-09-16 21:48:11 -05:00
gotjoshuaandGitHub 6c1a1efa02 watcher: fix example typo for aw-watcher-window (#7822)
the example config has a stray s
2025-09-16 21:47:19 -05:00
Aguirre MatteoandAustin Horstman 5820376beb news: add cudatext entry 2025-09-15 23:43:34 -05:00
Aguirre MatteoandAustin Horstman 10d30c9185 cudatext: add module 2025-09-15 23:43:34 -05:00
oxalicaandAustin Horstman a88781a35c sway: drop oxalica from maintainer
I do not use sway anymore.
2025-09-15 23:36:00 -05:00
Robert Helgesson 11cc5449c5 tests: fix tests 2025-09-15 09:22:58 +02:00
home-manager-ci[bot]andRobert Helgesson 0ab5e3c054 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe?narHash=sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL%2Bnma8o%3D' (2025-09-08)
  → 'github:NixOS/nixpkgs/c23193b943c6c689d70ee98ce3128239ed9e32d1?narHash=sha256-hLEO2TPj55KcUFUU1vgtHE9UEIOjRcH/4QbmfHNF820%3D' (2025-09-13)
2025-09-15 09:22:58 +02:00
Sewer56andAustin Horstman 5e06d0f184 claude-code: added 'hooks' and 'hooksDir' options to specify hooks from filesystem 2025-09-14 23:29:18 -05:00
Sewer56andAustin Horstman be37a3492d claude-code: added 'commandsDir' option to specify commands from filesystem 2025-09-14 23:29:18 -05:00
Sewer56andAustin Horstman a641bbbb9b claude-code: added 'agentsDir' option to specify agents from filesystem 2025-09-14 23:29:18 -05:00
Sewer56andAustin Horstman 343e555657 claude-code: added memories (claude.md) generation 2025-09-14 23:29:18 -05:00
Hoang NguyenandGitHub 17a1004948 lsd: allow specifying a path type value for icons and colors options (#7733)
This allows users to use an icons or colors theme file taken from GitHub
directly without the YAML -> Nix translation in the configuration.
2025-09-13 19:32:33 -05:00
Anton MosichandGitHub c3abf8ea1a khard: support discover entries (#7785)
This adds support for discover type entries, which were introduced in
khard 0.20.0, which work very similar to the equally-named khal feature.
2025-09-13 19:31:16 -05:00
Giuseppe RuggieroandGitHub 20c7963471 powerline-go: fix PROMPT_COMMAND duplicate in bash initialization (#7697) 2025-09-13 19:26:44 -05:00
Aguirre MatteoandGitHub 768a7042a6 go: use env file instead of home.sessionVariables (#7751) 2025-09-13 19:25:31 -05:00
Nick HassanandGitHub 987b114082 podman: add nftables to default container path (#7802) 2025-09-13 19:14:18 -05:00
B1kkuandGitHub e286f848a0 lutris: add defaultWinePackage option (#7778) 2025-09-13 19:08:10 -05:00
andre4ik3andAustin Horstman 6e28513cf2 nix-darwin: redirect output to stderr 2025-09-13 12:33:58 -05:00
Austin Horstman a3fcc92180 jjui: add adda maintainer 2025-09-12 12:35:11 -05:00
Austin Horstman 69083b3cdd jjui: init module
Add a module for configuring the jjui program.
2025-09-12 12:35:11 -05:00
Austin Horstman 9eab59f3e7 thefuck: remove module
Program removed upstream, let module stay around for a bit in case it came back.
We can re-introduce if the situation changes, but we have an alternative.
2025-09-11 23:09:47 -05: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
jupblbandAustin Horstman e0154ae416 pistol: change config path for macOS 2025-09-10 13:39:08 -05:00
Austin Horstman b5cb3a5daa tests/darwinScrublist: add lazysql
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-10 13:38:44 -05:00
home-manager-ci[bot]andAustin Horstman 7846968d23 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9?narHash=sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4%3D' (2025-09-05)
  → 'github:NixOS/nixpkgs/b599843bad24621dcaa5ab60dac98f9b0eb1cabe?narHash=sha256-tLdkkC6XnsY9EOZW9TlpesTclELy8W7lL2ClL%2Bnma8o%3D' (2025-09-08)
2025-09-10 13:38:44 -05:00
Kylie McClainandGitHub 3c97248d6f rclone: check existence of file rather than using cat (#7799)
It's not really clear why this was done in the first place, and
furthermore it means that the secrets have been getting printed to
stdout and appear on the system journal as a result.
2025-09-10 13:27:41 +02:00
S0AndS0andGitHub a60021a8c9 pianobar: add module to create config file (#7734)
Configuration entry similar to;

```nix
    programs.pianobar = {
      enable = true;
      user = "groovy-tunes@example.com";
      password_command = "cat /run/secrets/pianobar/groovy-tunes";
    };
```

... will produce a `~/.config/pianobar/config` file with content of;

```conf
user = groovy-tunes@example.com
password_command = cat /run/secrets/pianobar/groovy-tunes
```

...  and add `pianobar` to `home.packages` list.

All configurations that `man pianobar` documents _should_ available via
`extraOptions` attribute.

License, according to `NixOS/nixpkgs` is MIT, and that seems to match
what's shown on `PromyLOPh/pianobar` repo too;

- https://github.com/NixOS/nixpkgs/blob/d92bfd5feb7bc6d9be3022fcfd9d674bff14fc2d/pkgs/by-name/pi/pianobar/package.nix#L42o
- https://github.com/PromyLOPh/pianobar/?tab=License-1-ov-file#readme
2025-09-09 22:43:46 -05:00
ede1f891c0 Translate using Weblate (Polish) (#7797)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Polish)

Currently translated at 100.0% (39 of 39 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Mateusz Kubica <mw.kubica@gmail.com>
2025-09-09 22:33:56 -05:00
Evgeny ZislisandGitHub 0c7c71a212 oh-my-posh: add cache clearing on package version changes (#7757)
* add cache clearing for oh-my-posh package changes

Using oh-my-posh creates script files in `~/.cache/oh-my-posh` which include an old derivation path. Once that path is garbage collected, oh-my-posh stops working preventing to successfully create new shells.

```
bash: /nix/store/5ddhz8nsahf1d03smzx2xpmynjspjfh8-oh-my-posh-26.8.0/bin/oh-my-posh: No such file or directory
```

* fix oh-my-posh package reference in cache clear

Use the configured value from programs.oh-my-posh.package as the value of oh-my-posh to compare during cache cleanup.
2025-09-09 21:15:16 -05:00
Matt BryantandAustin Horstman d587e11cef kitty: add quick-access-terminal configuration 2025-09-09 13:53:07 -05:00
dependabot[bot]andAustin Horstman 26993d87fd ci: bump actions/labeler from 5 to 6
Bumps [actions/labeler](https://github.com/actions/labeler) from 5 to 6.
- [Release notes](https://github.com/actions/labeler/releases)
- [Commits](https://github.com/actions/labeler/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/labeler
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 21:33:04 -05:00
home-manager-ci[bot]andAustin Horstman d28810298c 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:** 0 maintainers
**Removed:** 1 maintainers
**Total:** 275 → 274 maintainers

** Removed:** ehmry

Generated by: lib/python/generate-all-maintainers.py
2025-09-08 21:32:49 -05:00
sweenuandAustin Horstman f35703b412 gtk: add color scheme option 2025-09-07 09:46:25 -05:00
Ev357andAustin Horstman ea3fe2bd72 hyprsunset: fixed evaluation when hyprland package is null 2025-09-07 09:44:28 -05:00
SylandAustin Horstman fc2fe0104d zoxide: load after prezto
prezto's completion module breaks zoxide completion otherwise
2025-09-07 09:32:32 -05:00
Austin Horstman 9f5966aa05 river: river -> river-classic
Renamed upstream

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-07 09:28:15 -05:00
Austin Horstman 9136120c36 treewide: nix fmt
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-07 09:28:15 -05:00
Austin Horstman c140680b7a plan9port: drop ehmry maintainer
https: //github.com/NixOS/nixpkgs/pull/438936
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-07 09:28:15 -05:00
home-manager-ci[bot]andAustin Horstman a3699ec8ee flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa?narHash=sha256-tlOn88coG5fzdyqz6R93SQL5Gpq%2Bm/DsWpekNFhqPQk%3D' (2025-08-30)
  → 'github:NixOS/nixpkgs/8eb28adfa3dc4de28e792e3bf49fcf9007ca8ac9?narHash=sha256-NOrUtIhTkIIumj1E/Rsv1J37Yi3xGStISEo8tZm3KW4%3D' (2025-09-05)
2025-09-07 09:28:15 -05:00
Damien CassouandGitHub a7408ba6da syncthing: Fix for syncthing v2 (#7762) (#7766) 2025-09-07 09:07:58 -05:00
Robert Helgesson f56bf065f9 polybar: make sure X-Restart-Triggers is a list 2025-09-05 14:31:31 +02:00
Josef DaliborandRobert Helgesson a51e585a05 Translate using Weblate (German)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (German)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Josef Dalibor <josefkruse@googlemail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-09-05 13:43:59 +02:00
Perchun PakandGitHub b08f873777 hyprpanel: fix dontAssertNotificationDaemons (#7745)
Also, add more daemons to check
2025-09-04 08:18:34 -05:00
Ihar HrachyshkaandGitHub ed1a98c375 aerospace: use upstream example for exec-on-workspace-change (#7765)
White technically any example would do, it's better to use the one from
upstream docs, otherwise we may confuse users trying to repeat upstream
aerospace sketchybar plugin recipe. (I for one fell a victim of the
confusion...)

https://nikitabobko.github.io/AeroSpace/goodies#show-aerospace-workspaces-in-sketchybar
2025-09-03 21:54:59 -05:00
Aguirre MatteoandGitHub b21c1a61a7 vivid: add module (#7772) 2025-09-03 21:50:05 -05:00
Gaspard CulisandGitHub 6159629d05 swayosd: Remove non-existing display arg option (#7752) 2025-09-03 07:42:44 -05:00
kpbaksandAustin Horstman 30fc1b5326 nix-init: ensure settings example produces a valid configuration
The domain names need to be quoted to not created nested attrsets.
2025-09-02 14:48:34 -05:00
Aguirre MatteoandAustin Horstman a1316b0a77 new: add swappy entry 2025-09-02 13:20:05 -05:00
Aguirre MatteoandAustin Horstman 1a6f6fb409 swappy: add module 2025-09-02 13:20:05 -05:00
Austin Horstman f3d3b4592a news: add hyprland submap entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-01 23:49:51 -05:00
Austin Horstman 061793150a tests/hyprland: add submap test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-01 23:49:51 -05:00
Austin Horstman 5f64bcccef hyprland: tweak submap line formatting
Just want it to look a little more organized

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-09-01 23:49:51 -05:00
Florent CharpentierandGitHub 1ecfd8e562 hyprland: add support for submaps (#6062) (#7277) 2025-09-01 23:37:34 -05:00
Fareesh VijayarangamandAustin Horstman e31db6141e Translate using Weblate (Hindi)
Currently translated at 17.6% (3 of 17 strings)

Co-authored-by: Fareesh Vijayarangam <fareesh@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/hi/
Translation: Home Manager/Home Manager Modules
2025-09-01 20:45:14 -05:00
Utkarsh SharmaandAustin Horstman aa35affc6f Translate using Weblate (Hindi)
Currently translated at 17.6% (3 of 17 strings)

Co-authored-by: Utkarsh Sharma <utkasharma19@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/hi/
Translation: Home Manager/Home Manager Modules
2025-09-01 20:45:14 -05:00
Fareesh VijayarangamandAustin Horstman 9bd580947c Translate using Weblate (Hindi)
Currently translated at 15.3% (6 of 39 strings)

Co-authored-by: Fareesh Vijayarangam <fareesh@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hi/
Translation: Home Manager/Home Manager CLI
2025-09-01 20:45:14 -05:00
Erwin MintiensandAustin Horstman e7c24fc522 Translate using Weblate (Dutch)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Dutch)

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: Erwin Mintiens <erwin.mintiens@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-09-01 20:45:14 -05:00
home-manager-ci[bot]andAustin Horstman 29ab63bbb3 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:** 273 → 275 maintainers

** Added:** FredeHoey, roberth

Generated by: lib/python/generate-all-maintainers.py
2025-09-01 08:55:52 -05:00
Ivy PierlotandAustin Horstman fccb44df77 mkFirefoxModule: make policies work on darwin 2025-08-31 18:39:22 -05:00
Aguirre MatteoandAustin Horstman b7cc2466f1 distrobox: add settings option and other general improvements 2025-08-31 18:32:49 -05:00
Marien ZwartandAustin Horstman a48dd228d9 jq: make colors and package nullable
...and since according to commit
f9b5172d95 the defaults are the upstream
values, default `colors` to null.

Setting JQ_COLORS is just unnecessary environment clutter when using the
default colors.

Although the module now does nothing besides (optionally) installing
`jq` when `colors` is left at its default value, that is still useful:
from a flake with multiple home-manager configurations, some of which
have `jq` provided through other means, setting/forcing
`programs.jq.package` to null is more convenient than conditionally
adding `jq` to `home.packages`.
2025-08-31 18:29:43 -05:00
PerchunPakandAustin Horstman b4b5f008d7 hyprpanel: deprecate theme.name option 2025-08-31 14:39:56 -05:00
Austin Horstman 1e759786e5 qt: deprecate kde6
Give users a heads up that option is being removed.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-31 14:38:57 -05:00
Alex IonescuandAustin Horstman f671e772d3 qt: Remove Plasma 5 and related Qt5 packages
Modeled after the changes in Nixpkgs from https://github.com/NixOS/nixpkgs/pull/435823, platform `kde6` is removed and platform `kde` now means Plasma 6.

Also fixes evaluation error due to missing attribute `libsForQt5.breeze-qt5` (https://github.com/nix-community/home-manager/issues/7728).
2025-08-31 14:38:57 -05:00
Austin Horstman 71b5707077 tests/darwinScrublist: add pgclii
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-31 13:02:05 -05:00
home-manager-ci[bot]andAustin Horstman 2842bac626 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/20075955deac2583bb12f07151c2df830ef346b4?narHash=sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs%2BStOp19xNsbqdOg%3D' (2025-08-19)
  → 'github:NixOS/nixpkgs/d7600c775f877cd87b4f5a831c28aa94137377aa?narHash=sha256-tlOn88coG5fzdyqz6R93SQL5Gpq%2Bm/DsWpekNFhqPQk%3D' (2025-08-30)
2025-08-31 13:02:05 -05:00
Frede BraendstrupandAustin Horstman f27974d3b4 shpool: init shpool module 2025-08-31 11:53:50 -05:00
Kylie McClainandAustin Horstman e44549074a programs.rclone: fix injecting secret when value begins with "-" 2025-08-31 09:26:13 -05:00
Kylie McClainandAustin Horstman 4896177e2c programs.rclone: set Service.Type=notify
According to <https://rclone.org/commands/rclone_mount/#systemd>,
it should be possible to set `Type=notify` to ensure that `rclone`
is not marked as started until the mountpoint has actually been
successfully mounted.
2025-08-31 09:26:13 -05:00
Kylie McClainandAustin Horstman feba2b2daa programs.rclone: fix typo 2025-08-31 09:26:13 -05:00
Kiril MihaylovandAustin Horstman 27d306e1e4 Translate using Weblate (Bulgarian)
Currently translated at 58.8% (10 of 17 strings)

Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/bg/
Translation: Home Manager/Home Manager Modules
2025-08-31 09:25:41 -05:00
Borislav RangelovandAustin Horstman 30fbfd27a2 Translate using Weblate (Bulgarian)
Currently translated at 58.8% (10 of 17 strings)

Translate using Weblate (Bulgarian)

Currently translated at 58.8% (10 of 17 strings)

Co-authored-by: Borislav Rangelov <borislav.y.rangelov@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/bg/
Translation: Home Manager/Home Manager Modules
2025-08-31 09:25:41 -05:00
Kiril MihaylovandAustin Horstman 6c8db97536 Translate using Weblate (Bulgarian)
Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: Kiril Mihaylov <kiril195@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/bg/
Translation: Home Manager/Home Manager CLI
2025-08-31 09:25:41 -05:00
Anton TetovandAustin Horstman 99a69bdf8a pizauth: reload on change and option type
- added onChange pizauth reload for config file

- clientSecret is not required for outlook365 so should be nullable.
2025-08-30 13:53:07 -05:00
Aguirre MatteoandAustin Horstman 77a71380c3 ssh: provide code snippet in enableDefaultConfig description 2025-08-29 14:46:41 -05:00
Frazer RoseandAustin Horstman a3d90c996f docs: fix typo in collision.md 2025-08-29 14:46:26 -05:00
Martin WeineltandAustin Horstman 77f348da31 fcitx5: migrate to qt6Packages
This fixes eval because the attribute doesn't exist anymore under
libsForQt5.
2025-08-26 21:19:50 -05:00
Austin Horstman 2c4ef7d717 blueman-applet: fix typo in systemdTargets
copy pasta error

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-26 17:23:34 -05:00
Aguirre MatteoandAustin Horstman 3882f88691 ssh: remove top level options 2025-08-26 17:12:13 -05:00
rcercandAustin Horstman 59aabcd3db swaylock: document how to fix PAM on non-NixOS
Fixes #7717.
2025-08-26 16:50:25 -05:00
home-manager-ci[bot]andAustin Horstman 600ce016e2 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c?narHash=sha256-wNO3%2BKs2jZJ4nTHMuks%2BcxAiVBGNuEBXsT29Bz6HASo%3D' (2025-08-14)
  → 'github:NixOS/nixpkgs/20075955deac2583bb12f07151c2df830ef346b4?narHash=sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs%2BStOp19xNsbqdOg%3D' (2025-08-19)
2025-08-26 16:49:39 -05:00
awwpotatoandAustin Horstman e49a2511fe docs: update formatting information 2025-08-26 16:48:54 -05:00
home-manager-ci[bot]andAustin Horstman 9ea3df74ea 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:** 271 → 273 maintainers

** Added:** 74k1, gauthsvenkat

Generated by: lib/python/generate-all-maintainers.py
2025-08-26 16:48:25 -05:00
Omar MohamedandAustin Horstman 32940bcae8 Translate using Weblate (Arabic)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Arabic)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Omar Mohamed <mohamed.omar67492@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ar/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ar/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-08-26 16:48:16 -05:00
Brian EandRobert Helgesson 9e3a33c0bc Translate using Weblate (Faroese)
Currently translated at 2.5% (1 of 39 strings)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fo/
Translation: Home Manager/Home Manager CLI
2025-08-24 10:00:58 +02:00
Robert HelgessonandAustin Horstman 8b55a6ac58 nix-gc: remove unnecessary toString 2025-08-22 21:03:56 -05:00
Aguirre MatteoandAustin Horstman 6911d3e7f4 nix-gc: rename frequency to dates 2025-08-21 16:03:33 -05:00
JessandAustin Horstman 3001400e9f rclone: move activation script to systemd service
Fixes #7577
This lets us better express activation order dependencies on secret
provisioners that run as systemd services
2025-08-21 16:02:50 -05:00
JessandAustin Horstman 56b8749987 rclone: modularize subtests 2025-08-21 16:02:50 -05:00
Daniel Jacob ButcherandRobert Helgesson e6422763eb Translate using Weblate (Hebrew)
Currently translated at 5.1% (2 of 39 strings)

Co-authored-by: Daniel Jacob Butcher <corpo@quokka.wiki>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/he/
Translation: Home Manager/Home Manager CLI
2025-08-21 22:15:08 +02:00
Vladislav GrechannikandGitHub 282b4c98de blueman-applet: Add option to change systemd targets (#7702)
Introduce new option for a customizable systemd targets to allow enabling
the applet only in certain environments.
2025-08-21 00:48:42 -05:00
PoseidonandAustin Horstman 3c3510e61c programs/nix-search-tv: add quotes
Add quotes to the preview command to prevent the shell from interpreting
options with `<name>` as writing the output of the command name to a
file with the name of the remainder of the option name.
2025-08-20 20:30:51 -05:00
Daniel Jacob ButcherandAustin Horstman c2977f8bca Add translation using Weblate (Hebrew)
Add translation using Weblate (Hebrew)

Co-authored-by: Daniel Jacob Butcher <corpo@quokka.wiki>
2025-08-20 20:29:51 -05:00
74k1andAustin Horstman dd026d8642 sherlock: add 74k1 as maintainer 2025-08-19 12:49:16 -05:00
a9c81dbcc4 sherlock: use X-Restart-Triggers instead of onChange
- As suggested in https://github.com/nix-community/home-manager/pull/7678#discussion_r2285678493

Co-Authored-By: rycee <robert@rycee.net>
2025-08-19 12:49:16 -05:00
Robert Helgesson 0e0a16b342 anyrun: minor description fix 2025-08-19 17:54:19 +02:00
Gautham VenkataramanandAustin Horstman 8af2e064f9 satty: add satty to program modules
Add satty, a wlroots based screenshot annotation tool, to the programs
module.
2025-08-19 06:12:13 -05:00
Gautham VenkataramanandAustin Horstman 589efcf9c0 maintainers: add gauthsvenkat 2025-08-19 06:12:13 -05:00
zaer1nandAustin Horstman c613ac14f5 nh: allow absolute flake paths 2025-08-18 21:18:46 -05:00
BeLeapandAustin Horstman e293a1a12f aerospace: add test 2025-08-18 21:17:26 -05:00
BeLeapandAustin Horstman bbfbda4ad8 aerospace: allow colemak on key-mapping
https://github.com/nikitabobko/AeroSpace/commit/a8cd536ca182996ceffc04ebec55c4e3ac54f27a
2025-08-18 21:17:26 -05:00
Benedikt RipsandAustin Horstman 0d1e116e4f ssh-tpm-agent: match the upstream systemd units 2025-08-18 21:16:27 -05:00
Benedikt RipsandAustin Horstman 3a5136d8dd ssh-tpm-agent: on NixOS, check TPM accessibility 2025-08-18 21:16:27 -05:00
Benedikt RipsandAustin Horstman f9ea660b24 ssh-tpm-agent: fix ssh-agent proxy 2025-08-18 21:16:27 -05:00
Benedikt RipsandAustin Horstman 94a238f9c1 ssh-agent: add option for the socket name 2025-08-18 21:16:27 -05:00
Benedikt RipsandAustin Horstman af03309c12 ssh-tpm-agent: add maintainer bmrips 2025-08-18 21:16:27 -05:00
Benedikt RipsandAustin Horstman ec369a58f9 ssh-agent: add maintainer bmrips 2025-08-18 21:16:27 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
bf450a0844 maintainers: update all-maintainers.nix (#7693)
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:** 6 maintainers
**Removed:** 3 maintainers
**Total:** 268 → 271 maintainers

** Added:** Joker9944, Swarsel, epixtm, ethorsoe, rrvsh, sableseyler

** Removed:** carpinchomug, jkarlson, seylerius

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-08-18 12:27:09 -05:00
KirottuandGitHub 0a06e46a3b anyrun: Added margin config option (#7687)
Added the new `margin` config option to the Anyrun module
2025-08-18 12:26:27 -05:00
Austin HorstmanandGitHub f8af2cbe38 issue_template: remove git blame from issue template (#7692)
Don't need to encourage triaging git history to bother people who
haven't opted to maintain a module.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-17 23:24:40 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
5ca4c81fd5 ci: bump actions/checkout from 4 to 5 (#7690)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-17 22:47:24 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
d2ffdedfc3 flake.lock: Update (#7686)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054?narHash=sha256-iAcj9T/Y%2B3DBy2J0N%2ByF9XQQQ8IEb5swLFzs23CdP88%3D' (2025-08-09)
  → 'github:NixOS/nixpkgs/fbcf476f790d8a217c3eab4e12033dc4a0f6d23c?narHash=sha256-wNO3%2BKs2jZJ4nTHMuks%2BcxAiVBGNuEBXsT29Bz6HASo%3D' (2025-08-14)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-08-17 09:55:00 -05:00
chillcicadaandGitHub bc01493178 mypy: init module (#7656) 2025-08-17 09:46:27 -05:00
Joker9944andAustin Horstman 3dcae8af51 hyprshot: init module
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-17 09:45:28 -05:00
Joker9944andAustin Horstman b960067013 maintainers: add joker9944 2025-08-17 09:45:28 -05:00
EpixandAustin Horstman 1daeb0638a protonmail-bridge: init module 2025-08-17 09:44:56 -05:00
EpixandAustin Horstman 8275e5d315 maintainers: add epixtm 2025-08-17 09:44:56 -05:00
Austin HorstmanandGitHub 8b4ac14968 claude-code: init module (#7685)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-16 21:33:06 -05:00
Max WipfliandGitHub 567312006a tmux: make package nullable (#7682)
This makes the program.tmux.package argument nullable, allowing use of system tmux.
2025-08-16 21:30:44 -05:00
TimandGitHub 2a749f4790 sherlock: add systemd.enable option (#7678)
Add the ability to run sherlock as a daemon through systemd.
2025-08-15 22:12:17 -05:00
Benedikt M. RipsandGitHub 11626a4383 keepassxc: note the manifest installation conflict (#7675) 2025-08-14 22:46:10 -05:00
Austin HorstmanandGitHub 279ca5addc PULL_REQUEST_TEMPLATE: fix commit message link formatting (#7673)
Automatic markdown formatting messes with the display format..

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-13 16:51:31 -05:00
Benedikt M. RipsandGitHub d9a57c597c davmail: enable access to the display server (#7671)
Without this access, davmail can not display its token request dialogue.
2025-08-13 15:52:17 -05:00
Gutyina GergőandAustin Horstman 4b6dd06c6a glance: restart service when settings file changes 2025-08-13 12:43:52 -05:00
Mohammad RafiqandAustin Horstman 27a26be51f gemini-cli: init module 2025-08-11 23:55:48 -05:00
Mohammad RafiqandAustin Horstman 461706d28b maintainers: add rrvsh 2025-08-11 23:55:48 -05:00
Leonardo RandacioandAustin Horstman d19f3213e5 Translate using Weblate (Italian)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Italian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Leonardo Randacio <leonardorandacio@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-08-11 17:17:34 -05:00
Benedikt RipsandAustin Horstman 67393957c2 less: configure LESS options 2025-08-11 10:01:10 -05:00
Benedikt RipsandAustin Horstman dfcea0573d less: rename keys to config 2025-08-11 10:01:10 -05:00
Benedikt RipsandAustin Horstman 9a132f2971 less: generate lesskey only when non-empty 2025-08-11 10:01:10 -05:00
Leon SchwarzäuglandAustin Horstman 18ea6d7a8f pizauth: init module 2025-08-11 10:00:35 -05:00
Leon SchwarzäuglandAustin Horstman 0b7147a547 maintainers: add Swarsel 2025-08-11 10:00:35 -05:00
Austin Horstman 9248ba7ce1 news: add missing news entries for new modules
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:59:51 -05:00
Lin XianyiandAustin Horstman 627a3932b9 swww: add extraArgs for swww-daemon 2025-08-11 09:04:24 -05:00
Austin Horstman e11d6c321f PULL_REQUEST_TEMPLATE: fix commit message link formatting
Automatic markdown formatting messes with the display format..

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:02:38 -05:00
Austin Horstman b4a07cd14b docs/tests: expand test documentation for contributors
Most of it was focused around running the tests instead of how to
create/modify them.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:02:38 -05:00
Austin Horstman eb243d27f8 PULL_REQUEST_TEMPLATE: add some additional check
Make it more obvious about expectation for a quick news entry and basic
tests.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:02:38 -05:00
Austin Horstman fc68e1100a maintainers: jkarlson -> ethorsoe
Account renamed and entry duplicated in nixpkgs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:00:53 -05:00
Austin Horstman 600e3f6712 yambar: remove deleted maintainer
Account deleted.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-11 09:00:53 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2aceb6a8cc maintainers: update all-maintainers.nix (#7657)
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:** 4 maintainers
**Removed:** 0 maintainers
**Total:** 264 → 268 maintainers

** Added:** Kyure-A, elanora96, matthiasbeyer, poseidon-rises

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-08-11 08:19:03 -05:00
Aguirre MatteoandGitHub 0d492b89d1 walker: add module (#7649) 2025-08-10 23:23:58 -05:00
diffyandGitHub 91586008a2 firefoxpwa: fix ULID length typo (#7653)
A ULID is 26 characters, not 16
2025-08-10 11:18:25 -05:00
Austin Horstman e7969e2ffa PULL_REQUEST_TEMPLATE: format
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-10 11:16:51 -05:00
Austin Horstman 85ed337f36 PULL_REQUEST_TEMPLATE: update flake test runner command
Implemented a small helper command to make it easier to run tests.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-10 11:16:51 -05:00
Matthias BeyerandGitHub 715ecee451 jrnl: add module (#7652)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2025-08-10 11:03:30 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
58320509c5 flake.lock: Update (#7651)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5b09dc45f24cf32316283e62aec81ffee3c3e376?narHash=sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY%3D' (2025-08-03)
  → 'github:NixOS/nixpkgs/85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054?narHash=sha256-iAcj9T/Y%2B3DBy2J0N%2ByF9XQQQ8IEb5swLFzs23CdP88%3D' (2025-08-09)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-08-10 10:41:24 -05:00
3ec1cd9a07 launchd+targets/darwin: Escape XML in plists (#7356)
This patch updates all usage of toPlist such that it escapes any strings
in the final output.

The motication for this change is to avoid confusion when end-users of
home-manager's APIs are not aware that the option values they set end up
being passed un-escaped to XML files.

BREAKING CHANGE: Consumers doing manual escaping will now be doubly escaped.

Co-authored-by: Linnnus <linnnus@users.noreply.github.com>
2025-08-09 11:22:08 -05:00
Elanora MansonandAustin Horstman cc2fa2331a maintainers: add Kyure_A 2025-08-07 19:39:04 -05:00
Elanora MansonandAustin Horstman 7a985e8f5d maintainers: add elanora96 2025-08-07 19:39:04 -05:00
Kyure_AandAustin Horstman 5f8bb123b9 sheldon: init module
sheldon: add module

sheldon: some fixes

Revert "sheldon: some fixes"

This reverts commit ea859bc3e3.

sheldon: fix missed variable name

sheldon: add description and example (blank)

sheldon: add shell configs

sheldon: format code

sheldon: add test case

maintainers: add Kyure-A as maintainer

sheldon: add completions option and various fixes

sheldon: fix missed file name

sheldon: fix setting to simple

sheldon: add option to enable completion script

sheldon: change  default value of options to enable completions to true

sheldon: fix how commands are combined

sheldon: fix missing prefix

sheldon: change mkIf to be enclosed in parentheses

sheldon: fix expression type

sheldon: add mainrs as maintainer
2025-08-07 19:39:04 -05:00
Adam DinwoodieandAustin Horstman 5de16c704b getmail: remove redundant filter 2025-08-07 14:08:46 -05:00
Adam DinwoodieandAustin Horstman dbfcd3292d accounts.email: add option to disable an account
Allow a user to disable an email account by setting
`accounts.email.accounts.<name>.enable = false`.  This is useful if
someone wants to configure email accounts globally but only use them in
certain circumstances.

Everywhere email account configuration is used, check if the account is
enabled before checking any attributes of the account.
2025-08-07 14:08:46 -05:00
Austin Horstman 07b994baed tests: include integration tests in buildbot
Include working integration tests in buildbot outpu.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-07 14:08:22 -05:00
Austin Horstman 2b87f9a53a tests: refactor outputs
Reduce redundant imports and group at higher level available for use in
more outputs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-07 14:08:22 -05:00
Thierry DelafontaineandAustin Horstman faa5b42eca codex: support XDG Base Directory specification
- Configuration file is now placed in XDG_CONFIG_HOME/codex/config.toml by default for versions >=0.2.0 when preferXdgDirectories is enabled.
- Falls back to ~/.codex/config.yaml for versions <0.2.0 and to ~/.codex/config.toml when preferXdgDirectories is disabled
- Sets CODEX_HOME environment variable to $XDG_CONFIG_HOME/codex when using XDG directories.
- Updated tests to verify XDG directory behavior and environment variable presence.
2025-08-07 14:04:33 -05:00
Austin Horstman d8a475e179 tests: add mullvad-vpn to darwin scrublist
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-07 09:13:13 -05:00
eyjhbandAustin Horstman a5506862dc mullvad-vpn: fix home.package -> home.packages 2025-08-07 09:07:32 -05:00
awwpotatoandAustin Horstman c7acf2b1bf mullvad-vpn: add module 2025-08-07 08:39:36 -05:00
Benedikt RipsandAustin Horstman 6275d1fc57 accounts.email: add 'davmail' flavor 2025-08-07 08:30:18 -05:00
Benedikt RipsandAustin Horstman 5ab62b61fb accounts.email: add authentication mechanism 2025-08-07 08:30:18 -05:00
awwpotatoandAustin Horstman 475d35797d treefmt: handle deadnix excludes 2025-08-06 19:47:57 -05:00
Benedikt RipsandAustin Horstman 62fdc8d410 keepassxc: add autostart option 2025-08-06 19:08:16 -05:00
Benedikt RipsandAustin Horstman cb8cfa0eb9 keepassxc: add maintainer bmrips 2025-08-06 19:08:16 -05:00
Максим ГорпинічandAustin Horstman 13c5c2fb4c Translate using Weblate (Ukrainian)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Ukrainian)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Максим Горпиніч <gorpinicmaksim5@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/uk/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/uk/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-08-06 19:07:34 -05:00
Austin Horstman 13461dec40 git-credential-keepassxc: fix eval
Not sure why this didn't get caught in CI...

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 13:05:22 -05:00
Benedikt RipsandAustin Horstman 2a29968912 git-credential-keepassxc: init module 2025-08-06 12:39:55 -05:00
Austin Horstman 53bf4fab30 docs: add tests command documentation
Make it easier to be discovered how to use the new command to aid in
contributing.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 12:33:37 -05:00
Austin Horstman bf2dc7ebd8 tests: add tests package to search / run tests
One of the most annoying things is finding the test you want to run and
executing it, manually. Created a python script to leverage fuzzy
finding our available test outputs to execute with the CI commands.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 12:33:37 -05:00
Benedikt RipsandAustin Horstman 88913c98fe goto: init module 2025-08-06 10:57:16 -05:00
awwpotatoandAustin Horstman ad5d2b4aa7 rescrobbled: add module 2025-08-06 00:15:47 -05:00
home-manager-ci[bot]andAustin Horstman f6cc29aab0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
  → 'github:NixOS/nixpkgs/5b09dc45f24cf32316283e62aec81ffee3c3e376?narHash=sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY%3D' (2025-08-03)
2025-08-06 00:11:50 -05:00
Austin Horstman c15ffc850c news: fix duplicate news id
We generate the news id from the message. This news entry was the same
as an earlier one but for a different platform, which resulted in the
same entry id.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 00:11:26 -05:00
Austin Horstman 998c2374f0 news: cleanup invalid timestamps
We expect them to be UTC +00:00

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 00:11:26 -05:00
Austin Horstman ac351d435a tests/news: add new test for news entries
We need to catch the news entry issues sooner. Right now we don't have
any testing around them.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-06 00:11:26 -05:00
Austin Horstman 8f02266b8e news: fix font config entry
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-05 22:40:31 -05:00
Austin Horstman a379077675 sherlock: init module
Creating a sherlock module for the sherlock launcher. Prefer a file be
controlled by a single option and using settings for the main config
file.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-05 20:33:37 -05:00
Austin Horstman f0d81a415d news: add new feature entries
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-05 19:49:25 -05:00
Louis OrleansandAustin Horstman c23168acf5 vscode: specify full path
The script executes in `/usr/local/bin`, so specifying the full path to the `Library` dir is necessary.
2025-08-05 18:22:13 -05:00
Louis OrleansandAustin Horstman 9b59dcee0b vscode: quote path
`mkdir` had an unquoted variable, leading to errors when using paths with spaces (ie: `/Users/me/Library/Application Support/…`)
2025-08-05 18:22:13 -05:00
Austin Horstman a0b1afdb5e news: add new module entries
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-05 14:19:50 -05:00
b7ee8deefc programs/nix-search-tv: init
Create the programs/nix-search-tv module, with options to enable,
change settings, and television integration.

Co-authored-by: awwpotato <awwpotato@voidq.com>
2025-08-05 14:10:01 -05:00
Cool-Game-DevandAustin Horstman 28caf471a6 Add self as maintainer
Add myself (poseidon-rises) to the maintainers list
2025-08-05 14:10:01 -05:00
Benedikt RipsandAustin Horstman 74b4edc2d2 fontconfig: add options for font rendering 2025-08-05 14:05:43 -05:00
Benedikt RipsandAustin Horstman 672381a34e fontconfig: add maintainer bmrips 2025-08-05 14:05:43 -05:00
Benedikt M. RipsandGitHub 6d1fddb13b gcc: init module (#7614) 2025-08-05 14:04:47 -05:00
Benedikt M. RipsandGitHub 0cda19d420 grep: init module (#7613) 2025-08-05 14:04:24 -05:00
Benedikt M. RipsandGitHub 36ad7d25fb zsh: option to define autoloadable site-functions (#7611)
Add an option to the Zsh module that allows defining autoloadable site functions.
2025-08-05 14:03:10 -05:00
Philipp MildenbergerandAustin Horstman c5d7e95739 nushell: remove Philipp-M as maintainer 2025-08-04 22:42:30 -05:00
n0099andAustin Horstman 1d7abbd545 htop: add field M_VIRT and TTY as alias
`M_SIZE` has renamed to `M_VIRT` in https://github.com/htop-dev/htop/issues/325
`TTY_NR` has renamed to `TTY` in https://github.com/htop-dev/htop/pull/572
2025-08-03 18:30:39 -05:00
n0099andAustin Horstman a26e907ca1 htop: sort fields by its id 2025-08-03 18:30:39 -05:00
n0099andAustin Horstman d4c53262ca htop: add more platform-independence fields
sync with https://github.com/htop-dev/htop/blame/cfb561fd342c9d5d814ac4965a6047442994ba94/RowField.h#L40-L43
2025-08-03 18:30:39 -05:00
n0099andAustin Horstman c89fdd3291 htop: add more fields
sync with https://github.com/htop-dev/htop/blame/348c0a6bf4f33571835a0b6a1a0f5deb15132128/linux/ProcessField.h#L44-L53
2025-08-03 18:30:39 -05:00
Brian EandAustin Horstman 5954bb383e Add translation using Weblate (Faroese)
Add translation using Weblate (Faroese)

Co-authored-by: Brian E <brianellingsgaard9@gmail.com>
2025-08-03 18:28:24 -05:00
home-manager-ci[bot]andRobert Helgesson 0de18bd5c6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727?narHash=sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM%3D' (2025-07-28)
  → 'github:NixOS/nixpkgs/94def634a20494ee057c76998843c015909d6311?narHash=sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1%2BA4GQej/lBk5y7I%3D' (2025-07-31)
2025-08-03 14:50:44 +02:00
Ricky TiggandRobert Helgesson 2d3b2f33a7 Translate using Weblate (Finnish)
Currently translated at 100.0% (17 of 17 strings)

Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fi/
Translation: Home Manager/Home Manager Modules
2025-08-03 14:50:25 +02:00
PopeRigbyandAustin Horstman e6e2f43a62 televison: add PopeRigby as maintainer 2025-08-02 17:46:16 -05:00
98aed449ba television: update channel location
Co-authored-by: awwpotato <awwpotato@voidq.com>
2025-08-02 17:46:16 -05:00
Robert Helgesson d492e3c381 nixos: improve description of enableLegacyProfileManagement
Also applies to nix-darwin module.
2025-08-02 23:02:17 +02:00
awwpotatoandGitHub 187e0af20a nh: remove .nix suffix check for flake paths (#7600) 2025-08-02 15:43:23 -05:00
Austin HorstmanandGitHub e102920c1b zoxide: move zsh priority (#7593)
According to upstream documentation, they recommend at end of file. But,
realistically just needs to be after compinit.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-08-01 16:54:00 -05:00
Nikhil SinghandAustin Horstman 19f94a3e0e sesh: Add preview window 2025-08-01 09:58:09 -05:00
Nikhil SinghandAustin Horstman 712c6dad6c sesh: fix kill-session field seperator 2025-08-01 09:58:09 -05:00
Nikhil SinghandAustin Horstman 614956c993 sesh: switch from fzf-tmux -p to fzf --tmux
A more reliable approach and fixes #7192
2025-08-01 09:58:09 -05:00
robinandGitHub 899af4218c tmux: fix prefix and shortcut settings (#7549)
adjusting the tmux lines for setting the prefix.
previously the prefix option would be set in the prefix key table, causing it to not register correctly.

- updated tests
2025-08-01 09:53:46 -05:00
08cf2543ea Translate using Weblate (French) (#7596)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (French)

Currently translated at 100.0% (39 of 39 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Yk Cheese <yakforcom@gmail.com>
2025-08-01 09:53:26 -05:00
NAHOandAustin Horstman 7035020a50 anki: set valid language default
Fixes: e8da7372fd ("anki: add module (#7274)")

Co-auhored-by: June Stepp <git@junestepp.me>
2025-07-31 12:42:04 -05:00
NAHOandAustin Horstman e2238e6073 anki: remove trailing whitespace 2025-07-31 12:42:04 -05:00
4e97102bd4 nh: add options for specific flakes (#7566)
* nh: Add options for specific flakes
* nh: Add tests for specific flake options

---------

Co-authored-by: Foxocube <git@foxocube.xyz>
2025-07-31 12:41:29 -05: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
Austin Horstman 0630790b31 tests: include test names in passthru
Allow easily seeing what tests are involved in a chunk so you can
identify tests -> chunks easily.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-30 10:13:54 -05:00
Austin Horstman 53524d8b27 tests: chunk size 250 -> 50
Just seeing how this affects CI rebuilds / speeds.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-30 10:13:54 -05:00
sempiternal-auroraandAustin Horstman d732b648e5 udiskie: fix getExe warning
Adding a package option to udiskie created an evaluation warning as
there is no default executable for udiskie. This replaces `pkgs.getExe`
with `pkgs.getExe'`, which removes this evaluation warning, but does
require that the package has a binary named udiskie.
2025-07-29 23:07:27 -05:00
Austin Horstman ab14805267 darwinScrublist: add superfile
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 17:50:16 -05:00
home-manager-ci[bot]andAustin Horstman fc55d9a42b flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c87b95e25065c028d31a94f06a62927d18763fdf?narHash=sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc%3D' (2025-07-19)
  → 'github:NixOS/nixpkgs/dc9637876d0dcc8c9e5e22986b857632effeb727?narHash=sha256-cKgvtz6fKuK1Xr5LQW/zOUiAC0oSQoA9nOISB0pJZqM%3D' (2025-07-28)
2025-07-29 17:50:16 -05:00
Martin PopovskiandGitHub 4bf124678b hyprland: Add "output" to importantPrefixes option default (#7507)
Adds support for `monitorv2` syntax
2025-07-29 16:41:27 -05:00
Austin HorstmanandGitHub 909d39391e PULL_REQUEST_TEMPLATE: nixfmt-rfc-style -> nixfmt (#7580)
We now use the stable release.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 15:53:54 -05:00
awwpotatoandAustin Horstman b108e6b7f7 editorconfig: fix insert_final_newline unset for json files 2025-07-29 14:47:28 -05:00
Austin Horstman 1a8b119e60 tests/caffeine: add test coverage
- Add basic-service.nix test for caffeine service configuration
- Test systemd service generation with proper graphical-session.target
integration

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 14:47:02 -05:00
Austin Horstman cec4c1be7e tests/ssh-agent: add test coverage
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 14:46:54 -05:00
Austin Horstman 85a5287116 tests/gnome-keyring: add test coverage
- Add basic-service.nix test for default gnome-keyring configuration
- Add custom-components.nix test for pkcs11, secrets, and ssh components

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 14:46:36 -05:00
Austin Horstman 2f588d275e hyprsunset: add program to home packages
Allow calling the cli from PATH so you can invoke your own changes
without relying on the service.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
Austin Horstman f4e8bc1ab6 hyprsunset: refactor implementation
Some cleanup and refactoring after the introduction of the settings
option.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
kerfuzzleandAustin Horstman fa184c5460 hyprsunset: Add tests for transitons option
Adds tests to ensure that the services are still created correctly and the correct deprecation warnings are shown

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
kerfuzzleandAustin Horstman 7c01358ff6 hyprsunset: Add tests for hyprsunset.conf file
Adds tests to verify that the configuration files and services were created sucessfully, even in a no configuration case

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
kerfuzzleandAustin Horstman 6ff07a01a8 hyprsunset: deprecate transitions option
File configuration through hyprsunset upstream transitions preferred.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
kerfuzzleandAustin Horstman 8aaf3b5319 hyprsunset: Update module to use hyprsunset.conf
Updates the hyprsunset module so that it creates the hyprsunset.conf file introduced in v0.3.0

This allows hyprsunset to manange the transition timings instead of defining extra systemd services/timers

See https://wiki.hypr.land/Hypr-Ecosystem/hyprsunset/#configuration

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 13:11:56 -05:00
Austin HorstmanandGitHub 03fdb31290 treewide: add missing package options (#7575)
Add options to support more flexible module configurations.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 12:20:22 -05:00
jarre johanssonandAustin Horstman 25deca8939 Translate using Weblate (Finnish)
Currently translated at 76.4% (13 of 17 strings)

Translate using Weblate (Finnish)

Currently translated at 82.0% (32 of 39 strings)

Co-authored-by: jarre johansson <jarre@johansson.today>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-07-29 11:51:19 -05:00
SilkandAustin Horstman 1fa11c8e83 Translate using Weblate (Turkish)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Turkish)

Currently translated at 100.0% (39 of 39 strings)

Co-authored-by: Silk <omerntuzun@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/tr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-07-29 11:51:19 -05:00
TANIGUCHI KoheiandAustin Horstman 1364772b57 Translate using Weblate (Japanese)
Currently translated at 97.4% (38 of 39 strings)

Co-authored-by: TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translation: Home Manager/Home Manager CLI
2025-07-29 11:51:19 -05:00
Austin Horstman cfe397c8c0 arrpc: assert linux
Only has systemd support, so don't let darwin users think they are
enabling something.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 10:31:11 -05:00
Austin Horstman 0f9fae161d tests/arrpc: add service module test coverage
- Add custom-target.nix test for custom systemd target configuration

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 10:31:11 -05:00
Austin Horstman 1ed730a977 ci: manage reviewers doesn't re-add manually removed reviewers
We dont want to try re-adding people that get removed manually.
Otherwise you start fighting CI.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 10:21:56 -05:00
Austin Horstman 2c8306e506 ci: manage reviewers add dry run option
Accidentally affected a real PR testing a change, add dry run to prevent
it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-29 10:21:56 -05:00
awwpotatoandGitHub 50adf8fcaa PR_TEMPLATE: remove maintainer cc section (#7569)
now that maintainers automatically get review requested this seems unnecessary.
2025-07-28 23:03:47 -05:00
Austin Horstman f49e872f55 zsh: lib better docstrings
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman a1b7e7f510 tests/antidote: remove deprecated relative path usage
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman 471eeaa975 zsh: add khaneliman maintainer
Been active in it and use it a lot.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman 08f162350c news: add news entry for zsh path refactor
Give a news entry about change for path handling work done in
https://github.com/nix-community/home-manager/pull/6089.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman e52c6c3da3 zsh: env var assertion for dotdir
Needs to be known at build time. Ensure user doesn't accidentally use
env var in `dotDir`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman 40af7ba06b zsh: relative path deprecation warning
Warn users when they configure a relative path. We want to encourage
using absolute paths and env variables.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman 9ff467fbe7 tests/zsh: add more path test cases
Test the new lib file path function

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
Austin Horstman 938ecd797f zsh: fix lib function for env var path parsing
Allow env variables to be used and avoid mangling path.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-28 14:47:42 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
20cf285e9f maintainers: update all-maintainers.nix (#7558)
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:** 263 → 264 maintainers

** Added:** nukdokplex

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-28 08:26:25 -05:00
NalonandRobert Helgesson a7b7c6f520 docs: add upgrade guide for NixOS version transitions
- Add comprehensive documentation for upgrading Home Manager channels.

- Cover channel-based, flake-based, and NixOS module methods.

- Include troubleshooting section and state version updates.

- Update examples for NixOS 25.05 compatibility.
2025-07-28 11:04:16 +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
Austin Horstman e4b032ba51 ci: re-enable home manager install and uninstall tests on darwin
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman a07400a2e5 ci: don't duplicate test runs on github
We have moved towards running more tests on buildbot for better
performance. Don't duplicate efforts on github actions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman 800f16a9c5 tests: forward only test chunks to buildbot
We currently only need the tests covered by test-chunks in CI. We will
migrate more tests into the buildbot CI, as we are able to flesh them
out more.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman 7a02711a61 tests: integration tests only run on linux
Using dependencies that require linux.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman 9fa2ad30c5 buildbot-nix.toml: add file
Support testing on buildbot CI

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman 234f10ec6d tests/flake: add buildbot output
Filters tests to specific platforms for buildbot.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman e45ff5651c ci: split tests into chunks
We have lots of tests and would like to add more. However, adding more
testing coverage comes at the cost of a slower CI when we run them
sequentially. This adds test outputs that are chunked however we'd like
to tune for batch sizes. Allowing us to create a parallelized CI
workflow.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 23:02:18 -05:00
Austin Horstman 72cc1e3134 tests/hyprlock: update tests with upstream changes
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 07:03:54 -05:00
Austin Horstman 0daef6fbe0 hyprlock: update example config
Some breaking changes from upstream

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-27 07:03:54 -05:00
Seth FlynnandGitHub e88671567b zsh: only apply plugins when zsh is enabled (#7555) 2025-07-27 07:03:09 -05: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
2b73c2fcca treewide: remove config dependency on docs (#7547)
Tested with rebased
https://github.com/nix-community/home-manager/pull/6411 so I could find
all instances of config usage in docs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-07-26 17:11:53 -05:00
Austin HorstmanandGitHub 37fec70bd5 ci: extract maintainers with single file eval (#7548)
Currently, we send all files as a list but it can be problematic with
files that can't be evaluated properly. Instead of crashing the entire
extraction process, we will send a file at a time for eval so we can
just bypass files causing issues.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-26 13:26:14 -05:00
Friedrich AltheideandAustin Horstman a1817d1c0e yarn: improve docs 2025-07-25 14:03:11 -05:00
Friedrich AltheideandAustin Horstman 26e33ea5c0 docker-cli: Improve docs, fix enviornment variable 2025-07-25 14:03:11 -05:00
Kristopher James Kent (kjkent)andAustin Horstman 9fca491587 zsh: improve histfile handling
Previously, a stateVersion check for 20.03 determined whether or not the input to
`programs.zsh.history.path` would be prepended with `$HOME`. However, this was not
communicated in the documentation, which stated the version check determined whether
the default histfile location would be in `programs.zsh.dotDir` or
`home.homeDirectory`.

The current change simplifies matters and brings path handling in-line with that of
the preceding work on dotDir path handling. If a relative path is provided, it is
parsed as being relative to `home.homeDirectory`. Both absolute and relative paths
are supported, and are cleaned before being passed to other functions.

Tests have been rewritten for the new logic, with case handling for reusability.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-25 13:15:29 -05:00
Kristopher James Kent (kjkent)andAustin Horstman 21399deff2 zsh: improve dotDir handling
Previously, `config.programs.zsh.dotDir` prepended strings with `$HOME`.
This caused issues like nix-community#5100, where `$HOME` is
inconsistently resolved in time for the evaluation of the option. The handling
of this variable is also inconsistent with how paths are handled elsewhere,
including within the same module, where `config.programs.zsh.history.path`
does not mutate the supplied string.

To preserve backwards compatibility, this change prepends
`config.home.homeDirectory` to relative paths, while assigning absolute paths
unchanged. Tests for both cases are added.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-25 13:15:29 -05:00
ef8a9767fc Translate using Weblate (Spanish) (#7543)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Spanish)

Currently translated at 100.0% (39 of 39 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/es/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Harrizon Soler <harryalex0281@hotmail.com>
2025-07-25 13:10:08 -05:00
William BrockhusandGitHub c77de65ece command-not-found: sync with nixpkgs (#7499)
updates command-not-found.pl and adds fish compatibility
2025-07-25 13:09:58 -05:00
fabiancholewinski1234andGitHub 308b8570ec home-environment: add home.checks (#7407)
This should have the same effect `system.checks` has in nixpkgs:
adds paths to the build closure without being becoming part of the
generated configuration.

This is useful for built-time checks as these should not leave a
trace in the built home configuration.

The implementation mirrors nixpkgs: add an unused argument to the
home-manager-generation derivation.
2025-07-25 13:01:12 -05:00
Viktor TitovandGitHub 70c79ca6f4 xdg-terminal-exec: init (#7527)
port xdg.terminal-exec from nixos to hm
2025-07-25 12:54:38 -05:00
80515f553d Translate using Weblate (Spanish) (#7539)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Spanish)

Currently translated at 100.0% (39 of 39 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/es/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Harrizon Soler <harryalex0281@hotmail.com>
2025-07-25 12:44:26 -05:00
Joseph DalyandGitHub 060824a69b mpd: fix typo (#7541) 2025-07-25 12:44:09 -05:00
Aguirre MatteoandGitHub a35f6b6043 trippy: add forceUserConfig option (#7536) 2025-07-24 15:01:14 -05:00
Thierry DelafontaineandAustin Horstman 64796151f7 opencode: add JSON schema reference to config.json output
- Automatically include "$schema": "https://opencode.ai/config.json" in the generated
  opencode config.json file
- Update documentation to mention the added schema property
- Add corresponding "$schema" entry in test config.json file for validation purposes

Closes #7506
2025-07-24 11:05:45 -05:00
Thierry DelafontaineandAustin Horstman 1df662dde0 opencode: add empty-settings test
- Add `empty-settings` test to ensure the config file is not generated
  when no settings are provided
2025-07-24 11:05:45 -05:00
Thierry DelafontaineandAustin Horstman 08edcbe9df opencode: add support for global custom instructions via rules option
- Introduce `rules` option to provide global custom instructions for opencode
- Write `rules` content to `~/.config/opencode/AGENTS.md` if non-empty
- Update tests to cover presence and absence of `AGENTS.md` file with rules content
2025-07-24 11:05:45 -05:00
Nikolaos KaraolidisandGitHub 0a98177bb8 maintainers: remove karaolidis keys (#7537)
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-07-24 11:03:53 -05:00
Austin HorstmanandGitHub e2fe7256c4 news: add misc news entries for recent modules (#7531)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-24 09:04:33 -05:00
Aguirre MatteoandGitHub 1fde6fb1be yofi: add module (#7528) 2025-07-23 13:13:14 -05:00
David StrawnandGitHub fe38a5e028 pueue: enable darwin configuration (#7519)
This commit enables configuring pueue for darwin. pueue already builds fine for darwin and all that was needed was a `launchd` agent.
2025-07-23 13:12:46 -05:00
MuxutrukandAustin Horstman 3641df95be Translate using Weblate (Basque)
Currently translated at 100.0% (17 of 17 strings)

Translate using Weblate (Basque)

Currently translated at 94.8% (37 of 39 strings)

Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/eu/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/eu/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-07-23 11:30:56 -05: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
Friedrich AltheideandGitHub e9c599e40c yarn: add module (#7526) 2025-07-23 10:42:37 -05:00
Austin Horstman b4752b0eda treewide: format with latest stable formatter
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-23 10:27:52 -05:00
Austin Horstman 56ee5d0670 flake: use nixfmt stable release
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-23 10:27:52 -05:00
Austin Horstman 6cf61d10e8 tests/darwinScrublist: add opencode
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-23 10:27:52 -05:00
home-manager-ci[bot]andAustin Horstman 3260a70586 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)
  → 'github:NixOS/nixpkgs/c87b95e25065c028d31a94f06a62927d18763fdf?narHash=sha256-NS6BLD0lxOrnCiEOcvQCDVPXafX1/ek1dfJHX1nUIzc%3D' (2025-07-19)
2025-07-23 10:27:52 -05:00
Aguirre MatteoandGitHub 62975b8e23 hyprsunset: assert hyprland package is not null (#7518) 2025-07-23 09:54:04 -05:00
Hosted Weblate 0cdfcdbb52 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-07-22 12:49:03 +02:00
dependabot[bot]andRobert Helgesson 847711c7ff ci: bump DeterminateSystems/update-flake-lock from 26 to 27
---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: '27'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 12:35:35 +02:00
Robert Helgesson 836741779f ci: apply dependabot on release-25.05 2025-07-22 12:28:46 +02:00
Thierry DelafontaineandRobert Helgesson d1db9055ea iamb: use correct config directory on macOS
On macOS, configuration files are stored in the platform-standard
directory `~/Library/Application Support/` by default. However, if the
user enables the XDG Base Directory specification by setting
`xdg.enable = true`, iamb should respect the `XDG_CONFIG_HOME`
environment variable (along with other related XDG variables).
Currently, this behavior is not implemented in iamb, a PR has been
opened to fix that -> https://github.com/ulyssa/iamb/pull/478.
2025-07-22 11:38:10 +02:00
home-manager-ci[bot]andRobert Helgesson 04b710c1f0 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:** 262 → 263 maintainers

** Added:** yethal

Generated by: lib/python/generate-all-maintainers.py
2025-07-22 11:14:01 +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
Adam DinwoodieandGitHub e4bf85da68 neomutt: allow default email sending behaviour (#7476)
If neither neomutt.sendMailCommand nor passCmd are set, leave
configuration for sending emails unset.  This will leave neomutt to
manage sending emails itself, which matches the existing description of
the `accounts.email.accounts.<name>.neomutt.sendMailCommand`
configuration option.

This also removes the assertion added in bd680a8c (neomutt: allow
default email sending behaviour, 2025-07-12), since it is now valid to
have neither passCmd nor neomutt.sendMailCommand on an account.
2025-07-21 23:12:28 +02:00
Jairo LlopisandGitHub 13a83d1b65 zed-editor: support tasks (#7493)
Just like other features, they can merge with preexisting JSON5
settings.
2025-07-20 19:14:57 -05:00
zorrobertandGitHub 7834432ca5 thunderbird: support declaration of address books (#7443)
Adds support for address books using the `accounts.contact.accounts.*` options.
2025-07-20 19:12:35 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
e040262709 flake.lock: Update (#7505)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/62e0f05ede1da0d54515d4ea8ce9c733f12d9f08?narHash=sha256-JHQbm%2BOcGp32wAsXTE/FLYGNpb%2B4GLi5oTvCxwSoBOA%3D' (2025-07-14)
  → 'github:NixOS/nixpkgs/6e987485eb2c77e5dcc5af4e3c70843711ef9251?narHash=sha256-RKwfXA4OZROjBTQAl9WOZQFm7L8Bo93FQwSJpAiSRvo%3D' (2025-07-16)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-20 18:56:33 -05:00
Joaquín TriñanesandGitHub d0300c8808 direnv: fix broken nushell integration (#7498) 2025-07-18 00:00:04 -05:00
YethalandGitHub dcfd70f80f ssh-tpm-agent: init module (#7495) 2025-07-17 19:31:15 -05:00
Austin Horstman 7c78e592a8 maintainers: remove duplicate nixpkgs maintainers
We don't need to maintain them in here, removing them to fix CI check

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 15:15:39 -05:00
Austin Horstman defabc11ab ci: move validate maintainers logic to lib
Allow easily running the individual checks outside of GHA for easier
testing/modification.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 15:15:39 -05:00
Austin Horstman bc9f3c8413 direnv: misc cleanup
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 14:47:20 -05:00
Austin Horstman 8320333a45 tests/direnv: refactor tests
Consolidate and increase testing scope.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 14:47:20 -05:00
Austin Horstman 63994b71d2 direnv: fix silent clobbering global config
When the silent flag was refactored to pass in configuration. We
accidentally introduced a bug that clobbered any `global` settings.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-17 14:47:20 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
e595fe1df4 flake.lock: Update (#7450)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1fd8bada0b6117e6c7eb54aad5813023eed37ccb?narHash=sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo%3D' (2025-07-06)
  → 'github:NixOS/nixpkgs/62e0f05ede1da0d54515d4ea8ce9c733f12d9f08?narHash=sha256-JHQbm%2BOcGp32wAsXTE/FLYGNpb%2B4GLi5oTvCxwSoBOA%3D' (2025-07-14)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-17 14:21:53 -05:00
Aguirre MatteoandGitHub 2d55a52963 radio-cli: add module (#7488) 2025-07-17 14:21:31 -05:00
Joaquín TriñanesandGitHub 50adf43449 nushell: fix get -i deprecation (#7490)
Since https://github.com/nushell/nushell/pull/16007, the recommended
flag to avoid erroring on missing fields is `--optional`. To avoid
compatibility issues, the builtin optional access syntax is used
instead, which is backwards-compatible.
2025-07-17 14:15:13 -05:00
Tom HubrechtandGitHub 8eb2f2a26a treewide: Remove unwanted dependencies (#7487)
Fixes interpolation of packages in the default and example texts.
2025-07-17 14:12:50 -05:00
Ryan HoriguchiandGitHub 460f1e9af9 starship: set STARSHIP_CONFIG var and add option to set config path (#7435) 2025-07-17 10:59:05 -05:00
home-manager-ci[bot]andAustin Horstman e8c19a3cec 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:** 261 → 262 maintainers

** Added:** FriedrichAltheide

Generated by: lib/python/generate-all-maintainers.py
2025-07-15 13:12:09 -05:00
Austin Horstman f14ef40c45 ci: dont run github_pages on forks
Limit to not automatically run on forks and allow ad-hoc runs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-15 13:11:12 -05:00
Austin Horstman 6613b6ce49 ci: update-maintainers include eval diff
Show evaluated comparison in the PR we create.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-15 13:08:23 -05:00
Austin Horstman 30533223ee ci: generate-all-maintainers remove unused function
Leftover from refactor that was supposed to be removed.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-15 13:08:23 -05:00
Austin HorstmanandGitHub a1c0a34938 ci: fix tag-maintainers (#7480)
accidentally broke when refactoring

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-15 11:06:17 -05:00
Adam DinwoodieandGitHub f7a45b0831 nix: use-sandbox -> sandbox (#7475)
The Nix configuration file sandbox setting is now "sandbox", not
"use-sandbox".  Correct the documentation and tests that reference this
setting.
2025-07-15 10:22:11 -05:00
1444andGitHub 4cc9cc67eb wayfire: fix broken configuration.ini test (#7478)
Normalize store paths so it will pass even with flake updates and on different architectures.
2025-07-15 10:20:41 -05:00
Austin HorstmanandGitHub 1e54837569 ci: extract-maintainers handle non-existent files (#7469)
Since we're checking out the `pull_request_target` and not the
`pull_request` branch. We can't evaluate the files from the PR branch.
We can skip the files for evaluation without crashing the entire
extraction.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-13 23:32:19 -05:00
awwpotatoandGitHub 1a4d8ffd32 gurk-rs: fix missing s in home.packages (#7467) 2025-07-13 18:36:07 -05:00
awwpotatoandGitHub 7969ed8baa gurk-rs: add module (#7466) 2025-07-13 17:51:03 -05: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
Austin HorstmanandGitHub fc25398450 zellij: add keybind examples (#7447) 2025-07-12 21:28:21 -05:00
Austin HorstmanandGitHub 2a8220dd92 ci: fix tag-maintainers (#7448)
copy pasta error trying to just copy my fixes from another repo

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 21:03:05 -05:00
Austin Horstman 908200d680 tests/zellij: add zellij layout test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 20:41:52 -05:00
Austin Horstman 78d9338934 zellij: add support for layouts generation
Adds a layouts option to support generating layout files for zellij to
use.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 20:41:52 -05:00
Austin HorstmanandGitHub f2795aa053 ci: tag-maintainers further refactoring (#7446)
cleaning up more after further testing and work in nixvim version

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 18:07:51 -05:00
Quentin SmithandGitHub ea24675e4f lib: Improve KDL generator (#7429)
This adds support for generating ordered children and nodes with
attributes and/or properties but no children. These are both needed to
generate zellij keybinding configuration.
2025-07-12 14:32:14 -05:00
Austin Horstman ae62fd8ad8 tests/zsh: add zprof test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman 196487c54f zsh: group plugins in a separate directory
Make it more scalable to prevent crowding the main folder.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman 26b987cf88 zsh: move deprecated options to separate file
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman 80a07bc6f7 zsh: move history to separate file
zsh is incredibly bloated, moving history to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman 3d95ab3cdc zsh: move zprof to separate file
zsh is incredibly bloated, moving zprof to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Austin Horstman 9b76feafd0 zsh: move oh-my-zsh to separate file
zsh is incredibly bloated, moving oh-my-zsh to separate file

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-12 11:42:00 -05:00
Adam DinwoodieandGitHub 392ddb642a home-manager: add flake support for repl command (#7439)
Extend the `home-manager repl` command to support flakes.  This is
heavily based on the equivalent `nixos-rebuild repl` code.
2025-07-11 21:16:06 -05:00
Jacob S. StewardandGitHub 7c6f7377cc vscode: enable defining mcp.json separate from settings.json (#7441)
VS Code 1.102 separates MCP configuration from `settings.json` to a profile-specific `mcp.json`. VS Code automatically performs this separation if MCP configuration is detected inside `settings.json` which conflicts with the immutability of the settings.json that home-manager supplies.
2025-07-11 20:33:17 -05:00
Austin Horstman 3976e0507e test/wpaperd: add test for empty settings
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 15:26:17 -05:00
Austin Horstman a3f4b998ec wpaperd: handle empty settings properly
Currently we create a systemd unit that will throw an error when
settings aren't configured because we try to link to a file that wont be
created with empty config.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 15:26:17 -05:00
Austin HorstmanandGitHub 6d8ed2b4fc ci: tag-maintainer workflow refactor (#7436)
Break the workflow into multiple scripts to make it easier to test /
maintain. Also fix the remove reviewer process to not review reviews
from people that were manually requested.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 15:20:37 -05:00
Austin HorstmanandGitHub 03bf1bd8d6 gtk2: fix missing force option (#7437)
Missed during migration

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 15:05:42 -05:00
Austin HorstmanandGitHub b8b7e5ec35 ci: extract-maintainers-meta tweaks (#7434)
Simplify extraction and generation of file. We dont need the comments
and can leverage the appropriate lib.generator function.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 12:47:42 -05:00
Austin HorstmanandGitHub 9d343f0880 ci: update-maintainers cleanup / tweaks (#7433)
Better support updating existing PRs and summary of changes in workflow
summary. Tested in nixvim.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 12:17:37 -05:00
Austin Horstman f5b36e5ece gtk: add khaneliman maintainer
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
Austin Horstman a9594d34a2 gtk: remove long removed option removal assertion
Added 6 years ago, no longer needed.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
Austin Horstman fa7d51011f gtk: refactor and break up to improve readability
The file grew in complexity while adding customization. Separate
concerns for each gtk versions customization and use lib helpers to
consolidate logic.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
Austin Horstman 47443585fe tests/gtk: refactor and organize
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
Austin Horstman 18ff4e1e11 tests/gtk: expand testing for new customization
We can now customize a lot more in the gtk module. Test more scenarios
to ensure a user has more control over what gets generated.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
Austin Horstman d9915499e3 gtk: refactor to support more modular customization
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 11:53:47 -05:00
1444andGitHub e90b28967c wayfire: allow path in settings (#7427) 2025-07-11 10:15:54 -05:00
Yiheng HeandGitHub ce15001862 cliphist: use lib.getExe (#7431) 2025-07-11 10:15:37 -05:00
Aguirre MatteoandGitHub fab659b346 trippy: add module (#7426) 2025-07-10 22:01:34 -05:00
tsrk.andAustin Horstman 3978bcd696 thunderbird: configure SMTP and GPG for aliases
Signed-off-by: tsrk. <tsrk@tsrk.me>
2025-07-10 15:45:32 -05:00
tsrk.andAustin Horstman d52abd5b52 email: allow more extensive configuration of aliases
This notably allows to specify a custom SMTP server or GPG keys, to be
able to respond as the alias without depending entirely on the parent
account's configuration.

Signed-off-by: tsrk. <tsrk@tsrk.me>
2025-07-10 15:45:32 -05:00
Friedrich AltheideandGitHub 729c5e5465 docker-cli: add module (#7411) 2025-07-10 15:36:53 -05:00
d52da303ef firefox: add extension permissions (#7402)
Adds extension permissions as suggested in
https://github.com/nix-community/home-manager/issues/7001.
Adds the 'profiles.<name>.extensions.settings.<name>.permissions' to Firefox
derivatives. If set, this option adds an assertion that fails if an extension
package requests permissions that weren't added to the permissions option. In
order to not require 'profiles.<name>.extensions.force' to be set when only
permissions, but no extension settings were defined, the relevant assertions
were changed. They now check whether any 'extensions.settings.<name>.settings'
was set instead of checking whether 'extensions.settings' was set.

---------

Co-authored-by: Robert Helgesson <robert@rycee.net>
Co-authored-by: awwpotato <awwpotato@voidq.com>
2025-07-10 15:33:18 -05:00
B1kkuandGitHub fb12dbbce3 lutris: make module x86_64-linux only (#7425) 2025-07-10 15:15:49 -05:00
Aguirre MatteoandGitHub d81cb050f5 hyprshell: add module (#7409) 2025-07-10 14:23:15 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
50330593f3 flake.lock: Update (#7419)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5c724ed1388e53cc231ed98330a60eb2f7be4be3?narHash=sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8%2B%2BxWA8itO4%3D' (2025-07-04)
  → 'github:NixOS/nixpkgs/1fd8bada0b6117e6c7eb54aad5813023eed37ccb?narHash=sha256-J1kI6oAj25IG4EdVlg2hQz8NZTBNYvIS0l4wpr9KcUo%3D' (2025-07-06)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-10 14:21:42 -05:00
Adam DinwoodieandGitHub 206ed3c714 neomutt: improve error when no way to send mail
f there's an account under accounts.email.accounts with neomutt.enable set to true but neither passwordCommand nor neomutt.sendMailCommand set, then building the Neomutt rc file will fail. Ensure that failure has a useful error message, rather than a confusing type error.

While we're here, make the module code slightly less repetitious by just building the set of email accounts that have Neomutt enabled once, rather than multiple times in multiple contexts.
2025-07-09 22:33:38 +02:00
Caleb NortonandMatthieu Coudron bec8ff3981 wlogout: use lines for css style
Allows the wlogout style to be set by aggregating multiple modules -
same as waybar
2025-07-09 14:06:22 +02:00
brickedandGitHub 218da00bfa firefoxpwa: add module (#7408)
Adds the `firefoxpwa` module for the native Progressive Web Apps for
Firefox application.
2025-07-08 10:56:50 -05:00
Aguirre MatteoandGitHub 5751fa774f twitch-tui: add module (#7416) 2025-07-08 09:52:03 -05:00
Aguirre MatteoandGitHub c00730550e tray-tui: add module (#7415) 2025-07-08 09:51:45 -05:00
dependabot[bot]andAustin Horstman 1edfb62244 ci: bump DeterminateSystems/update-flake-lock from 25 to 26
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 25 to 26.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v25...v26)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: '26'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-08 09:48:13 -05:00
Austin Horstman fa135487ac issue_template: remove assignees
Needless spam and doesn't really make sense to default to repo
maintainers. Also, clearly hasn't been utilized for a long time.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-08 09:47:23 -05:00
Austin Horstman 923782b2c6 issue_template: add new module request
Add a form for new module requests with information to help contributors
to add new modules.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-08 09:46:36 -05:00
Austin Horstman 619c84d9e0 issue_template: update feature request
Make a more detailed form for filing a feature request. This will help
steer users towards more helpful feature requests, similar to our bug
reporting.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-08 09:46:36 -05:00
Austin Horstman fd9e55f5fa tests/firefox: add bookmark policy to profile bookmarks test
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 12:50:40 -05:00
Austin Horstman 753ea0b324 librewolf: allow bookmark configuration
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 12:50:40 -05:00
Austin Horstman dbac1fbcd6 mkFirefoxModule: set NoDefaultBookmarks when a profile has bookmarks are enabled
This resolves issue that someone might try and configure bookmarks and a
policy will prevent it from applying properly.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 12:50:40 -05:00
Austin HorstmanandGitHub 9d21f9985e i3-sway/lib: modifier accepts any string (#7398)
Currently, we aggressively limit what modifier can be used in the module
system that blocks valid configurations. Allow any strings to unblock
these configs. But, could be refactored further to support list of
modifiers and automatically convert to a config string.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 12:42:26 -05:00
Austin HorstmanandGitHub b4486ff44a mkFirefoxModule: add extension settings example to policies (#7397)
Add an example of using extension settings to control installation and
accesibility of a extension in the policies option.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 10:40:29 -05:00
brickedandGitHub 153e680c42 firefox: add release option (#6784)
Adds the `release` option to declare what upstream release version is
used to fetch rom `releases.mozilla.org`. Used to fetch
language packs. See
https://github.com/nix-community/home-manager/issues/6758#issuecomment-2781465236.
2025-07-06 09:35:49 -05:00
Thierry DelafontaineandGitHub 502d9b7d30 codex: starting with v0.2.0 codex uses a TOML configuration file (#7388)
Updated related settings and test files to reflect the new format.
2025-07-06 08:58:22 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
cc7407839d flake.lock: Update (#7395)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)
  → 'github:NixOS/nixpkgs/5c724ed1388e53cc231ed98330a60eb2f7be4be3?narHash=sha256-xVNy/XopSfIG9c46nRmPaKfH1Gn/56vQ8%2B%2BxWA8itO4%3D' (2025-07-04)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-06 08:56:52 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
8b0180dde1 maintainers: update all-maintainers.nix (#7392)
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

Changes: +17 -0 lines

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-05 19:15:02 -05:00
Ludovic OrtegaandAustin Horstman af8a884164 kubeswitch: add module
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 16:30:54 -05:00
Ludovic OrtegaandAustin Horstman 92db5be8e1 maintainers: add m0nsterrr
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
2025-07-05 16:30:54 -05:00
Thierry DelafontaineandGitHub 5a49fe448e opencode: init (#7320) 2025-07-05 16:02:49 -05:00
Alex HamiltonandAustin Horstman f117b383dd numbat: Allow specifying a path for initFile 2025-07-05 10:32:48 -05:00
Alex HamiltonandAustin Horstman 26d405da41 numbat: Add initFile option 2025-07-05 10:32:48 -05:00
Matthieu CoudronandGitHub d75a547415 programs.msmtp: merge extraConfig and extraAccount into configContent (#7385)
We can simplify maintainance of HM while providing more consistency
across modules by relying on the nixpkgs module primitive mkBefore /
mkOrder as it was done in the Zsh module.


Deprecates:
- programs.msmtp.extraConfig
- programs.msmtp.extraAccounts

programs.msmtp: merge extraConfig and extraAccount into configContent

We can simplify maintainance of HM while providing more consistency
across modules by relying on the nixpkgs module primitive mkBefore /
mkOrder as it was done in the Zsh module.


Deprecates:
- programs.msmtp.extraConfig
- programs.msmtp.extraAccounts
2025-07-05 17:26:30 +02:00
Austin Horstman 36c57c6a1d lib/deprecations: add ignore parameter to remapAttrsRecursive
Needed to allow exclusionary keys easily without complex predicates.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 00:26:25 -05:00
Austin Horstman 650a38ebe8 ashell: support yaml and toml config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 00:26:25 -05:00
Austin Horstman f62e9a8114 lib/strings: add extra string matching predicates
Centralize logic to avoid needing to rewrite it elsewhere.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 00:26:25 -05:00
Austin Horstman 19f0ba9c52 lib/deprecations: add remapAttrsRecursive
Similar purpose to the `mkSettingsRenamedOptionsModule` for migrating
users configuration to the new format needed by a module. But,
supporting freeform options that shouldn't get option definitions.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 00:26:25 -05:00
Dan LockandAustin Horstman a4fc77c63d ashell: new ashell 0.5.0 config standards
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-05 00:26:25 -05:00
June SteppandGitHub e8da7372fd anki: add module (#7274) 2025-07-04 23:45:35 -05:00
Lukas NagelandGitHub 57d1027e1e aerc: allow config sections to be lines (#7280)
There are some sections that are order sensitive, e.g. filters,
so just lines will preserve that order.

Fixes: #6059
2025-07-04 19:54:53 -05:00
Austin Horstman 7d9e3c35f0 all-maintainers: regenerate with latest changes
Should remove maintainers that existed, but weren't assigned to modules.
Will add maintainers that we missed during last refactoring.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman 412c545bb6 extract-maintainers-meta: simplify
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman f6d1104665 extract-maintainers-meta: include non module system files
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman b8bb556ce5 maintainers: remove duplicate HM entries
We can remove duplicate entries and redirect to the nixpkgs entry.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman 18e1f7fbce ci: validate maintainers also checks for duplicate maintainers
We dont want need to maintain duplicate entries for maintainers in HM
that already exist in Nixpkgs. Add a check that calls out users that
don't need an entry in our internal list.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman 31242bdf8f polybar: fix meta.maintainer position
We generate the maintainer list from `meta.maintainers` and need the
attribute to be available on eval of all modules. It was set in the
`config` option which would only be evaluated when a module was enabled.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Terje LarsenandGitHub 83f978812c podman: support mounts configuration (#7377) 2025-07-03 19:34:57 -05:00
Austin Horstman 402333d5ec ci: concurrency protect tag flow
We just need to run it once properly and dont need to keep running it
for every push until the last.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 17:06:33 -05:00
Austin Horstman 03c3576f8b ci: remove unneeded reviewers
We can remove the review from someone if they are no longer affected in
a PR.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 17:06:33 -05:00
Austin Horstman 7582cbfabc ci: check for new maintainers on updates
We want to ping maintainers whenever files are affected. Right now it
requires changing a PR to a draft and reopening, but we should be more
clever and request the review whenever the file is updated.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 17:06:33 -05:00
Austin HorstmanandGitHub 7044c3eced ci: tag-maintainers fix fetching maintainers (#7380)
Was relying on flawed logic and fragile parsing to identify maintainers
on changed files. Rework to use nix eval to grab the `meta.maintainers`
to use when requesting a review.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 16:29:14 -05:00
Austin Horstman 09ef413c80 all-maintainers: update
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 15:23:58 -05:00
Austin Horstman d03fa2d84c ci: generate-all-maintainers use nix eval update
Previously, we had to hack together some string matching to identify and
retrieve the maintainers in the repo. We can just eval the modules to
retrieve the list of maintainers more accurately.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 15:23:58 -05:00
Austin Horstman b46c693797 lib: add extract-maintainers-meta
Used to eval home-manager and fetch meta.maintainers to accurately
retrieve maintainers for the master list.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 15:23:58 -05:00
Austin HorstmanandGitHub 28639e6470 ci: cancel previous runs (#7378)
Cancel existing runs when a new push happens so we don't unnecessarily
run jobs that are irrelevant.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-03 14:05:44 -05:00
Lucas Servén MarínandGitHub 1fa73bb2cc fix(service/gpg-agent): allow SSH ForwardAgent compatibility (#7355)
https://github.com/nix-community/home-manager/pull/7117#issuecomment-3018582819
noted that #7117 broke compatibility with forwarding ssh-agents using
`ssh -A`/`ForwardAgent`. In order to continue supporting the fix for
the issue raised in #5997 and address the compatibility problem
mentioned by @euank, this commit introduces the solution described in
https://github.com/nix-community/home-manager/pull/7117#issuecomment-3025001779.

The code now checks the following:
1. is this shell part of an SSH connection and is `SSH_AUTH_SOCK` set?
   if so, assume the socket variable was set by sshd to point at a
   forwarded socket; bail out to skip setting `SSH_AUTH_SOCK".
1. is the current process a child of `gpg-agent --daemon`? if so, then
   bail out to skip setting `SSH_AUTH_SOCK`.
1. if we got this far, then set `SSH_AUTH_SOCK`.

I've tested this fix locally and can confirm that both #5997 as well as
the regression are fixed.

Signed-off-by: squat <lserven@gmail.com>
2025-07-03 08:24:16 -05:00
Jairo LlopisandGitHub b182e64c01 zed-editor: survive if previous files are not JSON5 (#7351) 2025-07-03 07:44:20 -05:00
Austin Horstman 426b405d97 ci: add validation workflow for maintainers list
We need to make sure that we don't insert invalid maintainers otherwise
it breaks the RFC39 invite workflow. Check that we have valid nix and
the required attributes are able to be parsed properly.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 22:25:47 -05:00
Austin Horstman 66de606f48 ci: update all-maintainers on merge
We want to update the master list for RFC39 invites on master after a
change is merged in.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 22:25:47 -05:00
Thane GillandGitHub a5b5672084 kitty: add config change signal on darwin (#7375) 2025-07-02 18:56:54 -05:00
Yiheng HeandAustin Horstman 89af52d9a8 tests/firefox: add extension user.js test 2025-07-02 15:59:50 -05:00
Yiheng HeandAustin Horstman 1b25908d1d firefox: fix user.js extensions.settings creation
Creates the user.js if profile.extensions.settings is set.
This fixes the case when profile.extensions.settings is set but every
other option in the mkIf is false, resulting in no user.js creation.
2025-07-02 15:59:50 -05:00
Austin HorstmanandGitHub 25f003f8a9 ci: tag maintainers automatically for PR reviews (#6921)
Want to create an easier way to notify maintainers that someone is
working on their module. Added a workflow for requesting a review from any maintainers that have joined the `home-manager-maintainers` team in the organization. 

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 14:45:27 -05:00
Austin HorstmanandGitHub 9347c61bc0 ci: use GITHUB_TOKEN when app config missing (#7374)
Allow testing workflows more on forks when app configuration missing.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 12:17:42 -05:00
Matt SturgeonandGitHub a7820832c6 ci: fix update-maintainers indentation (#7372)
Fixes a regression from be8f7e100f
2025-07-02 11:44:16 -05:00
Matt SturgeonandAustin Horstman bafcf33687 ci: use env in update-maintainers changes summary
Use env variables in the changes summary, to avoid string escape issues
with injecting template strings directly into the script.
2025-07-02 11:25:16 -05:00
Matt SturgeonandAustin Horstman be8f7e100f ci: move update-maintainers commit/pr to env
Define the commit & PR title and body in env variables to make the
script itself more readable and avoid any string escape issues.
2025-07-02 11:25:16 -05:00
Matt SturgeonandAustin Horstman 7241b18a7b ci: make update-maintainers check-changes multiline
Use yaml's multiline string syntax for check-changes's run script.
2025-07-02 11:25:16 -05:00
TarowandGitHub 7c45553340 mpvpaper: fix eval if no settings are defined (#7370)
Do not attempt to evaluate the xdg config files if no settings for
pauseList and stopList are defined.
2025-07-02 10:25:41 -05:00
Austin HorstmanandGitHub 3d243d4a16 ci: fix which branch to show on pr (#7368)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 08:45:36 -05:00
Austin HorstmanandGitHub 77027882a7 ci: prefix flake update prs (#7366)
Make it easier to distinguish which flake.lock update a pr is for.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 08:41:10 -05:00
Austin HorstmanandGitHub 4bd4634525 ci: fix update-flake branch inputs (#7345)
Help with allowing multiple Prs from actions to different branches.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-02 08:25:53 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
6c53df3b9c flake.lock: Update (#7363)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/30e2e2857ba47844aa71991daa6ed1fc678bcbb7?narHash=sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM%3D' (2025-06-27)
  → 'github:NixOS/nixpkgs/3016b4b15d13f3089db8a41ef937b13a9e33a8df?narHash=sha256-P/SQmKDu06x8yv7i0s8bvnnuJYkxVGBWLWHaU%2Btt4YY%3D' (2025-06-30)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-02 08:13:41 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
df12269039 maintainers: update all-maintainers.nix (#7361)
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules

Changes: +6 -4 lines

Generated by: lib/python/generate-all-maintainers.py

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-07-01 23:10:52 -05:00
Austin Horstman 29d717aab5 ci: tests fetch nixpkgs from flake.lock rev
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 23:03:57 -05:00
Austin Horstman 212f4a4fb2 ci: update-maintainers fetch nixpkgs from flake.lock rev
We need a nixpkgs on NIX_PATH. Right now we have been using the latest
from channel. But, we can actually just fetch the nixpkgs from our
flake.lock by parsing the flake.lock.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 23:03:57 -05:00
Austin HorstmanandGitHub 121b430df7 maintainers: fix incorrect entries (#7360)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 23:01:12 -05:00
Austin HorstmanandGitHub e96a8a325c ci: conditional test step runs (#7358)
Not every PR requires the overhead of spinning up runners and running
our entire test suite. Filter on paths affected and only run the
relevant steps.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 18:11:29 -05:00
Austin HorstmanandGitHub 5d2f3e3e7f ci: fix update-maintainers reference location (#7357)
Moved from scripts to lib/python and forgot to update action

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 16:59:53 -05:00
Austin Horstman 77bb9e033b ci: add update-maintainers.yml
Create workflow for updating maintainers list.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 16:30:06 -05:00
Austin Horstman 11db56137d all-maintainers.nix: initial creation
Create initial master maintainer list from the home manager and nixpkgs
maintainers that are referenced in the repository.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 16:30:06 -05:00
Austin Horstman 44a2308db9 scripts/generate-all-maintainers.py: add script
Create a script for generating the master maintainer list we will use
for inviting / pinging on changed files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 16:30:06 -05:00
Austin HorstmanandGitHub 479f888967 bash: support path in sessionVariables again (#7354)
Upstream shell environment variables support paths.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-01 10:47:16 -05:00
WinterandGitHub 96354906f5 files: show better error when file would be clobbered (#7348)
Before:

> Existing file '' would be clobbered by backing up '/home/winter/.config/fish/config.fish'

After:

> Existing file '/home/winter/.config/fish/config.fish' would be clobbered
2025-06-30 21:16:25 -05:00
Ali JamadiandAustin Horstman 4074121796 nh: update maintainers 2025-06-30 21:12:20 -05:00
Ali JamadiandAustin Horstman e8a3e2c1e0 nh: fix clean option behaviour for Darwin 2025-06-30 21:12:20 -05:00
KiraandGitHub 78fc50f1cf direnv: fix nushell cell-path handling (#7339)
After https://github.com/nushell/nushell/pull/15692, this integration breaks
$PATH conversions again as cell-paths are now case-sensitive.
2025-06-30 13:49:04 -05:00
Austin HorstmanandGitHub ee2189cb2f gh: insert empty helper when using credential helper (#7347)
Resets previous helpers so the only one being used is the `gh` cli

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-30 12:12:19 -05:00
Matthieu CoudronandGitHub 0f21ed5182 bash: change sessionVariables to attrsOf ... (#7300)
I had programs.bash.sessionVariables.CDPATH = ... defined in the
different nix files. One was taken into account and the other one
ignored.

Turns out plain "types.attrs" has the following merging strategy:

===
merge = loc: foldl' (res: def: res // def.value) { };
===

Changing it to "attrsOf", the module system warned me of the conflicting
values.
2025-06-30 17:19:07 +02:00
Devin DroddyandGitHub f6deff178c quickshell: add module (#7316) 2025-06-29 18:28:19 -05:00
Adam DinwoodieandGitHub cab8104e92 home-manager: add repl subcommand (#5600)
Similar to the `nixos-rebuild repl` command, `home-manager repl` will
launch the Nix read-evaluate-print-loop environment with the Home
Manager configuration loaded.

To make that more useful, also add the pkgs and options attributes from
the generated Home Manager configuration to the environment.

This doesn't currently work with flakes, because I don't use them and
I'm not confident I could safely test that function.
2025-06-29 18:12:33 -05:00
Maximilian DietrichandGitHub 3faf4a1507 syncthing: add guiAddress to configuration (#7281)
We have a configuration option services.syncthing.guiAddress which is an explicit option because we need it in the syncthing-init service, but why not also set it in the actual syncthing config as well as (or instead of?) the current CLI override? This way other software that parses the config file / REST API like syncthingtray just works with it instead of erroring out and unexpectedly requesting user interaction.

I guess we could actually also scrap the explicit services.syncthing.guiAddress option in favor of the syncthing-native services.syncthing.settings.gui.address because these two (valid!) options conflict otherwise.

Also, a next PR (or addition to this one) could be to make sure the syncthing-init service treats services.syncthing.settings.gui differently by not PUTting but PATCHing the configuration as PUTting triggers an API key regeneration, again breaking REST API access for other tools.
2025-06-29 18:11:18 -05:00
winstonandGitHub a4f9ab0005 sway: add wayland.windowManager.sway.systemd.dbusImplementation (#7271)
Allows the user to choose the dbus implementation for the environment
import.

See https://github.com/swaywm/sway/wiki#systemd-and-dbus-activation-environments
2025-06-29 18:09:58 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
522c681ac2 flake.lock: Update (#7326)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/08f22084e6085d19bcfb4be30d1ca76ecb96fe54?narHash=sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50%3D' (2025-06-19)
  → 'github:NixOS/nixpkgs/30e2e2857ba47844aa71991daa6ed1fc678bcbb7?narHash=sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM%3D' (2025-06-27)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-06-29 17:35:42 -05:00
jaredmontoyaandGitHub 2b3bb17e87 oh-my-posh: fix nushell with v26.0.0 (#7342) 2025-06-29 17:34:38 -05:00
awwpotatoandGitHub 76d0c31fce formatter: add deadnix (#7331) 2025-06-28 16:28:39 -05:00
Lucas Servén MarínandGitHub da077f20db fix(service/gpg-agent): ensure SSH_AUTH_SOCK is set on Darwin (#7117)
This commit addresses https://github.com/nix-community/home-manager/issues/5997
At the root, the gpg-agent SSH integration is not working on Darwin
because shells are started with `SSH_AUTH_SOCK` already set to something
like `/private/tmp/com.apple.launchd.ozLmoURHDC/Listeners`, which
prevents the hook from setting the variable to the gpg-agent's socket.

This commit fixes the issue using a different mechanism to detect if the
current shell has already had the `SSH_AUTH_SOCK` variable set to the
gpg-agent's socket, namely by checking for `gnupg_SSH_AUTH_SOCK_by` as
documented in
https://www.gnupg.org/documentation/manuals/gnupg/Agent-Examples.html#Agent-Examples.

This is essentially a simplified version of
https://github.com/nix-community/home-manager/pull/5901 that does not
attempt to migrate gpg-agent over to launchd.

Signed-off-by: squat <lserven@gmail.com>
2025-06-28 12:30:46 -05:00
Matthias BeyerandGitHub 080e8b48b0 mako: "settings" is an attrset, so use that as example too (#7330)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2025-06-26 16:36:45 -05:00
Jairo LlopisandGitHub ff31a4677c fix(zed): support preexisting JSON5 settings (#7317)
Zed uses JSON5 for settings files. JQ doesn't understand that format and
fails if found, when merging with preexisting settings.

Here I add a conversion step that converts JSON5 to JSON before handling
the contents to JQ.

Besides, I changed the arguments in the jq function, so instead of using
`[0]` and `[1]`, we now use `$dynamic` and `$static` respectively. This
should make scripts more readable.

Fixes https://github.com/nix-community/home-manager/issues/7247
Fixes https://github.com/nix-community/home-manager/issues/7226
2025-06-24 15:48:03 -05:00
Austin HorstmanandGitHub 951f0b30c5 ci: schedule release flake lock updates (#7325)
Currently only running on the master branch. But, we can schedule on the
release branch, as well.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-24 14:54:56 -05:00
Austin HorstmanandGitHub d400c36166 tests/flake.lock: remove (#7324)
Accidentally checked in

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-24 14:09:59 -05:00
Jonathan DaviesandGitHub a4bac2b9ba helix: fix configuration file creation logic (#7319)
without this change, an extraConfig file always gets created, even when
none is specified
2025-06-24 11:06:11 -05:00
Austin HorstmanandGitHub d07e9cceb4 docs: add note about importing modules (#7315)
Help explain how we import for contributers.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 20:57:15 -05:00
Austin Horstman c9d8158bc5 tests/aerospace: test launchd agent
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 20:30:43 -05:00
damidougandAustin Horstman d33444e63a aerospace: Add launchd agent and enhance configuration 2025-06-23 20:30:43 -05:00
Austin Horstman 86402a17b6 treewide: flatten single file modules
Some files don't need nesting and can be root level again to reduce
conflicts with other PRs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 16:20:26 -05:00
Austin Horstman bda9deb791 modules: allow root level nix files
More flexibility in allowing root level files to import, for those that
don't need nesting.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 16:20:26 -05:00
Perchun PakandGitHub f5098b0740 programs/hyprpanel: init (#7303) 2025-06-23 15:48:27 -05:00
Johan LarssonandGitHub 873c5b2dc5 way-displays: use mkOptionDefault in systemd.variables (#7306)
Closes #7296.
2025-06-23 13:50:37 -05:00
Austin Horstman 05b8c95064 ci: home-manager switch test aginst codebase
Right now, we grab the latest home-manager pushed to remote. We need to
test against the code we are pushing out.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 09:59:09 -05:00
Dan XinandAustin Horstman 4a8f993c45 home-manager: fix broken path reference 2025-06-23 09:59:09 -05:00
Austin Horstman 4c9e99e8e8 ci: disable home-manager install tests on darwin
nix broken on latest channel update

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman 41a5f0a98a tests/nix-gc: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman 7a64c02340 tests/imapnotify: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman 5618e7a748 tests/home-manager-auto-expire: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman d2b2c72add tests/espanso: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman c283a23ef6 tests/emacs: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman e9bde7692e tests/git-sync: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman 2c4f8cb7d6 tests/yubikey-agent: reorganize darwin and linux
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman bbad45b7ea tests/jellyfin-mpv-shim: fix tests
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman 06c1392ca8 tests: implement auto importing for modules
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstmanandawwpotato 4fca600cb1 treewide: implement auto importing for modules
Reduce maintenance burden and increase efficiency by automatically
importing modules following a specific convention.

Co-authored-by: awwpotato <awwpotato@voidq.com>
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Austin Horstman fefeb0e928 tests/redshift-gammastep: check file exists first
Just leads to less confusing output when we have a missing file.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
Josef HoferandGitHub 520fc4b50a k9s: fix config files not generated correctly & improve options (#7262) 2025-06-22 22:55:09 -05:00
LesVuandAustin Horstman 6fa01d524b labwc: do not manage file when in default value(#7240) 2025-06-22 22:51:51 -05:00
LesVuandAustin Horstman 2fbd694fec labwc: Fix pipemenu(#7236) and icon in menu generation
Add the generation of icon and pipemenu
2025-06-22 22:51:51 -05:00
leiserfgandGitHub 3bd646138a nushell: Make sure the plugins are not garbage-collected (#7295) 2025-06-22 22:42:38 -05:00
Austin Horstman 7c35504839 tests/neovim: fix expected config
Use normalized store paths to not have to maintain the hash

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman a8e99a9608 tests/nix-init: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 373531850c tests/uv: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman fd41fc5fbf tests/numbat: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman c8c30aa316 tests/meli: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 3d045a92d6 tests/i3status-rust: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman c32df52a2f tests/himalaya: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 07e72705a1 tests/niriswitcher: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 65db5b85d0 tests/spotify-player: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 597d672e69 tests/neovide: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman a2231992dd tests/helix: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 975908d310 tests/clipcat: fix expected config
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Austin Horstman 19530b8d3c network-manager-applet: maintainer midirhee12 -> midischwarz12
https: //github.com/NixOS/nixpkgs/pull/418190
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
home-manager-ci[bot]andAustin Horstman 2d9c66ee6d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
  → 'github:NixOS/nixpkgs/08f22084e6085d19bcfb4be30d1ca76ecb96fe54?narHash=sha256-XE/lFNhz5lsriMm/yjXkvSZz5DfvKJLUjsS6pP8EC50%3D' (2025-06-19)
2025-06-22 12:47:26 -05:00
crasmandGitHub 39b7903eab helix: don't ignore extraConfig when no other settings (#7302)
Fix so that you can still generate `programs.helix.extraConfig` without
using `programs.helix.settings`. Useful particularly in the case of
`extraConfig = lib.readFile ./config.toml;`.
2025-06-22 10:03:39 -05:00
Florent CharpentierandGitHub 8638426397 hyprland: update wiki domain name (#7293)
As I noticed in
<https://github.com/nix-community/home-manager/pull/7277#issuecomment-2985781610>,
it seems hyprland changed its domain name from `hyprland.org` to
`hypr.land`. (The old domain redirects to the new one)

These changes are made by the following:
find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/hyprland\.org/hypr.land/g'
2025-06-18 22:41:02 -05:00
Austin HorstmanandGitHub 0f355844e5 tests/firefox: fix bookmarks test (#7292)
Not run in CI so didn't notice. We had a shared file. But, now attrset
and list differ in what they can generate. Separate the expected test
files.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-18 14:39:32 -05:00
Austin Horstman 85e68c6a38 tests/neovim: stub meta.teams
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-18 11:12:29 -05:00
Austin Horstman 70c289b54d i3status-rust: farlion -> workflow
maintainer entry renamed

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-18 11:12:29 -05:00
home-manager-ci[bot]andAustin Horstman df9fddf70c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3e3afe5174c561dee0df6f2c2b2236990146329f?narHash=sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU%3D' (2025-06-07)
  → 'github:NixOS/nixpkgs/9e83b64f727c88a7711a2c463a7b16eedb69a84c?narHash=sha256-v263g4GbxXv87hMXMCpjkIxd/viIF7p3JpJrwgKdNiI%3D' (2025-06-17)
2025-06-18 11:12:29 -05:00
Austin HorstmanandGitHub f754e377dc tests/yazi: manager -> mgr (#7289)
Forgot to update test when we updated examples.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-18 09:29:56 -05:00
Bryton HallandGitHub 28eef8722d vscode: fix version checks when using Windsurf (#7285) 2025-06-16 21:31:03 -05:00
0edffd088e firefox: allow separators in bookmarks (#7284)
Allow users to create separators in their Firefox bookmarks.

Co-authored-by: xaltsc <hey@xaltsc.dev>
2025-06-16 15:51:11 -05:00
DifferentandGitHub 1db3cb415d lib/strings: add PascalCase support for toCaseWithSeperator (#7282) 2025-06-16 13:49:41 -05:00
DerRockWolfandGitHub 66523b0efe thunderbird: support declaration of calendars (#5484)
Adds calendar support using the `accounts.calendar.accounts.*` options.
2025-06-15 19:21:02 -05:00
Aguirre MatteoandGitHub cef3e0adc0 maintainers: update aguirre-matteo email (#7279) 2025-06-15 18:45:17 -05:00
Austin HorstmanandGitHub 83030f0e4a ci: labeler issues permission (#7278)
Should resolve issue with needing to create labels.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-15 18:38:09 -05:00
Austin HorstmanandGitHub 676e40a246 sketchybar: inherit meta in finalPackage (#7276)
Since we're creating a new derivation, we drop the original package
attributes. Add our own meta.mainProgram to resolve those warnings.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-15 18:37:49 -05:00
MaeIsBadandGitHub 30b6daf872 kakoune: implement a final package option (#7275) 2025-06-15 17:23:27 -05:00
Shahar "Dawn" OrandGitHub 04672588c6 way-displays: support stateful configuration file (#7138)
This is good for when displays are not considered part of the home configuration and are instead considered ephemeral.
Great for laptops but I use it for my desktop as well.
2025-06-15 16:59:12 +02:00
awwpotatoandAustin Horstman dceefa87dc ncspot: make package nullable 2025-06-15 08:26:06 -05:00
awwpotatoandAustin Horstman 6e36b1be0b ncspot: adopt 2025-06-15 08:26:06 -05:00
c5f3451533 atuin: fix docs url (#7252)
* atuin: fix docs url

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>

---------

Co-authored-by: Paul Menhart <paul_menhart@genua.de>
Co-authored-by: Matthieu Coudron <886074+teto@users.noreply.github.com>
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-15 01:46:37 +02:00
Matthieu CoudronandGitHub 8fabeb9c14 fix meli eval warning (#7267) 2025-06-14 23:06:00 +02:00
Matthieu CoudronandGitHub 79dfd9aa29 meli: move freeformat settings to example (#7259)
these hardcoded freeformat settings dont add anything over the default,
worse they generate empty sections which can then clash with user included config (my usecase).
It's best to move those to example.
2025-06-13 15:25:19 +02:00
Robert Helgesson f111393987 ashell: minor description improvements 2025-06-13 10:07:01 +02:00
GliczyandGitHub 18f3a0d21c opensnitch-ui: add package option (#7260) 2025-06-12 20:50:43 -05:00
Devin DroddyandAustin Horstman 0215073a70 ashell: add module 2025-06-12 20:49:28 -05:00
Devin DroddyandAustin Horstman dd12be8603 maintainers: add justdeeevin 2025-06-12 20:49:28 -05:00
KieranandGitHub 09859234f8 zed-editor: don't add activation scripts if there is nothing to merge (#7254) 2025-06-12 20:47:44 -05:00
SamandGitHub 5ab15331c2 targets/darwin: fix ShowDate default description (#7256) 2025-06-12 20:46:23 -05:00
Austin HorstmanandGitHub faeab32528 ci: fix bars labeler (#7253)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-11 10:53:11 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
02040b7777 flake.lock: Update (#7251)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d3d2d80a2191a73d1e86456a751b83aa13085d7d?narHash=sha256-QuUtALJpVrPnPeozlUG/y%2BoIMSLdptHxb3GK6cpSVhA%3D' (2025-06-05)
  → 'github:NixOS/nixpkgs/3e3afe5174c561dee0df6f2c2b2236990146329f?narHash=sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU%3D' (2025-06-07)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-06-11 08:38:36 -05:00
Matthieu CoudronandGitHub 450f06ec3c meli: support include statement (#7248)
so one can mix nix generated and manual configs

Instead of using `readFile` on the generated file, we included the generated config to avoid IFD. Because this approach makes ~/.config/meli/config.toml less readable (it referecens another generated file) I disabled it when the user does not "include" personal config. This feels a bit hackish but this is the best way I could find to keep the best of both worlds.
2025-06-11 09:57:32 +02:00
Thierry DelafontaineandAustin Horstman 427c96044f codex: init 2025-06-09 22:33:16 -05:00
Thierry DelafontaineandAustin Horstman 7e3d76e7f7 maintainers: add delafthi 2025-06-09 22:33:16 -05:00
Rishi VoraandGitHub e9763eb195 niriswitcher: add module (#7246) 2025-06-09 22:30:27 -05:00
f26c378c3d Translations update from Hosted Weblate (#7244)
* Translate using Weblate (Basque)

Currently translated at 13.5% (5 of 37 strings)

Add translation using Weblate (Basque)

Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/eu/
Translation: Home Manager/Home Manager CLI

* Add translation using Weblate (Basque)

Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>

* Translate using Weblate (Basque)

Currently translated at 50.0% (8 of 16 strings)

Translate using Weblate (Basque)

Currently translated at 21.6% (8 of 37 strings)

Translate using Weblate (Basque)

Currently translated at 25.0% (4 of 16 strings)

Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/eu/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/eu/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

---------

Co-authored-by: Muxutruk <benat.eigurenzu@elorrieta-errekamari.com>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2025-06-09 22:29:31 -05:00
Evgeny ZislisandGitHub 1df816c407 fix: ensure newline after vim.cmd[[source...]] in neovim init.lua (#7219)
Fix an issue where the generated ~/.config/nvim/init.lua lacks a newline after the vim.cmd [[source ...]] directive. Without this newline, subsequent lua configuration is concatenated onto the same line, breaking lua syntax.

init.lua Before:

vim.cmd [[source /nix/store/...]]vim.opt.rtp:prepend(...)

After:

vim.cmd [[source /nix/store/...]]
vim.opt.rtp:prepend(...)
2025-06-09 22:10:54 +02:00
octvsandGitHub 74d196c994 papis: allow libraries to not to be defined (#7204)
papis allows setting configuration via local [1] or via a python file
[2]. A user can decide to define libraries via these methods, which
home-manager module won't allow. Shift where the check is done to allow
a config file with empty libraries.

Remove the previous assertion which is made unnecessary by this change.

[1]: https://papis.readthedocs.io/en/latest/configuration.html#local-configuration-files
[2]: https://papis.readthedocs.io/en/latest/configuration.html#python-configuration-file
2025-06-09 17:44:44 +02:00
Egor KonovalovandGitHub 35e1f5a7c2 mc: add midnight commander module (#7225) 2025-06-09 09:25:11 -05:00
Robert Helgesson eee140958a home-manager: fix integration tests 2025-06-09 16:08:02 +02:00
Aguirre MatteoandGitHub 2835e8ba0a nyxt: add module (#7232) 2025-06-08 11:27:00 -05:00
NukDokPlexandGitHub f23b0935a3 hypridle: add systemdTarget option (#7237) 2025-06-08 17:20:52 +02:00
Kristoffer Plagborg Bak SørensenandGitHub 06451df423 ghostty: only source fish shell integration script when shell is interactive (#7228)
The ghostty script adds hooks that are only
relevant in an interactive shell session.
2025-06-07 23:57:48 -05:00
Keenan WeaverandAustin Horstman 627157cceb ludusavi: modernize and clean-up 2025-06-07 23:55:54 -05:00
Keenan WeaverandAustin Horstman bc0012d036 ludusavi: add frequency option 2025-06-07 23:55:54 -05:00
Keenan WeaverandAustin Horstman 515ab1da57 ludusavi: fix icon on notification 2025-06-07 23:55:54 -05:00
Aguirre MatteoandGitHub bd8946c773 lazysql: add module (#7231) 2025-06-07 23:51:28 -05:00
home-manager-ci[bot]GitHubhome-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
980aece33a flake.lock: Update (#7235)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/910796cabe436259a29a72e8d3f5e180fc6dfacc?narHash=sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8%3D' (2025-05-31)
  → 'github:NixOS/nixpkgs/d3d2d80a2191a73d1e86456a751b83aa13085d7d?narHash=sha256-QuUtALJpVrPnPeozlUG/y%2BoIMSLdptHxb3GK6cpSVhA%3D' (2025-06-05)

Co-authored-by: home-manager-ci[bot] <214323736+home-manager-ci[bot]@users.noreply.github.com>
2025-06-07 23:47:28 -05:00
Mohamad FikriandGitHub 2d7d65f65b fish: fix the binds.*.erase option (#7186)
The `command` option is optional when the `erase` option is true,
because when in erase mode, bind does not require any other arguments
2025-06-06 15:57:26 -05:00
isabelandGitHub 1d595a5b64 zed-editor: allow for nullable package (#7220) 2025-06-06 15:51:16 -05:00
Nikita PedorichandGitHub 96482a538e keychain: warn about deprecated options (#7196)
Options --agents and --inherit have been depracated in Keychain 2.9.0
See https://github.com/funtoo/keychain/releases/tag/2.9.0 for more information
2025-06-06 09:43:34 -05:00
André SilvaandGitHub c18a767948 zed-editor: userKeymaps default to empty array (#7222) 2025-06-06 09:42:33 -05:00
Austin Horstman 812b43b45d tests/thefuck: explicit stubbing
Avoid the removal alias exception

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-06 09:11:58 -05:00
home-manager-ci[bot]andAustin Horstman b2483b45e6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/62b852f6c6742134ade1abdd2a21685fd617a291?narHash=sha256-R5HJFflOfsP5FBtk%2BzE8FpL8uqE7n62jqOsADvVshhE%3D' (2025-05-25)
  → 'github:NixOS/nixpkgs/910796cabe436259a29a72e8d3f5e180fc6dfacc?narHash=sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8%3D' (2025-05-31)

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-06 09:11:58 -05:00
Graham ChristensenandGitHub 76e9c6e14a lib/default.nix: remove inefficient second copy (#7221)
Using ./. forces Nix to copy the flake to the store a second time.
Using bulitins.path like this, forcing the name to be "source", reduces the extraneous copy.
2025-06-06 09:07:34 -05:00
Austin HorstmanandGitHub 91287a0e9d nixgl: remove alias (#7218)
https: //github.com/nix-community/home-manager/issues/6995

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-05 22:02:07 -05:00
Ladas552andGitHub 355c7d09ed chawan: fix example for settings (#7210)
as per cha-config, keybindings should be under section `page` and not `pager`.

Also replaced the line with an example from man page because the current one wasn't working properly
2025-06-05 21:50:12 -05:00
Keenan WeaverandGitHub bbb31d8352 ludusavi: fix import (#7205) 2025-06-05 21:45:14 -05:00
Jairo LlopisandGitHub 0ee810c839 zed-editor: respect user interactivity with settings and keymaps (#6993)
Merges frozen config from HM into dirty config.

Fixes https://github.com/nix-community/home-manager/issues/6835
2025-06-05 21:20:23 -05:00
Austin HorstmanGitHub@zimeg <zim@o526.net>
de8463dd3e zsh: add plugins.*.completions paths to fpath (#7197)
Autocompletion scripts and additional plugin functions are located in
specific directories that might not match the plugin source script but
need to be included in fpath before calling compinit.

An option to provide a path to these scripts is added to add the paths
to fpath before calling completionInit.

Co-authored-by: @zimeg <zim@o526.net>
2025-06-05 21:11:35 -05:00
YTG1234andAustin Horstman 68cc9eeb38 jellyfin-mpv-shim: merge settings with existing config file
The Nix-defined settings take priority over the existing settings, but
any new keys added by the user are preserved.
2025-06-05 16:46:42 -05:00
YTG1234andAustin Horstman 7707ebb05c jellyfin-mpv-shim: make sure the config file is read properly
jellyfin-mpv-shim has a bug, that causes it to not be able to read the
configuration file if it's not writeable (even though it never writes
anything).

This commit works around that by storing the actual link to the Nix
store in a different file, and making a writable copy in `conf.json`.

Ideally, this should be fixed either with a patch in nixpkgs or (even
better) upstream.
2025-06-05 16:46:42 -05:00
Rosario PulellaandGitHub 09b0a4b0da dconf: revert: dconf: Provide dconf (#7215)
Providing dconf via hm in this manner provided to be problematic for 
user with systems that were already providing dconf (like ubunut).

Revert ff73544e4a
2025-06-05 15:06:51 -05:00
jaredmontoyaandGitHub 13a45ede6c aichat: fix config example (#7212) 2025-06-05 08:45:29 -05:00
jaredmontoyaandGitHub 86b95fc1ed aichat: init (#7207)
aichat is an all in one CLI tool for AI interactions.
On first run it prompts you to create a config so I made a home manager module to do this declaratively.
2025-06-04 13:35:39 -05:00
octvsandGitHub ffab96a8b4 qutebrowser: null package support (#7203) 2025-06-04 16:57:32 +02:00
Anton MosichandGitHub 3830a21aa2 xdg.desktopEntries: Update outdated links in docs (#7201) 2025-06-04 14:05:41 +02:00
Piotr LewandowskiandGitHub 34a1308614 doc: add a missing subcommand (#7199) 2025-06-03 14:33:17 -05:00
Gergő GutyinaandGitHub bb846c031b dwm-status: run with --quiet (#7144) 2025-06-03 07:58:09 -05:00
Norbert MelzerandGitHub 593b0c667d doc: fix instructions for enabling flakes in NixOS (#7189) 2025-06-03 07:57:46 -05:00
Kenichi KamiyaandGitHub cb809ec1ff fzf: prefer source for Zsh integration (#7191)
fzf version 0.53.0 [1] and later now prefers using `source` for its Zsh
integration.

[1] https://github.com/junegunn/fzf/commit/030428ba43671cf951712de41be6d3bfb84117c3
2025-06-02 23:30:27 -05:00
Austin Horstman 5adc1a51a2 ci: use flake lock for tests
Ensure we don't have surprise breakages and can test against a specific
lock file.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-02 22:58:05 -05:00
Austin Horstman c3297d7721 tests: create no-big and ifd test outputs.
Allows flake access to override easier.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-02 22:58:05 -05:00
Austin Horstman 2ef52bcab5 tests: pass enableLegacyIfd arg
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-02 22:58:05 -05:00
Austin Horstman c7fdb7e90b tests/mako: test extraConfig
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-01 21:10:38 -05:00
Austin Horstman 6861cfa165 mako: remove criteria
No longer serves a purpose, was short lived and most people are either
using `settings` or will use `extraConfig`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-01 21:10:38 -05:00
Austin Horstman 654b686536 mako: add extraConfig back
Need ordered lines for some of mako config. Don't have time to update
generator to support it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-01 21:10:38 -05:00
Matt SturgeonandAustin Horstman 6abf27943b ci: set a more useful update PR body
The default body contains instructions for triggering GitHub Actions,
which aren't relevant when pushing the PR as a GitHub App.
2025-06-01 16:03:59 -05:00
Matt SturgeonandAustin Horstman 9882f43f9b ci: switch to a GitHub App
This will do actions as a bot user, but will still trigger CI.

Its tokens are short lived, so more secure than a PAT that doesn't
expire.
2025-06-01 16:03:59 -05:00
eyJhbandGitHub 5675a96868 home-cursor: sway depend on cfg.size instead of gtk.cursorTheme.size (#7176) 2025-05-31 19:31:59 -05:00
Austin HorstmanandGitHub 60e4624302 news: re-add dropped news entries (#7173)
During migration to new format and removing from the inline files. We
lost some entries.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-31 00:19:34 -05:00
Austin Horstman 6587238e40 lib: remove 22.11 deprecations
Several years since deprecation and removal.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-31 00:01:48 -05:00
Austin Horstman cc8896c321 ci: remove literalExpression step
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-31 00:01:48 -05:00
Austin Horstman 765ceb93d1 lib: remove literalExpression and literalDocBook logic
3 years old, not needed anymore.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-31 00:01:48 -05:00
Austin Horstman 7ccda8574f ci: labels dedupe and reorganize
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-30 23:41:50 -05:00
Austin Horstman 5118087a15 ci: sort label categories
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-30 23:41:50 -05:00
Austin Horstman b6bd7c629f ci: add more modules to labeler
Lots of missing modules from existing categories. Adding some more.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-30 23:41:50 -05:00
Matt SturgeonandGitHub 6d09fd37a7 ci: alternative fix for backport if condition (#7169)
Can't access secrets from if condition, so we'll explicitly check this
isn't a fork.
2025-05-30 20:28:34 -05:00
Austin HorstmanandGitHub b65126fa71 ci: fix backport if condition (#7167)
Can't access secrets from if condition.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-30 19:26:52 -05:00
Matt SturgeonandAustin Horstman 7c60ea0296 ci: add 'GitHub App' TODO to update workflow
Using a GitHub App is more secure and idiomatic than using a
Personal Access Token or SSH Deploy Key.

See https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs
and https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens
2025-05-30 18:40:49 -05:00
Matt SturgeonandAustin Horstman 9d2ae59579 ci: add backport workflow
Based on the workflow used by nixpkgs and others.
2025-05-30 18:40:49 -05:00
phucleeuwuandGitHub 379c9fb858 yazi: use mgr instead of manager in example (#7160)
Recent deprecation, show updated example.
2025-05-30 12:46:37 -05:00
Weblate (bot)andGitHub 6f0a6e7ba7 Update translation files (#7162)
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-05-30 12:45:20 -05:00
ckgxrgandGitHub 214f9bd3a6 linux-wallpaperengine: fix evaluation error when passing null (#7161) 2025-05-30 10:26:35 -05:00
Nick HassanandGitHub d800d198b8 podman: use quadlet source from file drv (#7102)
fixes potentially unwanted variable substitution
2025-05-30 10:25:03 -05:00
Alex HamiltonandGitHub d36ac1f0db hwatch: add module (#7158) 2025-05-30 10:16:26 -05:00
Robert Helgesson 482c306ef7 home-manager: update xgettext and PO files 2025-05-30 15:09:12 +02:00
Thomas MühlbacherandGitHub d3a3aee558 dconf: Fix Gio module variable breakage (#7146)
In some setups, this would cause missing Gio modules that cause e.g.
Nautilus to not be able to view the XDG trash, and potentially other
issues.

Fixes: ec8205c3 ("dconf: set env var")
Fixes: #7143
2025-05-30 07:57:34 -05:00
nakooandGitHub 4e9efaa68b misc: add librewolf native messaging hosts (#7127) 2025-05-29 21:07:27 -05:00
Patrick N.andGitHub 8a4b382627 kodi: make type for settings less restrictive (#5277)
Allow list of attrset in the kodi settings to be able to define path substitutions.
2025-05-29 19:13:10 -05:00
Mads Rumle NordstrømandGitHub 2f4db1cd5b yambar: add systemd service (#5469) 2025-05-29 19:12:57 -05:00
Austin HorstmanandGitHub da282034f4 darwinScrublist: update (#7157)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-29 09:41:17 -05:00
He ZhenxingandGitHub 95c988cf08 xsession: add xdg-desktop-autostart to requires of hm-graphical-session (#7108) 2025-05-28 22:39:21 -05:00
Mohamad FikriandGitHub 85a27991d5 fish: add binds option (#7121)
binds options is a wrapper of fish_user_key_bindings that contains
custom binds
2025-05-28 22:35:08 -05:00
MunsManandGitHub 13ed57aaa6 meli: adding the meli email client (#7111)
Meli email client integrated into the accounts.email.accouts settings.
2025-05-28 22:30:10 -05:00
Ivan Kirilov DimitrovandAustin Horstman 7d2fcc864e pywal: make kitty config appear at start to not override user vals
if the kitty config is at the end then it overrides the user-defined
values and it's not great
2025-05-28 22:03:23 -05:00
Ivan Kirilov DimitrovandAustin Horstman ad88262f06 kitty: make extraConfig obey mkOrder
this change makes kitty.extraConfig obey the lib.mkOrder function so
that text can be inserted at the right place.
2025-05-28 22:03:23 -05:00
Hoang NguyenandGitHub 115344f32b chromium: allow nullable package (#7149) 2025-05-28 21:58:20 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
02077149e2 flake.lock: Update (#7148)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D' (2025-05-23)
  → 'github:NixOS/nixpkgs/62b852f6c6742134ade1abdd2a21685fd617a291?narHash=sha256-R5HJFflOfsP5FBtk%2BzE8FpL8uqE7n62jqOsADvVshhE%3D' (2025-05-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-28 13:12:18 -05:00
9bf9b1ae00 Translate using Weblate (Persian) (#7150)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Persian)

Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fa/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fa/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Parsa Nobahari <89968726+ParsaNobahari@users.noreply.github.com>
2025-05-28 13:12:11 -05:00
Lyndon SancheandGitHub f5b12be834 polkit-gnome: Change After target (#7137)
Before this change, I was getting `cannot open display:` errors
2025-05-27 19:14:03 -05:00
repparwandGitHub ad22169efa jellyfin-mpv-shim: add module (#7129)
Init of service jellyfin-mpv-shim, emulating plex-mpv-shim already provided.
2025-05-27 19:10:18 -05:00
FlameopathicandGitHub 8cb8a04cb1 home-cursor: set hyprcursor size default (#7145) 2025-05-27 19:07:44 -05:00
EldolfinandGitHub d23d20f55d sway: add bindswitches option (#7095)
Adds the bindswitches option to the sway module.

Bindswitches allows you to run a sway command when a state changes (when a certain event occurs).
See https://github.com/swaywm/sway/wiki#clamshell-mode and sway(5) for more information

It was already possible to configure this through sway.extraConfig but I find this approach dirty as described by the Nix RFC 42, and there is currently no settings as it describes.
2025-05-25 21:46:49 -05:00
Ryan HoriguchiandGitHub a45222c731 superfile: add exiftool when metadata enabled (#7118)
Metadata option requires `exiftool` to work
2025-05-25 21:16:19 -05:00
Rosario PulellaandGitHub 03affdcbf2 dconf: Fix dconf config not apply correctly (#7130) 2025-05-25 20:39:22 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
901f8fef7f flake.lock: Update (#7125)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2795c506fe8fb7b03c36ccb51f75b6df0ab2553f?narHash=sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q%3D' (2025-05-20)
  → 'github:NixOS/nixpkgs/063f43f2dbdef86376cc29ad646c45c46e93234c?narHash=sha256-6m1Y3/4pVw1RWTsrkAK2VMYSzG4MMIj7sqUy7o8th1o%3D' (2025-05-23)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-25 09:21:39 -05:00
Austin Horstman c1e6710362 sketchybar: add includeSystemPath
allow accessing binaries from the system that might not be installable
through nixpkgs

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Austin Horstman c096c39afc sketchybar: config sourceFileOrLines
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Jacob BirkettandAustin Horstman abe66194b9 lib/types: add sourceFileOrLines
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Austin Horstman e4b0102f69 sketchybar: use finalpackage wrapper
Use finalPackage pattern with wrapper so that people who don't use the
service can benefit from the other options.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Austin Horstman 5dc3bc3368 sketchybar: add module
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-24 19:54:43 -05:00
Nikolaos KaraolidisandGitHub c3d48a17aa obsidian: add module (#6487)
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
2025-05-24 18:55:23 -05:00
Sefa EyeogluandGitHub cf9ff6d993 wayvnc: init (#7123)
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-05-24 18:38:54 -05:00
Sumner EvansandGitHub 8fc1e46ab6 github: remove Sumner as automatic assignee on issues (#7122)
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2025-05-24 15:42:23 -05:00
Austin HorstmanandGitHub 7419250703 treewide: convert package options to use mkPackageOption (#7116)
This commit converts `package = mkOption` declarations throughout the
codebase to use the more modern and consistent `lib.mkPackageOption`
function.

Key changes:
- Simple package options: `mkOption { type = types.package; default = pkgs.foo; }`
  becomes `lib.mkPackageOption pkgs "foo" { }`
- Package set options: Uses correct package set as first argument with
  `pkgsText` parameter (e.g., `lib.mkPackageOption pkgs.vimPlugins "plugin" { pkgsText = "pkgs.vimPlugins"; }`)
- Removes redundant descriptions that just restate the package name
- Preserves examples and extra context where meaningful
- Handles submodule plugin options properly with `null` defaults

This modernizes the option declarations and makes them more consistent
with current nixpkgs patterns while maintaining full backward compatibility.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-23 00:42:38 -05:00
Paul MeyerandGitHub a868570581 news: fix timestamp (#7109)
Signed-off-by: Paul Meyer <katexochen0@gmail.com>
2025-05-22 18:09:45 -05:00
Rosario PulellaandGitHub f9186c64fc Revert "fontconfig: Fix missing default fontconfig files (#7045)" (#7103)
This reverts commit 65d2282ff6.
2025-05-21 20:04:44 -05:00
Joaquín TriñanesandGitHub a69ebd9702 direnv: Fix default syntax for nushell integration (#7081)
After nushell/nushell#15654, the direnv integration fails due to default behaving differently when passing a closure.
2025-05-21 20:03:57 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6c2eb1e24c flake.lock: Update (#7101)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e06158e58f3adee28b139e9c2bcfcc41f8625b46?narHash=sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4%2BwYK4%3D' (2025-05-15)
  → 'github:NixOS/nixpkgs/2795c506fe8fb7b03c36ccb51f75b6df0ab2553f?narHash=sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q%3D' (2025-05-20)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-21 08:33:58 -05:00
Lin XianyiandGitHub 2468b2d355 files: show colliding files at bottom in checkLinkTargets (#5495)
Prevents the actual file collision errors from being
truncated in the systemd log
2025-05-20 21:11:16 -05:00
octvsandGitHub 29dda415f5 qutebrowser: add support for per domain settings (#7078)
Add `programs.qutebrowser.perDomainSettings` which let's one to set
configuration options for specific URLs [1].

It option doesn't check if the options passed to it are valid, it
translates the config to python code to be written on the file as is.
Mimicking the behaviour of `programs.qutebrowser.settings`.

Added a new test case `test-qutebrowser-url-settings` for testing the
implementation.

[1]: https://github.com/qutebrowser/qutebrowser/blob/bb7bbb6ead5b7412fa5828249d56e51c1b35cb5a/doc/help/configuring.asciidoc#per-domain-settings
2025-05-20 12:43:52 -05:00
awwpotatoandGitHub 3f591550a9 formatter: remove script, add treefmt.toml + keep-sorted (#7056)
currently ./format does a bunch of stuff with git that was only necessary for nixfmt but not nixfmt-tree, so I deleted it (just use treefmt command directly instead). I also added keep sorted to keep the really long module lists sorted (already used in nixpkgs).
2025-05-20 12:42:51 -05:00
Austin HorstmanandGitHub 559f6d36b3 news: add some more missing news items (#7097)
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-20 10:05:34 -05:00
xezo360hyeandGitHub d3f5d870e3 home-manager: add force option for gtk-2 config (#7073)
This adds gtk.gtk2.force enable option which maps directly onto home.files.${cfg2.configLocation}.force to allow overwrite of the gtkrc-2.0 file (workaround for bug #6188).
2025-05-20 10:04:16 -05:00
Rosario PulellaandGitHub 65d2282ff6 fontconfig: Fix missing default fontconfig files (#7045)
This adds the fontconfig's default files to
`home-path/etc/fonts/fonts.conf` and `home-path/etc/fonts/conf.d/*`
2025-05-20 08:22:08 -05:00
Damien CassouandAustin Horstman 2097441633 services.home-manager.autoExpire: add support for darwin 2025-05-20 08:10:57 -05:00
Damien CassouandAustin Horstman 04ebd2c422 services.home-manager.autoExpire: extract cleanup script to new variable 2025-05-20 08:10:57 -05:00
Damien CassouandAustin Horstman 382b34f656 services.home-manager.autoExpire: wrap systemd configuration within a isLinux condition 2025-05-20 08:10:57 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
45c2985644 ci: bump DeterminateSystems/update-flake-lock from 24 to 25 (#7091)
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 24 to 25.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v24...v25)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-version: '25'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-19 16:07:18 -05:00
Joshua ParkandRobert Helgesson 97118a310e flake-module: use toString primop 2025-05-18 12:56:15 +02:00
Robert Helgesson ee85cfc5c1 home-manager: add missing file 2025-05-18 11:07:58 +02:00
github-actions[bot]andRobert Helgesson 10d13a62e3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956?narHash=sha256-3e%2BAVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ%3D' (2025-05-10)
  → 'github:NixOS/nixpkgs/e06158e58f3adee28b139e9c2bcfcc41f8625b46?narHash=sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4%2BwYK4%3D' (2025-05-15)
2025-05-18 11:07:05 +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
Austin Horstman ae75532909 templates/nix-darwin: nixpkgs track nixpkgs-unstable
Recommended to follow nixpks-unstable with darwin.
2025-05-16 18:47:17 -05:00
Austin Horstman 5d13260881 treewide: lnl7 -> nix-darwin
Renamed recently.
2025-05-16 18:47:17 -05:00
awwpotatoandGitHub 74d31e1165 ptyxis: init module (#7075) 2025-05-16 15:29:26 -05:00
Michael HoangandGitHub d2263ce5f4 nix-darwin: use launchctl asuser now that activation runs as root (#7051)
https://github.com/nix-darwin/nix-darwin/pull/1341#discussion_r1989887502
2025-05-16 00:51:29 -05:00
Nick DeGrootandGitHub a1a72d18ee pgcli: init (#7072) 2025-05-15 22:50:09 -05:00
Damien CassouandAustin Horstman 098e365dd8 borgmatic: add darwin-specific documentation to services.borgmatic.frequency 2025-05-15 15:16:49 -05:00
Damien CassouandAustin Horstman 8ae36f8ea2 nix-gc: fix documentation 2025-05-15 15:16:49 -05:00
JessandGitHub dbc90cc3ae rclone: declarative mounts (#7060) 2025-05-15 13:33:51 -05:00
Jonathan BouchardandGitHub b022c9e3b8 vscode: allow specifying paths for VSCode JSON settings (#7055)
Enables users to provide paths to JSON files for VS Code settings,
tasks, and keybindings. This allows for more flexible configuration
management and reuse of existing configuration files instead of using inline configurations.
2025-05-15 13:32:46 -05:00
Timon SchellingandGitHub a99bddfe53 lapce: fix no argument hash for pluginFromRegistry (#7062)
The `hash` argument was mistakenly removed during dead code cleanup in #6985.

This argument is required by `fetchPluginTarballFromRegistry`, so `pluginFromRegistry` must pass it through.

To avoid future removals by `deadnix`, `pluginFromRegistry` now explicitly takes and forwards the `hash` argument.
2025-05-15 13:32:14 -05:00
Rosario PulellaandAustin Horstman ec8205c3d7 dconf: set env var 2025-05-15 13:30:08 -05:00
Rosario PulellaandAustin Horstman ff73544e4a dconf: Provide dconf package and dbus service file
With the dconf package and its dbus service file provided by 
home-manager, there is no need for it to be provided by the system.
2025-05-15 13:30:08 -05:00
Rosario PulellaandGitHub c310818dca mako: Fix missing dbus service file (#7065) 2025-05-15 13:28:43 -05:00
Damien CassouandAustin Horstman c09ccd7d39 services.borgmatic: add initial support for darwin 2025-05-15 13:07:13 -05:00
Damien CassouandAustin Horstman 34d44d7f1b services.borgmatic: wrap systemd configuration within a isLinux condition 2025-05-15 13:07:13 -05:00
Damien CassouandAustin Horstman 1c2fccef83 services.nix-gc: extract darwin agent interval code to new library file 2025-05-15 13:07:13 -05:00
Damien CassouandAustin Horstman 3b930bb653 services.nix-gc: improve error message when nix.gc.frequency is invalid on darwin
Previously, if an invalid value was passed, the build would fail with:

       error: attribute '"00:02:03"' missing
       at /nix/store/sz92b5gqi0ma61d18fwbihi8p37mkvir-source/modules/services/nix-gc.nix:69:5:
           68|     in
           69|     freq.${frequency};
             |     ^
           70|

There was an assertion that should have prevented this from happening
but the crash would happen before the assertion gets a chance to stop
the build with a nice error message.

This commit both gives the assertion a chance to trigger and improves
the assertion's error message.
2025-05-15 13:07:13 -05:00
Rosario PulellaandGitHub ad1e8bb782 dbus: Create with pacakges options (#7064)
This adds a module for dbus with only one option, `packages`.
The `dbus.packages` options allows users to specify packages to have
their dbus service files (from `/share/dbus-1/services`) linked to the
users dbus services directory (`$XDG_DATA_HOME/dbus-1/services/`),
effectively enabling the services.
2025-05-15 12:59:12 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
954615c510 flake.lock: Update (#7058)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/dda3dcd3fe03e991015e9a74b22d35950f264a54?narHash=sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ%2BTCkTRpRc%3D' (2025-05-08)
  → 'github:NixOS/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956?narHash=sha256-3e%2BAVBczosP5dCLQmMoMEogM57gmZ2qrVSrmq9aResQ%3D' (2025-05-10)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-05-14 22:28:34 -05:00
andre4ik3andGitHub 02ea79853c emacs: respect defaultEditor on Darwin (#7063)
Currently on Darwin, services.emacs.defaultEditor = true isn't respected, as the variable is only configured on Linux.

This PR simply moves the variable out to a common block, so it's applied on all platforms.
2025-05-14 22:27:36 -05:00
Thiago Kenji OkadaandGitHub 6bf057fc83 zsh: do not duplicate zsh.{profile,login,logout,env}Extra in prezto (#7061)
In #7057 changed the definition of how the prezto files where loaded
(from using `.source` to `.text`) and also manually add the text from
`zsh.{profile,login,logout,env}Extra` files to the prezto definitions,
but the last part was unnecessary and now we have duplicates inside the
file.

This commit fixes it.
2025-05-14 07:30:51 -05:00
Thiago Kenji OkadaandAustin Horstman 7c1cefb983 zsh: avoid IFD while sourcing prezto 2025-05-13 19:59:12 -05:00
Thiago Kenji OkadaandAustin Horstman 5f36563a5c zsh: consider zsh.{profile,login,logout,env}Extra in prezto
Right now the `zsh.prezto` module ignores the contents of the
`zsh.{profile,login,logout,env}Extra` options, so it means that if you
try to set, e.g., `zsh.profileExtra = "something";` this option will be
(silently) ignored.

This commit fixes another issue: since the main `zsh` module sets
`home.file."${relToDotDir".zshenv"}".text` while `zsh.prezto` set the
same file using `.source`, `zsh.prezto` would have priority so the
environment variables from Home-Manager would not be loaded in non-NixOS
systems. Now that we are using `.text` for both, the issue is fixed.
2025-05-13 19:59:12 -05:00
awwpotatoandGitHub b44c39cf46 foliate: fix theme settings example (#7053) 2025-05-13 19:06:18 -05:00
awwpotatoandGitHub 8d832ddfda foliate: init (#7049) 2025-05-13 12:05:32 -05:00
Austin Horstman df556f2a17 tests/mako: add a original deprecation test
Make sure old options still work
2025-05-13 09:41:11 -05:00
Austin Horstman 78ad8e3c31 tests/mako: add a deprecation test
Make sure old criteria still works
2025-05-13 09:41:11 -05:00
Austin Horstman 0be2c246e3 mako: deprecate criteria option
This commit adds proper deprecation warnings and documentation for the 'criteria' option, guiding users to use the more flexible 'settings' option with nested attributes instead.

- Added warning message when users use the deprecated option

- Updated documentation with examples showing the new approach
2025-05-13 09:41:11 -05:00
Austin Horstman dc5899978f services/mako: refactor settings to support INI sections
This commit refactors the mako module to properly handle mako INI-style
configuration with sections:

1. Enhanced the `settings` option to support both global settings and
nested sections

2. Update custom INI generator that:
   - Properly formats global settings and sections
   - Adds appropriate newlines between sections

This change allows users to define both global settings and criteria
sections
in a single `settings` attribute, resulting in cleaner and more
intuitive configuration.
2025-05-13 09:41:11 -05:00
awwpotatoandGitHub 535a541b42 halloy: fix themes example (#7046) 2025-05-12 22:18:52 -05:00
awwpotatoandGitHub 012cc9e166 halloy: add note about server being required (#7047)
halloy isn't functional if there aren't any servers configured
2025-05-12 22:18:20 -05:00
awwpotatoandGitHub 665c49e0c2 gnome-terminal: add package option (#7048) 2025-05-12 22:17:49 -05:00
Austin Horstman 628d8cfa54 news: migrate news entries to YYYY/MM directory structure
Move all inlined news entries from news.nix into separate files
organized
by year and month. This makes the news system more maintainable and
easier to navigate.

- Extract 202 inlined entries to individual files in YYYY/MM directory
structure
- Update news.nix to only contain the module definition
- Use recursive directory traversal to find all news entries
2025-05-12 22:14:03 -05:00
Austin Horstman bc13c13ed7 news: reorganize news into YYYY/MM directory structure
- Update news.nix to recursively search for news entries in
subdirectories
- Update create-news-entry.sh to place new entries in YYYY/MM/
directories
- Move existing 2025 news entries to the new structure

This makes the news directory more organized and easier to navigate.
2025-05-12 22:14:03 -05:00
jaredmontoyaandGitHub f0a7db5ec1 direnv: update nushell env conversion logic (#7015) 2025-05-12 15:28:52 -05:00
awwpotatoandGitHub 0b24658ec0 halloy: add themes option (#7043) 2025-05-12 13:08:49 -05:00
pancho horrilloandGitHub 5879531462 wayprompt: tweak example (#7040)
Show that the hex values can be entered without the '0x' prefix.
2025-05-12 12:14:27 -05:00
Austin Horstman fb061f555f misc: add news entries for March modules
Add detailed news entries for the following modules:
- services.skhd (macOS hotkey daemon) - Darwin-only
- services.jankyborders (macOS window borders) - Darwin-only
- programs.distrobox (container manager) - Linux-only
2025-05-11 22:49:04 -05:00
Austin Horstman 0083d901a3 misc: add news entries for April modules
Add detailed news entries for the following modules:
- programs.onedrive (cloud sync) - Linux-only
- programs.rmpc (MPD client)
- programs.kickoff (Wayland launcher) - Linux-only
- programs.mpvpaper (video wallpaper) - Linux-only
2025-05-11 22:49:04 -05:00
Austin Horstman 4a7311c235 misc: add news entries for May modules
Add detailed news entries for the following modules:
- programs.halloy (IRC client)
- programs.waveterm (terminal)
- programs.lutris (gaming platform)
- programs.sway-easyfocus (window selector)
- programs.i3bar-river (status bar)
- programs.onagre (app launcher)
- programs.visidata (data tool)
- services.clipcat (clipboard manager)
2025-05-11 22:49:04 -05:00
awwpotatoandGitHub c74665abd6 bacon: add prefs location to settings decription (#7030) 2025-05-11 19:29:02 -05:00
jaredmontoyaandAustin Horstman 7a3f3e5507 misc: fix mozilla native messaging hosts 2025-05-11 18:53:40 -05:00
jaredmontoyaandAustin Horstman a48fecda09 files: add home.file.<name>.ignorelinks 2025-05-11 18:53:40 -05:00
Aguirre MatteoandGitHub 910292fe34 halloy: add module (#7034) 2025-05-11 18:52:09 -05:00
Alex HamiltonandAustin Horstman ecb2162422 numbat: add module
Numbat is a scientific calculator with full support for physical units.
2025-05-11 18:51:14 -05:00
Alex HamiltonandAustin Horstman 563e1b6cb0 maintainers: add Aehmlo 2025-05-11 18:51:14 -05:00
awwpotatoandGitHub 5daf23a38f zellij: add themes option (#7031) 2025-05-11 18:47:55 -05:00
Adolfo Jayme BarrientosandRobert Helgesson ff915842e4 Translate using Weblate (Catalan)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Adolfo Jayme Barrientos <fitojb@ubuntu.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translation: Home Manager/Home Manager CLI
2025-05-11 18:43:21 +02:00
github-actions[bot]andRobert Helgesson 6991569cb7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3730d8a308f94996a9ba7c7138ede69c1b9ac4ae?narHash=sha256-7%2BpG1I9jvxNlmln4YgnlW4o%2Bw0TZX24k688mibiFDUE%3D' (2025-05-05)
  → 'github:NixOS/nixpkgs/dda3dcd3fe03e991015e9a74b22d35950f264a54?narHash=sha256-Ua0drDHawlzNqJnclTJGf87dBmaO/tn7iZ%2BTCkTRpRc%3D' (2025-05-08)
2025-05-11 10:04:40 +02:00
awwpotatoandGitHub de496c9ccb television: add support for channels (#7026) 2025-05-10 20:08:10 -05:00
Robert Helgesson 9ef92f1c6b waveterm: fix markdown in description 2025-05-10 23:30:17 +02:00
Maya the beeandAustin Horstman 13289f0642 services.autorandr: improve systemd unit description 2025-05-10 16:16:08 -05:00
Maya the beeandAustin Horstman 1875b5a160 services.autorandr: improve configurability
Add `matchEdid` and `extraOptions` for configuration.
2025-05-10 16:16:08 -05:00
Maya the beeandAustin Horstman 555f88ad34 services.autorandr: add package option 2025-05-10 16:16:08 -05:00
Maya the beeandAustin Horstman 4f44221724 services.autorandr: add lowlevl to maintainers 2025-05-10 16:16:08 -05:00
Maya the beeandAustin Horstman b96c332dce maintainers: add lowlevl 2025-05-10 16:16:08 -05:00
Austin Horstman 12e6738596 docs: remove recommendation to wait for maintainers for news
We dont have merge conflicts with new method of creating news entries.
2025-05-10 11:00:39 -05:00
Austin Horstman 6fd639dbe5 docs: update news.md to highlight create-news-entry command
Update the documentation to inform users they can create news entries
themselves using `nix run .#create-news-entry` without waiting for
maintainers. This makes the contribution process more self-service
and improves the documentation to match the recently exposed flake
package.
2025-05-10 11:00:39 -05:00
Austin Horstman c4bd004d9d flake.nix: expose create-news-entry as a package
Easier to `nix run .#create-news-entry` instead of finding the location
to run.
2025-05-10 11:00:39 -05:00
Austin HorstmanandGitHub e95a7c5b6f Revert "direnv: update nushell env conversion logic (#6999)" (#7014)
This reverts commit f2b5bf55aa.
2025-05-09 08:48:41 -05:00
Aguirre MatteoandGitHub b706037a60 distrobox: make systemd unit optional (#7007)
This PR adds an option enableSystemdUnit to the Distrobox module to make the Systemd Unit optional, and hard coded as is now.
2025-05-09 08:33:12 -05:00
Benjamin TanandGitHub e9bd9568db jujutsu: store configuration in $XDG_CONFIG_HOME for all platforms (#6994)
Following https://github.com/jj-vcs/jj/pull/6300, Jujutsu has deprecated
support for configuration files in `~/Library/Application Support` for
darwin. The XDG-standard configuration location can be used instead, for
all platforms.
2025-05-09 08:27:49 -05:00
KiraandGitHub f2b5bf55aa direnv: update nushell env conversion logic (#6999)
Direnv exports PATH as a string, nu expects it to be a list and breaks
some functionality like external command completion. This requires
nushell 0.104.0, which is merged into nixpkgs-unstable.
2025-05-09 08:23:08 -05:00
pancho horrilloandGitHub 3be7c80a11 wayprompt: add news entry for linux (#7009) 2025-05-09 08:22:25 -05:00
pancho horrilloandGitHub cbd8e8e9a0 PR_TEMPLATE: update example for module maintainer (#7011)
Update the permalink to show a version of the module that follows
current best practices (no `with lib;`, and nixfmt’d).
2025-05-09 08:21:59 -05:00
B1kkuandGitHub 8f723d6135 lutris: fix runners not working due to wrong config name (#7008) 2025-05-09 08:21:19 -05:00
Aguirre MatteoandGitHub 9e10d73cea onlyoffice: use pkgs.formats and use mkIf in config file generation (#7006) 2025-05-09 08:20:05 -05:00
Aguirre MatteoandGitHub ce1ba0e9f3 neovide: fix error when no settings are declared (#7005) 2025-05-09 08:19:03 -05:00
Aguirre MatteoandGitHub 8d2ee39915 waveterm: add module (#7004) 2025-05-09 08:17:40 -05:00
pancho horrilloandGitHub 5d428b68dd docs: update filename of generated HTML manual (#7010)
Since 613dbb35db, the manual
produces an `index.xhtml` file, instead of a plain `index.html`.
2025-05-09 08:17:06 -05:00
B1kkuandGitHub a51598236f lutris: add module (#6964)
Add any number of wine packages
    Add any number of proton packages
    Link runners directly from nix instead of using lutris.
    Specify the steam package lutris should use.
    Extra packages passed to lutris (mainly since it's often missing essential things, such as umu-launcher)
2025-05-08 13:01:35 -05:00
pancho horrilloandGitHub 3c59c5132b wayprompt: init module (#7002)
A module for configuring Wayprompt¹, a password-prompter for
Wayland, that can be used as a pinentry program for GnuPG (and more).

Provides a 'programs.wayprompt.settings', following RFC 42².

¹: https://git.sr.ht/~leon_plickat/wayprompt
²: https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2025-05-08 10:45:24 -05:00
Austin HorstmanandGitHub c84396bda0 rofi: modes optional (#7003)
Don't include the modes option if it hasn't been used.
2025-05-08 10:45:00 -05:00
Shahar "Dawn" OrandGitHub cea975d46d rofi: modes option (#6115)
Adds `programs.rofi.modes` option.
For the tiny convenience of supporting the custom mode syntax.
2025-05-08 08:16:34 -05:00
PlumeandGitHub 2ede089d11 git: configure patdiff through [patdiff] git section (#6978)
This adds the ability to enable the patdiff program as git differ.
Website of the project: https://opensource.janestreet.com/patdiff/
2025-05-08 08:15:51 -05:00
pancho horrilloandGitHub 50894120e8 modules/modules.nix: drop duplicate entry (#7000)
This partially reverts a0461b67ff,
where a duplicate entry for `./programs/vim.nix` was erroneously added.
2025-05-08 06:23:20 -05:00
Darren GibsonandGitHub ec71b51628 sbt: Scoping credentials to ThisBuild (#6026)
In Sbt (prior to 2.0) a sbt key not scoped to `ThisBuild` will always be at the project level, rather than at the build level.
In order to do some things, like use a private repository configured by sbt with sbt-scalafix, we need the credentials scope to the build, otherwise the credentials show as non-existent.
2025-05-07 18:40:35 -05:00
ScribblyBirbandGitHub a8e2d08ffd alot: allow commas in maildir path (#6989)
Previously, maildir path was not escaped in any way, so using a path with commas
lead to a TypeError:

```
TypeError: expected string or bytes-like object, got 'list'
```
2025-05-07 18:17:09 -05:00
Andrew MarshallandAustin Horstman 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 MarshallandAustin Horstman ae44268529 prezto: Remove unnecessary import-from-derivation 2025-05-07 10:34:18 -05:00
RamsesandGitHub 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-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
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
awwpotatoandGitHub 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
awwpotatoandGitHub 35535345be television: add shell integrations (#6983) 2025-05-06 21:35:55 -05:00
Aguirre MatteoandGitHub 60964ff845 mako: fix example config (#6987) 2025-05-06 21:06:15 -05:00
Aguirre MatteoandGitHub 8a318641ac sway-easyfocus: add module (#6976) 2025-05-04 21:46:28 -05:00
Austin HorstmanandGitHub 5f1f472565 mako: use ini atom type (#6977)
Fix backwards compatibility
2025-05-04 21:44:38 -05:00
Nick K.andGitHub 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
awwpotatoandGitHub 8167af657c mako: fix criterias typo (#6968) 2025-05-04 09:17:09 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
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 MatteoandGitHub 621986fed3 i3bar-river: add module (#6967) 2025-05-03 19:12:02 -05:00
Aguirre MatteoandGitHub 64f7d5e6b9 wofi: allow path to style.css (#6966) 2025-05-03 19:11:10 -05:00
Aguirre MatteoandGitHub 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 HorstmanandGitHub 94f4c66660 tests/darwinScrublist: add more packages (#6965) 2025-05-03 19:08:12 -05:00
Ihar HrachyshkaandGitHub 75268f6252 tests: enable all firefox tests on darwin (plus derivations) (#6960) 2025-05-03 10:51:18 -05:00
Ihar HrachyshkaandGitHub 929f8ee836 thunderbird: deprecate darwinSetupWarning option (#6531)
nixpkgs support thunderbird for darwin now
2025-05-03 10:40:34 -05:00
MithicSpiritandGitHub 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 MatteoandGitHub 123297c57e onagre: add module (#6958) 2025-05-02 22:09:45 -05:00
Dawid CiężarkiewiczandRobert Helgesson 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 MatteoandGitHub d6b0c05457 visidata: add module (#6956) 2025-05-02 11:14:19 -05:00
Joaquín TriñanesandGitHub 355a6b937d nushell: throw instead of abort (#6870) 2025-05-02 08:45:16 -05:00
JessandGitHub 2eabb26d08 restic: allow the convenience script to source environmentFile (#6947) 2025-05-02 08:23:57 -05:00
Aguirre MatteoandGitHub f15be4feb6 clipcat: add module (#6946) 2025-05-02 08:22:35 -05:00
milanglacierandGitHub c5cad190ba zsh: update doc to show how to add initContent at multiple location. (#6945) 2025-05-02 08:18:11 -05:00
Aguirre MatteoandGitHub 669e813c75 element-desktop: add module (#6935) 2025-05-02 08:17:24 -05:00
Marien ZwartandRobert Helgesson 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 ZwartandRobert Helgesson 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 horrilloandGitHub 81431b6d6f gpg-agent: fix typo (#6950)
See https://github.com/NixOS/nixpkgs/blob/46e634be05ce9dc6d4db8e664515ba10b78151ae/pkgs/by-name/wa/wayprompt/package.nix#L60
2025-05-01 15:11:25 -05:00
JessandAustin Horstman 5f217e5a31 restic: change service type from simple to oneshot
Fixes #6930
2025-04-30 14:19:59 -05:00
JessandAustin Horstman 7f301a4d96 restic: fix certain integration tests 2025-04-30 14:19:59 -05:00
June SteppandGitHub 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
nakooandGitHub c9c2c1a14e kime: fix systemd service (#6911) 2025-04-30 14:18:20 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
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 EdwardsandGitHub 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
isabelandGitHub 84d262115e nixos,darwin: add osClass (_class) as a specialArg (#6906) 2025-04-29 20:37:59 -05:00
Austin HorstmanandGitHub 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
octvsandGitHub 1ad1232399 rclone: make secret injection non-interactive (#6919)
Pass `--non-interactive` flag to `rclone config update` calls so that an
incomplete config is not used, resulting in failure on some remotes,
for example gdrive.
2025-04-28 21:38:55 -05:00
awwpotatoandGitHub c803a38927 nh: add path option for flake (#6898) 2025-04-28 21:27:29 -05:00
zowoqandGitHub 4d2baba75e espanso: fix alias in news (#6931) 2025-04-28 21:20:13 -05:00
Aguirre MatteoandGitHub d0d9d0a145 mpvpaper: add module (#6926)
Provides a module for configuring mpvpaper a video wallpaper program for wlroots based wayland compositors. It provides options for setting the 'pauselist' and 'stoplist'.
2025-04-28 11:49:19 -05:00
Thiago Kenji OkadaandGitHub c54a8ab0d2 rofi: remove thiagokokada from maintainers (#6928)
I am not using `rofi` nowadays and people keep pinging me about issues in this module.
2025-04-28 10:13:12 -05:00
Benedikt M. RipsandGitHub 6f974faa19 gh: add hosts option (#6925)
Add a programs.gh.hosts option that -- similar to programs.gh.settings -- gives structured access to $XDG_CONFIG_HOME/gh/hosts.yml.
2025-04-28 10:12:47 -05:00
Aguirre MatteoandGitHub 69c60b035e kickoff: add module (#6918) 2025-04-28 09:47:38 -05:00
Austin Horstman be7cf1709b lsd: add package option 2025-04-27 22:15:34 -05:00
Austin Horstman 77f849c114 lsd: refactor module 2025-04-27 22:15:34 -05:00
Austin Horstman cf351071fb lsd: enableAliases -> enableShellIntegration
Allow granular control of alias creation utilizing our shell integration
options.
2025-04-27 22:15:34 -05:00
Austin HorstmanandGitHub 9c46dc881c mkFirefoxModule: support wrapped darwin derivations (#6913)
Wrapped firefox support was added for Darwin. We can now pass the extra parameters to wrap firefox on Darwin.
2025-04-27 20:15:17 -05:00
Austin Horstman 7b2aae3fb3 eza: add tests 2025-04-27 14:30:15 -05:00
Austin Horstman edaeeda264 eza: default disable nushell integration again
Reverting default behavior for this module again since the nushell
integration causes a breaking behavior with the `ls` alias.
2025-04-27 14:30:15 -05:00
Gugu72andGitHub 2a264c17d5 zsh: add type to zprof.enable option (#6916) 2025-04-27 14:29:57 -05:00
Patrick StevensandGitHub adb3fbc584 neomutt: use correct neomutt in config file (#6915) 2025-04-27 14:27:52 -05:00
phanirithvijandAustin Horstman 0fbd8207e9 news: forward args to file news entries
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-04-27 11:36:10 -05:00
phanirithvijandAustin Horstman 9c3b33c2a7 espanso: add wayland test
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-04-27 11:36:10 -05:00
phanirithvijandAustin Horstman 6ed700bfe4 espanso: fix test
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-04-27 11:36:10 -05:00
phanirithvijandAustin Horstman 29fce40e13 espanso: add crossplatform support
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-04-27 11:36:10 -05:00
phanirithvijandAustin Horstman 1d2f0b3d4b espanso: add phanirithvij as maintainer
Signed-off-by: phanirithvij <phanirithvij2000@gmail.com>
2025-04-27 11:36:10 -05:00
Aguirre MatteoandGitHub 50bb714a82 rmpc: add module (#6910) 2025-04-27 09:32:40 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
ef47f36450 flake.lock: Update (#6912)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c11863f1e964833214b767f4a369c6e6a7aba141?narHash=sha256-GfpyMzxwkfgRVN0cTGQSkTC0OHhEkv3Jf6Tcjm//qZ0%3D' (2025-04-21)
  → 'github:NixOS/nixpkgs/f771eb401a46846c1aebd20552521b233dd7e18b?narHash=sha256-ITSpPDwvLBZBnPRS2bUcHY3gZSwis/uTe255QgMtTLA%3D' (2025-04-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-27 08:54:27 -05:00
Aguirre MatteoandGitHub 2f5819a962 onedrive: add module (#6907) 2025-04-26 16:40:10 -05:00
CoolioandGitHub 4d2d322317 thefuck: Add alias option (#6909)
Added an alias option supported by bash, zsh, fish, and nushell integration
2025-04-25 19:39:49 -05:00
B1kkuandGitHub 542078066b wezterm: don't create config if extraConfig is empty, and don't create one by default (#6908)
Tests updated to check the file wasn't created when no config is
provided.
2025-04-25 10:11:18 -05:00
Andrew MarshallandAustin Horstman 98f4fef7fd format: Fix failing due to no cache access
We change `$HOME` to something not writable, but newer treefmt fails if
it cannot write. We could use a tmpdir, but there’s not much point to a
cache that will be removed, as just add the flag to not use the cache.
2025-04-24 23:33:54 -05:00
Andrew MarshallandAustin Horstman dedfde15f6 format: Set {,XDG_CONFIG_}HOME to empty dir rather than empty string
As empty string might get interpreted as `/`, and thus probably has
things in it. This dir is always(?) present on *nix systems, empty, and
owned by root, so ideal and typical for this sort of usage.
2025-04-24 23:33:54 -05:00
K900andRobert Helgesson abfad3d295 treewide: substituteAll -> replaceVars/substitute
substituteAll is now officially deprecated.
2025-04-24 13:40:11 +02:00
awwpotatoandGitHub d31710fb2c fcitx5: fix iniFormat usage (#6899) 2025-04-23 15:10:12 -05:00
awwpotatoandGitHub 6d1f834ca6 fcitx5: add upstream options (#6892) 2025-04-23 11:51:43 -05:00
awwpotatoandGitHub 59de2dfb0a workflows: only run conflicts and update flake on main repo (#6893) 2025-04-23 11:25:45 -05:00
Austin HorstmanandGitHub b7527e2daf vesktop: only generate settings when configured (#6897)
Prevent generating empty settings files that prevent using the
application's writable settings files.
2025-04-23 10:21:41 -05:00
awwpotatoandGitHub ff6adf83b9 input-method: fix enable condition (#6896) 2025-04-23 10:11:31 -05:00
Austin Horstman 6c132a098e tests/darwinScrublist: add more darwin stubs
Some more cache hits
2025-04-23 06:47:51 -07:00
Austin Horstman a3e713cb82 tests/darwinScrublist: move darwin scrub list to new file
Getting larger, can move to new file to reduce clutter in default
2025-04-23 06:47:51 -07:00
Austin Horstman b01a941184 tests/default: add more darwin stubs
Some more cache hits
2025-04-23 06:47:51 -07:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
814521fdc1 flake.lock: Update (#6891)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef?narHash=sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU%3D' (2025-04-17)
  → 'github:NixOS/nixpkgs/c11863f1e964833214b767f4a369c6e6a7aba141?narHash=sha256-GfpyMzxwkfgRVN0cTGQSkTC0OHhEkv3Jf6Tcjm//qZ0%3D' (2025-04-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-23 08:23:46 -05:00
awwpotatoandAustin Horstman 1d0e13904b i18n.inputMethod: add awwpotato as maintainer 2025-04-22 20:48:01 -07:00
awwpotatoandAustin Horstman 585bae4bbb i18n.inputMethod: align enable option with nixos
see: https://github.com/NixOS/nixpkgs/pull/310708
2025-04-22 20:48:01 -07:00
awwpotatoandGitHub 7ef3137035 vesktop: fix config path on darwin (#6889) 2025-04-22 22:41:31 -05:00
Austin HorstmanandGitHub 97a62d8eef tests/default: add zoxide darwin stub (#6888) 2025-04-22 21:37:14 -05:00
awwpotatoandGitHub 68bc080cdf fcitx5: refactor logic (#6886)
* fcitx5: use mapAttrsToList instead of mapAttrs + attrValues

* fcitx5: refactor xdg dataFile logic
2025-04-22 21:20:08 -05:00
Austin HorstmanandGitHub f1aabf1deb zsh: deprecate initLocation options in favor of initContent (#6841)
https://github.com/nix-community/home-manager/pull/6479 introduced a
more comprehensive option that allows fine tuning location of zsh
config. Encourage using that over the predetermined locations.
2025-04-22 20:45:44 -05:00
Austin HorstmanandGitHub c42f04c83f mkFirefoxModule: revert userChrome changes (#6887)
Reverting all the recent userChrome changes because of too many issues
and bikeshedding.
2025-04-22 20:44:48 -05:00
Matthieu CoudronandGitHub b99e3e46b8 ci: fixed redundant rule (#6883) 2025-04-22 17:52:24 -05:00
FlameopathicandGitHub 6899001a76 fcitx5: add themes and classicUiConfig options (#6876) 2025-04-22 14:30:45 -05:00
Benedikt M. RipsandGitHub c9433ae62f keepassxc: register as native messaging host (#6879)
Register KeepassXC as a native messaging host in supported browsers to integrate with KeepassXC's browser extension.  See https://discourse.nixos.org/t/keepassxc-browser-extension-integration/39553 for more information.
2025-04-22 11:42:04 -05:00
Matthieu CoudronandGitHub b925865c74 ci: label msmtp changes with "mail" (#6881) 2025-04-22 18:32:11 +02:00
zincentimeterandGitHub 342b3e3e6d msmtp: rename environment variables (#6839)
I've started seeing $HOME/log $HOME/.msmtp.queue.log populated after using
msmtp via neomutt. Although the latter is not, the former is a bit
annoying. Home-manager already tries to avoids this 1, so I was curious to why
this occured.

Interestingly this didn't happen until a month ago, so I've tried to git blame my way out of the problem both on my configuration and on upstream
home-manager however I didn't find a fitting change on the suspected dates.

Home-manager uses2 msmtpq script3 to send emails through which manages
also the queue of mails to be sent. As stated on upstream source of the script
4, it looks for MSMTPQ_Q and MSMTPQ_LOG variables to decide where to

https://git.marlam.de/gitweb/?p=msmtp.git;a=blob_plain;f=scripts/msmtpq/msmtpq;hb=HEAD
2025-04-22 17:22:16 +02:00
Benedikt M. RipsandGitHub cf0c5e0105 xdg-autostart: fix runCommandNoCCLocal deprecation (#6880) 2025-04-22 09:05:27 -05:00
Johan EklundandGitHub ce8dc1f77a xsettingsd: Remove erroneous lib. insertion (#6877) 2025-04-22 07:34:49 -05:00
Austin HorstmanandGitHub 81541ea36d lorri: fix missing makeSearchPath (#6875) 2025-04-21 14:55:32 -07:00
Josh HeinrichsandGitHub 42d90297b3 git: support maintenance on darwin (#6868) 2025-04-21 14:25:57 -07:00
awwpotatoandGitHub 22b326b42b television: add module (#6866) 2025-04-21 12:26:20 -05:00
be4e5ec62c nix-init: add module (#6864)
Co-authored-by: uncenter <47499684+uncenter@users.noreply.github.com>
2025-04-21 12:25:56 -05:00
awwpotatoandGitHub 08b85bd000 vesktop: add support for multiple themes (#6860) 2025-04-21 12:25:22 -05:00
Joaquín TriñanesandGitHub ca8367117a atuin: Fix deprecated string type warning (#6861) 2025-04-21 12:23:08 -05:00
Austin HorstmanandGitHub ddda2b1f20 direnv: only set sessionVariable for old version (#6842)
Discussion and retesting in
https://github.com/NixOS/nixpkgs/pull/398717. The env variable is
actually not needed when you use the config.
2025-04-21 11:19:27 -05:00
Austin HorstmanandGitHub 82ee14ff60 treewide: remove with lib (#6871)
Remove from services.
2025-04-21 11:00:59 -05:00
alois31andGitHub 6695b1d477 kconfig: escape arguments properly (#6867)
Previously shell arguments were not escaped properly, leading to breakage on
group names containing characters with special meaning to the shell (in
particular spaces); theoretically keys containing single quotes would be
affected too. Escape all arguments passed to the shell properly instead.
2025-04-21 17:20:07 +02:00
Austin Horstman 3fbe9a2b76 tests/ranger: null package
Stubbing not working with the default cfg.finalPackage. Pass null to
reduce closure size
2025-04-20 20:10:07 -07:00
Austin Horstman 63bfbf55b6 ranger: nullable package support 2025-04-20 20:10:07 -07:00
OughieandAustin Horstman 14eda3db4e clock-rs: add module
clock-rs is a modern, digital clock that effortlessly runs in your terminal
2025-04-20 20:02:06 -07:00
Austin Horstman ac21ae3716 maintainers: add Oughie 2025-04-20 20:02:06 -07:00
Rouven SeifertandGitHub b0cc092405 shikane: init module (#4096) 2025-04-20 20:21:46 -05:00
awwpotatoandGitHub 496fa9c054 PR_TEMPLATE: mention nix fmt (#6859) 2025-04-20 18:05:56 -05:00
Austin Horstman b71ca26961 uv: nullable package support 2025-04-20 14:32:29 -07:00
Mirko LenzandAustin Horstman 1d2d6b9568 uv: init module 2025-04-20 14:32:29 -07:00
LilleAilaandAustin Horstman a0461b67ff vesktop: created module
Added a home-manager module for vesktop that allows for configuring both
vesktop and vencord, and creating a custom theme.
2025-04-20 13:47:45 -07:00
LilleAilaandAustin Horstman 3cecde80a5 maintainers: added lilleaila 2025-04-20 13:47:45 -07:00
awwpotatoandGitHub 642d3e3bad atuin: add support for str + path themes (#6849) 2025-04-20 15:20:59 -05:00
Austin Horstman 6a676ee476 wallust: null package support 2025-04-20 13:16:28 -07:00
Kiara GrouwstraandAustin Horstman aa2c7ac404 wallust: add module
closes #6566
2025-04-20 13:16:28 -07:00
Kiara GrouwstraandAustin Horstman 48bbe7bc48 maintainers: add kiara 2025-04-20 13:16:28 -07:00
JessandGitHub f98314bb06 restic: init module (#6729) 2025-04-19 22:53:06 -07:00
awwpotatoandGitHub bb8d286649 zed-editor: add themes option (#6832) 2025-04-20 00:29:44 -05:00
awwpotatoandGitHub e8b68f99c6 eza: add theme option (#6850) 2025-04-20 00:24:26 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f6d295cee3 flake.lock: Update (#6854)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)
  → 'github:NixOS/nixpkgs/b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef?narHash=sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU%3D' (2025-04-17)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-20 00:23:20 -05:00
Karun SandhuandGitHub b8d186abf8 fish: allow multiple commands for command option in abbreviations (#6851) 2025-04-20 00:23:07 -05:00
Austin HorstmanandGitHub 20705949f1 kitty: add git diff integration (#6855)
Kitty supports a diff tool integration. This allows enabling it easily
for a user.
2025-04-20 00:11:57 -05:00
Miku BandGitHub 9676e8a52a inori: init module (#6289) 2025-04-19 09:05:58 -05:00
Austin HorstmanandGitHub ae84885d9b workflows/conflicts: init (#6845)
Add labeler for merge conflicts
2025-04-18 22:23:32 -05:00
Austin HorstmanandGitHub 307281bfda labeler: expand labels (#6846)
Add rules, fill in missing files for existing rules.
2025-04-18 22:23:21 -05:00
Austin HorstmanandGitHub 991a480472 mkFirefoxModule: userchrome support derivations (#6844) 2025-04-18 19:57:48 -05:00
Austin Horstman 67f60ebce8 tests/home-cursor: don't use realPkgs 2025-04-18 15:56:09 -07:00
Austin Horstman 4bc9b08c33 tests/broot: stub broot 2025-04-18 15:56:09 -07:00
Austin Horstman 39037b08f1 tests: darwin stub hjson-go 2025-04-18 15:56:09 -07:00
Austin Horstman 412eb166eb tests/thunderbird: dont use realPkgs
Not relevant for testing.
2025-04-18 15:56:09 -07:00
Austin Horstman fc09cb7aaa tests/labwc: fix autostart
Wasn't using a normalized store path, didn't notice in review.
2025-04-18 11:35:36 -07:00
Austin Horstman 4d6a8f590e keepassxc: nullable package support 2025-04-18 11:35:36 -07:00
d-brasherandAustin Horstman 54b494a77f keepassxc: add module 2025-04-18 11:35:36 -07:00
octvsandGitHub 5e6a8203ce khard: add option to set mutiple subdirs (#6823)
Add new option `accounts.contact.accounts.<name>.khard.addressbooks`.

Remove the previous soln,
`accounts.contact.accounts.<name>.khard.defaultCollection`, which is
superseded with the new option.

Add a new test to check the new `addressbooks` option. Modify an
existing test which was checking the removed `defaultCollection`.

Previous commit a38f88 allowed a hardcoded path to be set for khard if
the path set for its local storage is not the actual `vdir`. This was
accomplished via adding the `defaultCollection` option. However this
accepted only a single sub-directory, and when one has more than a
single collection on the same dir this would require repetition on
configuration to set [1].

This is a continuation of the soln given to
nix-community/home-manager#4531, refer to there and the previous PR [2]
for reference.

[1]: https://github.com/nix-community/home-manager/issues/4531#issuecomment-2701156246
[2]: https://github.com/nix-community/home-manager/pull/5220
2025-04-18 09:38:13 -05:00
Austin HorstmanandGitHub 72526a5f7c tests/firefox: fix test commands (#6840)
Tests passed, but looks like `nmt` was swallowing the command not found
errors.
2025-04-17 14:45:55 -05:00
isabelandAustin Horstman e72178b84e tests/atuin: add theme test 2025-04-17 11:03:18 -07:00
isabelandAustin Horstman 88e6187364 atuin: add support for themes 2025-04-17 11:03:18 -07:00
Austin Horstman 2c71aae678 tests/firefox: validate folder linking
Make sure we're linking all folder contents when a directory is
provided.
2025-04-17 08:01:20 -07:00
Austin Horstman baa2a0b3bd tests/firefox: consolidate userChrome.css test files
Not sure why I had two of them..
2025-04-17 08:01:20 -07:00
Austin HorstmanandGitHub c3c91dd8b4 mkFirefoxModule: fix userChrome with leading comment (#6836)
userChrome lines that started with a leading comment would cause an eval failure.
2025-04-17 09:31:27 -05:00
Austin Horstman c6b75d69b6 tests/firefox: add userchrome test cases 2025-04-16 12:57:22 -07:00
Austin Horstman 1827e84344 mkFirefoxModule: fix userChrome 2025-04-16 12:57:22 -07:00
Nathaniel BarraganandGitHub cb65c81403 chawan: init module (#6768)
This is a super cool TUI browser capable of CSS and other cool stuff.
Reminiscent of ELinks but modern and better.

More info here: https://sr.ht/~bptato/chawan/
2025-04-16 14:41:17 -05:00
S1rDev10usandGitHub b35bccc32d home-manager-auto-expire: fix spelling error (#6829) 2025-04-16 13:41:23 -05:00
Jacob BirkettandGitHub 7ede02c32a progs: firefox: *.userChrome may be path or drv (#6761)
This allows `programs.firefox.profiles.*.userChrome` to be set to a:
derivation, path/path-like string to directory or file, or multiline
text to be used as content verbatim.

This allows setting, for example(s):
```nix
programs.firefox.profiles."jacob.default".userChrome = pkgs.wavefox;
programs.firefox.profiles."jacob.default".userChrome =
    "${pkgs.wavefox}/userChrome.css";
```
2025-04-16 11:28:18 -05:00
LesVuandGitHub d8263c0b84 labwc: Add module for Labwc (#6807)
Add a module for labwc compositor.
Add myself as labwc module maintainer
2025-04-16 11:15:07 -05:00
Ilise LearyandGitHub 5d48f3ded3 mcfly: Fix mcfly-fzf initialization crash for fish and zsh (#6827) 2025-04-16 09:11:07 -05:00
401e7b544e Translate using Weblate (Dutch) (#6828)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Dutch)

Currently translated at 97.2% (36 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Hylke de Vries <hylke94+weblate@gmail.com>
2025-04-16 08:00:29 -05:00
fazziandGitHub db7738e67a nh: remove incorrect warning on gc conflicts (#6802)
From what I understand, the warning removed in this PR was incorrect.
There shouldn't be any conflict between osConfig.nix.gc and
programs.nh.clean as our home-manager service only cleans user profiles
(which nix-collect-garbage does not do).

In this scenario they should both work at the same time as they are
cleaning two different things.
2025-04-15 11:49:11 -05:00
Graham ChristensenandGitHub 85c513aa86 home-manager: Feature test for flake support (#6824)
Feature testing flakes / nix-command is more robust over configuration
sniffing. Ultimately, the deciding factor should be if flakes work --
not if the config looks like they will / won't work.

This alternative test both asserts that the `nix` command is enabled,
and that flakes are enabled, without depending on whether or not
flakes are emitted as an experimental feature.

This is both repairing support for Determinate Nix 3, and prepares for
a potential future where Nix itself considers Flakes stable.

Closes #6702
2025-04-15 11:48:20 -05:00
Marius NiveriandAustin Horstman d5cdf55bd9 direnv: add tests for silent option 2025-04-14 13:51:24 -07:00
Marius NiveriandAustin Horstman ae5fcad746 direnv: fix silent option after update to direnv v2.36.0
see https://github.com/direnv/direnv/issues/68 (bottom of thread)
2025-04-14 13:51:24 -07:00
Lucas WaglerandGitHub 5a096a8822 superfile: initial support (#6610)
Add initial support for `superfile` file manager.
2025-04-14 14:36:40 -05:00
Austin HorstmanandGitHub 273ad32fbb tests/nh: init tests (#6819) 2025-04-14 12:07:02 -05:00
awwpotatoandGitHub 3375414477 helix: fix str + path theme (#6816) 2025-04-14 08:29:24 -05:00
Austin HorstmanandGitHub 85dd758c70 yazi: remove assertions (#6817)
Contains IFD and unnecessarily restricts user's configuration.
2025-04-14 10:18:50 +02:00
Austin HorstmanandGitHub e980d0e0e2 nh: support 4.0 for flake option (#6818)
Recently switched from FLAKE to NH_FLAKE in 4.0
2025-04-13 22:22:31 -05:00
1adeptandGitHub ac3c1f4fa4 foot: enable duplicate key-bindings (#6815)
closes #5873
2025-04-13 17:46:54 -05:00
1422924908 Translate using Weblate (Czech) (#6813)
Currently translated at 100.0% (16 of 16 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/cs/
Translation: Home Manager/Home Manager Modules

Co-authored-by: max <weblate@p2502.net>
2025-04-13 17:45:29 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
cfa196c705 flake.lock: Update (#6812)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c8cd81426f45942bb2906d5ed2fe21d2f19d95b7?narHash=sha256-tzCdyIJj9AjysC3OuKA%2BtMD/kDEDAF9mICPDU7ix0JA%3D' (2025-04-08)
  → 'github:NixOS/nixpkgs/2631b0b7abcea6e640ce31cd78ea58910d31e650?narHash=sha256-LWqduOgLHCFxiTNYi3Uj5Lgz0SR%2BXhw3kr/3Xd0GPTM%3D' (2025-04-12)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-13 14:00:07 -05:00
awwpotatoandGitHub 4f898f373d helix: add support for path and string themes (#6814) 2025-04-13 13:59:21 -05:00
Johan LarssonandGitHub db56335ca8 way-displays: fix failing use of lib.mkDefault (#6809)
The resulting YAML file is mangled by the use of `lib.mkDefault`,
causing the service to fail. But we can safely remove it anyway due to
the use of `mergeSets` here.
2025-04-12 17:57:05 -05:00
Austin Horstman b74b22bb61 waybar: add debug option 2025-04-11 12:43:20 -07:00
Austin Horstman d8e2fdc09c .git-blame-ignore-revs: fix fmt hash
Must have forgotten to update after a squash/rebase.
2025-04-11 12:43:20 -07:00
Austin Horstman cfd7df8a21 waybar: systemd cleanup
No reason to allow nullable and it was inconsistently applied
2025-04-11 12:43:20 -07:00
Austin HorstmanandGitHub e43c6bcb10 anyrun: init module (#6804) 2025-04-11 09:06:03 -05:00
andre4ik3andGitHub 6bccb54a4f aerospace: revert flattening on-window-detected rules (#6803)
This reverts commits 95861b5d9f and
d2c014e1c7 (PR #6778), as they broke
Aerospace configuration loading. Whilst the generated TOML configuration
wasn't the best, it was completely valid, whereas after the
aforementioned PR it was no longer valid.
2025-04-11 08:17:15 -05:00
Johan LarssonandGitHub f0c69ede70 way-displays: init module (#6791) 2025-04-11 08:15:26 -05:00
Amadej KastelicandGitHub e15c4203ea hyprland: plugins use hyprctl from path (#6801) 2025-04-11 07:59:55 -05:00
Matthieu CoudronandGitHub da624eaad0 jujutsu: evaluate the settings after merging with other options (#6775)
* jujutsu: evaluate the settings after merging with other options

* jujutsu: add ediff to the test
2025-04-11 10:34:17 +02:00
Austin Horstman f1ffd097e7 hyprsunset: support multiple commands to IPC 2025-04-10 20:55:24 -07:00
Austin Horstman cf6314f8e1 hyprsunset: init 2025-04-10 20:55:24 -07:00
Valentin BrandlandGitHub 47eb2d80f9 accounts/contact: add sensible defaults to the localModule (#6799)
This adds defaults to the `localModule` that match the ones in
accounts/calendar. This way there is no need to explicitly define the
local part, only if the defaults should be changed.
2025-04-10 22:29:30 -05:00
SorkiandGitHub 543caa313a xmonad: fix binary name lookup on armv7l when cross-compiled (#6795) 2025-04-10 15:28:09 -05:00
Bruno BigrasandGitHub 8638a0b287 sesh: add icons option (#6794)
Display icons next to results ({option}`--icons` argument).
2025-04-10 15:02:01 -05:00
140a7df916 formatter: use a different treefmt root (#6792)
* formatter: use a different treefmt root

Problem: i use jujutsu as a VCS these days https://jj-vcs.github.io/jj/
and when using jujutsu workspaces, they dont contain the `.git`
file/folder that git worktrees have.

solution: use a different (unique) root file. I first tried with flake.nix for instnace but we have several in the tree while is only one "release.json"

* Update flake.nix

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>

---------

Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2025-04-10 19:57:41 +02:00
FlameopathicandGitHub 92266c9a6f btop: adjust themes option example (#6793) 2025-04-10 12:29:47 -05:00
Amadej KastelicandGitHub 7946193670 hyprland: load plugins using exec-once (#6789)
Should eliminate crashes / plugin version mismatches when updating hyprland.
2025-04-09 13:38:08 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
542efdf2df flake.lock: Update (#6785)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/42a1c966be226125b48c384171c44c651c236c22?narHash=sha256-rpqepOZ8Eo1zg%2BKJeWoq1HAOgoMCDloqv5r2EAa9TSA%3D' (2025-04-05)
  → 'github:NixOS/nixpkgs/c8cd81426f45942bb2906d5ed2fe21d2f19d95b7?narHash=sha256-tzCdyIJj9AjysC3OuKA%2BtMD/kDEDAF9mICPDU7ix0JA%3D' (2025-04-08)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-09 09:22:45 -05:00
Nathan FelberandGitHub 9864a2f421 thunderbird: add accountsOrder option (#6310)
Fixes #5031 and adds accountsOrder option for declarative account ordering in Thunderbird's folder pane as discussed in the issue.
2025-04-09 09:18:26 -05:00
Austin HorstmanandGitHub a1036d4d3e tests: stub notmuch darwin (#6788)
Building causing massive CI delays
2025-04-09 08:59:49 -05:00
Gaétan LepageandGitHub fcb8a2b62b swaylock: fix path values in config file (#6786) 2025-04-09 08:22:57 -05:00
Cole MickensandGitHub 4040c5779c modules/programs/ssh: support identityAgent (#6783) 2025-04-08 23:16:14 -05:00
Austin HorstmanandGitHub 760eed5959 flake.nix: remove treefmt-nix input (#6782)
Removing input until I have time to migrate usage to a dev flake for all
the dev dependencies.
2025-04-08 13:52:13 -05:00
Austin Horstman fefb6ae1b3 .git-blame-ignore-revs: add treewide reformat 2025-04-08 08:50:05 -07:00
Austin Horstman cba2f9ce95 treewide: reformat nixfmt-rfc-style
Reformat repository using new nixfmt-rfc-style.
2025-04-08 08:50:05 -07:00
Austin Horstman 5df48c4255 flake.nix: add formatter check 2025-04-08 08:50:05 -07:00
Austin Horstman 04a2e5cede format: use nixfmt-tree treefmt
Compatibility for non flake users with the new formatter.
2025-04-08 08:50:05 -07:00
Austin Horstman 74b681d665 flake.nix: nixfmt -> treefmt
Instead of managing our own formatter file, we can leverage a tool
specifically tailored for formatting a repository and allowing
configuration to be passed to formatters.
2025-04-08 08:50:05 -07:00
Alex MasonandAustin Horstman 7137c8ae4e tests/aerospace: include on-window-detected 2025-04-08 08:17:43 -07:00
Alex MasonandAustin Horstman 95861b5d9f aerospace: Add flattenOnWindowDetected function 2025-04-08 08:17:43 -07:00
Alex EpeldeandGitHub 80ae77eed3 kdeconnect: trigger indicator service after generic tray.target (#6711)
Each of `polybar.service`, `stalonetray.service` and `taffybar.service`
contains `WantedBy=tray.target`. So we can use a single `tray.target` in
`kdeconnect-indicator.service`'s `After=`.

This also makes the applet service tray implementation agnostic, so long
as it integrates with `tray.target`.
2025-04-08 09:51:20 -05:00
Axel KarjalainenandGitHub 5966fc8bd1 xdg-portal: improve description of extraPortals (#6760)
- Specified more clearly how the extra portals affect the environment
2025-04-08 09:46:20 -05:00
Austin HorstmanandGitHub df09fb5981 tests: stub more packages on darwin (#6780)
Try to reduce CI time and failure chances more.
2025-04-08 09:45:40 -05:00
Austin Horstman 05cd34203e kitty: fromJSON to importJSON 2025-04-08 07:43:54 -07:00
Austin Horstman cbdf1c1e33 astroid: fromJSON to importJSON 2025-04-08 07:43:54 -07:00
Lyndon SancheandAustin Horstman e741f97967 astroid: Fix use of fromJSON
Module was rewritten to use it from `lib`, when it is actually in
`builtins`
2025-04-08 07:43:54 -07:00
FlameopathicandGitHub 0daadc7784 btop: add themes option (#6777) 2025-04-08 09:08:40 -05:00
Austin HorstmanandGitHub bd33ce4000 tests: stub neovim and vimPlugins and darwin (#6779) 2025-04-08 08:37:23 -05:00
Austin Horstman a4d8020820 flake.nix: include more doc outputs
A couple of extra doc outputs we can pass through.
2025-04-07 08:15:20 -07:00
Austin Horstman 1a186efb48 default.nix: add htmlOpenTool output for docs 2025-04-07 08:15:20 -07:00
Austin Horstman 14269b06a0 docs/flake.nix: add flake outputs for docs
We have stuff that's referenced in CI but not available as flake outputs
to build. Adding default.nix outputs to flake.nix so flake users can
reference them easier.
2025-04-07 08:15:20 -07:00
Austin HorstmanandGitHub f463902a3f .git-blame-ignore-revs: init (#6767) 2025-04-06 23:53:51 -07:00
Austin Horstman c15ab0ce0d swayr: systemd.target default to wayland.systemd target 2025-04-06 21:06:22 -07:00
Austin Horstman 320e152d0b wlsunset: systemdTarget used for all targets 2025-04-06 21:06:22 -07:00
Austin Horstman a90ab0ab5f wlsunset: systemdTarget default to wayland.systemd target 2025-04-06 21:06:22 -07:00
Austin Horstman 8871d0b1ef cliphist: systemdTargets default to wayland.systemd target 2025-04-06 21:06:22 -07:00
Austin HorstmanandGitHub 8c9b54504c swaync: use x-restart-triggers for reload (#6764)
Use x-restart-triggers to reload on file change, since users
with impermanence setups were running into issues with onChange and calling the `swaync-client` to handle the hot reload.
2025-04-06 20:36:01 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
ef3b2a6b60 flake.lock: Update (#6762)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2c8d3f48d33929642c1c12cd243df4cc7d2ce434?narHash=sha256-F7n4%2BKOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE%3D' (2025-04-02)
  → 'github:NixOS/nixpkgs/42a1c966be226125b48c384171c44c651c236c22?narHash=sha256-rpqepOZ8Eo1zg%2BKJeWoq1HAOgoMCDloqv5r2EAa9TSA%3D' (2025-04-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-06 09:01:27 -05:00
Thiago Kenji OkadaandGitHub d094c6763c news: create an individual file for each news entry (#6747)
The current way to define a news entry in Home-Manager is error prone
(since you need to type the date manually) and also it is common cause
of conflicts after merges because all entries are defined in the same
file.

This commit fixes this: we can now create individual news entries for
each new entry. A script `create-news-entry.sh` also helps to create it
in the correct format (with the correct filenames and structure).
2025-04-05 11:13:59 -05:00
Evyatar StalinskyandAustin Horstman b5e2956513 redshift/gammastep: add tray tests 2025-04-05 06:36:25 -07:00
Evyatar StalinskyandAustin Horstman 46f93825af redshift/gammastep: fix tray.target dependency
Fix a missing dependency for `tray.target` in `redshift/gammastep` module when the tray feature is enabled.

This caused a race condition that could result in the redshift/gammastep systemd user unit failing because the tray provider (e.g. waybar) isn't ready yet.
2025-04-05 06:36:25 -07:00
jaredmontoyaandGitHub 0f5908daf8 home-environment: enable home aliases for nushell (#6754) 2025-04-04 12:49:34 -05:00
Austin HorstmanandGitHub 07547d29e1 swaync: use lib.getExe (#6755) 2025-04-04 12:30:26 -05:00
LemmusLemmusandGitHub bb036cb353 swaync: Add onChange (#6233)
Call swanyc-client with the argument reload-css/reload-config when config/CSS is changed.
2025-04-04 11:11:48 -05:00
Silence TaiandGitHub a802defb16 playerctld: add to $PATH (#6753) 2025-04-04 10:41:39 -05:00
Pim SnelandGitHub f3ac07f2f7 smug: init module (#6696)
This adds smug, a session manager and task runner for tmux, as module.
2025-04-04 10:41:02 -05:00
Austin HorstmanandGitHub 66a6ec65f8 cliphist: use configured systemdTargets throughout service (#6751)
Was running into issues with it not starting properly. This fixed my
issue.
2025-04-03 17:03:55 -05:00
Austin Horstman 107352dde4 treewide: add missing package option
Provide more customization to the binary to be installed.
2025-04-02 21:49:14 -05:00
Austin Horstman fcdd04e0f9 astroid: only generate poll.sh when script provided
Don't need to generate the file if the user hasn't configured script.
2025-04-02 21:49:14 -05:00
Austin Horstman a99c12d23e antidote: null package support 2025-04-02 21:49:14 -05:00
Austin Horstman 0bbc3fc5c6 alacritty: null package support 2025-04-02 21:49:14 -05:00
Austin Horstman b24689a173 treewide: use mkPackageOption
Standardized interface to provide a consistent treewide experience.
2025-04-02 21:49:14 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
579a71b948 flake.lock: Update (#6746)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e5402ecbcb27af32284d4a62553c019a3a49ea6?narHash=sha256-gWd4urRoLRe8GLVC/3rYRae1h%2BxfQzt09xOfb0PaHSk%3D' (2025-03-27)
  → 'github:NixOS/nixpkgs/2c8d3f48d33929642c1c12cd243df4cc7d2ce434?narHash=sha256-F7n4%2BKOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE%3D' (2025-04-02)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-04-02 19:16:11 -05:00
Austin Horstman 49748c74cd tests/atuin: add nushell test 2025-04-02 10:26:07 -05:00
Austin Horstman 282739209a atuin: fix nushell config 2025-04-02 10:26:07 -05:00
Austin Horstman 53cacafd9b treewide: nushell build time configs suffixed
Add filetype suffix for LSP/tree-sitter support.
2025-04-02 10:26:07 -05:00
jaredmontoyaandAustin Horstman 180fd43eea pay-respects: allow setting custom options 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman 812a12d014 oh-my-posh: build-time nushell config generation 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman 287cbbbf80 nix-your-shell: build-time nushell config generation 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman dde05a0b10 carapace: build-time nushell config generation 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman 3722855a1c atuin: build-time nushell config generation 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman 267f6ada1e zoxide: build-time nushell config generation 2025-04-02 09:28:45 -05:00
jaredmontoyaandAustin Horstman 98d718b46d starship: build-time nushell config generation 2025-04-02 09:28:45 -05:00
krabodyanandGitHub 81f38986a2 jq: add missing color option (#6734)
added "color for object keys" option
https://jqlang.org/manual/#colors
2025-04-02 09:26:34 -05:00
Thiago Kenji OkadaandAustin Horstman 5ee44bc7c2 news: add services.home-manager.autoExpire entry 2025-04-01 20:14:26 -05:00
Thiago Kenji OkadaandAustin Horstman 28242a60d3 home-manager-auto-expire: init
This commit introduces a new service that expires old Home-Manager
generations.
2025-04-01 20:14:26 -05:00
938e802b70 alacritty: add theme option (#5238)
Co-authored-by: r-vdp <ramses@well-founded.dev>
Co-authored-by: Sumner Evans <me@sumnerevans.com>
2025-04-01 18:18:23 -06:00
Rafael LedoandGitHub e355ae93a3 docs: add docs for mkOutOfStoreSymlink (#6660) 2025-04-02 02:06:02 +02:00
Yiheng HeandGitHub 89279a66f4 fcitx5: set SDL_IM_MODULE (#6742)
Sets SDL_IM_MODULE to fcitxto make fcitx5 work with sdl2 programs.
See fcitx-im.org/wiki/Setup_Fcitx_5#SDL_IM_MODULE and wiki.archlinux.org/title/Fcitx5#IM_modules
2025-04-02 02:05:28 +02:00
Robin StummandGitHub f4d9d1e2ad broot: get rid of IFDs (#6723) 2025-04-01 12:07:51 -05:00
Austin HorstmanandGitHub 0afad8f080 Revert "nixos-module: Fix potential recursion between users.users and home-ma…" (#6745)
This reverts commit 216690777e.

Reverts #6622

Seems to be causing issues for other users, though. Will revert and we can try again with some tests in place.
2025-04-01 09:52:10 -05:00
Austin HorstmanandGitHub 55cf1f1632 firefox: fix missing lib (#6744) 2025-04-01 08:25:30 -05:00
Hoang NguyenandGitHub c21383b556 streamlink: init module (#6031)
Streamlink is a CLI utility which pipes video streams from various
services into a video player.
2025-03-31 23:42:59 -05:00
Austin HorstmanandGitHub 5e193cdcab msmtp: fix missing inherits (#6741) 2025-03-31 23:28:55 -05:00
Austin HorstmanandGitHub 0b491b460f treewide: remove with lib (#6735)
Continuation of `with lib;` cleanup.
2025-03-31 22:32:16 -05:00
wyyllouandGitHub ccd7df836e mcfly: Fix fzf overriding mcfly's Ctrl+R bind on fish(#6736)
This commit moves both mcfly and mcfly-fzf into the main is-interactive block for fish, which is technically unneccesary as the checks are done internally (but mcfly-fzf is broken in this regard bnprks/mcfly-fzf#10)
2025-03-31 11:23:33 -05:00
Proesmans BertandGitHub 216690777e nixos-module: Fix potential recursion between users.users and home-manager.users (#6622)
Pushing users.users.<name>.packages from matching home-manager users leads to a circular dependency when
one attribute set is calculated from the other.
A configuration pull approach replaces the previous one to break up the circular dependency. This new approach
allows more flexibility in configuring both option sets, including calculating from each other.

EXAMPLE;

```nix
{lib, /* custom arg */ flake, config, ...}: {
    home-manager.useUserPackages = true;
    home-manager.users = builtins.intersectAttrs (lib.filterAttrs (_: v: v.isNormalUser) config.users.users) (flake.outputs.homeModules.users);
}
```

EXAMPLE;
```nix
{lib, /* custom arg */ flake, config, ...}: {
    home-manager.useUserPackages = true;
    home-manager.users = { inherit (flake.outputs.homeModules.users) demo-user; };
    users.users = lib.mapAttrs (_: _: { isNormalUser = true; }) (lib.filterAttrs (_: v: v.programs.git.enable) config.home-manager.users);
}
```

fixes #594

* options-manual: Remove `users` option set from documentation

The option declaration `users.users` is owned by the upstream
nixos modules and should not be documented by home-manager.

Home-manager declares an incomplete/partial option definition for
`users.users` that cannot be documented without the full definition from
the nixos modules. This partial definition is removed from the options
set while generating documentation for the home-manager nixos module.
2025-03-31 09:19:52 -05:00
Ilya SavitskyandGitHub b6fd653ef8 newsboat: add a package option to the module (#6717) 2025-03-30 13:40:01 -05:00
Olmo KramerandGitHub 09280e17bb xdg-autostart: Add readOnly option (#6629)
When `readOnly` is set to `true` the autostart entries are linked from
a readonly directory in the nix store and `XDG_CONFIG_HOME/autostart` is
a link to that directory, so that programs cannot install arbitrary
autostart services.
2025-03-30 11:22:16 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
1d2ed9c503 flake.lock: Update (#6730)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
  → 'github:NixOS/nixpkgs/5e5402ecbcb27af32284d4a62553c019a3a49ea6?narHash=sha256-gWd4urRoLRe8GLVC/3rYRae1h%2BxfQzt09xOfb0PaHSk%3D' (2025-03-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-30 09:56:56 -05:00
Léo GaspardandGitHub 802653e5d1 auto-upgrade: unbreak on unattended, loginctl enable-linger systems (#6719)
Fixes https://github.com/nix-community/home-manager/issues/3127
2025-03-30 09:56:27 -05:00
Farid ZakariaandGitHub 8ce8433743 granted: Add override for package (#6722)
I would like to use the unstable version in my home-manager so let's make it possible to override.
2025-03-30 09:55:24 -05:00
ToborandGitHub 2760046f34 docs: correct improper import of home.nix (#6732)
This change improves the module system's error messages.
2025-03-30 09:39:15 -05:00
TarowandGitHub 7170300119 podman: fix service name in generated manifest (#6710) 2025-03-29 19:50:46 -05:00
Austin Horstman b431496538 launchd: refactor setupLaunchAgents 2025-03-29 11:51:08 -05:00
Austin Horstman 86d2e3b005 launchd: remove checkLaunchAgents
We don't care about conflicts, they are launch agents and need to
represent the latest changes. This check had more negatives than
benefits.
2025-03-29 11:51:08 -05:00
Austin Horstman ef8f898727 launchd: add khaneliman maintainer 2025-03-29 11:51:08 -05:00
Austin Horstman a710f337d6 launchd: remove with lib 2025-03-29 11:51:08 -05:00
Austin HorstmanandGitHub f1d4acaa10 treewide: use mkPackageOption (#6727) 2025-03-29 11:48:55 -05:00
カワリミ人形andGitHub 1f679ed2a2 zsh-abbr: Add global abbreviations (#6720)
zsh-abbr has a global abbreviations feature. The global abbreviations expand anywhere on the line and are defined by using the -g option.

https://zsh-abbr.olets.dev/types.html#global
2025-03-29 09:42:13 -05:00
MichaelandGitHub 3527c8c778 sesh: add module (#5789)
Sesh is a CLI that helps you create and manage tmux sessions quickly and easily
using zoxide. See https://github.com/joshmedeski/sesh for more.
2025-03-29 09:32:11 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
1efd250317 flake.lock: Update (#6708)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-27 23:36:12 -05:00
Dominic MeyerandGitHub 26ccff08df thunderbird: set additional gmail smtpserver settings (#6713)
To resolve issues when using gmail with thunderbird, added default smtpserver authMethod of oauth
2025-03-27 23:32:30 -05:00
Shogo TakataandGitHub 13d68e9ac0 helix: avoid IFD (#6714)
Avoids IFD in the helix module which was introduced in #6575.
The helix module fails to build when --no-allow-import-from-derivation is enabled.
2025-03-27 23:31:30 -05:00
Clément BandGitHub b14a70c40f fzf: update zsh integration to be after plugins (#6716) 2025-03-27 12:49:40 -05:00
Clément BandGitHub 171915bfce fzf: fix zsh integration (keybinds rewritten by omz) (#6712)
fzf history keybind (^R) was being rewritten by omz.
This PR moves the initialization of the fzf zsh integration just after omz integration (but sill before other history managers, eg: atuin)
2025-03-27 08:40:07 -05:00
Tim SteinbachandGitHub 693840c01b vscode: Fix version checks when using Cursor (#6680)
The version check for VSCode fails when using Cursor.
Cursor has its own versioning and is currently at
0.45.14 (based on VSCode version 1.96.2).
The version checks for generating the `extensions.json` in the
module look at the package version,
which causes them not to be generated for Cursor.
2025-03-26 08:44:18 -05:00
Madeleine Sydney ŚlagaandGitHub ce287a5cd3 mpdscribble: add module (#6259) 2025-03-25 21:44:04 -05:00
Aneesh BhaveandGitHub 0ff53f6d33 helix: add extraConfig option (#6575)
The extraConfig option can be used to append
ordered lines to helix configuration. Helix
depends on order for rendering minor mode menus.
2025-03-25 18:55:51 -05:00
Joseph LaFreniereandGitHub 2321c6889b ripgrep-all: Add module (#5459) 2025-03-25 18:48:21 -05:00
Alex EpeldeandGitHub 338b2eabdf waybar: integrate with tray.target (#6675)
Inspired by [#3432][0], but with a smaller footprint.

This change makes it so that services with `Requires=tray.target`
and `After=tray.target`, such as [`blueman-applet`][1] or
[`network-manager-applet`][2] get started *after* waybar is ready.

[0]: https://github.com/nix-community/home-manager/pull/3432
[1]: https://github.com/nix-community/home-manager/blob/6c2b79403e9ae852fbf1d55b29f2ea4d2aa43255/modules/services/blueman-applet.nix
[2]: https://github.com/nix-community/home-manager/blob/6c2b79403e9ae852fbf1d55b29f2ea4d2aa43255/modules/services/network-manager-applet.nix
2025-03-25 18:48:07 -05:00
FeaandGitHub b9da58d505 carapace: conditionally disable unnecessary fish completion workaround on fish 4.0 (#6694)
The disabled workaround stopped being necessary with fish 4.0,
as noted in https://carapace-sh.github.io/carapace-bin/setup.html#fish
2025-03-25 18:06:44 -05:00
Austin HorstmanandGitHub f565da89e7 davmail: add package option (#6705) 2025-03-25 16:25:32 -05:00
Bob van der LindenandGitHub d8b4ba070f mergiraf: init module (#6633)
This adds git integration for mergiraf. It sets up git to use mergiraf
to automatically resolve merge conflicts.
2025-03-25 21:37:24 +01:00
royce-candAustin Horstman 8bef8b7a0a direnv: fix typo 2025-03-25 13:15:08 -05:00
royce-candAustin Horstman 529906d6a2 podman: fix typo 2025-03-25 13:15:08 -05:00
royce-candAustin Horstman 5abb21dc10 distrobox: fix typo 2025-03-25 13:15:08 -05:00
Zhaofeng LiandGitHub e3dded7a85 fish: Fix manpage completion generation with paths containing spaces (#6703)
Manual pages with spaces in their paths can lead to argument injection.
2025-03-25 13:13:52 -05:00
royce-candGitHub 2980606556 distrobox: replace hardcoded path with config package's path (#6701) 2025-03-25 13:13:37 -05:00
Austin HorstmanandGitHub 869f2ec2ad zsh: fix concatenation of aliases and global aliases (#6698)
Accidentally bump the lines against each other. Adding a newline to move
global aliases to another line when you have both.
2025-03-24 21:56:51 -05:00
Matthieu CoudronandGitHub c4d5d72805 neomutt: remove empty lines (#6523)
* neomutt: remove empty lines

prettier + more readable
made some tests easier to update by printing full path
2025-03-24 22:18:52 +01:00
Austin Horstman 2d057cd9d4 zellij: use mkPackageOption 2025-03-24 13:48:39 -05:00
Austin Horstman a9042b53c2 zellij: default integration disabled again
Surprises most users and various issues requesting default change.
2025-03-24 13:48:39 -05:00
Austin Horstman 82a3211477 zellij: add khaneliman maintainer 2025-03-24 13:48:39 -05:00
Austin Horstman 10dca990ae zellij: remove with lib 2025-03-24 13:48:39 -05:00
Austin Horstman 6d4148df8e zellij: refactor implementation 2025-03-24 13:48:39 -05:00
David ChocholatýandAustin Horstman 0394c71f2b zellij: Add additional options for integrating with shells 2025-03-24 13:48:39 -05:00
ManuelandGitHub 908e055e15 git: option to use difftastic as difftool (#5335)
I want `git diff` to stay the same, but `git difftool` to use
difftastic, as described in the difftastic docs:
https://difftastic.wilfred.me.uk/git.html#regular-usage
2025-03-24 09:19:19 -05:00
Kira BruneauandGitHub ad0614a1ec firefox: don't show migration warning when bookmarks isn't set (#6689) 2025-03-23 18:13:55 -05:00
Kira BruneauandGitHub 4f4538467f firefox: fix migrate search v7 test for all firefox forks (#6690) 2025-03-23 16:36:33 -05:00
Kira BruneauandGitHub 0e75a40458 firefox: fix assertion when missing force for extensions (#6688) 2025-03-23 14:04:29 -05:00
brickedandAustin Horstman ecbcd792e1 firefox: check if bookmarks attrset is of correct type 2025-03-23 14:04:01 -05:00
brickedandAustin Horstman d7f451d7b1 firefox: replace with-lib-expression with inherit-expression 2025-03-23 14:04:01 -05:00
brickedandAustin Horstman 62d6a8931e firefox: fix bookmarks backwards compatibility
The legacy attrset option type for `firefox.profiles.<name>.bookmarks`
was accidentally removed in 9d55428. This adds back support for this
type by refactoring the bookmarks submodule. This also adds a new test
ensuring this won't happen again.
2025-03-23 14:04:01 -05:00
awwpotatoandGitHub 5ff90f09d1 wofi: merge multiple style definitions (#6673) 2025-03-23 16:48:23 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
b61ae3b677 flake.lock: Update (#6684)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42?narHash=sha256-Txwa5uO%2BqpQXrNG4eumPSD%2BhHzzYi/CdaM80M9XRLCo%3D' (2025-03-18)
  → 'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-23 09:28:33 -05:00
Benedikt M. RipsandGitHub 57e9a8a290 davmail: init module (#6674) 2025-03-23 09:01:35 -05:00
Austin HorstmanandGitHub 9172a6f956 skhd: add module (#6682) 2025-03-22 22:49:54 -05:00
JessandAustin Horstman 7853236fae rclone: ensure remotes have a type field 2025-03-22 21:52:23 -05:00
JessandAustin Horstman 7a08b8c898 rclone: correctly escape whitespace in secrets 2025-03-22 21:52:23 -05:00
Austin HorstmanandGitHub 63e77d09a1 jankyborders: add module (#6677) 2025-03-22 14:02:25 -05:00
Austin Horstman 94ea2cb536 treewide: zsh initExtraBeforeCompInit -> initContent
Migrating in tree usages of zsh initExtraBeforeCompInit to initContent
before deprecating, matching priority of current option.
2025-03-22 13:46:42 -05:00
Austin Horstman 10deb9d043 treewide: zsh initExtra -> initContent
Migrating in tree usages of zsh initExtra to initContent before
deprecating.
2025-03-22 13:46:42 -05:00
Austin HorstmanandGitHub 296ddc6462 zsh: adjust initContent priorities (#6676)
To support easier migration of deprecating old zsh options. We can
adjust the internal priorities to fit within the `mkBefore` (500) and
default (1000). Makes it easier for `initExtraFirst` migrationg to
`mkBefore` and `initExtra` to default prio.
2025-03-21 15:17:13 -05:00
Aguirre MatteoandGitHub 8a68f18e96 distrobox: add module (#6528)
Added programs/distrobox.nix module. It provides the option "programs.distrobox.containers", which makes it possible to declare a list of containers to be created. Since building those containers is not possible at build time (because none container backend is available at that time), I also added a Systemd Unit to build those containers after switching the configuration.
2025-03-21 10:07:00 -05:00
Austin Horstman d61711497b iamb: nullable package support 2025-03-20 23:14:47 -05:00
wikikerandAustin Horstman e5ab18116c iamb: new module 2025-03-20 23:14:47 -05:00
Austin Horstman 71cbeb3afd hyprpolkitagent: add khaneliman maintainer 2025-03-20 23:08:16 -05:00
Austin Horstman c1ca8974b3 hyprpolkitagent: use wayland.systemd.target 2025-03-20 23:08:16 -05:00
Bob van der LindenandAustin Horstman 29c6f2b0cb polkit-gnome: init module 2025-03-20 23:08:16 -05:00
Bob van der LindenandAustin Horstman 5503a758f9 lxqt-policykit-agent: init module 2025-03-20 23:08:16 -05:00
Bob van der LindenandAustin Horstman cc538c3793 hyprpolkitagent: init module 2025-03-20 23:08:16 -05:00
Austin Horstman da01818194 tests: scrub lazy{docker,git} on darwin 2025-03-20 17:14:14 -05:00
Austin Horstman 2e9981ca0d lazydocker: null package support 2025-03-20 17:14:14 -05:00
Austin Horstman 65413f297f lazydocker: remove with lib 2025-03-20 17:14:14 -05:00
hauskensandAustin Horstman 46efc3b2e1 lazydocker: add module 2025-03-20 17:14:14 -05:00
Michael CooperandRobert Helgesson 20ec3c1049 mcfly: Fix swapped shell names 2025-03-20 23:11:49 +01:00
Michael CooperandGitHub d725df5ad8 mcfly: fix mcfly-fzf in non-interactive shells (#6669)
mcfly-fzf's initialization steps don't properly check for interactive
shells. It does check, but only after checking if mcfly has been
initialized. Because mcfly does not initiate itself on non-interactive
shells, that causes mcfly-fzf to return an exit code, breaking
non-interactive shells.
2025-03-20 15:11:36 -05:00
CatandGitHub fc189507bc docs: nixos module declarative installation instructions (#6208)
Added instructions for a different installation method for home manager on NixOS.
2025-03-20 11:50:36 -05:00
Aguirre MatteoandGitHub c36cc49e55 onlyoffice: add module (#6667) 2025-03-20 11:34:43 -05:00
Austin HorstmanandGitHub 94605dcade tests/firefox: add applicationName to mock (#6668) 2025-03-20 00:15:57 -05:00
novenaryandGitHub 97a00e0659 librespot: init module (#6229)
Librespot is a Spotify client. While there is already a module for
spotifyd, which uses Librespot as a library, this adds one for the
upstream frontend.
2025-03-19 22:48:47 -05:00
Karun SandhuandGitHub 8675edf7d3 fish: add command option for abbreviations (#6666)
The fish shell has added a flag to the abbr command which allows one to expand it only if it is typed after a real command e.g.:
git s -> git status
s -> s

Also see the last example here: https://fishshell.com/docs/current/cmds/abbr.html#examples
2025-03-19 22:43:42 -05:00
Gaétan LepageandGitHub cfaa4426a3 megasync: use getExe instead of getExe' (#6665) 2025-03-19 20:41:06 -05:00
Austin Horstman eb0f617aec tex-fmt: add null package support
Allows generating config without installing package.
2025-03-19 15:40:32 -05:00
William G UnderwoodandAustin Horstman 9556d3c2b4 tex-fmt: add module
tex-fmt is a LaTeX source code formatter written in Rust, and uses
a user configuration file in the .toml format.
2025-03-19 15:40:32 -05:00
Kira BruneauandAustin Horstman 8b629b5424 firefox: migrate search config to v12 2025-03-19 15:16:09 -05:00
Kira BruneauandAustin Horstman b44d79a5b2 firefox: migrate search config to v11 2025-03-19 15:16:09 -05:00
Kira BruneauandAustin Horstman c1dc900a1a firefox: migrate search config to v7 2025-03-19 15:16:09 -05:00
Austin Horstman b597601774 easyeffects: remove with lib 2025-03-19 14:45:27 -05:00
Austin Horstman e278f46a09 easyeffects: add hausken as maintainer 2025-03-19 14:45:27 -05:00
hauskensandAustin Horstman 6b8cea6473 easyeffects: add option to import presets
added options to import presets
added tests
added hausken as maintainer
2025-03-19 14:45:27 -05:00
Austin Horstman e4a40b441e waylogout: add path support 2025-03-19 14:17:09 -05:00
Austin Horstman 16a2a802de waylogout: nullable package support 2025-03-19 14:17:09 -05:00
Austin Horstman e0be70bcf9 waylogout: remove with lib 2025-03-19 14:17:09 -05:00
~noodlez1232andAustin Horstman 1e0c64b6a2 waylogout: added configuration module
90% of the code is copied over from swaylock so thanks to the creator of
that module!
2025-03-19 14:17:09 -05:00
Austin Horstman 0d616edbac maintainers: add noodlez 2025-03-19 14:17:09 -05:00
TarowandGitHub 27a72d9913 podman: include systemd in quadlet service path
Podman uses systemd-run to setup transient systemd timers, e.g. for healthchecks.

On systems where systemd is not present in /run/current-system/sw/bin or ~/.nix-profile/bin (like one of my Ubuntu hosts), setting up the transient timers will fail. For containers with healthchecks configured, this results in the container being stuck in starting state.

Relevant issue here: containers/podman#25034
2025-03-19 14:09:57 -05:00
Nicholas HassanandAustin Horstman bb72d79f5d podman: use type in attr name of built quadlets 2025-03-19 14:08:12 -05:00
Nicholas HassanandAustin Horstman 8bb071912b podman: warn if values match a quadlet only by name 2025-03-19 14:08:12 -05:00
Nicholas HassanandAustin Horstman 81bf639da7 podman: link dependent quadlets during build
podman's systemd generator can automatically resolve unit dependencies, so instead of us guessing these links to create them, we provide the sources during generation
2025-03-19 14:08:12 -05:00
Nicholas HassanandAustin Horstman 4108ec3aa8 podman: use dependency quadlets directly in build for generator 2025-03-19 14:08:12 -05:00
JessandAustin Horstman eb5d59dac9 rclone: add module
Rclone is a command-line program to manage files on cloud storage, it
also featrues support for FUSE mounts.

"Users call rclone *"The Swiss army knife of cloud storage"* and
*"Technology indistinguishable from magic"*" - https://rclone.org/

This module manages the configuration of rclone remotes.
2025-03-19 13:49:44 -05:00
JessandAustin Horstman 66f565db48 maintainers: add jess 2025-03-19 13:49:44 -05:00
Kira BruneauandGitHub 9d554281e0 firefox: refactor bookmarks into a submodule & require force (#6402)
This splits the bookmarks submodule into a seperate file, to make it easier to maintain (like how the search module was previously split out in #5697).

This also refactors bookmarks to require a new force option, to be more explicit about overriding existing bookmarks.
2025-03-19 13:37:13 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
1727f417b7 flake.lock: Update (#6636)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e3e32b642a31e6714ec1b712de8c91a3352ce7e1?narHash=sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk%3D' (2025-03-09)
  → 'github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42?narHash=sha256-Txwa5uO%2BqpQXrNG4eumPSD%2BhHzzYi/CdaM80M9XRLCo%3D' (2025-03-18)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-19 13:33:04 -05:00
imsuckandAustin Horstman 62dc8c30ef home-manager: add autocomplete for --log-format 2025-03-19 13:32:33 -05:00
imsuckandAustin Horstman 229648c51e home-manager: support --log-format flag (#6093)
You can now pass `--log-format FORMAT` to `nix-build`,
useful for piping into `nix-output-monitor`.
2025-03-19 13:32:33 -05:00
Yiheng HeandGitHub 22a36aa709 swww: add swww service module for swww-daemon (#6543) 2025-03-18 14:32:10 -05:00
Reputable2772andGitHub fb74bb76d9 vscode: fix creation of storage.json file (#6650)
Signed-off-by: Reputable2722 <153411261+Reputable2772@users.noreply.github.com>
2025-03-18 08:44:38 -05:00
c657142e24 thunderbird: add message filters option (#6652)
* thunderbird: add message filters option

Add option to declare account-specific message filters.

* tests/thunderbird: add second filter for sort

Make sure they are generated in correct order.

* thunderbird: use profilePath for messageFilters

In testing on darwin and NixOS, they use this path. 

---------

Co-authored-by: 347Online | Katie Janzen <katiejanzen@347online.me>
2025-03-17 16:14:41 -05:00
Qiming ChuandGitHub b870fb2d62 zsh: update zsh initContent example to use lib.literalExpression (#6637)
Update the `initContent` option example in `zsh.nix` to use
`lib.literalExpression` for correctly display in documentation.

Signed-off-by: Qiming Chu <cchuqiming@gmail.com>
2025-03-17 15:24:59 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
18e7d54899 ci: bump cachix/cachix-action from 15 to 16 (#6644)
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 15 to 16.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v15...v16)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 15:24:45 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
eae06a96af ci: bump cachix/install-nix-action from 30 to 31 (#6643)
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 30 to 31.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v30...v31)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-17 14:53:43 -05:00
Jennings ZhangandAustin Horstman f55c5f6569 kubecolor: create oc alias conditionally 2025-03-17 14:53:32 -05:00
Jennings ZhangandAustin Horstman f9f766c600 kubecolor: add oc alias 2025-03-17 14:53:32 -05:00
Jennings ZhangandAustin Horstman e94ec0a6cd kubecolor: add enableZshIntegration option for completion 2025-03-17 14:53:32 -05:00
Austin HorstmanandGitHub 5a6e5a59a4 tests: stub more expected packages darwin (#6649)
Get ahead of random breakages blocking ci.
2025-03-17 14:14:02 -05:00
CnTengandAustin Horstman 4e12151c9e megasync: add option to enable wayland 2025-03-14 07:39:07 -05:00
CnTengandAustin Horstman e30c6a41bc megasync: remove with lib 2025-03-14 07:39:07 -05:00
isabelandGitHub 30cce6848a synthing: fix synthing config being deleted on rebuild (#6621) 2025-03-13 20:11:20 -05:00
Austin Horstman 6914c15c09 tests/default: scrub zsh
test expects scrubbed version
2025-03-13 20:08:53 -05:00
Austin Horstman 8f8f5432d1 tests/zsh: fix zshrc content priority test
Previous test didn't verify they were actually in correct order,
updating test to check configuration is generated, as expected.
2025-03-13 20:08:53 -05:00
Austin Horstman 0b0baed7b2 tests/default: blacklist sapling
broken atm
2025-03-13 14:34:14 -05:00
Austin Horstman 0e46e84279 zsh: cleanup empty / wrong generated lines
We currently just insert a ton of empty lines when not using certain
options. We also incorrectly generate some notes for options not being
used.
2025-03-13 14:34:14 -05:00
JdogzzandGitHub 5d51162862 syncthing: have tray wait in submodule (#6617)
Add --wait flag to tray to avoid loading before bar.
2025-03-13 13:28:47 -05:00
Austin Horstman 1b0efe3d33 zsh: move option variables closer to usage 2025-03-13 10:25:21 -05:00
Austin Horstman ad487d3863 zsh: move config variables closer to usage 2025-03-13 10:25:21 -05:00
Austin Horstman b5142d46a3 zsh: remove with lib 2025-03-13 10:25:21 -05:00
Austin Horstman 56374cc64d zoxide: remove with lib 2025-03-13 09:57:16 -05:00
Austin Horstman d30c1d30bf zoxide: move to bottom of zsh content
Follow up to https://github.com/nix-community/home-manager/pull/6572,
possible to fix now with
https://github.com/nix-community/home-manager/pull/6479
2025-03-13 09:57:16 -05:00
Stanislav AlekseevandGitHub 6576167e6b macos-remap-keys: add (#6605)
A module to remap keys using macos native tool (hidutil)
2025-03-13 09:02:04 -05:00
Jérémy GarniauxandGitHub ef257da52a docs: enhance comment for home.stateVersion option (#6116)
Enhance comment for home.stateVersion option (see issue #5794)
2025-03-13 08:50:10 -05:00
Qiming ChuandGitHub 7832b5aa95 zsh: refactor zsh configuration for better order control over .zshrc (#6479)
* zsh: add initContent option for custom .zshrc content insertion

- Users can add content anywhere by using `lib.mkOrder`, `lib.mkBefore`
and `lib.mkAfter` custom configurations.
- Add test cases to verify the insertion of content before and after
existing configurations in `.zshrc`.
consolidate zshrc content tests into a single priorities test
2025-03-13 14:37:11 +01:00
Austin Horstman 1878091234 home-cursor: louder deprecation
Check if a user explicitly set option to null and warn that they should
just disable instead.
2025-03-12 09:51:58 -05:00
isabelandAustin Horstman 74f2ed6a64 test/home-cursor: add new .enable check 2025-03-12 09:51:58 -05:00
isabelandAustin Horstman dcc20acf93 home-cursor: add doticons option 2025-03-12 09:51:58 -05:00
isabelandAustin Horstman 00712ac0fb home-cursor: use .enable pattern 2025-03-12 09:51:58 -05:00
isabelandAustin Horstman 32531e4572 home-cursor: explicit lib usage 2025-03-12 09:51:58 -05:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
144f13f535 flake.lock: Update (#6606)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/36fd87baa9083f34f7f5027900b62ee6d09b1f2f?narHash=sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw%3D' (2025-03-07)
  → 'github:NixOS/nixpkgs/e3e32b642a31e6714ec1b712de8c91a3352ce7e1?narHash=sha256-7rTAMNTY1xoBwz0h7ZMtEcd8LELk9R5TzBPoHuhNSCk%3D' (2025-03-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-12 08:20:12 -05:00
Gaétan LepageandGitHub dd41a39055 swaylock: accept path type for settings values (#6607)
Allows setting images to file paths.
2025-03-12 08:19:52 -05:00
Marijan PetričevićandGitHub 5871e21c11 screen-locker: add lockCmdEnv option (#6592) 2025-03-12 07:31:54 -05:00
LynnandGitHub c630dfa8ab nix-darwin: respect username setting of home-manager in activation script (#5881) 2025-03-11 08:53:55 -05:00
Raine GodmaireandGitHub 7fd6dc2b94 granted: fix fish shell integration (#6602)
Without `$argv` the function will not pass any flags or arguments to the
`assume.fish` script.  These are necessary to use assume to access the
AWS console or use IAM role chaining.
2025-03-11 08:28:43 -05:00
Ilise LearyandGitHub 7fb8678716 Fix missing styleName for kde6 (#6597) 2025-03-10 14:35:47 -05:00
Leandro Emmanuel Reina KipermanandGitHub 3593ee59a4 xdg-mime: Fix cross compilation (#6500) 2025-03-10 14:32:06 +01:00
Ilya SavitskyandGitHub 744f749dd6 mods: add a mods module (#6339) 2025-03-09 23:05:08 -05:00
bamhm182andGitHub ce9cb2496c podman: added volume, image, and build quadlets (#6137)
Added support for build, image, and volume quadlets
Resolved test failures due to podman 5.3.0 upgrade
Replaced several instances of pkgs.podman with services.podman.package
2025-03-09 23:02:05 -05:00
carschandlerandGitHub f8bb0ba6de zoxide: update mkOrder to place bash configuration at end of bashrc (#6572)
I updated my flake a few weeks back and `zoxide` has been giving me an error recently:

```
zoxide: detected a possible configuration issue.
Please ensure that zoxide is initialized right at the end of your shell configuration file (usually ~/.bashrc).

If the issue persists, consider filing an issue at:
https://github.com/ajeetdsouza/zoxide/issues

Disable this message by setting _ZO_DOCTOR=0.
```

To be fair, I haven't noticed any issues with `zoxide` apart from this error message.

The `zoxide` eval statement in my `.bashrc` is not "right at the end" of the file as mentioned in the message which isn't surprising given that it is given a `mkOrder 150`. In my own config, I increased this to `2000` (to ensure it comes after any `mkAfter`s which are `mkOrder 1500` to ensure it happens at the end of the script. After doing so, it appears at the end of my `bashrc` and I no longer get the error message.
2025-03-09 22:50:41 -05:00
JonoandGitHub 597f9c2f06 thunderbird: set additional gmail server settings (#6579)
When email account is gmail in thunderbird, set additional server
settings.
As of March 2025, gmail only allows ssl/oauth0 authentication, so here I
set the authMethod accordingly.

Also setting 'is_gmail' to true in thunderbird settings such that labels
and trash work out of the box when the email account flavor is "gmail".
This brings in the gmail configs for how it handles folders, labels, and
archiving messages.
2025-03-09 18:38:46 -05:00
Thiago Kenji OkadaandGitHub db4386d686 home-environment: add line-break after sessionSearchVariables (#6596)
PR #6593 broke activation when `sessionVariablesExtra` is used, e.g.:
`services.ssh-agent` because it concatenate the strings without a line
break, so the resulting `hm-session-vars.sh` file became:

```bash
export XCURSOR_PATH="/etc/profiles/per-user/thiagoko/share/icons${XCURSOR_PATH:+:}$XCURSOR_PATH"if [ -z "$SSH_AUTH_SOCK" ]; then
  export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
fi
```

This commit fixes it by enforcing a line break between
`sessionSearchVariables` and `sessionVariablesExtra`.
2025-03-09 12:57:44 -05:00
Brian LeungandGitHub 2967de4d11 debug: make NIX_DEBUG_INFO_DIRS a list of strings (#6595)
Fixup of daab32302b.
2025-03-09 12:20:08 -05:00
Thiago Kenji OkadaandAustin Horstman cf47e7ea21 qt: use home.sessionSearchVariables 2025-03-09 09:36:41 -05:00
Thiago Kenji OkadaandAustin Horstman ab56fd8db8 targets/generic-linux: use home.sessionSearchVariables for XCURSOR_PATH 2025-03-09 09:36:41 -05:00
Thiago Kenji OkadaandAustin Horstman 5094e32cce home-cursor: use home.sessionSearchVariables for XCURSOR_PATH 2025-03-09 09:36:41 -05:00
Thiago Kenji OkadaandAustin Horstman daab32302b debug: use home.sessionSearchVariables for NIX_DEBUG_INFO_DIRS 2025-03-09 09:36:41 -05:00
Thiago Kenji OkadaandAustin Horstman 601f8d073c im/fcitx5: use home.sessionSearchVariables for QT_PLUGIN_PATH 2025-03-09 09:36:41 -05:00
Thiago Kenji OkadaandAustin Horstman 277eea1cc7 home-environment: add home.sessionSearchVariables
This commit introduces `home.sessionSearchVariables` option, that is
created to be a "generic" version of `home.sessionPath` for any
environment variables that is similar to PATH (e.g.: MANPATH). This
allows composition of those variables between multiple modules, avoiding
issues like this one:

https://github.com/nix-community/home-manager/pull/4579/files#r1364374048

This commit also reimplements `home.sessionPath` as terms of
`home.sessionSearchVariables`, to reduce code duplication and show that
the code is correct.

The behavior is to prepend the new search paths. This will allow
the user to override the defaults easily by setting it later in the
configuration.
2025-03-09 09:36:41 -05:00
Ilise LearyandGitHub 07f505f91e qt: add "kde6" to qt.platformTheme (#6493) 2025-03-09 08:15:02 -05:00
Austin Horstman 1fd39a1055 tests/vscode: fix darwin snippets test 2025-03-09 00:44:11 -06:00
Austin Horstman 8d2a058108 tests/thunderbird: fix darwin test 2025-03-09 00:44:11 -06:00
Austin Horstman 4f2c461286 tests/yubikey-agent-darwin: fix test 2025-03-09 00:44:11 -06:00
Austin Horstman 4c9643363a tests/ollama: fix darwin test 2025-03-09 00:44:11 -06:00
Austin Horstman 68540fb775 tests/syncthing: syncthing wrapper stubbing for darwin 2025-03-09 00:44:11 -06:00
Austin Horstman 15498b94ec tests/syncthing: fix extra-options on darwin
Need to stub the return from the writeBash used to populate the plist
file for darwin. Also the arguments were moved inside the wrapper.
2025-03-09 00:44:11 -06:00
Austin Horstman 1909541fc7 tests/targets-darwin: fix user-defaults test
Update to represent the new output generated by the module.
2025-03-09 00:44:11 -06:00
Austin Horstman 91f88408cc .github/workflows/test.yml: enable darwin tests 2025-03-09 00:44:11 -06:00
Austin Horstman b3e11ed4a9 tests: central darwin stubbing
Until we can figure out how to resolve issue with stdenv.
Makes it easier to revert when automatic stubbing is fixed for darwin
stdenv
2025-03-09 00:44:11 -06:00
Austin Horstman b74402e4e8 tests: expose scrubDerivation
Will use it with darwin scrubbing
2025-03-09 00:44:11 -06:00
72580374c8 Translate using Weblate (Chinese (Traditional Han script)) (#6581)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (Chinese (Traditional Han script))

Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hant/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: 807 <s10855168@gmail.com>
2025-03-09 00:41:38 -06:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
b23c4d4cbe flake.lock: Update (#6591)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/10069ef4cf863633f57238f179a0297de84bd8d3?narHash=sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U%3D' (2025-03-06)
  → 'github:NixOS/nixpkgs/36fd87baa9083f34f7f5027900b62ee6d09b1f2f?narHash=sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw%3D' (2025-03-07)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-08 23:32:21 -06:00
Nikolaos KaraolidisandGitHub 7f4c60a3d6 podman: fix podman-user-wait-network-online (#6586)
Adding coreutils to path for podman to fix issues when not available in environment path already.
2025-03-08 13:22:11 -06:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
65d6043d32 flake.lock: Update (#6588)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ba487dbc9d04e0634c64e3b1f0d25839a0a68246?narHash=sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM%3D' (2025-03-03)
  → 'github:NixOS/nixpkgs/10069ef4cf863633f57238f179a0297de84bd8d3?narHash=sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U%3D' (2025-03-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-08 13:19:43 -06:00
Austin HorstmanandGitHub 20a6b3631b navi: handle xdg directory on darwin (#6589)
When xdg is enabled, use the xdg config home on darwin.
2025-03-08 12:56:34 -06:00
Mahmoud AymanandGitHub b2314312f2 zsh: correct syntax option to syntax-highlighting (#5792)
The current syntax of highlighting style is outdated and not working as well. So this pr aims to update it so follow `zsh-syntax-highlight`` new syntax [example](https://github.com/zsh-users/zsh-syntax-highlighting/blob/e0165eaa730dd0fa321a6a6de74f092fe87630b0/highlighters/main/main-highlighter.zsh#L32).
2025-03-08 19:37:10 +01:00
Austin HorstmanandGitHub 2c87a6475f flake-module: rename homeManagerModules to homeModules (#6406)
This reverts commit 066ba0c5cf. After
further discussion, we want to maintain this as the naming scheme going
forward to be similar to standards that have been trying to be
implemented in naming configurations and modules.
2025-03-08 19:14:01 +01:00
Austin HorstmanandGitHub c040d1c556 xembed-sni-proxy: change default package (#6587)
Use new `kdePackages` version by default. Users can pass the legacy
package, if they wish.
2025-03-08 10:48:18 -06:00
Austin Horstman 26f6b86264 tests/gh-dash: enable gh to test extension adding 2025-03-08 00:54:10 -06:00
Austin Horstman 5ab4305f34 gh-dash: fix
Missing mkIf
2025-03-08 00:54:10 -06:00
Austin Horstman 1347b0b468 tests: move vinegar to linux only 2025-03-08 00:03:41 -06:00
Austin Horstman 3ade654257 tests/neovide: fix deprecation 2025-03-08 00:03:41 -06:00
Austin HorstmanandGitHub d2c014e1c7 treewide: null package support (#6582)
Can generate the config without installing application through home-manager. Helpful when a package is broken (or not provided) on a specific platform through nixpkgs and needs to be installed through other means but you still can benefit from the declarative configuration.
2025-03-07 18:17:52 -06:00
Sefa EyeogluandGitHub 6c2b79403e treewide: use graphical-session.target for GUI services (#5785)
As per systemd.special(7)[0] graphical-session-pre.target is strictly
for units that set up things for a graphical session. Most notably,
these are usually started *before* the compositor/session is actually
ready.

While Home Manager's current implementation of graphical-session.target
allows these units to work regardless of what systemd.special(7)
specifies, other setups like ones with uwsm[1] do not allow these units
to start properly.

[0]: https://www.freedesktop.org/software/systemd/man/latest/systemd.special.html#graphical-session-pre.target
[1]: https://github.com/Vladimir-csp/uwsm
2025-03-07 18:09:12 -06:00
Austin HorstmanandGitHub 95711f9266 treewide: remove with lib (#6512)
* nixos: remove with lib
* nix-darwin: remove with lib
* home-manager: remove with lib
* modules/accounts: remove with lib
* modules/config: remove with lib
* modules/i18n: remove with lib
* modules/misc: remove with lib
* modules: remove with lib
* modules/targets: remove with lib
* tests/modules/firefox: remove with lib
* tests/modules/services: remove with lib
2025-03-07 14:16:46 -06:00
Raine GodmaireandGitHub 83f4629364 granted: support fish shell (#6549)
Due to fish being a non-POSIX shell, granted provides a separate wrapper
to be used by fish.
2025-03-07 13:29:16 -06:00
Andrew MarshallandGitHub 04c915bcf1 firefox: Support paths for userChrome & userContent (#3856)
A path may be preferred for some uses, and allowing it avoids the user
needing to `builtins.readFile`, thus creating duplicates and making it
more difficult to determine the actual store path.
2025-03-07 12:11:10 +01:00
toborwinnerandRobert Helgesson 486b066025 specialisation: escape specialisation name
The specialisation name is included in home.extraBuilderCommands
without being properly escaped and checked. This commit fixes that.
2025-03-06 00:36:03 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f6ac8a3414 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d74a2335ac9c133d6bbec9fc98d91a77f1604c1f?narHash=sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb%2BP%2BR4S8Jsw%3D' (2025-02-16)
  → 'github:NixOS/nixpkgs/ba487dbc9d04e0634c64e3b1f0d25839a0a68246?narHash=sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM%3D' (2025-03-03)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-06 00:17:22 +01:00
def0dbbcea vscode: Support Cursor AI (#6417)
Co-authored-by: Hyunggyu Jang <hyunggyu.jang@42dot.ai>
2025-03-05 12:39:42 +01:00
Karl HandGitHub b1b964ea93 mbsync: support maildir paths containing spaces
HM would previously create several folders instead of just one with the space escaped.
Fixes https://github.com/nix-community/home-manager/issues/6569
2025-03-04 23:51:00 +01:00
VonfryandGitHub 6f71acf71b git: apply sendmailCmd instead of smtpServer (#6399)
In manpage of git-send-email --smtp-server,

    For backward compatibility, this option can also specify
    full pathname of a sendmail-like program instead; the program
    must support the -i option. This method does not support
    passing arguments or using plain command names. For those use
    cases, consider using --sendmail-cmd instead.
2025-03-04 22:46:31 +01:00
Matthieu CoudronandGitHub 3f08cd8ef7 ci: add labels for firefox (#6520) 2025-03-04 22:14:44 +01:00
HPsauciiandGitHub 70fbbf05a5 Firefox: Apply global extension force setting to declarative extensions (#6567)
Respect the parent force option for the extension settings storage.js
2025-03-03 20:44:45 -06:00
Austin Horstman fcac3d6d88 xdg: use mkOptionDefault
These are supposed to be option defaults configured in the config
section.
2025-03-01 11:08:42 -05:00
Austin Horstman 66505b851b xdg: add missing stateHome default for legacy
Erroring in some tests because stateHome isn't set for the legacy state
version.
2025-03-01 11:08:42 -05:00
Austin Horstman 47c694963e tests: move xdg to cross platform tests
Has cross platform functionality, gate linux only behind separate test
path.
2025-03-01 11:08:42 -05:00
Austin Horstman 17fd27a8ea tests: use mkDefault with enable
We shouldn't need to mkForce every tests attempt to configure this
value.
2025-03-01 11:08:42 -05:00
Alice CarrollandGitHub 30da431093 librewolf: support darwin (#6561)
Remove linux platform assertion.
2025-03-01 08:55:01 -06:00
Zeremonienmeister BerberandGitHub 4f05ef6a8a firefox: fix wrong syntax grammar for search setting isAppProvided (#6556)
The or operator is left associative, and since there is another
argument after the first term, the interpreter tries to apply whatever
the or-expression evaluates to.  If the first operand is unset, it
evaluates to removeAttrs, and everything is fine, but if it is set to
a boolean (which is what it should be set to), then it tries to apply
a boolean to arguments, and we get a type error.  Bracketing
explicitly with parentheses fixes this.

It presumably went unnoticed because not many people have tried
setting the option
`programs.firefox.profiles.<profile>.search.engines.<engine>.isAppProvided`.
2025-03-01 08:47:21 -06:00
Manuel MendezandGitHub f0b5e7e8a7 xdg: add option 'xdg.cacheFile' (#6548)
Allow declarative configuration of files in configured xdg cache home.
2025-02-28 20:36:56 -06:00
Austin HorstmanandGitHub b71edac7a3 launchd: sync up with changes from nix-darwin (#6508)
We haven't updated to match changes done upstream in a while. Updating
to reflect changes for expanding support / proper types.
2025-02-27 17:38:18 -06:00
gmvarandGitHub 343646e092 kitty: add action aliases config (#6538) 2025-02-27 12:12:56 -06:00
Austin HorstmanandGitHub 0208592b59 idlehook: fix service.restart merge (#6544) 2025-02-27 11:32:59 -06:00
Austin HorstmanandGitHub cf3bf4f1b7 mpd: refactor implementation (#6537)
Remove with lib, reorganize, cleanup conditionals, hide options that are
linux only from darwin.
2025-02-27 10:56:56 -06:00
EmanuelandGitHub 11e6d20803 ghostty: fix typo (#6541) 2025-02-27 11:32:19 -05:00
Damien CassouandGitHub b8869e4ead mpd: Add support for darwin (#6517) 2025-02-26 20:53:00 -06:00
Even BrendenandGitHub 6be185eb76 screen-locker: set Restart=always for all services (#6534) 2025-02-26 15:41:55 -06:00
Even BrendenandGitHub 44b86a72e7 xidlehook: set Restart=always (#6533) 2025-02-26 15:41:15 -06:00
Thomas ZegerandGitHub 53c587d263 tmux: fix shell example (#5361) 2025-02-26 08:21:11 -06:00
Kilian MioandGitHub 87743e9383 firefox: deprecate vendorPath (#6519)
This is a reaction to PR #6460
2025-02-26 08:20:52 -06:00
eulaliaandGitHub 18e74c2e02 aerc-accounts: improve logic for parsing XOAUTH2 URL params (#6530)
This commit fixes an issue in aerc-accounts that prevents oauth2
accounts from being generated from given parameters. It also allows
users to add XOAUTH2 credentials without having to add all four of
client_id, client_secret, token_endpoint, and scope. It further adds
tests for the XOAUTH2 config generation.
2025-02-26 07:59:40 -06:00
DSOverlordandGitHub 74f0a8546e clipse: add additional options (#6525) 2025-02-25 08:39:21 -06:00
Bruno BELANYIandGitHub c12dcc9b61 xdg: create '$XDG_STATE_HOME' (#6526)
Some programs (e.g: `less`) will not make use of `$XDG_STATE_HOME` if
the directory does not exist.
2025-02-24 22:32:28 +01:00
Austin HorstmanandGitHub 12e26a74e5 tests/neovim: resolve deprecation (#6522)
Assigning a plain list to extraLuaPackages is deprecated.
                           Please assign a function taking a package set
as argument, so
                             extraLuaPackages = [ pkgs.lua51Packages.xxx
];
                           should become
                             extraLuaPackages = ps: [ ps.xxx ];
2025-02-23 15:53:17 -06:00
Austin Horstman 6a2af4ffb2 tests/swayidle: bash -> bash-interactive 2025-02-23 13:07:25 -08:00
Austin Horstman 3002f1aedf tests/mpd: bash -> bash-interactive 2025-02-23 13:07:25 -08:00
Silence TaiandGitHub b5ab2c7fda waybar: support enable inspect from service (#5922) 2025-02-23 07:45:42 -06:00
Austin HorstmanandGitHub ed030a7879 chromium: optional nativeMessagingHosts (#6515)
Should only be generating when provided
2025-02-22 21:58:48 -06:00
Seth FlynnandGitHub 3b6550f710 git: add option to use riff as diff tool (#5748)
https://github.com/walles/riff
2025-02-22 19:43:56 -06:00
Ihar HrachyshkaandAustin Horstman 6b7cd50812 tests: test librewolf the same way firefox is tested
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-22 17:38:43 -08:00
Ihar HrachyshkaandAustin Horstman 7f9ba30a28 tests: check that all firefox derivatives can be installed
The issue itself was resolved with:
https://github.com/nix-community/home-manager/pull/6460

This patch only adds a test case to make sure we don't ever regress by
installing firefox and librewolf and floorp at the same time.

Closes: #6467

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-22 17:38:43 -08:00
moniandGitHub fb568d75cf targets/darwin: allow configuring application linking (#4809)
Darwin users can disable application linking or change the path where applications are linked.
2025-02-22 17:00:52 -06:00
novenaryandAustin Horstman cb3f6e9b59 htop: write-protect entire configuration directory
Fixes #4947
2025-02-22 11:55:15 -08:00
novenaryandAustin Horstman 61d8f8366f htop: export defaultFields into lib 2025-02-22 11:55:15 -08:00
Austin Horstman 546949fea1 tests/dircolors: test zsh path 2025-02-22 11:50:20 -08:00
Austin Horstman 89b8934055 tests/dircolors: add xdg config test 2025-02-22 11:50:20 -08:00
Austin Horstman c327afbfd8 dircolors: refactor preferXdgDirectories
Store the paths in variables to deduplicate.
2025-02-22 11:50:20 -08:00
Shaw VranaandAustin Horstman 413e9b35f1 dircolors: respect preferXdgDirectories if set 2025-02-22 11:50:20 -08:00
Brieuc DuboisandGitHub 61d8fc9af0 firefox: Allow to add PKCS11 modules (#5608) 2025-02-22 12:51:06 -06:00
Artem StarikovandGitHub 90504b9a89 thunderbird: allow managing feed accounts (#5613) 2025-02-22 12:33:41 -06:00
eulaliaandGitHub 7ceacd98a9 wpaperd: add systemd service; move to services/ from programs/ (#6302)
This commit adds a systemd service to run it, and accordingly moves it to services.wpaperd.

In addition, the existing tests have been migrated to services, and an entry in the newslist has been created alerting users to this change.
2025-02-22 11:32:15 -06:00
Reputable2772andGitHub e860bd49ea vscode: add profiles support (#5640)
Adds support for VSCode Profiles configuration. Allowing you to define custom extensions and settings per profile.
2025-02-22 10:58:27 -06:00
Feliche-Demian NetliukhandGitHub 4949081d1e jqp: add module (#5716) 2025-02-22 10:23:01 -06:00
DSOverlordandGitHub a51e94e51c clipse: add module (#5777)
clipse is a configurable, TUI-based clipboard manager application written in Go with minimal dependency. Though the app is optimized for a Linux OS using a dedicated window manager, clipse can also be used on any Unix-based system.
2025-02-22 09:40:15 -06:00
Austin Horstman 34d524f3ed imapnotify-accounts: remove with lib 2025-02-22 06:33:32 -08:00
Coutinho de SouzaandAustin Horstman dd21b9afd5 imapnotify: add extraArgs option to imapnotify-accounts
`wait` is no longer a part of the goimapnotify's config, but one of its
cli options.
2025-02-22 06:33:32 -08:00
Heitor AugustoandGitHub f4a07823a2 chromium: add nativeMessagingHosts option (#6019) 2025-02-22 01:10:22 -06:00
Hoang NguyenandGitHub 2b382e499a earthly: init module (#6265)
Earthly is a build configuration framework utilizing buildkit and
Dockerfile-like syntax for simplicity and fast builds.
2025-02-22 01:04:35 -06:00
eum3landGitHub c31b4e330e accounts/email: provide realName option for alias (#6106) 2025-02-22 01:03:07 -06:00
NAHOandGitHub f0f0d1ade2 docs: update copyright year 2025-02-22 00:55:13 -06:00
Austin HorstmanandGitHub 439a125afe tests: remove with lib (#6511) 2025-02-21 23:20:07 -06:00
Austin HorstmanandGitHub e495cd8c80 tests/firefox: add profiles-extensions (#6510)
Wasn't actually running test because it wasn't included. Also had to fix
test after some of the recent changes.
2025-02-21 22:41:22 -06:00
TheStachelfischandGitHub 765cb91e9d psd: add missing module config options (#6230) 2025-02-21 19:33:49 -06:00
Austin Horstman 62d038f499 nushell: reenable test 2025-02-21 16:24:40 -08:00
github-actions[bot]andAustin Horstman f0837fa673 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a79cfe0ebd24952b580b1cf08cd906354996d547?narHash=sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y%3D' (2025-02-08)
  → 'github:NixOS/nixpkgs/d74a2335ac9c133d6bbec9fc98d91a77f1604c1f?narHash=sha256-zON2GNBkzsIyALlOCFiEBcIjI4w38GYOb%2BP%2BR4S8Jsw%3D' (2025-02-16)
2025-02-21 16:24:40 -08:00
1444andGitHub e512de4722 wluma: init module (#6463) 2025-02-21 18:24:26 -06:00
ChlorodoseandGitHub 9f74e14a2d fcitx5: make boot after graphical session (#6432) 2025-02-21 16:37:07 -06:00
truelecterandGitHub 6eed33a3ac jetbrains-remote: do not fail if files do not exist yet (#6502) 2025-02-21 16:34:36 -06:00
Bruno BELANYIandGitHub dde2fba628 home-cursor: add sway support (#6459) 2025-02-21 16:16:56 -06:00
Alejandro Masó BonillaandHosted Weblate 148a6b5565 Translate using Weblate (Catalan)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Alejandro Masó Bonilla <alejandrobonilla2001@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ca/
Translation: Home Manager/Home Manager Modules
2025-02-21 19:15:09 +01:00
David ThievonandGitHub bdf73272a8 swayimg: add module (#6506) 2025-02-21 12:15:02 -06:00
Ihar HrachyshkaandAustin Horstman 1a78a4c7fe firefox: fix build failure when package is null
Native messaging hosts module assumed all hosts are packages, and we
were passing null before.

The patch also adds a test case for a null firefox package to avoid
regressions in the future for this common (on Darwin at least) scenario.

Note: Thunderbird doesn't need a similar change because it doesn't allow
a null package.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman fad54a641a tests: check thunderbird with and without native messaging hosts
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman 63146593a9 tests: don't override scraping of nixpkgs for thunderbird suite
Instead, pick just the required packages to pass the tests.

Note: we have to refer to real derivations because symlinkJoin assumes
the passed derivation is a directory with files, otherwise it fails as:

@thunderbird@: No such file or directory

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman 5f5ff39778 firefox: remove with keyword use
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman 4eef197913 thunderbird, firefox: don't create native host dirs when program is off
Before the patch, both directories for firefox and thunderbird were
created, even when only one of the programs was enabled.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman e5e485e73c thunderbird: separate test case for firefox+thunderbird setup
Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman 7e81c581a5 thunderbird, firefox: fix file conflict for native messaging hosts
On Linux, both Thunderbird and Firefox use the same directory to contain
native messaging host modules. On this platform, we have to merge both
directories with native hosts into one.

The patch introduces a separate helper module to manage native host
directory generation. Now program modules (firefox, thunderbird) declare
native hosts to initialize; while the new helper module determines
*where* and *how* to merge them on disc.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Ihar HrachyshkaandAustin Horstman fadb9cba44 Reapply "thunderbird: add native host support (#6292)" (#6371)
This reverts commit 6fbbfb9240.

Signed-off-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2025-02-21 09:28:22 -08:00
Heitor AugustoandGitHub 3c82285348 vinegar: add module (#6494) 2025-02-21 07:48:51 -06:00
isabelandGitHub 0c0b0ac8af flake-module: use raw for homeConfgurations and deferredModule for modules (#6504) 2025-02-20 08:12:30 -06:00
Austin HorstmanandGitHub 1c189f0114 tests/home-cursor: init (#6496)
Working on module and needed test to verify expected behavior.
2025-02-19 13:18:30 -06:00
brickedandGitHub 97ac0801d1 firefox: prevent extensions settings override (#6490)
Prevents extensions settings from accidentally being overriden when
using `profiles.<name>.extensions.settings`. Adds the
`profiles.<name>.extensions.force` option to acknowledge the risk.
2025-02-18 15:24:24 -06:00
isabelandGitHub 4044ad191f fish: accept multiple events (#6489) 2025-02-18 15:22:42 -06:00
Austin HorstmanandGitHub a135aae1be flake.nix: remove deprecations (#6485)
Multiple stable releases removed from inception. Don't need to keep it
around anymore.
2025-02-18 13:46:26 -06:00
isabelandGitHub 5cfbf5cc37 flake: don't import modules (#6481)
since the `imports` attributes of modules allows for paths we can remove
the `import` making the consumption of nixosModules, darwinModules and
flakeModules cheaper
2025-02-17 20:20:42 -06:00
ljyothandGitHub 69dfc316c5 mise: enable nushell integration (#6363) 2025-02-17 19:36:02 -06:00
Austin Horstman 6c93eea85d firefox: add HPSaucii maintainer 2025-02-17 12:17:38 -08:00
HPsauciiandAustin Horstman 27ffa35178 firefox: add support for configuring extensions
This commit refactors programs.firefox.profiles.<name>.extensions in
order to support both installation of extensions (addons) and their
configuration. It does this by setting the
`extensions.webextensions.ExtensionStorageIDB.enabled` user_pref to
false.

When this preference is set to false, support for storing extension
settings in sqlite databases, also known as IndexedDB or IDB, is
reverted back to the JSON format present in firefox versions prior to
version 63, as seen here:
https://blog.mozilla.org/addons/2018/08/03/new-backend-for-storage-local-api/

IndexedDB was made the default due to performance improvements, but had
the consequence of removing any possibility of declarative extension
configuration without the assistance of firefox's policy system. The
policy system is supported by a small amount of extensions, such as
uBlock Origin, but has to be explicitly supported. Even when supported,
it provides significantly less granular control when compared to the
JSON storage format.
2025-02-17 12:17:38 -08:00
HPsauciiandAustin Horstman 3a0cf8f1aa maintainers: add HPsaucii 2025-02-17 12:17:38 -08:00
IliaandGitHub edad23ebc1 mako: add max-history option (#6009) 2025-02-17 12:10:04 -07:00
f4f6dd2698 git: fix setting format on >=25.05 (#6480)
Signed-off-by: Sumner Evans <me@sumnerevans.com>
Co-authored-by: Immae <immae@users.noreply.github.com>
2025-02-17 12:02:24 -06:00
9d0d48f4c3 nh: fixes and addition to warnings/assertions (#6470)
* nh: fix auto clean

- ~Fix `PATH` variable~
- Remove flake path assertion
- Add warning when HM's `nix.gc.automatic` is enabled

* nh: simplify logic for warning related to cfg.clean

---------

Co-authored-by: Nikita Pedorich <pedorich.n@gmail.com>
2025-02-17 08:36:35 -06:00
WeathercoldandGitHub c1ea92cdfb nh: change flake option type to singleLineStr (#6468) 2025-02-17 03:00:43 -08:00
Austin HorstmanandGitHub 5c5697b82a git: support not configuring signing.format (#6478) 2025-02-17 03:00:03 -08:00
SandroandGitHub 30b9cd6f1a mpv: drop old wrapMpv compatibility (#6024)
wrapMpv doesn't exist anymore for a while.
2025-02-17 10:28:26 +01:00
brickedandGitHub 662fa98bf4 nixpkgs-disabled: warn instead of assert (#6466)
Temporarily fixes backwards compatibility as issued in #6172.
2025-02-16 19:39:24 -06:00
EmilyandGitHub 25870c6600 nixos/common: fix options reference (#6473)
This was resolving to `lib.options.nix.enable.visible or true`,
which is always `true`, and therefore using `nix.enable` where it
shouldn’t be used. Oops…
2025-02-16 18:56:49 -06:00
isabelandGitHub b15e9ec676 flake-module: set _class (#6461)
This should *help* prevent bad imports.
2025-02-16 13:57:15 -06:00
Sizhe ZhaoandGitHub e5bc9c2af1 git: reduce priority of signing.format (#6465) 2025-02-16 13:55:03 -06:00
Kilian MioandGitHub ec130e7009 firefox: correct vendorPath of firefox forks (#6421)
The path for messaging hosts seems to have been
~/.mozilla/native-messaging-hosts/ and ~/Library/Application Support/Mozilla so vendorPath has been adjusted
2025-02-16 10:44:50 -06:00
DevinandGitHub eb44c1601e nixpkgs-disabled: fix useGlobalPkgs assertion (#6172)
This fixes the assertion that `config.nixpkgs` cannot be set if
`useGlobalPkgs` is enabled
2025-02-15 21:34:21 -06:00
Peter KlingandAustin Horstman 45c07fcf7d formatting according to HM's format tool 2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 85e9d1cc8f syncthing: expand declarative config to Darwin
This extends the recently merged PR #5616, which expanded the Synching config to allow declarative settings under Linux, such that it also works under Darwin.

Changes:
* Update the module's `syncthing` launchd agent to copy the synching key/certificate before starting syncthing, analogously to the systemd service from the above mentioned PR #5616.
* Adds an `syncthing-init`launchd agent (analogously to the systemd service `synching-init` from the above mentioned PR #5616) that updates the configuration files. Since this must be run after the syncthing service started, we use a `WatchPath` to coordinate both launchd agents.
2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 14223a8261 refactor launchd.agents.syncthing
Make launchd.agents an explicit attribute set, since we're going to add another agent.
2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 26454abc03 provide RUNTIME_DIRECTORY manually if not given by systemd 2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 33ffe94252 move curl shell function into string variable
Allows us to reuse the function in different scripts.
2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 17a78d3eed nix variable for syncthing's configuration directory
Is set according to the corresponding OS default, see https://docs.syncthing.net/users/config.html.
2025-02-15 14:35:04 -08:00
Peter KlingandAustin Horstman 53efb68b4b move syncthing-copy-keys to dedicated variable
This makes it possible to reuse the script in launchd setup.
2025-02-15 14:35:04 -08:00
sinavirandSumner Evans 8bc5e4c9b2 git-maintenance: More details in the documentation
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2025-02-15 14:36:13 -07:00
Austin HorstmanandGitHub 6d3163aea4 git: change stateVersion check for compatiblity (#6453)
Original change was created before 24.11 release. We are in 25.05 now.
2025-02-14 16:21:52 -06:00
SofandGitHub 67b9f9de22 vscode: add windsurf directories (#6427) 2025-02-14 15:16:26 -06:00
Calum MacRaeandGitHub 582d3cd42d yubikey-agent: init service module (#6446) 2025-02-14 15:10:24 -06:00
EmilyandGitHub 9daae9a67a nixos/common: forward nix.enable from the OS configuration (#6383)
This prevents problematic references to `nix.package` when Nix
management is disabled in the host OS.
2025-02-14 13:05:06 -06:00
7da01bc47a git: support alternate signing methods (#5516)
The Git module now supports SSH and X.509 signing in addition to
OpenPGP/GnuPG, via setting the `programs.git.signing.format` option.
It defaults to `openpgp` for now as a backwards compatibility measure,
but I feel like we shouldn't enforce GPG as the default on everyone,
especially for people who use SSH signing like me.

Accordingly, `programs.git.signing.gpgPath` has been renamed to
`programs.git.signing.signer`, as now the signer binary is not
restricted to GnuPG. Users should only get a warning and everything
should continue to work.

Fixes #4221, supersedes #4235

Co-authored-by: Mario Rodas <marsam@users.noreply.github.com>
Co-authored-by: Sumner Evans <me@sumnerevans.com>
Co-authored-by: Leah Amelia Chen <hi@pluie.me>
2025-02-14 11:47:27 -07:00
Austin Horstman 5031c6d297 syncthing: remove with lib 2025-02-13 10:08:21 -08:00
Austin Horstman 20fac9bbdf syncthing: use package options
Currently, all references are hardcoded even though we offer package
options. Update to use package options.
2025-02-13 10:08:21 -08:00
André SchröderandGitHub 22b418c13f bash: Make HISTFILESIZE and HISTSIZE nullable (#6443) 2025-02-13 08:58:45 -06:00
a70d788923 aerospace: fix workspace assignment config (#6442)
with the default to `{}`, this table is always set in the generated
config. this change allows `null` for
`workspace-to-monitor-force-assignment` and sets the default to `null`

Co-authored-by: derrik.fleming <derrik.fleming@spindance.com>
2025-02-13 08:24:38 -06:00
Kristoffer Plagborg Bak SørensenandGitHub c9d343cfa0 docs(zellij): programs.zellij.settings are serialized as kdl and not yaml from version 0.32.0 (#6010) 2025-02-12 21:07:02 -06:00
Austin Horstman 15b59d4191 eww: fix eww source creation
Source can't be accessed without being defined, need to move condition
earlier.
2025-02-12 09:38:53 -08:00
Austin Horstman d303453b13 eww: add null configDir test 2025-02-12 09:38:53 -08:00
Christoffer Hald ChristensenandAustin Horstman 1f6fa87808 eww: added tests 2025-02-12 09:38:53 -08:00
Christoffer Hald ChristensenandAustin Horstman f8729b11ee eww: fix confDir config using missing attribute "types.isNull" 2025-02-12 09:38:53 -08:00
David ArnoldandGitHub 83bd3a26ac email: add migadu.com flavor
Migadu is a very friendly and no-fuzz email service that presumably
will be highly valued by HM users.
2025-02-11 23:55:52 +01:00
Matthieu CoudronandGitHub f0a31d38e6 neomutt: fix default for 'map' in macros/binds (#6429)
https://github.com/nix-community/home-manager/pull/1885  changed 'map'
from a string to a list of string but the default wasn't updated accordingly.
When not defining map, you would get the warning `evaluation warning: teto profile: Specifying 'programs.neomutt.(binds|macros).map' as a string is deprecated, use a list of strings instead. See `.
2025-02-11 19:33:45 +01:00
Austin Horstman 8f351726c5 git-worktree-switcher: use lib.hm.shell.mkShellIntegrationOption 2025-02-11 09:18:04 -06:00
Mateus AulerandAustin Horstman 9c8169b446 git-worktree-switcher: init module 2025-02-11 09:18:04 -06:00
Yuki KobayashiandGitHub 59fe145f0b eww: make configDir optional (#6282)
Some people like to manage config directories themselves, and it should not be a requirement but rather an optional feature.
2025-02-11 08:27:04 -06:00
PopeRigbyandGitHub ba4a1a1102 ludusavi: create Ludusavi module (#5626) 2025-02-10 18:23:20 -06:00
isabelandGitHub e5854b98cd flake-module: change type from lazyAttrsOf raw to lazyAttrsOf deferredModule (#6408) 2025-02-10 18:07:00 -06:00
Austin Horstman 5795f792ab yazi: organization tweak
Moving variable declaration closer to usage so it's easier to manage /
see.
2025-02-10 17:57:29 -06:00
Austin Horstman b34b56689d yazi: remove with lib 2025-02-10 17:57:29 -06:00
Austin Horstman c0d06189f2 kitty: assert can't enable shell integrations when mode is null
We use the mode within the script for each integration. Make sure the
user understands what they are doing.
2025-02-10 17:56:59 -06:00
MithicSpiritandAustin Horstman fc3cd1e408 kitty: allow not setting shell_integration
This allows better support for using kitty's built-in shell integration
method by setting `shellIntegration.mode' to `null', which makes it not
be set at all in the config file and disables modification to shell
initialization scripts by default. If this is used, the user should set
`settings.shell_integration' instead (if shell integration is desired),
which receives no special handling.
2025-02-10 17:56:59 -06: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
github-actions[bot]andRobert Helgesson cf2ea71e68 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/799ba5bffed04ced7067a91798353d360788b30d?narHash=sha256-ooLh%2BXW8jfa%2B91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U%3D' (2025-02-04)
  → 'github:NixOS/nixpkgs/a79cfe0ebd24952b580b1cf08cd906354996d547?narHash=sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y%3D' (2025-02-08)
2025-02-10 22:44:24 +01:00
Perchun PakandGitHub b0bd29bb4b tldr-update: init (#6401)
Adds `tldr-update` module for enabling automatic `tldr update` on a schedule.
Adds option to `tealdeer` to enable integration with new `tldr-update` module.
2025-02-10 08:34:12 -06:00
NAHOandRobert Helgesson 5af1b9a0f1 treewide: standardize shell integration options
Standardize all 'programs.<PROGRAM>.enable<SHELL>Integration' options
with the following new functions:

- lib.hm.shell.mkBashIntegrationOption
- lib.hm.shell.mkFishIntegrationOption
- lib.hm.shell.mkIonIntegrationOption
- lib.hm.shell.mkNushellIntegrationOption
- lib.hm.shell.mkZshIntegrationOption

These functions should default to their corresponding global option:

- home.shell.enableBashIntegration
- home.shell.enableFishIntegration
- home.shell.enableIonIntegration
- home.shell.enableNushellIntegration
- home.shell.enableZshIntegration

All these global options default to the
'home.shell.enableShellIntegration' value.

This hierarchy standardizes the shell integration and increases end-user
flexibility.

BREAKING CHANGE: The following inconsistent default values change from
'false' to 'true':

- programs.zellij.enableBashIntegration
- programs.zellij.enableFishIntegration
- programs.zellij.enableZshIntegration

Link: https://github.com/nix-community/home-manager/pull/6358

Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-02-08 22:49:40 +01:00
bittin1ddc447d824349b2andRobert Helgesson bf9a1a0689 Translate using Weblate (Swedish)
Currently translated at 100.0% (16 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/sv/
2025-02-08 21:01:20 +01:00
Bruno FragosoandRobert Helgesson 90a4374b17 Translate using Weblate (Portuguese)
Currently translated at 100.0% (16 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt/
2025-02-08 21:01:20 +01:00
Robert Helgesson 947eef9e99 neovim: disable neovim-coc-config test 2025-02-08 09:17:02 +01:00
Coutinho de SouzaandGitHub 4337992712 wayland: create tray.target if xsession is not enabled (#6332)
Create a internal/read-only trayTarget option for the xsession, which is
also used in wayland's config, if the former is not enabled.

Remove all other definitions of `systemd.user.targets.tray`, i. e, the
ones from the following modules: hyprland, sway, river and wayfire.
2025-02-06 22:50:03 +01:00
Damien CassouandRobert Helgesson f99c704fe3 bash: Make sure HISTFILE's directory exists
Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-02-06 12:25:09 +01:00
Kira BruneauandGitHub 15bd673658 firefox: remove old unused test file (#6403) 2025-02-06 12:00:06 +01:00
Kira BruneauandGitHub 30ea6fed4e firefox: fix referencing name in profile-specific docs
Within the context of the profiles submodule, `${name}` refers to the
profile name, and not the Firefox fork name.

This fixes all descriptions to use the right name. This fixes a
previous commit that introduced a dependency between the documentation
and the user's configuration.
2025-02-05 22:10:32 +01:00
Kira BruneauandGitHub f20b7a8ab5 firefox: fix referencing firefox fork name in profile-specific docs (#6407)
* firefox: fix referencing firefox fork name in profile-specific docs

Within the context of the profiles submodule, `${name}` refers to the
profile name, and not the firefox fork name.

This fixes all descriptions to use `${cfg.name}` instead.

* firefox: prefer cfg.name instead of name for consistency
2025-02-05 12:11:16 +01:00
VladimirandHosted Weblate 3b6fde96d8 Translate using Weblate (Russian)
Currently translated at 100.0% (16 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
2025-02-05 08:48:24 +01:00
Languages add-onandHosted Weblate 987f622cc4 Add translation using Weblate (Bulgarian)
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2025-02-05 08:48:24 +01:00
Kiril PanandHosted Weblate 396025251a Translate using Weblate (Bulgarian)
Currently translated at 100.0% (37 of 37 strings)

Add translation using Weblate (Bulgarian)

Co-authored-by: Kiril Pan <eccyboo@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/bg/
Translation: Home Manager/Home Manager CLI
2025-02-05 08:48:23 +01:00
Gavagai53andHosted Weblate d092f0a4c0 Translate using Weblate (Spanish)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: Gavagai53 <masella_portlock@aleeas.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/es/
Translation: Home Manager/Home Manager Modules
2025-02-05 08:48:22 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
5997112695 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/852ff1d9e153d8875a83602e03fdef8a63f0ecf8?narHash=sha256-Zf0hSrtzaM1DEz8//%2BXs51k/wdSajticVrATqDrfQjg%3D' (2025-01-26)
  → 'github:NixOS/nixpkgs/799ba5bffed04ced7067a91798353d360788b30d?narHash=sha256-ooLh%2BXW8jfa%2B91F1nhf9OF7qhuA/y1ChLx6lXDNeY5U%3D' (2025-02-04)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-05 08:48:17 +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
Christina SørensenandGitHub 1e47f7101f gpg-agent: no-allow-external-cache option (#6387)
This is a pretty common configuration option, and one that many people
will find useful to discover, specially if they're not using a window
manager.

I thought I would add it. It is also useful to have for
pass-secret-service in the future, since you'd likely want to avoid DE
keyrings.

Signed-off-by: Christina Sørensen <ces@fem.gg>
2025-02-04 22:31:42 +01:00
JanikandGitHub 78576b817f home-manager: add lib support for non-flake users (#5429) 2025-02-04 22:29:41 +01:00
Matthieu CoudronandGitHub 7abcf59a36 mpv: support includes directives (#6391)
to allow mixing imperative and declarative config
the includes are at the end of the config
2025-02-04 12:07:35 +01:00
Heitor AugustoandGitHub 066ba0c5cf flake-module: rename homeModules to homeManagerModules (#6392) 2025-02-03 13:19:46 -06:00
Austin HorstmanandGitHub 18fa9f323d yazi: add main.lua support to plugins (#6394)
Yazi is deprecating init.lua for main.lua usages. This adds support for
main.lua in plugins.
2025-02-01 16:19:26 -06:00
Hoang NguyenandGitHub dae6d3460c git: add default value null to programs.git.signing.key (#6032) 2025-02-01 17:52:06 +01:00
Timon SchellingandGitHub 8544cd0920 lapce: add module (#5752)
Adds the 'programs.lapce' module for configuring lapce text editor.
Options for settings, plugins and keymaps are available.
2025-02-01 14:03:26 +01:00
utzuroandGitHub 055c67056d fcitx5: add waylandFrontend option to not set env vars (#5431) 2025-02-01 11:54:11 +01:00
Austin Horstman 801ddd8693 hyprland: use package stubs
Reducing closure size for tests.
2025-01-31 20:47:14 -06:00
Austin Horstman 9afd022013 wayfire-stubs: add stubs for wayfire tests
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman c4f28f282f spectrwm-stubs: add stubs for spectrwm tests
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman e17bdf3191 herbstluftwm-stubs: add stubs for herbstluftwm tests
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman c4f4b1e2fa bspwm-stubs: add stubs for bspwm tests
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman 02dc2e827f river-stubs: add stubs for river tests
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman e0a2df3193 i3-stubs: add more stubs
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Austin Horstman 644552519e sway-stubs: add more stubs
Reducing closure from 500MB to 357MB
2025-01-31 20:47:14 -06:00
Robert Helgesson a8159195bf flake-module: fix naming 2025-01-30 23:22:29 +01:00
Austin Horstman 234613d77c neovim: remove with lib 2025-01-30 15:48:46 -06:00
Austin Horstman 86b0f3049c hyprland: add null package tests 2025-01-30 15:41:13 -06:00
Austin Horstman fee01c9351 hyprland: fix null package conditions 2025-01-30 15:41:13 -06:00
Austin Horstman e3baf274f4 bat: remove with lib 2025-01-30 15:19:17 -06:00
Austin Horstman c90cd85b04 kitty: remove with lib 2025-01-30 15:08:03 -06:00
Austin Horstman 2d731a33b1 wezterm: remove with lib 2025-01-30 15:05:11 -06:00
Austin Horstman 20fd9686b8 btop: remove with lib; 2025-01-30 14:59:38 -06:00
Austin Horstman bf2a029bcd yazi: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman d62027e44d ripgrep: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 9cb98f3140 lazygit: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman cb985acc3c git: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 90b7acd988 fzf: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman a77b2c186a fastfetch: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 5a3f7c6d07 direnv: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 6a98897946 nix-index: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman c72b699ec6 btop: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 34e28fc6dd bat: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 05c64fa76b ghostty: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 178f8265cb kitty: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman ebdbb38103 wezterm: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 06bc354189 neovim: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman c3031a0e8c waybar: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 9a97ac435e swaync: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Austin Horstman 9ee99be0c0 cliphist: add khaneliman maintainer 2025-01-30 13:42:37 -06:00
Matt SturgeonandGitHub a5e196d61f flake-module: add flake-parts module (#5229)
Add a flake-parts module, output as flakeModules.home-manager and flakeModules.default.

The module defines options for flake.homeModules and flake.homeConfigurations, based on the respective nixos equivalents; flake.nixosModules and flake.nixosConfigurations.
2025-01-30 12:17:53 -06:00
Austin HorstmanandGitHub 7a45774684 aerospace: enable option desc fix (#6375) 2025-01-30 11:25:49 -06:00
Austin HorstmanandGitHub c621c26c4c aerospace: cleanup 2025-01-30 17:22:03 +01:00
ckgxrgandRobert Helgesson d963ed335b linux-wallpaperengine: add module
linux-wallpaperengine is an implementation of Wallpaper Engine on
Linux, this module allows it to be declaractively configured.
2025-01-30 10:22:43 +01:00
ckgxrgandRobert Helgesson 41f3dbd795 linux-wallpaperengine: add ckgxrg as maintainer 2025-01-30 10:01:37 +01:00
Norbert MelzerandGitHub 86a0d627ca home-manger: fix runtime closure (#5174)
Without this fix a `nix-buid . -A home-manager` would successfully
create a `home-manager`. And one could use the included binary until
the next garbage collection, after that it would fail with an
error that it can not find the `home-manager` sources.

Similarily a `nix-copy-closure`d `home-manager` would fail with the
same error on the copies target machine.

This problem existed on both, the flake as well as the non-flake build
of `home-manager`.
2025-01-29 19:20:30 -06:00
Sefa EyeogluandGitHub 9ce5d0b888 xdg-autostart: add module (#5251)
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-01-29 18:45:54 -06:00
diniamoandGitHub 7636b24867 hyprland: make package nullable (#5742) 2025-01-29 18:40:05 -06:00
chayleafandGitHub ba3338ab99 waybar: allow setting layer to overlay (#5729) 2025-01-29 18:39:21 -06:00
Florian KlinkandGitHub 697ba1319f waybar: allow setting systemd.target to null (#6241)
This allows making the systemd user unit appear without it autostarting,
which is useful if you want to start it manually from a specific display
manager config only.
2025-01-29 17:16:15 -06:00
Austin HorstmanandGitHub 6fbbfb9240 Revert "thunderbird: add native host support (#6292)" (#6371) 2025-01-29 17:11:30 -06:00
79eff1f6b9 zsh: added HIST_SAVE_NO_DUPS and HIST_FIND_NO_DUPS options to zsh for history configuration. (#6227)
Co-authored-by: Maximilian Füsslin <mfuesslin@gmail.com>
2025-01-29 16:31:45 -06:00
Utkarsh GuptaandGitHub 6aa38ffdf7 atuin: set socket path for darwin (#6248)
The daemon doesn't know about XDG_RUNTIME_DIR, so set the socket_path
manually for consistency between daemon & client
2025-01-29 16:09:34 -06:00
Ihar HrachyshkaandGitHub 608b26d16e thunderbird: add native host support (#6292)
Note: the test case uses a firefox native host but it shouldn't matter
since they are packaged the same way for both TB and Firefox.
2025-01-29 16:07:28 -06:00
d5e5c0d051 aerospace: add module (#6279)
Co-authored-by: damidoug <contact@damidoug.dev>
2025-01-29 16:04:24 -06:00
Robert Helgesson 420a0d9506 nushell: structured settings and more
PR #6184
2025-01-29 20:18:33 +01:00
anundandGitHub d71828a7dd ghostty: allow darwin users to manager their config (#6300)
* ghostty: allow darwin users to manager their config

Currently nixpkgs does not contain a package defintion for ghostty
compatible with Darwin. Darwin users may still want to use this module
to manage their config or share config between systems. This carries
over behaviour from the beta period where this same technique was used.

see: https://github.com/clo4/ghostty-hm-module/blob/887e13a6e7acf5ffaab0119d96e476d84db90904/module.nix#L167-L173

Also improves validation to cover theme files.

* ghostty: guard all package access with isLinux

ghostty is currently marked as broken in nixpkgs. Darwin users still
want to manage ghostty config via home-manager. Avoiding installing the
package and any extra files that depend on the package outside Linux
allows this.

* ghostty: allow nullable
2025-01-29 12:47:05 -06:00
Austin HorstmanandGitHub c4650fb9c0 cliphist: support multiple systemdTargets properly (#5669)
Using a space separated list of targets as a single string element in
the list doesn't work properly. Change property to support list of
targets and backwards compatibility with warning for single string.
2025-01-29 12:26:13 -06:00
Mihai FufezanandGitHub 5dc1c2e404 hyprland: add xdg.portal configuration (#5707)
Add integration with `xdg.portal`, and the `portalPackage` option for
`xdg-desktop-portal-hyprland`.
2025-01-29 12:19:53 -06:00
Danil SuetinandRobert Helgesson 0ee8bfdd04 firefox: add preConfig
Add `preConfig`, which acts like `extraConfig`, but placed before
`settings`. This will allow to overwrite settings in `preConfig`,
using `settings` option.
2025-01-29 18:36:43 +01:00
Andrew MarshallandGitHub bd530df4e2 firefox: avoid unnecessarily overriding package
When `cfg.package` is already wrapped, and wrapped without the
`ExtensionSettings` key set, this would always add that key, even if its
value was blank. This would result in `cfg.finalPackage` being a
functionally-identical, but differently-input-addressed package. This is
generally undesirable as it may result in multiple derivations being
built, and also if the value of `cfg.package` is expected to be
unchanged by the user (e.g. because they want it to be consistent
between NixOS and HM configuration).

Add a test to ensure this does not regress in the default case. Only
test on newish stateVersion since the logic for `isWrapped` differs on
older versions.
2025-01-29 18:29:44 +01:00
Joaquín TriñanesandRobert Helgesson 82455a84e3 nushell: allow multi-word aliases
Also fix invalid alias in test
2025-01-29 18:22:08 +01:00
Joaquín TriñanesandRobert Helgesson 709aaab1a5 nushell: set env in config.nu file 2025-01-29 18:22:07 +01:00
Joaquín TriñanesandRobert Helgesson 46c83c07b9 nushell: add settings option 2025-01-29 18:22:07 +01:00
Joaquín TriñanesandRobert Helgesson a1df6c4c76 nushell: slight refactor
- Remove 'with lib'
- More idiomatic lib calls
- Update config file examples with current best practices
2025-01-29 18:20:43 +01:00
Gaetan LepageandRobert Helgesson 1b4f2a4816 zed-editor: add installRemoteServer option 2025-01-29 11:09:51 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
0a64a209aa flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)
  → 'github:NixOS/nixpkgs/852ff1d9e153d8875a83602e03fdef8a63f0ecf8?narHash=sha256-Zf0hSrtzaM1DEz8//%2BXs51k/wdSajticVrATqDrfQjg%3D' (2025-01-26)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-29 10:06:49 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e1ae908bcc flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9e4d5190a9482a1fb9d18adf0bdb83c6e506eaab?narHash=sha256-nmKOgAU48S41dTPIXAq0AHZSehWUn6ZPrUKijHAMmIk%3D' (2025-01-21)
  → 'github:NixOS/nixpkgs/825479c345a7f806485b7f00dbe3abb50641b083?narHash=sha256-nU6AezEX4EuahTO1YopzueAXfjFfmCHylYEFCagduHU%3D' (2025-01-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-27 10:06:02 +01:00
Ivan KovnatskyandGitHub daf04c5950 ollama: add darwin support 2025-01-25 00:54:49 +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
Clément DOUIN 15f7f9bc4e himalaya: fix tests 2025-01-24 11:38:54 +01:00
Clément DOUINandRobert Helgesson e9068facd7 himalaya: adjust package for released v1.0.0 2025-01-24 09:30:08 +01:00
Clément DOUINandRobert Helgesson 2ae3dd460f himalaya: add xdg desktop entry 2025-01-24 09:30:08 +01:00
Clément DOUINandRobert Helgesson 5f5a9d5cd2 himalaya: make use of lib.getExe 2025-01-24 09:30:08 +01:00
Clément DOUINandRobert Helgesson 44ee9bc826 himalaya: improve service 2025-01-24 09:30:08 +01:00
Anton TetovandRobert Helgesson a042868557 nh: remove PATH assignment in nh-clean systemd unit
Runs without additions to path.

also:

- can't use $PATH in Environment=
- should add bin directory to path not the exe
2025-01-24 08:38:34 +01:00
Anton TetovandRobert Helgesson a2362a6496 nh: check osConfig for null before accessing 2025-01-24 08:37:11 +01:00
leoTlrandGitHub 7b9ece1bf3 tealdeer: update docs link
Repo is now at https://github.com/tealdeer-rs/tealdeer.
2025-01-23 22:59:39 +01:00
quasigodandGitHub 0db5c8bfcc ghostty: add keybinds to settings example 2025-01-23 12:04:39 +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
Gaetan LepageandRobert Helgesson 4806e9c021 flake.lock: Update 2025-01-23 09:38:00 +01:00
Robert Helgesson 1757aca164 go: stub systemd dependency in test 2025-01-23 09:38:00 +01:00
cefb1889b9 Translate using Weblate (Czech)
Currently translated at 93.7% (15 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/cs/

Co-authored-by: Dark Templar <dark.templar0007@gmail.com>
2025-01-22 20:51:32 +01:00
Ismaïl SenhajiandRobert Helgesson 4481a16d1a yazi: improve fish integration
Calls yazi as `command yazi`, allowing to use "yazi" as
`shellWrapperName`. Also defines the wrapper with
`programs.fish.functions` instead of `interactiveShellInit`.
2025-01-21 18:28:58 +01:00
pancho horrilloandGitHub 96dee79b17 lsd: remove with lib; 2025-01-21 17:53:23 +01:00
Nova LearyandGitHub bb14224f51 mu: allow option to set muhome
Allows for the database path for mu to be configured. Useful for keeping
the maildir and mu xapian cache together without having to modify
XDG_CACHE_HOME. Add test to check for custom home setting.

Fixes #5534
2025-01-21 13:14:48 +01:00
0b8df9eeb6 lsd: add support for icons.yaml
This update introduces support for icons.yaml in the lsd module,
enhancing the customization options for file icons.

Co-authored-by: pancho horrillo <pancho@pancho.name>
2025-01-21 13:12:40 +01:00
wrvsrxandGitHub 9786661d57 fcitx5: allow to set fcitx5-with-addons (#5770)
Now there's `libsForQt5.fcitx5` and `kdePackages.fcitx5` in nixpkgs, we
should allow user to choose which one to use.
2025-01-20 18:42:53 +01:00
cupiditasandGitHub f8ef4541bb nixpkgs: lib.isFunction replaces builtins.isFunction in check for overlayType (#6338)
Replaces the check attribute on overlayType with lib.isFunction so it matches the nixpkgs overlayType.
This lets functions that were made by lib.setFunctionArgs to be used as overlays just like the nixpkgs overlayType.
2025-01-19 16:08:57 +01:00
Austin HorstmanandGitHub 97d7946b5e {hypridle, hyrpaper}: remove with lib; (#6318)
* hypridle: remove with lib;

* hyprpaper: remove with lib;
2025-01-18 18:35:49 +01:00
JdogzzandGitHub 1c75a4c151 syncthing: have tray wait for bar to load (#6290)
Add --wait flag to tray to avoid loading before bar.
2025-01-18 18:35:27 +01:00
Jérôme PrudentandGitHub 1e36429705 sbt: allow irregular plugins to be configured
Sometimes plugins doesn't follow the form

```
addSbtPlugin("${plugin.org}" % "${plugin.artifact}" % "${plugin.version}")
```

for instance

```
addDependencyTreePlugin
```

This commit allow free form plugin dependency.
2025-01-18 09:22:15 +01:00
Rasmus EnevoldsenandHosted Weblate 495de1e197 Translate using Weblate (Danish)
Currently translated at 100.0% (16 of 16 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/da/
2025-01-18 02:23:35 +01:00
a0046af169 Translations update from Hosted Weblate
* Add translation using Weblate (Toki Pona)

Co-authored-by: Kylie McClain <kylie@somas.is>

* Add translation using Weblate (Toki Pona)

Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>

---------

Co-authored-by: Kylie McClain <kylie@somas.is>
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2025-01-17 14:30:39 +01:00
Ihar HrachyshkaandGitHub 12851ae746 thunderbird: Enable tests for Darwin (#6324) 2025-01-17 01:54:26 +01:00
Austin Horstman 0dfec9deb2 hyprlock: remove with lib; 2025-01-14 13:39:00 -06:00
Austin Horstman a1f180af17 hyprlock: add bezier to importantPrefixes
Since hyprwm/hyprlock@00d2cbf hyprlock supports the animation and bezier
keywords from Hyprland. But, bezier needs to be defined before an
animation can use it.
2025-01-14 13:37:43 -06:00
Linus HeckemannandGitHub fc52a210b6 network-manager-applet: changed nm-applet description (#6311)
This makes it a bit easier to find.
2025-01-13 17:27:56 +01:00
greenpsiandGitHub 0da8b6bae9 sway: allow sway specific hideEdgeBorders options (#6304)
* add `smart_no_gaps` option
* allow using `--i3` for hideEdgeBorders:

See e.g. https://man.archlinux.org/man/sway.5#Config_or_runtime_commands:

The --i3 option enables i3-compatible behavior to hide the title bar on tabbed and stacked containers with one child.
Co-authored-by: greenpsi <git@psinet.dev>
2025-01-13 17:26:51 +01:00
Sebastián Zavala VillagómezandGitHub 9616d81f98 mangohud: make false values actually disable (#6299)
Currently the following, will produce `some_opt=false` in the
rendered config:

```nix
programs.mangohud.settings = {
  some_opt = false;
};
```

With the intention being to disable the option, this would be
incorrect, as per the following stated at:
<https://github.com/flightlessmango/MangoHud/blob/0575c8eb1f61692a2e5ca152c4f8ed70bef55ee2/data/MangoHud.conf#L3C5-L4C1>

> Use some_parameter=0 to disable a parameter (only works with on/off
> parameters)

As such, I changed the rendering to follow this.
This will be output instead: `some_opt=0`
2025-01-13 16:20:04 +01:00
Terje LarsenandGitHub 2532b500c3 ollama: add module (#5735) 2025-01-10 12:31:03 +01:00
d4aebb947a todoman: add todoman module (#5252)
* todoman: add todoman module

Adds Mikilio as maintainer for new module for todoman a standards-based
task manager based on iCalendar

Apply suggestions from code review

Co-authored-by: Robert Helgesson <robert@rycee.net>

Update modules/programs/todoman.nix

Co-authored-by: Robert Helgesson <robert@rycee.net>

* fix: correct config name

* chore: add test

---------

Co-authored-by: Robert Helgesson <robert@rycee.net>
2025-01-09 12:25:50 +01:00
Shay Eclipse K. StageandGitHub 01f40d52d6 zsh/prezto: add package option (#5938)
Allow setting a custom package for `programs.zsh.prezto`.
2025-01-09 12:04:34 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7e00856596 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6df24922a1400241dae323af55f30e4318a6ca65?narHash=sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk%3D' (2025-01-02)
  → 'github:NixOS/nixpkgs/8f3e1f807051e32d8c95cd12b9b421623850a34d?narHash=sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs%2BrI%3D' (2025-01-04)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-08 21:01:05 +01:00
Hoang NguyenandSumner Evans 54b330ac06 go: add telemetry options 2025-01-08 09:39:32 -07:00
Thiago Kenji OkadaandGitHub fcc4259cdb treewide: stub tests (#6275)
* ranger: stub tests

* alacritty: stub tests

* broot: stub tests

* zsh: stub tests

* vim-vint: stub tests
2025-01-08 16:24:04 +01:00
1444andGitHub 456e599f91 wayfire: add module (#6066)
Adds a Module for the Wayfire Compositor. Also allows managing the wf-shell configuration.
2025-01-08 16:18:57 +01:00
45bcdbc910 gpg-agent: fix compatibility with sh when enableSshSupport (#6287)
Co-authored-by: sunqiancheng <sunqiancheng@sensetime.com>
2025-01-08 12:37:59 +01:00
Batuhan BaserdemandGitHub 5c4302313d neomutt: added missing sort options (#6283)
* neovim: add valid sort options

Neomutt added a new prefix for sort options in 2022.
Added the new possible prefixes to the neomutt module.
2025-01-07 20:16:55 +01:00
Carl DongandGitHub 20665c6efa home-manager: remove path: URI type for flake default
This reverts commit 536b3fb883.
2025-01-07 00:01:32 +01:00
programmerlexiandHosted Weblate 172b91bfb2 Translate using Weblate (German)
Currently translated at 100.0% (16 of 16 strings)

Co-authored-by: programmerlexi <lexi@reyer.name>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager Modules
2025-01-05 16:00:50 +01:00
Dorian BurgunandHosted Weblate 4795ebe6cc Translate using Weblate (French)
Currently translated at 100.0% (16 of 16 strings)

Translate using Weblate (French)

Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Dorian Burgun <docdoomduck@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fr/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-01-05 16:00:50 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
5ad12b6ea0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/88195a94f390381c6afcdaa933c2f6ff93959cb4?narHash=sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs%3D' (2024-12-29)
  → 'github:NixOS/nixpkgs/6df24922a1400241dae323af55f30e4318a6ca65?narHash=sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk%3D' (2025-01-02)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-05 09:41:24 +01:00
Matthias BeyerandGitHub 0d7908bd09 neomutt: Document how to bind Ctrl keys (#6254)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2025-01-04 18:56:03 +01:00
11ab08541e ghostty: validate configuration on change
Runs `ghostty +validate-config` when the configuration file changes.

Co-authored-by: Heitor Augusto <IAm.HeitorALN@proton.me>
2025-01-04 09:24:51 +01:00
midirhee12andGitHub a9987622b7 maintainers: updated username to midirhee12
- removed cvoges12 entry
- using respective maintainer entry in nixpkgs
- changed all hm modules' `meta.maintainers` to reflect new username /
  email
2025-01-04 00:37:20 +01:00
Robert Helgesson ef64efdbac treewide: standardize wayland graphical services
PR #6253
2025-01-03 18:25:11 +01:00
Thiago Kenji OkadaandRobert Helgesson 14cb0c8cfa fnott: use config.wayland.systemd.target
Also add missing `ConditionEnvironment`.
2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson 656ae5aba2 clipman: use config.wayland.systemd.target
Also add `ConditionEnvironment`.
2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson a6db8c8f6c hypridle: use config.wayland.systemd.target 2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson da12f0b143 hyprpaper: use config.wayland.systemd.target 2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson 8f48fea0f8 avizo: use config.wayland.systemd.target 2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson adcf0b6281 wob: use config.wayland.systemd.target 2025-01-03 17:38:06 +01:00
Thiago Kenji OkadaandRobert Helgesson 51ba4aacec swayosd: use config.wayland.systemd.target 2025-01-03 17:38:05 +01:00
Thiago Kenji OkadaandRobert Helgesson 4cbc8a58ab swaync: use config.wayland.systemd.target 2025-01-03 17:38:05 +01:00
Thiago Kenji OkadaandRobert Helgesson d3c500a8f8 kanshi: use config.wayland.systemd.target
Also add `ConditionEnvironment`.
2025-01-03 17:38:05 +01:00
Thiago Kenji OkadaandRobert Helgesson 8587c2ff0e waybar: use config.wayland.systemd.target
Also add `ConditionEnvironment`.
2025-01-03 17:37:42 +01:00
Thiago Kenji OkadaandRobert Helgesson 89fe48b1c1 swayidle: use config.wayland.systemd.target
Also add `Unit.After`.
2025-01-03 17:37:16 +01:00
Thiago Kenji OkadaandRobert Helgesson 0734cfab07 wayland: add module 2025-01-03 17:10:41 +01:00
Drewry PopeandGitHub 1c8d4c8d59 mako: add center-left & center-right 2025-01-03 11:33:28 +01:00
Hosted Weblate 7254063d52 Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2025-01-03 10:26:11 +00:00
Languages add-onandHosted Weblate 12327fc3d8 Add translation using Weblate (Tamil)
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2025-01-03 10:26:09 +00:00
தமிழ்நேரம்andHosted Weblate 7f16e9c3cb Translate using Weblate (Tamil)
Currently translated at 100.0% (37 of 37 strings)

Add translation using Weblate (Tamil)

Co-authored-by: தமிழ்நேரம் <anishprabu.t@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ta/
Translation: Home Manager/Home Manager CLI
2025-01-03 10:26:08 +00:00
Heitor AugustoandGitHub a6f37e5785 ghostty: fix configuration for bat syntax 2025-01-03 11:26:00 +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
Terje LarsenandGitHub 1e2a9d2d29 format: ignore system and user git config
This can cause failures if the user has configuration that is
incompatible with the version of git pinned in the format script.

Potentially it could have other undesired effects as well.

Fix #5736
2025-01-03 11:22:01 +01:00
Robert Helgesson f4f8d09f90 home-manager: update copyright year 2025-01-03 10:56:26 +01:00
Heitor AugustoandRobert Helgesson 5f6aa268e4 ghostty: add module 2025-01-02 00:33:45 +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
Chris PickandGitHub 59a4c43e9b bacon: fix configuration file location on Darwin
bacon reads its preferences from a different directory on Darwin.
Fix the path to read out of:
~/Library/Application\ Support/org.dystroy.bacon/prefs.toml
Linux behavior should be unchanged.
2025-01-01 13:51:47 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
2ac770c007 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
  → 'github:NixOS/nixpkgs/88195a94f390381c6afcdaa933c2f6ff93959cb4?narHash=sha256-0q9NGQySwDQc7RhAV2ukfnu7Gxa5/ybJ2ANT8DQrQrs%3D' (2024-12-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-01-01 10:46:14 +01:00
Marcin SerwinandGitHub 10e99c43cd copyq: add option to disable XWayland 2024-12-28 11:16:56 +01:00
EmmChrissandRobert Helgesson b7a7cd5dd1 pqiv: fix condition for writing pqivrc file
Specifically, write the configuration if either settings or
extraConfig are set.
2024-12-28 00:56:55 +01:00
Kiara GrouwstraandRobert Helgesson 19398e505a lesspipe: allow configuring package 2024-12-28 00:51:42 +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
Shahar "Dawn" OrandGitHub f1b1786ea7 swayr: avoid IFD 2024-12-23 23:21:39 +01:00
VojtechStepandRobert Helgesson 8264bfe3a0 mu: add integration tests 2024-12-23 10:00:12 +01:00
VojtechStepandRobert Helgesson 7349b01505 mu: reinitialize when personal addresses change
When the user changes which addresses mu should consider 'personal',
mu's store should be reinitialized.

After this change, the activation script parses the previously
configured list of addresses and compares it with the new one. If they
differ, it runs the init command even when the store has already been
initialized.
2024-12-23 09:52:16 +01:00
Mel BourgeoisandRobert Helgesson 8bea1a2005 nixgl: forward override calls to wrapped package 2024-12-23 09:22:06 +01:00
David ChocholatýandHosted Weblate edb8b00e4d Translate using Weblate (Czech)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: David Chocholatý <chocholaty.david0@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/cs/
Translation: Home Manager/Home Manager CLI
2024-12-22 19:54:46 +01:00
musjjandRobert Helgesson 1f74238a4c xresources: allow floating point values 2024-12-22 19:48:53 +01:00
Robert HelgessonandGitHub cb27edb522 waybar: add systemd restart triggers
Fixes #3186
2024-12-22 11:13:25 +01:00
brickedandRobert Helgesson f47b6c153a cavalier: add module 2024-12-22 09:48:38 +01:00
github-actions[bot] c903b1f6fb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3566ab7246670a43abd2ffa913cc62dad9cdf7d5?narHash=sha256-AKU6qqskl0yf2%2BJdRdD0cfxX4b9x3KKV5RqA6wijmPM%3D' (2024-12-13)
  → 'github:NixOS/nixpkgs/d70bd19e0a38ad4790d3913bf08fcbfc9eeca507?narHash=sha256-4EVBRhOjMDuGtMaofAIqzJbg4Ql7Ai0PSeuVZTHjyKQ%3D' (2024-12-19)
2024-12-22 03:59:25 +00:00
Ihar HrachyshkaandRobert Helgesson 51160a097a thunderbird: implement extensions for profiles
Closes: #5654
2024-12-21 23:54:29 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f342df3ad9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/55d15ad12a74eb7d4646254e13638ad0c4128776?narHash=sha256-M1%2BuCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo%3D' (2024-12-03)
  → 'github:NixOS/nixpkgs/3566ab7246670a43abd2ffa913cc62dad9cdf7d5?narHash=sha256-AKU6qqskl0yf2%2BJdRdD0cfxX4b9x3KKV5RqA6wijmPM%3D' (2024-12-13)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-21 20:09:59 +01:00
Nicholas CiechanowskiandRobert Helgesson db9a98e178 pay-respects: add module
Add pay-respects module including shell integration support for bash,
zsh, fish and nushell.
2024-12-21 18:13:06 +01:00
David ChocholatýandGitHub 99f54cdfef yazi: fix example option for settings 2024-12-21 18:04:53 +01:00
Robert Helgesson 1395379a7a home-manager: improve path handling when building news
Fixes #6217
2024-12-19 16:30:15 +01:00
Austin HorstmanandGitHub 832920a608 thunderbird: add profileVersion
Similar to what we did for firefox for darwin support.
2024-12-19 16:29:18 +01:00
Simone RagusaandGitHub 83ecd50915 docs: fix typo in 24.11 release notes 2024-12-16 11:23:18 +01:00
DaRacciandRobert Helgesson 66c5d8b628 zed-editor: fix always generating settings.json
Makes it so settings.json no longer gets made by ensuring it can be
empty as expected when there are no extensions or userSettings
defined.

PR #6201
2024-12-13 13:34:55 +01:00
Matthieu CoudronandGitHub 3066cc58f5 kanshi: dont write config in absence of nix settings (#6198) 2024-12-12 23:48:46 +01:00
Matthieu CoudronandGitHub e526fd2b1a gnome-shell: fix extensions' default (#6199)
Else I get a
===

       … while calling the 'throw' builtin
         at /nix/store/afpmddfrmx5df3h16bdh00yy8i7db8w4-source/pkgs/desktops/gnome/default.nix:96:28:
           95|   gnome-shell = throw "The ‘gnome.gnome-shell’ was moved to top-level. Please use ‘pkgs.gnome-shell’ directly."; # Added on 2024-08-28.
           96|   gnome-shell-extensions = throw "The ‘gnome.gnome-shell-extensions’ was moved to top-level. Please use ‘pkgs.gnome-shell-extensions’ directly."; # Added on 2024-08-11.
             |                            ^
           97|   gnome-software = throw "The ‘gnome.gnome-software’ was moved to top-level. Please use ‘pkgs.gnome-software’ directly."; # Added on 2024-08-11.

       error: The ‘gnome.gnome-shell-extensions’ was moved to top-level. Please use ‘pkgs.gnome-shell-extensions’ directly.
===

on rebuild
2024-12-12 21:58:33 +01:00
Matthieu CoudronandGitHub 15151bb5e7 gpg: fix hash of test (#6200)
would fail on tests
2024-12-12 20:18:22 +01:00
DDoSolitaryandGitHub 6e5b2d9e80 home-manager: support username with special chars (#5609)
The home manager script fails when $USER contains special characters.

For example, my work PC is managed by company's LDAP and username is <COMPANY>\<user>). When running home-manager switch I get the following error:
```
error: flake 'path:/home/<COMPANY>/<user>/.config/home-manager' does not provide attribute 'packages.x86_64-linux.homeConfigurations."<COMPANY>\<user>".activationPackage', 'legacyPackages.x86_64-linux.homeConfigurations."<COMPANY>\<user>".activationPackage' or 'homeConfigurations."<COMPANY>\<user>".activationPackage'
       Did you mean <COMPANY><user>?
```
There are two types of strings that need escaping:

    strings in Nix expressions (e.g. home.nix generated by home-manager init)
    they need backslashes before special chars
    flake URI (passed to nix build)
    they need URI's percent encoding, luckily jq supports that
2024-12-11 22:13:27 +01:00
Axel KarjalainenandRobert Helgesson f26aa4b76f gpg-agent: fix GCR DBus package note
D-Bus services are queried from Home Manager packages too. NixOS is
not required.
2024-12-11 00:26:35 +01:00
Aly RaffaufandGitHub c6a5fbfd99 qt: install kio when qt.platformTheme = "kde" 2024-12-11 00:16:07 +01:00
Aidan GaulandandRobert Helgesson 8772bae58c nushell: allow installing plugins
When the version of Nushell or any Nushell plugin changes, the plugin
registry must be regenerated.
2024-12-10 23:21:17 +01:00
Manuel Mendez e952e94955 atuin: Prepare for daemon socket path in 18.4.0
The path is changing in 18.4.0 to XDG_RUNTIME_DIR over XDG_DATA_DIR so
update the specifier. See https://github.com/atuinsh/atuin/pull/2171.
2024-12-09 13:40:54 -05:00
Manuel Mendez 77a792a041 atuin: Do not hard code prefix for daemon socket path
Autin looks for the XDG_DATA_HOME which may not be set as
$HOME/.local/share so lets use the systemd specifier for it instead.
2024-12-09 13:25:11 -05:00
alois31andGitHub 9ebaa80a22 thunderbird: set the correct SMTP server for aliases (#6177)
Previously, only the main identity of an account would get the proper SMTP
server assigned. Identities corresponding to aliases would not get an SMTP
server assigned at all, leading to a (Thunderbird-internal) fallback to the
SMTP server associated to the primary account. This is obviously wrong for
non-primary accounts having aliases associated to them. Fix it by specifying
the SMTP server explicitly for all identities.
2024-12-09 15:34:21 +01:00
Karl HandGitHub f63c15c137 isync/mbsync: update module for 1.5.0 changes (#5918)
* mbsync: Add NEWS entry about isync 1.5.0 changes

* mbsync: Place config file in $XDG_CONFIG_HOME

mbsync 1.5.0 supports placing isync's configuration file in
$XDG_CONFIG_HOME/isyncrc [1].

[1] https://sourceforge.net/projects/isync/files/isync/1.5.0/

* mbsync: Replace SSLType with TLSType

mbsync 1.5.0 replaced the name of the configuration option [1].

Also update SSLVersions to TLSVersions for the same reason. Inform the
user if the option was renamed.

[1] https://sourceforge.net/projects/isync/files/isync/1.5.0/

* mbsync: Replace SSLVersions with TLSVerisons

* mbsync: Update extraConfig.account example with SSL->TLS changes
2024-12-09 15:32:05 +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
Linus HeckemannandRobert Helgesson 65912bc684 imapnotify: provide an option for setting PATH
Including some useful presetting for notmuch and mbsync.
2024-12-05 10:08:50 +01:00
eljammandRobert Helgesson 0daaded612 starship: replace eval with source for fish
Changed the initialization method from `eval` to `source` as per the
starship installation guide.

See: https://starship.rs/guide/#%F0%9F%9A%80-installation

This is in accordance with the Fish docs which recommends using `source`
if the command does not need access to stdin, which in this case is what
upstream has.

See: https://fishshell.com/docs/current/cmds/eval.html
2024-12-05 00:19:44 +01:00
eljammandRobert Helgesson 86ee1290d7 starship: add enableInteractive option for fish
Some fish plugins such as https://github.com/acomagu/fish-async-prompt
require that starship be initialized as non-interactive.

When the `programs.starship.enableInteractive` option is enabled,
starship is initialized at the end of the init script, outside the
interactive block.
2024-12-05 00:19:44 +01:00
Lukáš KucharczykandGitHub 1cd17a2f76 mangohud: fix a non-working example
The example for settingsPerApplication is missing a semicolon.
2024-12-04 20:56:44 +01:00
Nova LearyandGitHub 3a7fc9cd71 zsh: make autosuggest strategy accept more options
Now accepts an empty list, which turns off the code so the user can
manually set ZSH_AUTOSUGGEST_STRATEGY anywhere they want via any of the
`*Variables` module options.
2024-12-04 20:54:01 +01:00
LorenzBischofandRobert Helgesson ad48eb25cd etesync-dav: update default server URL 2024-12-04 14:06:18 +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
Robert Helgesson 30f66eaa32 xresources: 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:37:15 +01:00
Robert Helgesson 6c3a7a0b72 qt: reduce test closure 2024-12-04 10:24:09 +01:00
Louis OpterandRobert Helgesson 8f4f57f9a6 qt: update tooling for Plasma 6 2024-12-04 09:21:37 +01:00
Ricky TiggandHosted Weblate 7080328318 Translate using Weblate (Finnish)
Currently translated at 75.6% (28 of 37 strings)

Co-authored-by: Ricky Tigg <ricky.tigg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fi/
Translation: Home Manager/Home Manager CLI
2024-12-04 07:59:37 +00:00
Philip WilkandGitHub 5b5de4338f kakoune: fix color scheme package XDG file 2024-12-04 08:59:32 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
256ec2653e flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/970e93b9f82e2a0f3675757eb0bfc73297cc6370?narHash=sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE%3D' (2024-11-28)
  → 'github:NixOS/nixpkgs/55d15ad12a74eb7d4646254e13638ad0c4128776?narHash=sha256-M1%2BuCoV5igihRfcUKrr1riygbe73/dzNnzPsmaLCmpo%3D' (2024-12-03)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-04 08:48:45 +01:00
Robert Helgesson 92e644a95e atuin: configure daemon using systemd and launchd 2024-12-04 08:39:49 +01:00
Varun NarravulaandRobert Helgesson dfdf59b2d5 atuin: make daemon log level configurable 2024-12-03 00:11:05 +01:00
Varun NarravulaandRobert Helgesson f8bc330a13 atuin: capitalize mentions of "atuin" 2024-12-03 00:09:57 +01:00
Varun NarravulaandRobert Helgesson c56aa0f51d atuin: assert version >= 18.2.0 when daemon is enabled 2024-12-03 00:09:57 +01:00
Varun NarravulaandRobert Helgesson 33c236f1d5 atuin: add water-sucks as maintainer 2024-12-03 00:09:57 +01:00
Varun NarravulaandRobert Helgesson 092b81b956 atuin: configure daemon using systemd and launchd
This configures the atuin daemon for Linux and Darwin systems using
systemd and launchd, respectively. For systemd, a socket is also
automatically configured to exist at atuin's default socket location.
2024-12-03 00:09:57 +01:00
Bruno BELANYIandRobert Helgesson bf23fe4108 tmux: add 'focusEvents'
With `tmux-sensible` being disabled by default, add an easy toggle to
enable this functionality.

Disabled by default, as in upstream `tmux`.
2024-12-02 22:43:34 +01:00
873e39d5f4 podman-container: fix tests and failing podman 5.3.0 service
Co-authored-by: Dylan Wilson <dylan@bytepen.com>
2024-12-02 11:05:28 +01:00
FeaandGitHub d2e2bda6c0 nix-your-shell: fix creating required directory
This fixes https://github.com/nix-community/home-manager/issues/6161
2024-12-02 10:38:18 +01:00
paumrandGitHub c1fee8d4a6 alot: make package used by module configurable 2024-12-01 21:38:04 +01:00
Igor RzegockiandRobert Helgesson 8632735050 kubecolor: add module 2024-12-01 20:35:09 +01:00
Terje LarsenandRobert Helgesson e71e678d18 nix-your-shell: add module 2024-12-01 20:20:16 +01:00
Gaétan LepageandGitHub 7f78e2d1c6 yazi: update keymap config 2024-12-01 18:47:01 +01:00
Nova LearyandGitHub 441fae847d zsh-abbr: add package option 2024-12-01 18:23:18 +01:00
Robert Helgesson 4964f3c6fc home-manager: prepare 24.11 release 2024-12-01 10:31:51 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
8eeda281e7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4633a7c72337ea8fd23a4f2ba3972865e3ec685d?narHash=sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0%3D' (2024-11-25)
  → 'github:NixOS/nixpkgs/970e93b9f82e2a0f3675757eb0bfc73297cc6370?narHash=sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE%3D' (2024-11-28)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-12-01 10:04:56 +01:00
Ken MicklasandGitHub 819f682269 lorri: fix ReadWritePaths for new gcroots behavior 2024-11-29 13:43:55 +01:00
Philip WilkandRobert Helgesson 2f7739d010 kakoune: add colorSchemePackage option
This makes it easy to declaratively manage the color scheme for
kakoune via a nix package in your `~/.config/kak/colors` folder. The
color scheme can then be declaratively selected by name using the
existing Home Manager option `programs.kakoune.config.colorScheme`.
2024-11-28 12:24:55 +01:00
Jordan WilliamsandRobert Helgesson b721965238 mopidy: ignore collisions between extensions 2024-11-28 12:12:32 +01:00
Jordan WilliamsandRobert Helgesson de7d67b8ba mopidy: make makeWrapper a native build input
This fixes the error message

    error: makeWrapper/makeShellWrapper must be in nativeBuildInputs
2024-11-28 12:11:18 +01:00
EtherbloomandGitHub 21396857fd kdeconnect: upgrade default version
Plasma6 has been out for a while now and the service still points to
the old, incompatible version.
2024-11-28 11:32:21 +01:00
GenandGitHub f83dc9f25a tmux: set sensibleOnTop = false as a default
Fixes #5952
2024-11-28 11:30:10 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
0941a2e144 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/23e89b7da85c3640bbc2173fe04f4bd114342367?narHash=sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w%3D' (2024-11-19)
  → 'github:NixOS/nixpkgs/4633a7c72337ea8fd23a4f2ba3972865e3ec685d?narHash=sha256-2ThgXBUXAE1oFsVATK1ZX9IjPcS4nKFOAjhPNKuiMn0%3D' (2024-11-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-28 10:44:48 +01:00
Jordan WilliamsandRobert Helgesson a9953635d7 mopidy: restart service on config changes
Also extend basic configuration test a bit to verify the restart
trigger.
2024-11-24 22:04:15 +01:00
Ingo ReitzandGitHub 4d8d8c385e zed-editor: add extraPackages option
Add extraPackages option to make for example language servers
available to Zed without having to add them to `home.packages` or
similar.
2024-11-24 21:15:57 +01:00
Jordan WilliamsandGitHub 83002f1846 mopidy: restart the systemd service on failure 2024-11-24 19:26:14 +01:00
Tomodachi94andRobert Helgesson 98bf8de65d volnoti: use cfg.package instead of pkgs 2024-11-24 19:06:58 +01:00
Tomodachi94andRobert Helgesson f9fd45c512 volnoti: add self to maintainers 2024-11-24 17:54:00 +01:00
Christian SegundoandGitHub 9ae941a4cf abook: remove platform linux assertion
Abook is also available on other platforms, e.g., Darwin.
2024-11-24 17:45:26 +01:00
Sebastián Zavala VillagómezandRobert Helgesson 5e2f47c5a5 hypridle: fix service when no config file
The systemd user service depends on

  config.xdg.configFile."hypr/hypridle.conf".source

for `X-Restart-Triggers`. When `cfg.settings` is the default `{}`,
this causes failure since

  config.xdg.configFile."hypr/hypridle.conf".source

will not exist.

Making the addition conditional on `cfg.settings` actually having
content, which would mean `xdg.configFile."hypr/hypridle.conf"` does
exist, avoids the error.
2024-11-24 17:41:50 +01:00
Sebastián Zavala VillagómezandGitHub bd58a1132e hyprpaper: fix service when no config file
The systemd user service depends on

  config.xdg.configFile."hypr/hyprpaper.conf".source

for `X-Restart-Triggers`. When `cfg.settings` is the default `{}`,
this causes failure since

  config.xdg.configFile."hypr/hyprpaper.conf".source

will not exist.

Making the addition conditional on `cfg.settings` actually having
content, which would mean `xdg.configFile."hypr/hyprpaper.conf"` does
exist, avoids the error.
2024-11-24 14:05:10 +01:00
github-actions[bot] 67cd4814a2 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e4fbfb6b3de1aa2872b76d49fafc942626e2add?narHash=sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg%3D' (2024-11-15)
  → 'github:NixOS/nixpkgs/23e89b7da85c3640bbc2173fe04f4bd114342367?narHash=sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w%3D' (2024-11-19)
2024-11-24 03:59:24 +00:00
92fef254a9 podman: install package and create config files
Co-authored-by: Dylan Wilson <dylan@bytepen.com>
2024-11-23 22:36:33 +01:00
klchen0112andRobert Helgesson ba9367b5a9 emacs: add darwin service 2024-11-23 19:15:47 +01:00
Nithin S VarrierandRobert Helgesson 16fe78182e conky: update systemd exec path to config package
Currently systemd ExecStart uses pkgs.conky as executable path, this
commit changes it to the package defined by services.conky.package.
2024-11-23 18:36:17 +01:00
arminius-smhandRobert Helgesson 445d721ecf home-cursor: add hyprcursor support
Add the option to enable hyprcursor support by setting the relevant
environment variables.
2024-11-23 18:27:16 +01:00
Robert Helgesson 8cf9cb2ee7 tests: fix integration test 2024-11-22 20:32:42 +01:00
Robert Helgesson a46e702093 espanso: fix test failure 2024-11-19 15:05:03 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
d37f154dba flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/76612b17c0ce71689921ca12d9ffdc9c23ce40b2?narHash=sha256-IigrKK3vYRpUu%2BHEjPL/phrfh7Ox881er1UEsZvw9Q4%3D' (2024-11-09)
  → 'github:NixOS/nixpkgs/5e4fbfb6b3de1aa2872b76d49fafc942626e2add?narHash=sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg%3D' (2024-11-15)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-19 14:40:06 +01:00
Nikolaos KaraolidisandRobert Helgesson a42fa14b53 syncthing: expand declarative configuration
This expands the Syncthing configuration to allow declarative
settings. Code mostly pulled from the Nixpkgs module.

Changes compared to the NixOS module are:

Removed the following options:

- user, group, systemService: Unnecessary since Syncthing always runs
  as the user declaring the configuration.

- dataDir configDir, databaseDir: Pointed to ~/.local/state/syncthing,
  the default Syncthing directory.

- openDefaultPorts: We don't have access to the system firewall.

Furthermore, multiple changes to systemd services were made to
maintain consistency with other Home Manager modules, sandboxing
options might need to be reviewed further.

Fixes #4049
2024-11-18 23:27:58 +01:00
wadsaekandHosted Weblate 705cf3763a Translate using Weblate (Ukrainian)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: wadsaek <wadsaek@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/uk/
Translation: Home Manager/Home Manager CLI
2024-11-18 21:16:30 +00:00
Lorenzo BevilacquaandHosted Weblate 094265fca0 Translate using Weblate (Italian)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Lorenzo Bevilacqua <lorenzobevilacqua02@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translation: Home Manager/Home Manager CLI
2024-11-18 21:16:30 +00:00
chayleafandRobert Helgesson 0bd5e9c76c librewolf: hide bookmarks option 2024-11-18 22:14:54 +01:00
chayleafandRobert Helgesson 18462998b1 librewolf: use mkFirefoxModule 2024-11-18 22:14:54 +01:00
Ilham AMandGitHub f3a2ff6958 zsh-abbr: update source path (#6084) 2024-11-18 00:44:26 +01:00
Robert Helgesson 05d3b6215a home-manager: prepare 25.05-pre 2024-11-18 00:13:46 +01:00
Robert Helgesson 0918bb0238 ci: make dependabot consider release-24.11 2024-11-17 23:31:31 +01:00
Kacper KoniuszyandRobert Helgesson aecd341dfe firefox: improve search engine disclaimer generation
Using a fixed application name in the salt for the search engine name
hash can break with minor branding changes. For example, LibreWolf 127
used the application name "LibreWolf", but in version 128 it is
"Firefox".

The proper name can be found in about:support -> Application Basics.

Because it doesn't have to be related to the product name visible in
most of the browser (for example in the window title and help menus),
we shouldn't rely on cfg.name for that.

The application name can be read from lib/*/application.ini and we can
use that if the browser was installed via Home Manager. If not, we can
fall back to cfg.name.
2024-11-17 22:58:01 +01:00
Juanjo PresaandGitHub 5056a1cf0c version: allow 25.05 as state version
Nixpkgs updated upstream:
https://github.com/NixOS/nixpkgs/commit/90fcf3aa7eba70f18dad15b634e9336b997d25ac
2024-11-17 09:34:39 +01:00
Andrew MarshallandGitHub 1bd5616e33 lib/file-type: Make force option visible (#6003)
This is something that is useful, we should not hide it from the docs.
2024-11-16 20:54:20 +01:00
NanotwerpandGitHub c7c2517612 {gtk, dunst}: replace pkgs.gnome.adwaita-icon-theme with pkgs.adwaita-icon-theme in the examples (#5712)
`adwaita-icon-theme` has been moved out of the `gnome` scope and into the top level with https://github.com/NixOS/nixpkgs/pull/319659
2024-11-16 19:36:13 +01:00
JanyandGitHub d154a557da aerc: add support of account gpg config (#5298) 2024-11-16 18:38:16 +01:00
Michael HoangandGitHub 192f123e4b nixos: add key to shared module to allow disabling it (#6017)
By adding `key`, this allows users to disable this shared module or they can choose to not disable this shared module (by filtering by key before disabling)

This means users can disable all shared modules if all modules are paths or attrsets with a key:

`configuration.nix`:

```nix
{ config, ... }:

{
  home-manager.users.enzime = { ... }: {
    disabledModules = config.home-manager.sharedModules;
  };
}
```

Or disabling just this module specifically:

```nix
{ ... }:

{
  home-manager.users.enzime = { ... }: {
    disabledModules = [ { key = "home-manager#nixos-shared-module"; } ];
  };
}
```

Or disabling all modules when you have modules you can't disable (like lambdas):

```nix
{ ... }:

{
  home-manager.users.enzime = { ... }: {
    disabledModules = lib.filter (v: lib.isString v || lib.isPath v || (lib.isAttrs v && v ? key)) config.home-manager.sharedModules;
  };
}
```


https://nixos.org/manual/nixos/unstable/#sec-replace-modules
2024-11-16 18:31:16 +01:00
Michael HoangandGitHub 400e3c0152 nixos: always run home-manager on NixOS activation (#5780)
Currently, the home-manager systemd service will only get restarted when
the home-manager configuration changes. This can lead to issues in
users' home directories not getting corrected for a while.

    $ rm ~/.zshrc
    $ sudo nixos-rebuild switch
    $ ls ~/.zshrc
    ls: cannot access '/home/enzime/.zshrc': No such file or directory
2024-11-16 18:25:31 +01:00
gmvarandGitHub 1d0862ee2d feh: add themes option (#6074)
- added themes option
- added themes test
- updated broken man page links
2024-11-14 18:16:21 +01:00
Gaétan LepageandGitHub 35b055009a kanshi: add package to home.packages 2024-11-13 23:07:20 +01:00
RedEtherbloomandRobert Helgesson 3c044aefe6 git-sync: add example to repository option 2024-11-13 23:03:24 +01:00
RedEtherbloomandRobert Helgesson cd21d2e61b git-sync: fix crash when whitespace in path
systemd rejects the service unit due to whitespace in the environment
variable assignment, pointing to the repo path, being invalid for
systemd's unit format.

See https://github.com/nix-community/home-manager/issues/6023 for
details.

The git-sync variable should also be escaped due to similar issues
with e.g. local git urls.
2024-11-13 23:03:19 +01:00
RedEtherbloomandRobert Helgesson ee8ff6d53f espanso: fix test for nixpkgs update
Recent nixpkgs update made a small change how YAML is generated,
causing the test YAML to be out of date.

The replacement match is also an exact example from the espanso wiki
https://espanso.org/docs/matches/basics/#multi-line-expansions.
2024-11-13 22:51:34 +01:00
RedEtherbloomandRobert Helgesson 7e42a37bf7 spotify-player: fix test for nixpkgs update
Recent nixpkgs update made a small change to how TOML is generated,
causing the test toml to be out of date.
2024-11-13 22:51:33 +01:00
RedEtherbloomandRobert Helgesson 40746b5c77 alacritty: fix test for nixpkgs update
Recent nixpkgs update made a small change to how TOML is generated,
causing the test toml to be out of date.
2024-11-13 22:51:33 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
149a48da31 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/807e9154dcb16384b1b765ebe9cd2bba2ac287fd?narHash=sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU%3D' (2024-10-29)
  → 'github:NixOS/nixpkgs/76612b17c0ce71689921ca12d9ffdc9c23ce40b2?narHash=sha256-IigrKK3vYRpUu%2BHEjPL/phrfh7Ox881er1UEsZvw9Q4%3D' (2024-11-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-13 22:50:06 +01:00
Milo MoissonandGitHub 60bb110917 helix: fix wrapping of extraPackages
This makes extraPackages the default, but they do not shadow the env
so you can still have packages (e.g. LSPs) with a different version
than the global one in you local env like nix's shells.
2024-11-10 11:42:08 +01:00
Gaétan LepageandGitHub 7309007271 news: fix typo 2024-11-10 11:38:24 +01:00
rodrigovillarbelloandRobert Helgesson 2f607e07f3 docs: home.sessionVariable clarification
Closes: https://github.com/nix-community/home-manager/issues/6027
2024-11-05 21:18:50 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
8f6ca7855d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a?narHash=sha256-RP%2BOQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM%3D' (2024-10-25)
  → 'github:NixOS/nixpkgs/807e9154dcb16384b1b765ebe9cd2bba2ac287fd?narHash=sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU%3D' (2024-10-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-11-03 12:34:30 +01:00
sinavirandGitHub 2c6a9b3ccf git: fix maintenance service
Call to git-maintenance in the systemd user service was using a
erroneous value for exec-path flag. Removing the flag is fine.
2024-11-03 12:29:02 +01:00
Nicholas HassanandRobert Helgesson 1743615b61 podman: add module
Adds a new Podman module for creating user containers and networks as
systemd services. These are installed to the user's
`$XDG_CONFIG/systemd/user` directory.
2024-11-01 20:45:06 +01:00
Kosta GorodetskyandGitHub 8ca921e5a8 git-credential-oauth: fix ordering of git extraConfig
Added `mkAfter` to `git.extraConfig` to ensure our oauth is last, as
required to work with additional helpers.
2024-11-01 09:46:22 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e83414058e flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0?narHash=sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c%2BcHUJwA%3D' (2024-10-18)
  → 'github:NixOS/nixpkgs/18536bf04cd71abd345f9579158841376fdd0c5a?narHash=sha256-RP%2BOQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM%3D' (2024-10-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-27 09:15:08 +01:00
TomoandGitHub 05d9bee4a5 git-credential-oauth: fix use of mkIf and add tests
Closes #6005
2024-10-27 07:45:32 +01:00
William PhetsinorathandRobert Helgesson 93435d27d2 direnv: add support for mise integration 2024-10-26 00:16:39 +02:00
nyadiiaandRobert Helgesson 0c0268a3c8 eza: add color option 2024-10-25 16:02:28 +02:00
TomoandGitHub c0e2315987 git-credential-oauth: add extraFlags option
This facilitates a legitimate use-case for browserless systems. From the
README:
> On systems without a web browser, set the -device flag to authenticate
> on another device using [OAuth device flow]:
> ```ini
  [credential]
	  helper = cache --timeout 7200	# two hours
	  helper = oauth -device
  ```

[OAuth device flow]: https://www.rfc-editor.org/rfc/rfc8628

Please note that, for the documentation about the man-page to be
accurate, https://github.com/NixOS/nixpkgs/pull/302922 must be merged.
2024-10-25 15:56:37 +02:00
Bruno BELANYIandRobert Helgesson 6cc03e337a nix-gc: add randomizedDelaySec option
There's no launchd equivalent to this option, so this is a no-op on
Darwin.
2024-10-25 15:53:42 +02:00
Giovanni Nicosia (mood)andRobert Helgesson c77c3bb233 yazi: enable shell integration values by default
Previously,

  - `programs.yazi.enableNushellIntegration`,
  - `programs.yazi.enableFishIntegration`, and
  - `programs.yazi.enableZshIntegration`

were set to false by default. It seems more appropriate to enable
these integrations by default.
2024-10-25 11:21:03 +02:00
Robert Helgesson 5feb9dba3c nixgl: add module 2024-10-25 10:23:36 +02:00
Jure VarlecandRobert Helgesson 8bd6e0a1a8 nixgl: add support for channel-based configuration 2024-10-25 10:20:38 +02:00
Jure VarlecandRobert Helgesson 7a5879707b nixgl: API rework for flexibility and dual-GPU 2024-10-25 10:20:38 +02:00
Mel BourgeoisandRobert Helgesson e61f87969a nixgl: Improve option documentation 2024-10-25 10:20:38 +02:00
7dee0dc8f0 nixgl: reference lib directly
Co-authored-by: V. <150687949+vigress8@users.noreply.github.com>
2024-10-25 10:20:38 +02:00
d0c036ca49 nixgl: ensure makeWrapper is present during build
Co-authored-by: V. <150687949+vigress8@users.noreply.github.com>
2024-10-25 10:20:38 +02:00
199cf5634c nixgl: use -q to silence grep
Co-authored-by: V. <150687949+vigress8@users.noreply.github.com>
2024-10-25 10:20:38 +02:00
Mel BourgeoisandRobert Helgesson b9fe747915 nixgl: use makeWrapper and update docs
makeWrapper is more consistent with the rest of nixpkgs & home-manager,
so it should be a little more maintainable. It can also validate that
the wrapper command is executable at build time.
2024-10-25 10:20:37 +02:00
Mel BourgeoisandRobert Helgesson bbd4254d00 nixgl: make desktop files point to wrapped exe
Some desktop files will refer to the absolute path of the original
derivation, which would bypass nixGL wrapping. So we need to replace the
path with the path to the wrapper derivation to ensure the wrapped
version is always launched.
2024-10-25 10:20:37 +02:00
Mel BourgeoisandRobert Helgesson 446293584f nixgl: add module
This module enables wrapping programs which require access to libGL
with nixGL on non-NixOS systems.
2024-10-25 10:20:32 +02:00
LuflosiandRobert Helgesson 82378b3f7f htop: use attrsOf instead of attrs as settings type 2024-10-25 10:08:11 +02:00
diniamoandRobert Helgesson c7cfdb3864 spotify-player: add support for actions
Actions were added in the v0.19.1 release.
2024-10-25 10:04:48 +02:00
DrymarchonShaunandRobert Helgesson eea1bc6072 gpg-agent: use $TTY parameter in zsh integration 2024-10-25 09:53:41 +02:00
Willi CarlsenandRobert Helgesson 454e8d6b15 granted: use assume directly
The `.assume-wrapped` path is not available since the merge of

    https://github.com/NixOS/nixpkgs/pull/347816

Use assume directly instead.

PR #5994
2024-10-25 09:42:19 +02:00
Omer Naveed 0a0b1b18bd maintainers: remove omernaveedxyz 2024-10-24 23:41:24 -05:00
Sandro Jäckel a4353cc43d accounts/contacts: fix defaultText rendering 2024-10-23 22:55:53 +02:00
Sandro Jäckel 5765fe4feb accounts/calendar: fix defaultText rendering 2024-10-23 22:55:42 +02:00
Austin HorstmanandGitHub 5ec753a1fc modules/neovim: fix config generation (#5976) 2024-10-22 00:58:46 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
1e27f213d7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c?narHash=sha256-nsNdSldaAyu6PE3YUA%2BYQLqUDJh%2BgRbBooMMekZJwvI%3D' (2024-10-14)
  → 'github:NixOS/nixpkgs/4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0?narHash=sha256-/uilDXvCIEs3C9l73JTACm4quuHUsIHcns1c%2BcHUJwA%3D' (2024-10-18)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-20 23:21:28 +02:00
Talha Can HavadarandRobert Helgesson fe56302339 zoxide: fix fzf bash-completion conflict
When zoxide initializes after fzf it causes fzf " ** " trigger to not
work.

To fix the issue we needed to make zoxide initialize earlier than fzf
but after bash-completion.

PR #5955
2024-10-20 10:58:46 +02:00
John TitorandRobert Helgesson 892a6443b7 nh: add module 2024-10-20 10:54:45 +02:00
ScharadaandRobert Helgesson 122f70545b firefox: change container.json version to 5 2024-10-19 09:02:11 +02:00
Muhammad Talal AnwarandGitHub 802b3cb2d4 espanso: use launcher command on Linux
The source uses `launcher` instead of `daemon`. Additionally we remove
`Type` and add `RestartSec` as defined in the source:

https://github.com/espanso/espanso/blob/b421bcf73fa13506938d62425459d6c16c6a8d0a/espanso/src/res/linux/systemd.service#L5-L7C1
2024-10-19 09:01:11 +02:00
joygnuandRobert Helgesson 09a0c0c029 cmus: add module
PR #5951
2024-10-18 16:03:33 +02:00
Austin Horstman 346973b338 tests/firefox: add shared path test
Used to make sure that profiles that share a common generated path still
build properly.
2024-10-18 08:31:24 -05:00
Austin Horstman 2ffb68e209 thunderbird: conditional search file 2024-10-18 08:31:24 -05:00
Austin Horstman d4a3186de0 firefox: conditional search file 2024-10-18 08:31:24 -05:00
K900andRobert Helgesson cb93ab1c99 direnv: remove nushell hack 2024-10-18 15:26:47 +02:00
K900andRobert Helgesson 1834304bc3 direnv: simplify, work around nushell/nushell#14112
nushell 0.99 does not like early returns in hooks. So, what if we just
didn't? Rewrite the entire hook to work as one single pipeline.
2024-10-18 15:26:17 +02:00
libewaandRobert Helgesson e78cbb2027 zed-editor: add module
Add a simple module for zed-editor, a simple editor written in Rust.
2024-10-17 16:15:20 +02:00
Robert Helgesson 9c1a1c7df4 activitywatch: reduce test closure
This also reduces test flakiness.
2024-10-17 15:30:02 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
78a7a070bb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
  → 'github:NixOS/nixpkgs/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c?narHash=sha256-nsNdSldaAyu6PE3YUA%2BYQLqUDJh%2BgRbBooMMekZJwvI%3D' (2024-10-14)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-17 13:53:03 +02:00
Robert Helgesson e43902a7d6 broot: fix minor documentation bug 2024-10-17 13:51:49 +02:00
xwjqvandRobert Helgesson 800a191f33 broot: allow multiple keyboard keys per verb
To allow multiple keys the verb options need to accept listOf str.
2024-10-17 13:41:55 +02:00
Jeffrey C. OllieandRobert Helgesson 1d9b4a3e60 fish: make generation of completions optional
Add a config option to optionally disable the generation of command
completions based upon man pages.
2024-10-17 13:31:56 +02:00
Julius MarozasandHosted Weblate 5bb057a7b5 Translate using Weblate (Lithuanian)
Currently translated at 97.2% (36 of 37 strings)

Co-authored-by: Julius Marozas <marozas.julius@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/lt/
Translation: Home Manager/Home Manager CLI
2024-10-17 11:23:29 +00:00
Viktor IllmerandHosted Weblate f81be125ff Translate using Weblate (German)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: Viktor Illmer <accounts@viktor.im>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager Modules
2024-10-17 11:23:29 +00:00
AtomicDudeandHosted Weblate b534276566 Translate using Weblate (Romanian)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: AtomicDude <vasilescutoma4@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ro/
Translation: Home Manager/Home Manager Modules
2024-10-17 11:23:28 +00:00
Joaquín TriñanesandRobert Helgesson 628b15d275 nushell: allow arbitrary environment variables 2024-10-17 12:54:19 +02:00
Joaquín TriñanesandRobert Helgesson edf15f1549 nushell: create generator helpers 2024-10-17 12:54:19 +02:00
Joaquín TriñanesandRobert Helgesson 994a0baf7b nushell: add joaquintrinanes as maintainer 2024-10-17 12:54:19 +02:00
SergeyandRobert Helgesson 2a4fd1cfd8 eza: fix icons option
Fixes the icons option for eza which was breaking completion in zsh.
2024-10-15 23:22:21 +02:00
Kira BruneauandGitHub e1aec543f5 thunderbird: support setting search engines (#5697)
* firefox: split search into separate submodule file

* thunderbird: support setting search engines
2024-10-14 13:01:26 +02:00
github-actions[bot] 64c6325b28 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c31898adf5a8ed202ce5bea9f347b1c6871f32d1?narHash=sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw%3D' (2024-10-06)
  → 'github:NixOS/nixpkgs/5633bcff0c6162b9e4b5f1264264611e950c8ec7?narHash=sha256-9UTxR8eukdg%2BXZeHgxW5hQA9fIKHsKCdOIUycTryeVw%3D' (2024-10-09)
2024-10-13 03:59:22 +00:00
Nabeen TiwareeandGitHub d57112db87 pls: fixed perm argument to pass via pls 2024-10-12 11:43:52 +02:00
Kilian MioandGitHub 2b13611eae floorp: add module
Also fix tests for Firefox module derivatives.
2024-10-12 00:21:33 +02:00
Perchun PakandGitHub 65ae9c1473 git: add module for git maintenance (#5772)
Adds module for git-scm.com/docs/git-maintenance.
2024-10-11 14:48:52 +02:00
aabccd021andRobert Helgesson 5828309542 vifm: add module 2024-10-11 12:54:39 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
342a1d6823 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9357f4f23713673f310988025d9dc261c20e70c6?narHash=sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c%3D' (2024-09-21)
  → 'github:NixOS/nixpkgs/c31898adf5a8ed202ce5bea9f347b1c6871f32d1?narHash=sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw%3D' (2024-10-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-10-11 00:19:04 +02:00
Damien CassouandGitHub 03f8e0b3b3 snixembed: add module
This is used by SafeEyes (another home-manager) module to show a
systemtray icon. See https://git.sr.ht/~steef/snixembed.

Fixes #5728
2024-10-11 00:14:36 +02:00
Andrew VoynovandGitHub 8bb5d53c58 docs: add XDG_*_HOME mentions to xdg.*Home options 2024-10-10 21:22:52 +02:00
SandroandGitHub d47d33254f home-manager-manual: expose options.json 2024-10-10 20:29:24 +02:00
Utkarsh SharmaandHosted Weblate d3ee25c078 Translate using Weblate (Hindi)
Currently translated at 5.5% (1 of 18 strings)

Translate using Weblate (Hindi)

Currently translated at 13.5% (5 of 37 strings)

Co-authored-by: Utkarsh Sharma <utkasharma19@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/hi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-10-09 16:31:58 +02:00
Timothy GallionandGitHub 038630363e xdg-mime type package options (#5920)
* xdg-mime: allow overrides to shared-mime-info and desktop-file-utils

The `xdg-mime` module now exposes packages to determine what will be run
for update-mime-database and update-desktop-database. This allows users
to select a different version of these packages if the are incompatible.
This should, in combination with an override to the version of
`shared-mime-info` (can be found here notalltim/home-manager-config#4),
resolve #4955, #5102, #4682, and possibly #4941. The problem seems to stem
from a mismatch in the version of `shared-mime-info` with the host.

I also switched from using `buildPackages` to `pkgs` to improve
cross-compilation compatibility.

* xdg-mime: Add tests for xdg-mime module

The xdg-mime module was missing tests so I added basic test for all the
options and checked the basic behavior. It covers ensuring that the
proper files/folders are created and that the package overrides work.
2024-10-07 23:39:24 +02:00
Kira BruneauandGitHub 271c83e21e firefox: organize tests by submodule (#5698)
Split off from #5697, organizes firefox tests by submodule.

This is intended to match directory structure setup for the new search submodule.
2024-10-07 23:06:52 +02:00
Akshett Rai JindalandGitHub 3ac39b2a8b zathura: Fix the type for config options (#5934)
* zathura: add float to acceptable types for `options` attrset

The man page states that the `set` directive can take 4 types of values:
INT, FLOAT, STRING, BOOL. But the FLOAT part was missing from the
home-manager module

* zathura: make type of `programs.zathura.options` more readable

Change from cascading mess of `either` to `oneOf`
2024-10-07 15:16:25 +02:00
MithicSpiritandGitHub fcf5e608ac kitty: allow float values in settings (#5925)
Some settings in kitty allow floating-point values, but this was not
reflected in the type.
2024-10-07 12:18:19 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
bc623830e6 ci: bump cachix/install-nix-action from 27 to 30
Bumps [cachix/install-nix-action](https://github.com/cachix/install-nix-action) from 27 to 30.
- [Release notes](https://github.com/cachix/install-nix-action/releases)
- [Commits](https://github.com/cachix/install-nix-action/compare/v27...v30)

---
updated-dependencies:
- dependency-name: cachix/install-nix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-07 11:44:28 +02:00
Christophe Van den AbbeeleandRobert Helgesson 509dbf8d45 megasync: fix issue with service failing to launch
Change `After=` setting in the user service to only launch after the
full `graphical-session.target`.
2024-10-04 13:32:07 +02:00
Christina SørensenandGitHub 30e04f3d47 pass-secret-service: add GNUPGHOME to service env vars
This is nescesarry for non-default locations, and without it, many
programs like element-desktop break in very confusing ways.

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2024-10-04 09:19:02 +02:00
Sirio BalmelliandRobert Helgesson 437ec62009 borgmatic: note Darwin platform support
The current module works on Darwin as-is; mark the platform as
supported.

Signed-off-by: Sirio Balmelli <sirio@b-ad.ch>
2024-10-01 23:11:40 +02:00
K900andRobert Helgesson ffe2d07e77 direnv: hopefully final nushell fix 2024-09-26 22:52:03 +02:00
Robert Helgesson 0afc2f0f19 river: reduce risk of large rebuilds in test
Specifically, overriding the dbus package can cause rebuilds of many
packages.
2024-09-26 22:19:30 +02:00
K900andGitHub 853e7bd24f direnv: even better nushell fix
Avoid do | complete, because it swallows stderr, which can contain
direnv debug output.
2024-09-26 22:03:30 +02:00
K900andGitHub 57e6b30d18 direnv: work around nushell bug
try/catch in a pipeline does not always work correctly in 0.98,
so avoid the try-catch entirely.

Upstream issue: https://github.com/nushell/nushell/issues/13868
2024-09-26 19:07:37 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c124568e10 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c04d5652cfa9742b1d519688f65d1bbccea9eb7e?narHash=sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK%2BWk%3D' (2024-09-19)
  → 'github:NixOS/nixpkgs/9357f4f23713673f310988025d9dc261c20e70c6?narHash=sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c%3D' (2024-09-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-26 12:20:17 +02:00
K900andGitHub 1e22ef1518 direnv: update for new nushell behavior (#5880)
Nushell 0.98 makes it so external commands returning non-zero
is considered an exception[0]. Wrap the direnv invocation in a
try-catch, so that even if direnv fails, we get the message
from direnv, but not the traceback from nushell.

[0]: https://www.nushell.sh/blog/2024-09-17-nushell_0_98_0.html#non-zero-exit-codes-are-now-errors-toc
2024-09-25 00:39:06 -06:00
Robert Helgesson 21c021862f ci: disable the tests for macos
They have been broken for a long time now and makes the PR flow quite
cumbersome. Thus we disable them until somebody is able to get them to
work again.
2024-09-23 19:15:45 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
04213d1ce4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/99dc8785f6a0adac95f5e2ab05cc2e1bf666d172?narHash=sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c%3D' (2024-09-16)
  → 'github:NixOS/nixpkgs/c04d5652cfa9742b1d519688f65d1bbccea9eb7e?narHash=sha256-PmUr/2GQGvFTIJ6/Tvsins7Q43KTMvMFhvG6oaYK%2BWk%3D' (2024-09-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-22 08:17:35 +02:00
Patrick NuckollsandRobert Helgesson 14929f7089 zoxide: clarify options option
The value of the option `programs.zoxide.options` is passed to `zoxide
init` at shell initialization time, not to the command itself when
it's called by the user from their shell. This change makes that a
little bit clearer in the documentation.
2024-09-21 09:13:43 +02:00
Ben BrownandRobert Helgesson 51e1d69f7a poweralertd: fix regression
This fixes a regression introduced in
8d7e352a4b. That commit made the false
assumption that utils would have propagated from Nixpkgs to Home
Manager. This commit copies in `escapeSystemdExecArgs` to fix the
immediate issue, perhaps we can pull this in some other way later down
the line.
2024-09-21 09:08:48 +02:00
bhougland18andRobert Helgesson dfe4d334b1 wezterm: fix generated configuration
The semi-colon breaks this config file, it is not in the Weztem
documentation either.
2024-09-20 22:15:45 +02:00
Robert Helgesson 0b052dd811 swayidle: minor cleanups 2024-09-20 11:45:46 +02:00
leoTlrandGitHub 4803bf558b swayidle: make -w optional
The option -w causes swayidle to wait on timeouts/events to finish.
This can cause problems with certain timout/event commands (see
https://github.com/swaywm/swaylock/issues/86#issuecomment-662702180)
2024-09-20 11:13:54 +02:00
Ben BrownandGitHub 8d7e352a4b poweralertd: Enable passing CLI args to the daemon 2024-09-20 09:44:52 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6b1912380e ci: bump DeterminateSystems/update-flake-lock from 23 to 24
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 23 to 24.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v23...v24)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-20 09:43:17 +02:00
mgdbbrtandGitHub f48b181f01 ssh-agent: use POSIX conforming if condition 2024-09-20 09:38:42 +02:00
alejandro-anguloandRobert Helgesson ecaed80b18 kitty: remove IFD
With this change the theme check happens at activation time. An
integration test is also added to verify the functionality.

Fixes #5110
2024-09-20 09:02:48 +02:00
iniwandGitHub 2cf3abce03 neovim: use home.shellAliases
Instead of manually adding it as an alias for each and every
individual shell, which inevitably ends up missing some.
2024-09-20 08:47:23 +02:00
Robert Helgesson 1786e2afdb firefox: fix incorrect condition
This error was introduced by me when switching from use of an explicit
`if` expression to `optionalAttrs`.
2024-09-20 00:35:54 +02:00
b5e09b85f2 firefox: only add Version = 2 on non-darwin
The `Version` field in `profiles.ini` does not seem to work on Darwin
systems.

Co-authored-by: bricked <git@bricked.dev>
2024-09-19 19:57:38 +02:00
Mike ThaiandRobert Helgesson 1f7b8188a9 zoxide: replace outdated flag in "options" example
The "--no-aliases" option hasn't been a valid init option since 0.8.1,
when it was renamed to "--no-cmd".
2024-09-19 18:43:19 +02:00
brickedandGitHub 87c7d4df16 firefox: fix policies availability 2024-09-19 18:22:39 +02:00
Coutinho de SouzaandGitHub 451606f4a8 polybar: fix type of systemd Service.Environment
See #5854
2024-09-19 18:19:27 +02:00
Coutinho de SouzaandGitHub 480d589cdd opensnitch-client: fix type of systemd Service.Environment
See #5854
2024-09-19 18:18:59 +02:00
Coutinho de SouzaandGitHub 7540dcc789 opensnitch-ui: fix type of systemd Service.Environment
See #5854
2024-09-19 18:18:36 +02:00
Coutinho de SouzaandGitHub dcc1a9e659 nextcloud-client: fix type of systemd Service.Environment
See #5854
2024-09-19 18:18:08 +02:00
Coutinho de SouzaandGitHub 06c6695c8c grobi: fix type of systemd Service.Environment
See #5854
2024-09-19 18:17:44 +02:00
Coutinho de SouzaandGitHub 3670a03586 hound: fix type of systemd Service.Environment
See #5854
2024-09-19 18:17:05 +02:00
Coutinho de SouzaandGitHub cacf2d27f6 kbfs: fix type of systemd Service.Environment
See #5854
2024-09-19 18:16:40 +02:00
Coutinho de SouzaandGitHub 397750d269 xsettings: fix type of systemd Service.Environment
See #5854
2024-09-19 18:15:43 +02:00
Coutinho de SouzaandGitHub 336c792b19 rsibreak: fix type of systemd Service.Environment
See #5854
2024-09-19 18:15:20 +02:00
Coutinho de SouzaandGitHub 80092fae03 mpd: fix type of systemd Service.Environment
See #5854
2024-09-19 18:14:54 +02:00
Coutinho de SouzaandGitHub 10fd27c291 kdeconnect: fix type of systemd Service.Environment
See #5854
2024-09-19 18:14:28 +02:00
Coutinho de SouzaandGitHub ffc3a473e6 xembed-sni-proxy: fix type of systemd Service.Environment
See #5854
2024-09-19 18:13:59 +02:00
Coutinho de SouzaandGitHub 1d8296c46f flameshot: fix type of systemd Service.Environment
See #5854
2024-09-19 18:13:03 +02:00
Coutinho de SouzaandGitHub b6204ff489 xscreensaver: fix type of systemd Service.Environment 2024-09-19 18:08:54 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7578176649 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f?narHash=sha256-IiA3jfbR7K/B5%2B9byVi9BZGWTD4VSbWe8VLpp9B/iYk%3D' (2024-09-11)
  → 'github:NixOS/nixpkgs/99dc8785f6a0adac95f5e2ab05cc2e1bf666d172?narHash=sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c%3D' (2024-09-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-19 13:31:52 +02:00
Robert Helgesson d2493de5cd ci: remove 23.11 from dependabot 2024-09-18 00:14:15 +02:00
Matthew_CashandRobert Helgesson 4974dfb26e thunderbird: change settings type to json
Uses the JSON type, just like the Firefox module, so that nested sets
can be used.
2024-09-18 00:12:16 +02:00
brickedandGitHub 4a4a8b1454 firefox: fix languagepacks policy 2024-09-17 19:20:22 +02:00
Andrew MarshallandRobert Helgesson a9c9cc6e50 sway: do not use pkgs.sway when cfg.package = null
- Implicitly disable checkConfig when `cfg.package = null` as we don’t
  have any exe to use for the check
- Implicitly disable `swaymsg reload` on activation, since we have no
  exe to use for running it

See https://github.com/nix-community/home-manager/issues/5307
2024-09-16 00:56:20 +02:00
Andrew MarshallandRobert Helgesson 76bf779881 sway: un-extract single-use variable 2024-09-16 00:51:30 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
25479e29d1 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/574d1eac1c200690e27b8eb4e24887f8df7ac27c?narHash=sha256-v3rIhsJBOMLR8e/RNWxr828tB%2BWywYIoajrZKFM%2B0Gg%3D' (2024-09-06)
  → 'github:NixOS/nixpkgs/4f807e8940284ad7925ebd0a0993d2a1791acb2f?narHash=sha256-IiA3jfbR7K/B5%2B9byVi9BZGWTD4VSbWe8VLpp9B/iYk%3D' (2024-09-11)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-16 00:47:02 +02:00
sdaqoandRobert Helgesson 9c5f16d703 borgmatic: fix service permissions
Fixes #5749
2024-09-15 09:32:04 +02:00
Robert Helgesson e524c57b1f mopidy: fix formatting 2024-09-15 01:45:42 +02:00
Robert Helgesson 6c1a461a44 mopidy: reduce test closure size 2024-09-14 12:14:32 +02:00
Heitor AugustoandRobert Helgesson c6e4ec39df z-lua: add support for fish abbreviations 2024-09-14 11:53:10 +02:00
Heitor AugustoandRobert Helgesson 0d118885b2 lsd: add support for fish abbreviations 2024-09-14 11:53:10 +02:00
Heitor AugustoandRobert Helgesson f69e61a2d7 pls: add support for fish abbreviations 2024-09-14 11:53:10 +02:00
Languages add-onandHosted Weblate 7edf6ccaec Add translation using Weblate (Hindi)
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2024-09-14 07:18:07 +00:00
Jay ThomasandHosted Weblate e94bee9574 Translate using Weblate (Hindi)
Currently translated at 8.1% (3 of 37 strings)

Add translation using Weblate (Hindi)

Co-authored-by: Jay Thomas <jay@gfax.ch>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hi/
Translation: Home Manager/Home Manager CLI
2024-09-14 07:18:06 +00:00
NikSneandHosted Weblate 898eaef7ea Translate using Weblate (Russian)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: NikSne <commits@niksne.ru>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translation: Home Manager/Home Manager CLI
2024-09-14 07:18:06 +00:00
Dominic EspositoandRobert Helgesson f084d65319 swaync: fix example configuration
Add a semicolon after "notification-body-image-width = 200" for
completeness.

PR #5828
2024-09-14 09:15:45 +02:00
Ayman BagabasandRobert Helgesson 43845d04f8 git: add diff-highlight diff pager option
This adds a new diff-highlight option to make use of the simple
included git diff highlighter that comes with canonical git.

For more info, see https://github.com/git/git/blob/master/contrib/diff-highlight/README
2024-09-14 01:38:40 +02:00
Heitor AugustoandRobert Helgesson 503af483e1 eza: add support for fish abbreviations 2024-09-13 12:12:18 +02:00
Heitor AugustoandRobert Helgesson 076c78eded fish: add preferAbbrs option 2024-09-13 12:04:56 +02:00
NitroSniperandRobert Helgesson 7923c69152 neovide: add module
Neovide is a simple, no-nonsense, cross-platform graphical user
interface for Neovim See <https://neovide.dev/>.

Used ruff's module as reference during creation.
2024-09-13 11:50:57 +02:00
Callum LeslieandRobert Helgesson 4c8647b1ed trayscale: add module
Trayscale is an unofficial GUI wrapper around the Tailscale CLI
client.

PR #5803
2024-09-13 10:59:31 +02:00
O. C. TaskinandGitHub daaf0c2f8d kanshi: add support for output aliases
- Add `services.kanshi.profiles.<name>.outputs.*.alias` to support new
  alias directive from kanshi [1].
  - Add an assertion to reject aliases not on global scope, which are
    not allowed on kanshi [2].
  - Add a new test to check alias rejection, `alias-assertion`.
- Add relevant coverage by modifying the existing "new-configuration"
  test.
- Kanshi also doesn't allow wildcards on global scope [3], correct the
  faulty test case.

[1]: https://git.sr.ht/~emersion/kanshi/commit/1ed86ce523553240ceb81e9d466b88d3554a66bb
[2]: https://git.sr.ht/~emersion/kanshi/tree/1605f7c81314d004104b7a1b149656947369c999/item/doc/kanshi.5.scd#L78
[3]: https://git.sr.ht/~emersion/kanshi/tree/1605f7c81314d004104b7a1b149656947369c999/item/doc/kanshi.5.scd#L80
2024-09-13 10:51:33 +02:00
Chet GurevitchandRobert Helgesson cb3ab5928c helix: add example for use with evil-helix 2024-09-13 10:49:07 +02:00
Chet GurevitchandRobert Helgesson ea244c5ae2 helix: remove outdated language-server comment 2024-09-13 10:49:06 +02:00
Zachary HandGitHub 433e686675 autorandr: configModule.extraConfig
Add an option to programs.autorandr's configModule to allow arbitrary
extra config lines.

No option exists for adding arbitrary key/values to generated autorandr
profile config, as is common in other nix modules. This commit adds one.
2024-09-13 09:58:00 +02:00
Ayman BagabasandRobert Helgesson ef50612457 gpg-agent: add launchd service agent and sockets
This adds a Darwin Launchd agent along with its sockets to make
gpg-agent starts at load or whenever the sockets are needed.

Fixes: https://github.com/nix-community/home-manager/issues/3864
2024-09-13 08:59:29 +02:00
c82fc8cf3f home-manager: use hostname from GNU inetutils
This partially reverts commit 89670e27e1.

Co-authored-by: Johannes Maier <johannes.maier@mailbox.org>
2024-09-13 08:37:10 +02:00
Bryan LaiandRobert Helgesson 2b1957a0a3 home-manager: fix early exit due to FQDN error
Since 89670e27e1, FQDN lookup errors
from `hostname -f` may cause an early exit of the whole program.

This commit fixes the problem by absorbing the FQDN query inside the
`if` statement.
2024-09-13 08:37:09 +02:00
Robert Helgesson da8406a6ff systemd: use getExe for sd-switch 2024-09-12 13:54:47 +02:00
Robert Helgesson e1c6094075 systemd: unify handling of switch environment 2024-09-12 13:54:47 +02:00
Robert Helgesson 51e4664342 treewide: use non-deprecated substitute arguments 2024-09-12 13:54:47 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
8a16716428 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/12228ff1752d7b7624a54e9c1af4b222b3c1073b?narHash=sha256-Ym04C5%2BqovuQDYL/rKWSR%2BWESseQBbNAe5DsXNx5trY%3D' (2024-08-31)
  → 'github:NixOS/nixpkgs/574d1eac1c200690e27b8eb4e24887f8df7ac27c?narHash=sha256-v3rIhsJBOMLR8e/RNWxr828tB%2BWywYIoajrZKFM%2B0Gg%3D' (2024-09-06)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-11 08:40:28 +02:00
e5fa72bad0 Translate using Weblate (Romanian)
Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ro/
Translation: Home Manager/Home Manager CLI

Co-authored-by: Felix Puscasu <puscasu.felix1@gmail.com>
2024-09-10 08:04:35 +02:00
Donovan GloverandRobert Helgesson 10541f19c5 pqiv: add boolean support 2024-09-09 16:50:17 +02:00
Paul MeyerandGitHub be47a2bdf2 k9s: remove katexochen as maintainer 2024-09-09 08:34:44 +02:00
Sefa EyeogluandRobert Helgesson 77c9414828 k9s: allow defining custom theme file
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-09-09 08:27:29 +02:00
Robert Helgesson 8a175a8913 tests: change quoting to match new Nixpkgs behavior
Fixes tests that are affected by
<https://github.com/NixOS/nixpkgs/pull/333744>.
2024-09-08 23:32:19 +02:00
Nina MorganandGitHub ec4c6928bb firefox: fix selection of lastUserContextId
The lastUserContextId value should match the highest context ID from
the containers set in a given profile. This update ensures that this
always is the case.
2024-09-08 09:52:15 +02:00
NAHOandRobert Helgesson aaebdea769 taskwarrior: support taskwarrior3 migration
Support taskwarrior3 migration, following the approach in [1] to avoid
breaking changes.

[1]: https://github.com/NixOS/nixpkgs/pull/303632

Closes: https://github.com/nix-community/home-manager/issues/5310
Link: https://github.com/nix-community/home-manager/pull/5782
2024-09-07 09:41:58 +02:00
DCsunsetandRobert Helgesson 127ccc3eb7 i3/sway: support str type for font size 2024-09-06 15:23:08 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
7d569851e9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b?narHash=sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI%3D' (2024-08-09)
  → 'github:NixOS/nixpkgs/12228ff1752d7b7624a54e9c1af4b222b3c1073b?narHash=sha256-Ym04C5%2BqovuQDYL/rKWSR%2BWESseQBbNAe5DsXNx5trY%3D' (2024-08-31)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-09-06 15:03:51 +02:00
Ferenci ÁkosandHosted Weblate 5b95e0611b Translate using Weblate (Hungarian)
Currently translated at 33.3% (6 of 18 strings)

Translate using Weblate (Hungarian)

Currently translated at 97.2% (36 of 37 strings)

Co-authored-by: Ferenci Ákos <synthetace@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hu/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/hu/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-09-06 14:55:42 +02:00
Bruno BELANYIandGitHub b00bdf59c0 xdg: add option 'xdg.stateFile' 2024-09-06 14:55:36 +02:00
LuluandGitHub 03b49187a2 sway: indent sway configuration options
Fix the indentation for the configuration of `input`, `output` and
`seat` to match that of `mode`.
2024-09-06 14:51:44 +02:00
Martin Eek GerhardsenandRobert Helgesson 5130249ab2 taskwarrior-sync: add package option
Add option to change which package is used for taskwarrior-sync, to
e.g. taskwarrior3.
2024-09-06 14:47:43 +02:00
Alex LovandRobert Helgesson 471e3eb0a1 git: add option to provide difftastic package 2024-09-01 10:42:46 +02:00
name_snrlandRobert Helgesson c2cd2a52e0 submodule-support: add default values for top-level configs
This way the end user can easily check whether the home-manager
configuration is part of the module or not. Example of use:

```nix
{ lib, nixosConfig, ... }:
let
  mkIfNixos = lib.mkIf nixosConfig != null;
in
{
  programs.foot.enable = mkIfNixos true;
}
```
2024-08-23 19:56:03 +02:00
Szabin HamrikandHosted Weblate 5dc2535656 Translate using Weblate (Hungarian)
Currently translated at 22.2% (4 of 18 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/hu/
2024-08-23 16:09:26 +02:00
Robert Helgesson b18f3ebc40 systemd: fully deprecate legacy switcher
This switches `systemd.user.startServices = true` to be the same as
`systemd.user.startServices = "sd-switch"`, previously it would use
the "legacy" method. It also introduces a warning that triggers if the
user explicitly have `systemd.user.startServices = "legacy"`.

See #5452
2024-08-23 13:31:48 +02:00
Robert Helgesson 25c12f0736 tests: fix escaping of wait command 2024-08-23 13:31:48 +02:00
sudoforgeandGitHub 40ddec2f8a zsh: add option: history.append
This change adds the programs.zsh.history.append option in order to
manage the configuration of the APPEND_HISTORY zsh option.
2024-08-23 13:29:12 +02:00
Alex HamiltonandGitHub 2598861031 bash: add package option 2024-08-18 15:15:31 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
086f619dd9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/52ec9ac3b12395ad677e8b62106f0b98c1f8569d?narHash=sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k%3D' (2024-07-28)
  → 'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b?narHash=sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI%3D' (2024-08-09)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-08-11 20:11:24 +02:00
8b7cdfceaf Translate using Weblate (Catalan)
Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translation: Home Manager/Home Manager CLI

Co-authored-by: Tomi Ockier <ockier1@gmail.com>
2024-08-11 20:11:05 +02:00
Ladas552andGitHub b3d5ea65d8 fastfetch: update example for JsonConfig settings
fastfetch: update example for JsonConfig settings

Using the present version of the example, trows an error:

    JsonConfig Error: `display.binaryPrefix` has been renamed to
    `display.size.binaryPrefix`. Sorry for another break change.

It occurs because of change in fastfetch 2.19 of JsonConfig - moving
`display.binaryPrefix` to `display.size.binaryPrefix`

To not confuse the users, this commit changes the example to fit
current standard

See <https://github.com/fastfetch-cli/fastfetch/blob/b3ac696312824cce12df76e398b5362973cde481/CHANGELOG.md?plain=1#L85>
2024-08-07 09:21:46 +02:00
AnomalocarididandRobert Helgesson a6c743980e dunst: use -config flag when configFile is set 2024-08-06 11:28:17 +02:00
afc892db74 Translate using Weblate (Vietnamese)
Currently translated at 44.4% (8 of 18 strings)

Translate using Weblate (Vietnamese)

Currently translated at 97.2% (36 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/vi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/vi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: goatastronaut0212 <goatastronaut0212@proton.me>
2024-08-02 22:21:05 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6e090576c4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b73c2221a46c13557b1b3be9c2070cc42cf01eb3?narHash=sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg%3D' (2024-07-27)
  → 'github:NixOS/nixpkgs/52ec9ac3b12395ad677e8b62106f0b98c1f8569d?narHash=sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k%3D' (2024-07-28)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-31 23:45:38 +02:00
William TanandGitHub 58cef37962 nix-gc: remove extraneous quotes from shell script 2024-07-31 08:27:17 +02:00
Jakub NowakandGitHub 4fcd54df7c firefox: fix userChrome example
Example CSS wasn't valid for Firefox 69+.
2024-07-30 08:33:10 +02:00
Ninja3047andRobert Helgesson d34aaf7b3b nix-gc: set service type to oneshot 2024-07-30 07:54:40 +02:00
Ninja3047andRobert Helgesson db40fead89 nix-gc: call nix-collect-garbage in a shell script
This will match the behavior in the upstream service which allows the
user to set options to something that uses shell syntax.
2024-07-30 07:54:18 +02:00
Gaurav Juvekar 89670e27e1 home-manager: ignore hostname -f lookup errors
`hostname -f` could fail depending on the resolver. Discard any stderr
and test for the exit status before using the value for flake attribute
lookup.

I was unable to repro the exact bad exit status in #5665.
With
  - nscd disabled,
  - nsswitch.conf pointing to 'files',
  - hostname entry removed from /etc/hosts
`hostname -f` from inetutils-2.5 fell back to showing just the nodename
from `uname(2)`. Injecting an empty string into the
`(struct utsname).nodename` field of `uname(2)` using strace still
exited with empty output and 0 exit-status.

Fixes #5665
2024-07-28 21:21:23 -07:00
brickedandRobert Helgesson 792757f643 firefox: support firefox derivatives
Adds support for Firefox forks by introducing methods that create
generic configs and options. Additional configs and options can be
added in separate modules.
2024-07-28 23:53:08 +02:00
Jean SidhartaandGitHub 587fcca66e eww: add terminal integration options
Use eww's shell-completions command to generate completions for
bash, zsh and fish.
2024-07-28 23:37:02 +02:00
nikitax44andGitHub a11cfcd0a1 micro: add package option 2024-07-28 23:00:57 +02:00
Milo MoissonandGitHub ea72cf548f jujutsu: support darwin guidelines for config placement
Follow up to #5207, fixing jujutsu module on darwin targets.
2024-07-28 22:54:29 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
9fdadb1cb6 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/68c9ed8bbed9dfce253cc91560bf9043297ef2fe?narHash=sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8%3D' (2024-07-21)
  → 'github:NixOS/nixpkgs/b73c2221a46c13557b1b3be9c2070cc42cf01eb3?narHash=sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg%3D' (2024-07-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-28 22:43:01 +02:00
polykernel cd520fbd31 maintainers: remove polykernel 2024-07-28 11:58:33 -04:00
Tomodachi94andRobert Helgesson d0240a064d gnome-terminal: update package name
The `pkgs.gnome.gnome-terminal` package was moved to
`pkgs.gnome-terminal`. The former is now a deprecated alias that
throws a warning whenever a configuration enabling the module is used:

```
The ‘gnome.gnome-terminal’ was moved to top-level. Please use
‘pkgs.gnome-terminal’ directly.
```

Related: https://github.com/NixOS/nixpkgs/pull/319659
Related: https://github.com/nix-community/home-manager/pull/5611
2024-07-28 00:32:19 +02:00
Robert Helgesson 975b83ca56 treewide: fix eval after Nixpkgs maintainer changes 2024-07-27 10:10:13 +02:00
Robert Helgesson 180158b46e mcfly: add settings option 2024-07-27 10:10:13 +02:00
Masum RezaandGitHub bc2b96acda zsh: add programs.zsh.autosuggestions.strategy option (#5396)
defaults to history
2024-07-26 14:28:33 +02:00
Cezary DrożakandRobert Helgesson 304a011325 firefox: add languagePacks option
Port the programs.firefox.languagePacks option from NixOS
2024-07-24 22:15:38 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
af70fc502a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1d9c2c9b3e71b9ee663d11c5d298727dace8d374?narHash=sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0%3D' (2024-07-19)
  → 'github:NixOS/nixpkgs/68c9ed8bbed9dfce253cc91560bf9043297ef2fe?narHash=sha256-Tybxt65eyOARf285hMHIJ2uul8SULjFZbT9ZaEeUnP8%3D' (2024-07-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-24 08:55:10 +02:00
Donovan GloverandGitHub 465ea1f994 swayosd: avoid restarting too quickly
Should fix an issue where swayosd.service would stop without starting
again after restarting too quickly.

Triggered by ending a Hyprland session and logging in with tuigreet.

Related: https://github.com/nix-community/home-manager/pull/4316
2024-07-24 07:37:28 +02:00
Amit Aryeh LevyandRobert Helgesson 7560dc942a kbfs: avoid using PrivateTmp for systemd service
The kbfs service does not seem to actually work with a PrivateTmp. A
PrivateTmp seems as appropriate for kbfs as anything else, but the
upstream service does not use it either
<https://github.com/keybase/client/blob/master/packaging/linux/systemd/kbfs.service>
2024-07-23 08:04:23 +02:00
github-actions[bot] 635563f245 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/00d80d13810dbfea8ab4ed1009b09100cca86ba8?narHash=sha256-H3%2BEC5cYuq%2BgQW8y0lSrrDZfH71LB4DAf%2BTDFyvwCNA%3D' (2024-07-01)
  → 'github:NixOS/nixpkgs/1d9c2c9b3e71b9ee663d11c5d298727dace8d374?narHash=sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0%3D' (2024-07-19)
2024-07-21 03:59:25 +00:00
O. C. TaskinandGitHub afd2021bed papis: add program.papis.package option
Add `programs.papis.package` option to override default package used.
This can be useful to track latest rev from repository via a flake.
2024-07-16 15:19:18 +02:00
O. C. TaskinandGitHub a38f88045e khard: add option to contact module for khard dir
Add an extra option,

    accounts.contact.accounts.<name>.khard.defaultCollection

to hardcode a subdirectory for khard to function as intended. Khard
expects to be given a collection directory directly, from which there
can be multiple of in a vdir. This contrasts khal or vdirsyncer which
support recursive search.

Fixes #4531
2024-07-16 15:17:37 +02:00
Chris HodappandGitHub 90ae324e2c sd-switch: respect xdg directory specifications 2024-07-11 23:48:33 +02:00
JohannandRobert Helgesson c085b984ff gnome-keyring: update package
`pkgs.gnome.gnome-keyring` has been moved to `pkgs.gnome-keyring` In nixpgkgs-unstable
2024-07-10 23:15:28 +02:00
Lin XianyiandGitHub 57d85c6c6d xdg-desktop-entries: allow terminal to be null 2024-07-10 23:13:46 +02:00
Robert Helgesson f79d950ac2 atuin: fix tests 2024-07-10 23:11:15 +02:00
Bruno BELANYI f749fabecc atuin: use 'lib.getExe' 2024-07-10 13:07:54 +00:00
Robert Helgesson 2fb5c1e0a1 tests: update to match new sd-switch version
Also, seems Nix has become more memory hungry so increase memory
allocation.
2024-07-08 22:34:06 +02:00
Robert Helgesson dfaf0ff2e7 systemd: only set old units directory when available 2024-07-08 22:34:05 +02:00
6b7ce96f34 Translate using Weblate (Hungarian)
Currently translated at 43.2% (16 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hu/
Translation: Home Manager/Home Manager CLI

Co-authored-by: Ferenci Ákos <synthetace@gmail.com>
2024-07-07 06:49:29 +02:00
Bojun RenandGitHub 10486e6b31 starship: fix type of settings to allow all valid value
Previously, type check of `programs.starship.settings` fails for some
valid settings, such as `c.commands = [["cc" "--version"]]`.

The commit fix the `type` argument passed to `mkOption`, so
`programs.starship.settings` can accept all valid values (of toml
type).
2024-07-06 20:08:39 +02:00
novenary e3582e5151 sway: unfail units before starting session target
Sometimes services can fail. Failed services will generally not be
restarted by systemd. To start previously failed services we can
just reset their failed state before starting our session target.

GNOME and Plasma do the same thing.

See: https://github.com/alebastr/sway-systemd/pull/11
2024-07-05 17:10:02 +03:00
novenary b7b55e285c sway: stop sway-session.target on exit
This ensures graphical-session.target is properly cycled, and that all
of its members are restarted on consecutive runs.
2024-07-05 17:10:02 +03:00
0x4A6FandGitHub bbe6e94737 dunst: fix warning for lib.cartesianProductOfSets
"lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct."
Rename happened in nixpkgs commit `228621e42dc43f936b66e0ed042c90c511aa0535`.
2024-07-05 10:12:00 +02:00
Robert Helgesson c514e862cd treewide: fix eval after Nixpkgs maintainer changes 2024-07-05 01:19:01 +02:00
Tadeo KondrakandGitHub 6ea6fafa3e mpv: remove tadeokondrak as maintainer 2024-07-05 01:09:47 +02:00
TheRealGramdalfandGitHub c23060ce95 hyprland: emphasize usage of the NixOS module 2024-07-05 01:07:22 +02:00
novenaryandRobert Helgesson 0a30138c69 mpd: specify dependency of service on socket
This allows `systemctl --user restart mpd.socket` to work properly.
2024-07-04 00:22:58 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
58268b4d77 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b2852eb9365c6de48ffb0dc2c9562591f652242a?narHash=sha256-C8e9S7RzshSdHB7L%2Bv9I51af1gDM5unhJ2xO1ywxNH8%3D' (2024-06-27)
  → 'github:NixOS/nixpkgs/00d80d13810dbfea8ab4ed1009b09100cca86ba8?narHash=sha256-H3%2BEC5cYuq%2BgQW8y0lSrrDZfH71LB4DAf%2BTDFyvwCNA%3D' (2024-07-01)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-03 23:36:42 +02:00
uncenterandGitHub e915831472 yazi: allow literal string for initLua 2024-07-03 23:36:14 +02:00
sg-qwtandGitHub 269cc18d94 sway: fix systemd variables example 2024-07-04 03:43:38 +08:00
Sumner EvansandGitHub 36e2f9da91 maintainers: remove ivar
ivar was removed as a maintainer from upstream nixpkgs due to
inactivity: https://github.com/NixOS/nixpkgs/pull/322266

Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-07-03 09:39:20 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
59ce796b25 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60?narHash=sha256-ECni%2BIkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko%3D' (2024-06-24)
  → 'github:NixOS/nixpkgs/b2852eb9365c6de48ffb0dc2c9562591f652242a?narHash=sha256-C8e9S7RzshSdHB7L%2Bv9I51af1gDM5unhJ2xO1ywxNH8%3D' (2024-06-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-07-01 11:50:39 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
ef74bacbb4 ci: bump DeterminateSystems/update-flake-lock from 22 to 23
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 22 to 23.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v22...v23)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-01 11:49:15 +02:00
Shogo TakataandRobert Helgesson 36317d4d38 direnv: add silent option
PR #5586
2024-06-29 18:07:14 +02:00
Robert Helgesson c2f806e60a pulseeffects: fix test evaluation
Fixes #5588
2024-06-29 17:20:18 +02:00
Gutyina GergőandGitHub 7e68e55d2e glance: add module 2024-06-28 17:24:13 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f50e2779ed flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d603719ec6e294f034936c0d0dc06f689d91b6c3?narHash=sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw%2B0Bwe5DLU%3D' (2024-06-20)
  → 'github:NixOS/nixpkgs/2893f56de08021cffd9b6b6dfc70fd9ccd51eb60?narHash=sha256-ECni%2BIkwXjusHsm9Sexdtq8weAq/yUyt1TWIemXt3Ko%3D' (2024-06-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-28 16:16:42 +02:00
Jakob KuklaandGitHub 19e2f43e0b rbw: fix url option examples
rbw expects a protocol for its base_url setting[1]. Otherwise fails
with `rbw unlock: failed to parse base url: relative URL without a
base`.

[1] https://github.com/doy/rbw/blob/741a72cf0d7d45fcd32b0326b69f6238733e5a56/README.md#configuration
2024-06-28 16:16:01 +02:00
Shahar "Dawn" OrandRobert Helgesson 1a4f12ae0b docs: introduction chapter
Adds an introduction chapter to the manual.
2024-06-26 23:48:52 +02:00
Adam DinwoodieandGitHub 607f969f5d systemd: don't try to restart templates
If the user has template services in their systemd configuration, these
can't be restarted, and will produces warnings during the activation
phase.  Avoid those warnings by skipping any uninstantiated templates
when looking for services to start or stop.
2024-06-26 18:14:48 +02:00
Kacper KoniuszyandGitHub 7a88ff6ad1 systemd: fix sd-switch error on empty target directory
After update to sd-switch 0.5.0, `home-manager switch` failed with the
following error message:

> Error: Error switching
>
> Caused by:
>     0: Failed to build switch plan
>     1: No such file or directory (os error 2)

This was caused by a non-existing target unit directory due to no user
services being managed by home-manager. This change makes sd-switch
run with pkgs.emptyDirectory as the target in such cases.

Closes: https://github.com/nix-community/home-manager/issues/5552
2024-06-26 17:41:48 +02:00
92a26bf6df yazi: add shellWrapperName & rename wrappers to yy
The program shell wrappers have been renamed from `ya` to `yy`
following the introduction of the new CLI tool named `ya`.

With this in mind, the `shellWrapperName` option has been introduced
to provide users with more flexibility in choosing the name they're
most accustomed to (ra, lf, ...).

Co-authored-by: XYenon <register@xyenon.bid>

Co-authored-by: 三咲雅 · Misaki Masa <sxyazi@gmail.com>
2024-06-26 09:08:30 +02:00
eljamm d3bf2a0612 yazi: add eljamm as maintainer 2024-06-25 14:27:44 +01:00
h7x4andRobert Helgesson 6b1f90a8ff stalonetray: move config file to XDG_CONFIG_HOME 2024-06-24 00:10:26 +02:00
Robert Helgesson d2f631a96e yazi: ensure plugin suffix .yazi
PR #5492
2024-06-24 00:06:20 +02:00
lordkekzandRobert Helgesson 216d51eb22 yazi: Fix expected structure of flavors 2024-06-23 23:12:50 +02:00
lordkekzandRobert Helgesson 16f86c94ce yazi: Assert plugin/flavor structure and warn about plugin/flavor suffix
- Always append suffix `.yazi` to plugin's and flavor's attribute names.
- Warn if the attribute names already have the suffix.
- Assert that plugin's and flavor's values point to directories
  containing an `init.lua` file.
2024-06-23 23:12:50 +02:00
09bc5c5949 yazi: plugin names should be in kebab case (test)
Co-authored-by: 三咲雅 · Misaki Masa <sxyazi@gmail.com>
2024-06-23 23:12:50 +02:00
lordkekzandRobert Helgesson 340b98c0ab yazi: Assert that plugins have valid structure 2024-06-23 23:12:50 +02:00
lordkekzandRobert Helgesson 5ccc3d6739 yazi: Ensure plugin suffix .yazi
- Append suffix `.yazi` to symlink targets of yazi plugins, if needed
- Improve some docs, especially links to upstream docs.
- Update tests to make use of this feature.
2024-06-23 23:12:50 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6a9a1e51bb flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b60ebf54c15553b393d144357375ea956f89e9a9?narHash=sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU%3D' (2024-06-16)
  → 'github:NixOS/nixpkgs/d603719ec6e294f034936c0d0dc06f689d91b6c3?narHash=sha256-k3JqJrkdoYwE3fHE6xGDY676AYmyh4U2Zw%2B0Bwe5DLU%3D' (2024-06-20)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-23 23:11:27 +02:00
Robert Helgesson 8be82697f7 ssh-agent: fix evaluation of maintainer field 2024-06-23 23:03:18 +02:00
daruandRobert Helgesson cd88671199 blanket: add module 2024-06-22 08:19:17 +02:00
Kira Bruneau c559542f0a gtk: explicitly set default font size
Fixes #5562
2024-06-21 11:32:58 -04:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
d7830d0542 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/e9ee548d90ff586a6471b4ae80ae9cfcbceb3420?narHash=sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY%3D' (2024-06-13)
  → 'github:NixOS/nixpkgs/b60ebf54c15553b393d144357375ea956f89e9a9?narHash=sha256-pup6cYwtgvzDpvpSCFh1TEUjw2zkNpk8iolbKnyFmmU%3D' (2024-06-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-19 11:11:47 +02:00
0dd1c1495a Translate using Weblate (Polish)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Polish)

Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: Mateusz P <medan1993@gmail.com>
2024-06-18 23:05:42 +02:00
brickedandGitHub fab8e511d5 firefox: update expected container settings 2024-06-18 15:23:11 +02:00
Balint Barna KovariandHosted Weblate 0a7ffb28e5 Translate using Weblate (Hungarian)
Currently translated at 5.4% (2 of 37 strings)

Add translation using Weblate (Hungarian)

Co-authored-by: Balint Barna Kovari <balint+weblate@kovari.cc>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/hu/
Translation: Home Manager/Home Manager CLI
2024-06-16 10:32:27 +02:00
Languages add-onandHosted Weblate 6396c03229 Add translation using Weblate (Hungarian)
Add translation using Weblate (Arabic)

Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2024-06-16 10:32:26 +02:00
Mohamed Nehad ShalabiandHosted Weblate f2f254640e Add translation using Weblate (Arabic)
Co-authored-by: Mohamed Nehad Shalabi <mohammednehad450@gmail.com>
2024-06-16 10:32:26 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
03c45b982c flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/051f920625ab5aabe37c920346e3e69d7d34400e?narHash=sha256-4q0s6m0GUcN7q%2BY2DqD27iLvbcd1G50T2lv08kKxkSI%3D' (2024-06-07)
  → 'github:NixOS/nixpkgs/e9ee548d90ff586a6471b4ae80ae9cfcbceb3420?narHash=sha256-4Zu0RYRcAY/VWuu6awwq4opuiD//ahpc2aFHg2CWqFY%3D' (2024-06-13)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-16 10:32:21 +02:00
8d5e27b480 nix: add a declarative alternative to Nix channels (#4031)
* nix: add options 'nixPath' and 'keepOldNixPath'

By default, the system value for $NIX_PATH is kept as a fallback.
To completely override the system value for $NIX_PATH:

    nix.keepOldNixPath = false;

* nix: add more tests

* nix: add a declarative alternative to Nix channels

This adds a new option, 'nix.channels'. It's the Nix channels equivalent
of the 'nix.registry' option, and compatible with pre-Flake Nix tooling
including nix-env and nix-shell. Like 'nix.registry', this option is
useful for pinning Nix channels.

Channels defined in the new option can coexist with channels introduced
through the nix-channel command. If the same channel exists in both, the
one from Home Manager will be prioritized.

* nix: add news entry

* nix: make channels respect use-xdg-base-directories

* nix: remove 'with lib;'

---------

Co-authored-by: Michael Hoang <enzime@users.noreply.github.com>
2024-06-13 01:47:38 +00:00
892f76bd0a mpv: fix package if wrapMpv not found
`wrapMpv` was removed from nixpkgs since this PR:
https://github.com/NixOS/nixpkgs/pull/304349

Co-authored-by: Mario Rodas <marsam@users.noreply.github.com>
2024-06-11 23:35:34 +02:00
Matthieu CoudronandGitHub 3d65009eff waybar: remove modules-* from defaults
Some prefer to handle modules-* imperatively for more flexibility, e.g.,
via waybar "includes" (https://github.com/Alexays/Waybar/wiki/Configuration).
Current HM defaults modules-* to `[]` instead of null for most other
settings, so they get written to ~/.config/waybar/config even though
no explicit configuration has been made.

And they take precedence over the imperative ones because of how
waybar's includes work:

====
Paths to additional configuration files.
Each file can contain a single object with any of the bar configuration options. In case of duplicate options, the first defined value takes precedence, i.e. including file -> first included file -> etc. Nested includes are permitted, but make sure to avoid circular imports.
For a multi-bar config, the include directive affects only current bar configuration object.
====
2024-06-09 13:14:04 +02:00
Mihai FufezanandGitHub 8a20efbb00 hyprland: install xwayland if enabled
Install the `xwayland` package if `cfg.xwayland.enable = true;`.
This allows XWayland to work without having to enable the NixOS Hyprland
option.
2024-06-09 13:11:01 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
885c037109 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ad57eef4ef0659193044870c731987a6df5cf56b?narHash=sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs%3D' (2024-05-29)
  → 'github:NixOS/nixpkgs/051f920625ab5aabe37c920346e3e69d7d34400e?narHash=sha256-4q0s6m0GUcN7q%2BY2DqD27iLvbcd1G50T2lv08kKxkSI%3D' (2024-06-07)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-06-09 13:09:33 +02:00
Mario RodasandGitHub 8bdb74eaff docs: add redirect from the previous options.html
After migrating to nixos-render-docs, the extension move to .xtml.
Unfortunately, this broke links to the previous Options Page.

This patch provides a basic redirect support to the new Options Page.
2024-06-09 13:09:00 +02:00
Mario Rodas 8f1b183c91 fcitx5: fix tests
Since https://github.com/NixOS/nixpkgs/pull/308725, fcitx5-with-addons
expects share/dbus-1/services/ to be present.
This patch updates the fcitx5 stub to reflect that.
2024-06-07 04:20:00 +00:00
JdogzzandGitHub a7117efb37 accounts.email: add clarifying documentation
Add clarifying documentation for maildirBasePath value. Also improve
default text.
2024-06-04 20:23:39 +02:00
Sumner EvansandGitHub 2cacdd6a27 ci/labeler: fix upgrade to v5 format
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-06-04 08:39:30 +02:00
Sumner EvansandGitHub 1a577c135c ci/labeler: upgrade to v5 format
Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-06-04 08:32:53 +02:00
Sumner EvansandGitHub 07b2c41d2d ci: bump all actions versions (#5496)
* cachix/install-nix-action: v23 -> v27

  Release: https://github.com/cachix/install-nix-action/releases/tag/v27

* actions/labeler: v4 -> v5

  Release: https://github.com/actions/labeler/releases/tag/v5.0.0

* DeterminateSystems/update-flake-lock: v21 -> v22

  Release: https://github.com/DeterminateSystems/update-flake-lock/releases/tag/v22

Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-06-03 22:41:47 -06:00
Dawid DziurlaandGitHub 83bfe1bac8 nix-gc: add persistent option (#5490)
Mirrors the `nix.gc.persistent` option in nixpkgs:
https://search.nixos.org/options?channel=unstable&show=nix.gc.persistent&from=0&size=50&sort=relevance&type=packages&query=nix.gc.persistent
2024-06-03 22:20:47 -06:00
Matthieu CoudronandGitHub 9b53a10f4c swayidle: wait for WAYLAND_DISPLAY
To avoid this kind of message:

    swayidle[181123]: - [Line 1054] Unable to connect to the compositor. If your compositor is running, check or set the WAYLAND_DISPLAY environment variable.
2024-06-02 10:16:22 +02:00
62da78e1f8 Translate using Weblate (Vietnamese)
Currently translated at 22.2% (4 of 18 strings)

Translate using Weblate (Vietnamese)

Currently translated at 75.6% (28 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/vi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/vi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: goatastronaut0212 <goatastronaut0212@proton.me>
2024-06-02 10:15:15 +02:00
bf3815854e Translate using Weblate (Finnish)
Currently translated at 55.5% (10 of 18 strings)

Translate using Weblate (Finnish)

Currently translated at 72.9% (27 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules

Co-authored-by: jarre johansson <jarre@johansson.today>
2024-06-02 10:14:04 +02:00
github-actions[bot] c497bdc12f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bfb7a882678e518398ce9a31a881538679f6f092' (2024-05-24)
  → 'github:NixOS/nixpkgs/ad57eef4ef0659193044870c731987a6df5cf56b' (2024-05-29)
2024-06-02 03:59:27 +00:00
Gaurav JuvekarandGitHub 0eb314b4f0 home-manager: use short -f instead of --fqdn
MacOS doesn't support the long-style `--fqdn` option to `hostname` that
was added by 1b589257f7.

Switch to short style `-f` that should be supported on every platform.
2024-05-30 21:35:07 +02:00
LiassicaandGitHub 29c69d9a46 kdeconnect: fix service with 24.05 package version
The 24.05 update for KDE Connect moved the kdeconnectd binary from
`/libexec` to `/bin`, so this fix will check the version of the
package used and set the path accordingly.
2024-05-30 09:05:10 +02:00
60b85414b4 Translate using Weblate (Korean)
Currently translated at 100.0% (37 of 37 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ko/
Translation: Home Manager/Home Manager CLI

Co-authored-by: lentil32 <lentil32@icloud.com>
2024-05-30 08:17:09 +02:00
Gaurav JuvekarandGitHub 1b589257f7 home-manager: check FQDN for '--flake .' attribute
Since nixpkgs commit 993baa587c4b82e791686f6ce711bcd4ee8ef933,
`networking.hostName` is not allowed to be a FQDN.

Add `hostname --fqdn` to the default flake attribute names that are
searched.

If

    netorking.hostname = "hostname";
    networking.domain = "example.com";

is set in the system NixOS configuration, this allows defining

    homeConfigurations."username@hostname.example.com" = ...

and still use

    home-manager switch --flake .

instead of having to type out

    home-manager switch --flake .#$(whoami)@$(hostname --fqdn)
2024-05-30 00:02:35 +02:00
XYenon 04bc391a90 yazi: support plugins and flavors 2024-05-29 11:29:08 +08:00
SharzyandGitHub a9b36cbe92 gpg-agent: fix usage of splitString
`splitString "" "some string"` would throw exception `error: invalid
regular expression` on Darwin (or accurately, on Nix built against
libc++). Refer to https://github.com/NixOS/nix/issues/7208 for
details.

Before Nix handles that issue correctly, we should refrain from using
`splitString ""`, and luckliy `lib.stringAsChars` can do the same thing.
2024-05-28 23:15:11 +02:00
midchildanandGitHub 373ead2060 tests: fix broken overlay in mpv test 2024-05-28 17:02:06 +02:00
Dee AnzorgeandGitHub 10c7c219b7 listenbrainz-mpd: fix config example 2024-05-28 00:07:22 +02:00
Phani RithvijandRobert Helgesson 90010df158 topgrade: update example config 2024-05-28 00:03:45 +02:00
JanyandGitHub 939375b396 khal: add package option 2024-05-27 23:59:26 +02:00
Gabriel FontesandRobert Helgesson 7e769959e8 hyprland: onChange: remove subshell comment 2024-05-27 23:57:03 +02:00
Gabriel FontesandRobert Helgesson 7ac529c221 hyprland: onChange: check XDG_RUNTIME_DIR as well
The previous check false negatives in Hyprland >= 0.40.0
2024-05-27 23:57:03 +02:00
RoadRoller01andRobert Helgesson 0cf552f39f bash: add missing 'ignoreboth' to historyControl
Reference: https://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-HISTCONTROL
2024-05-27 23:52:55 +02:00
Austin HorstmanandGitHub e8482a798f yazi: use builtin cd
cd conflicts with aliases that dont support -- syntax
2024-05-27 23:50:57 +02:00
Stanislav AsunkinandGitHub 65e0f5aa25 eza: don't create shell aliases with empty args 2024-05-27 23:50:09 +02:00
Stanislav AsunkinandGitHub 8f8eb15c6d fd: don't create shell aliases with empty args 2024-05-27 23:49:28 +02:00
nurelinandGitHub 5d151429e1 kanshi: fix configuration example 2024-05-26 17:19:20 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
b2a4ddf657 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f1010e0469db743d14519a1efd37e23f8513d714' (2024-05-09)
  → 'github:NixOS/nixpkgs/bfb7a882678e518398ce9a31a881538679f6f092' (2024-05-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-26 17:15:27 +02:00
DeeKahyandHosted Weblate 05e6ba83eb Translate using Weblate (Danish)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: DeeKahy <Lennart.Diego.Kahn@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/da/
Translation: Home Manager/Home Manager CLI
2024-05-26 10:13:39 +02:00
TANIGUCHI KoheiandHosted Weblate 517682ed21 Translate using Weblate (Japanese)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: TANIGUCHI Kohei <a.d.xvii.kal.mai@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translation: Home Manager/Home Manager CLI
2024-05-26 10:13:39 +02:00
Narazaki ShujiandHosted Weblate cd29501b79 Translate using Weblate (Japanese)
Currently translated at 94.5% (35 of 37 strings)

Co-authored-by: Narazaki Shuji <shujinarazaki@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translation: Home Manager/Home Manager CLI
2024-05-26 10:13:39 +02:00
halbGefressenandHosted Weblate 943f1e97fc Translate using Weblate (German)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: halbGefressen <chzi@pm.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translation: Home Manager/Home Manager CLI
2024-05-26 10:13:39 +02:00
Zexin YuanandHosted Weblate fb7feac55b Translate using Weblate (Chinese (Simplified))
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Zexin Yuan <yuan.zx@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translation: Home Manager/Home Manager CLI
2024-05-26 10:13:39 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
6a35d1969e ci: bump cachix/cachix-action from 13 to 15
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 13 to 15.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v13...v15)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-26 10:13:35 +02:00
Robert Helgesson e4611630c3 ci: fix manual build in sourcehut build 2024-05-26 01:25:03 +02:00
Robert Helgesson d179da4e81 home-manager: prepare 24.11-pre 2024-05-25 22:13:25 +02:00
Robert Helgesson 548ba194d0 home-manager: prepare release 24.05 2024-05-25 22:13:25 +02:00
Robert Helgesson 850cb32204 ci: make dependabot consider the release-24.05
Also remove 23.05 from dependabot.
2024-05-23 11:45:08 +02:00
Robert Helgesson 25dedb0d52 version: allow 24.11 as state version 2024-05-23 09:07:00 +02:00
Nathan HenrieandRobert Helgesson e3ad5108f5 espanso: remove background process type on Darwin
This leads to a considerably slower expansion time for snippets, which
severely degrades the user experience.

Also, the launchd plist from the source omits this key:

    https://github.com/espanso/espanso/blob/8daadcc949c35a7b7aa20b7f544fdcff83e2c5f7/espanso/src/res/macos/com.federicoterzi.espanso.plist

PR #5411
2024-05-17 09:24:04 +02:00
Nathan Henrie 65b74b2045 espanso: add n8henrie to maintainers 2024-05-16 16:03:33 -06:00
github-actions[bot] 44677a1c96 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/25865a40d14b3f9cf19f19b924e2ab4069b09588' (2024-05-05)
  → 'github:NixOS/nixpkgs/f1010e0469db743d14519a1efd37e23f8513d714' (2024-05-09)
2024-05-12 03:59:17 +00:00
Milo MoissonandRobert Helgesson d768262018 jujutsu: switch to XDG config home 2024-05-11 00:34:09 +02:00
winstonandGitHub d939ce585c mopidy: make scan service depend on mopidy-local 2024-05-11 00:26:54 +02:00
Hraban LuyatandRobert Helgesson 15d7ec3051 darwin: misc defaults (dock, menu clock, finder) 2024-05-11 00:04:45 +02:00
Akiyoshi SudaandRobert Helgesson 5514ed3210 yambar: add module 2024-05-10 23:29:58 +02:00
ilkecanandRobert Helgesson f2c5ba5e72 fontconfig: add defaultFonts.* options 2024-05-10 18:48:17 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e6a315900d flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/63c3a29ca82437c87573e4c6919b09a24ea61b0f' (2024-05-02)
  → 'github:NixOS/nixpkgs/25865a40d14b3f9cf19f19b924e2ab4069b09588' (2024-05-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-10 18:26:25 +02:00
Sefa EyeogluandRobert Helgesson f55718aec3 hyprland: add support for XDG autostart using systemd
Using the option

    wayland.windowManager.hyprland.systemd.enableXdgAutostart

users can now choose to start applications present in
`$XDG_CONFIG_HOME/autostart` when starting their sway session.

See 0144ac418e and
https://github.com/nix-community/home-manager/pull/3747
2024-05-10 17:35:14 +02:00
Austin HorstmanandRobert Helgesson 223743313b hyprpaper: add module 2024-05-10 15:35:59 +02:00
Austin HorstmanandRobert Helgesson c6ddd80fb1 hyprlock: add module 2024-05-10 14:08:21 +02:00
Vincent GatineandRobert Helgesson 4855bfb6ce kanshi: update configuration to better match upstream 2024-05-10 12:46:37 +02:00
afresquetandRobert Helgesson f61917cbaa fastfetch: add module
PR #5363
2024-05-10 12:42:39 +02:00
Bruno BigrasandGitHub 6e277d9566 jujutsu: add ediff option
Based on <https://github.com/martinvonz/jj/wiki/Emacs#ediff-as-a-merge-tool>.
2024-05-07 12:25:03 +02:00
Tad FisherandRobert Helgesson 6ebe7be2e6 gnome-shell: add module 2024-05-06 09:44:34 +02:00
Léo DUBOINandGitHub 2b87a11125 git: add realName inside From field
We currently have no way of specifying the sender's name inside the
From field, making a patch sent through `git send-email` appear as
coming from "xxx@domain.com".

In this commit we make this field follow the standard

    realName <email>

format.
2024-05-06 08:17:53 +02:00
DaruandGitHub 3dfe05aa9b wlsunset: update options 2024-05-05 19:59:14 +02:00
Austin HorstmanandGitHub fdaaf543ba hypridle: add module 2024-05-05 11:13:18 +02:00
RyanandGitHub f69bf670d2 cliphist: add extraOptions option
Add an extraOptions option that would be appended to the cliphist
command.
2024-05-05 09:37:54 +02:00
github-actions[bot] 2a44f4d09f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/58a1abdbae3217ca6b702f03d3b35125d88a2994' (2024-04-27)
  → 'github:NixOS/nixpkgs/63c3a29ca82437c87573e4c6919b09a24ea61b0f' (2024-05-02)
2024-05-05 03:59:36 +00:00
9p4andGitHub e0825ea211 swaync: fix style path 2024-05-05 01:28:16 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
9036fe9ef8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856' (2024-04-25)
  → 'github:NixOS/nixpkgs/58a1abdbae3217ca6b702f03d3b35125d88a2994' (2024-04-27)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-05-02 21:58:28 +02:00
KeivanandHosted Weblate 67d0e7db88 Translate using Weblate (Persian)
Currently translated at 11.1% (2 of 18 strings)

Translate using Weblate (Persian)

Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Keivan <keyvan0082@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fa/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/fa/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-05-02 12:58:30 +02:00
KaleoandRobert Helgesson 6d3b6dc922 conky: add module 2024-05-01 00:11:15 +02:00
KaleoandRobert Helgesson 28ef93bb8e maintainers: add kaleocheng 2024-04-30 23:56:41 +02:00
VonixxxandRobert Helgesson 3c0df2a7e4 freetube: add module 2024-04-30 23:34:12 +02:00
LichthagelandRobert Helgesson f8e6694eda files: make collision error message more helpful
Most importantly, also indicate how to use file backup for NixOS and
nix-darwin modules.
2024-04-30 00:41:45 +02:00
5632659886 swaync: add module
Co-authored-by: Ryan Horiguchi <rhoriguchi@users.noreply.github.com>
2024-04-30 00:16:28 +02:00
Yomi IkuruandRobert Helgesson 0125041fc9 maintainers: add abayomi185 as maintainer 2024-04-30 00:12:13 +02:00
Austin HorstmanandRobert Helgesson 4fe1f064bd hyprland: use lib.generators.toHyprconf 2024-04-30 00:07:06 +02:00
Austin HorstmanandRobert Helgesson 9fdd301a5e lib/generators: toHyprconf init
Create shared hyprlang generator for mainting Hyprland ecosystem.
2024-04-30 00:07:06 +02:00
Gabriel BirkeandGitHub 1a91cb7cdb neomutt: allow binds to override vimKeys
In the generated neomutt configuration, source the optional
`vim-keys.rc` before applying the `binds` configuration, to allow the
user to override keybindings from `vim-keys.rc`.

Adapt the test files to account for the empty space left by the unset
`vimKeys` option.
2024-04-29 23:54:54 +02:00
Kento OkamotoandHosted Weblate 7ec0ae18cd Translate using Weblate (Japanese)
Currently translated at 89.1% (33 of 37 strings)

Co-authored-by: Kento Okamoto <kentokamoto@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translation: Home Manager/Home Manager CLI
2024-04-29 23:26:45 +02:00
Michael ThomasandHosted Weblate ba97ffcfb2 Translate using Weblate (French)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Michael Thomas <michaelhthomas@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translation: Home Manager/Home Manager CLI
2024-04-29 23:26:45 +02:00
IldenHandRobert Helgesson 08d3cbfe4d firefox: update extensions option description 2024-04-29 23:02:59 +02:00
LichthagelandRobert Helgesson b8d81ef15e mpv: add extraInput option 2024-04-29 19:55:57 +02:00
Alvaro FresquetandGitHub 2af7c78b7b thefuck: add nushell integration 2024-04-29 09:53:42 +02:00
Joaquín TriñanesandGitHub 9fe79591c1 direnv: add nix-direnv to lib instead of sourcing
Also removes use of `with lib`.
2024-04-29 00:30:45 +02:00
Maciej ZwolińskiandGitHub c002bc08c8 cliphist: support images in clipboard history 2024-04-28 23:51:59 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
02002a08b4 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)
  → 'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856' (2024-04-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-28 22:43:49 +02:00
Jan SchmitzandRobert Helgesson d1980931de psd: add module
PR #5349
2024-04-28 22:39:08 +02:00
Gabriel FontesandRobert Helgesson c1609d584a xdg-portal: improve description of enable option
Specifically, add note about useUserPackages and pathsToLink. As
suggested in
<https://github.com/nix-community/home-manager/pull/5158#issuecomment-2012171515>.
2024-04-27 09:40:03 +02:00
Robert HensingandRobert Helgesson 26e72d85e6 home-manager: set module class to "homeManager"
This enables a module system feature documented here:
https://nixos.org/manual/nixpkgs/stable/index.html#module-system-lib-evalModules-param-class

For example, it allows a mistake to be caught, which is loading a
NixOS module into home-manager. This only works when the offending
module declares what it's for with a `_class` attribute.

It is not expected that users declare the `_type`, because the payoff
is small. It is only expected to be set by generic code, such as
functions or libraries that help with the "publishing" of modules
(e.g. flake-parts, flake-utils).

The class feature has been available in the module system since
https://github.com/NixOS/nixpkgs/pull/197547, merged May 6, 2023. It
has been part of all releases since 23.05-beta. The last NixOS release
that did _not_ support it has been end-of-life for close to a year
now.

Example:

    (lib.homeManagerConfiguration {
      pkgs = nixpkgs.legacyPackages.x86_64-linux;
      modules = [{ _class = "nixos"; imports = [ ./foo.nix ]; }];
    }).activation-script

Corresponding error:

    error: The module <unknown-file> was imported into homeManager instead of nixos.

(`<unknown-file>` can be improved by also setting `_file`, if known; a
much older feature)

PR #5339
2024-04-27 09:28:21 +02:00
Luna NovaandRobert Helgesson 0c5704ecee home-manager: make newsReadIdsFile more reliable
Specifically, avoid duplicate remove duplicate slashes in the
`news-read-ids` file path.

Also quote the use of `newsReadIdsFile` to reduce problems with
potential spaces.
2024-04-25 13:01:58 +02:00
Languages add-onandHosted Weblate 6864ca2d26 Add translation using Weblate (Icelandic)
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2024-04-25 12:04:16 +02:00
Bjarki GunnarssonandHosted Weblate 3ebcff8d12 Translate using Weblate (Icelandic)
Currently translated at 13.5% (5 of 37 strings)

Add translation using Weblate (Icelandic)

Co-authored-by: Bjarki Gunnarsson <bjarkihg@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/is/
Translation: Home Manager/Home Manager CLI
2024-04-25 12:04:15 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4c157f84e8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)
  → 'github:NixOS/nixpkgs/6143fc5eeb9c4f00163267708e26191d1e918932' (2024-04-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-25 12:04:09 +02:00
Johan RunstenandGitHub 2f072c127c zsh: use correct autosuggestion color variable (#5320)
To configure zsh's autosuggest "highlight style" we use ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE but it's currently set to AUTOSUGGESTION_HIGHLIGHT_COLOR (via autosuggestion.highlight). This change was apparently made back in 2016 or earlier.
2024-04-24 22:59:02 +02:00
Sergio RiberaandRobert Helgesson bfa7c06436 swayosd: add custom style option 2024-04-23 23:09:45 +02:00
dotconfig404andGitHub 33a20182e3 home-manager: improve session variables comment 2024-04-23 19:49:42 +02:00
Samuel TschiedelandGitHub 67de98ae6e tealdeer: documentation typo 2024-04-22 22:38:46 +02:00
natandRobert Helgesson e866aae5bb amberol: add module
Amberol is a small and simple music player.
2024-04-22 20:06:31 +02:00
quasigodandGitHub 1451d2866d foot: unset PATH in server's systemd unit file
This reverts commit 40ab43ae98.
2024-04-22 18:04:34 +02:00
paki23andRobert Helgesson e2e7ea9b8f kconfig: fix missing quoting 2024-04-22 17:21:19 +02:00
bittin1ddc447d824349b2andHosted Weblate 2ad154bd1b Translate using Weblate (Swedish)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translation: Home Manager/Home Manager CLI
2024-04-22 14:44:43 +02:00
Nicolas GoudryandGitHub 46833c3115 bat: allow overriding package (#5301) 2024-04-22 14:44:39 +02:00
Mirko LenzandRobert Helgesson 670d9ecc3e poetry: add module 2024-04-21 22:53:14 +02:00
zorrobertandRobert Helgesson 2846d5230a joplin-desktop: allow undefined options
This PR fixes two issues that cause rebuild to fail, see #5222.

The first was caused when sync.target and sync.interval were not set,
this was fixed by changing the default values from null to "undefined"
and filtering these out later.

The second error occurred when the .config/joplin-desktop directory
didn't exist (e.g. when installing Joplin for the first time) which
caused the touch command to fail. This was fixed using mkdir to ensure
that .config/joplin-desktop exists.
2024-04-21 17:24:52 +02:00
JulianFPandRobert Helgesson ad83c154bd qt: fix qt.platformTheme = "gtk3" 2024-04-21 15:53:39 +02:00
JulianFPandRobert Helgesson 147b5a5e1c qt: fix platform theme package install 2024-04-21 15:53:39 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4cec20dbf5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)
  → 'github:NixOS/nixpkgs/5c24cf2f0a12ad855f444c30b2421d044120c66f' (2024-04-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-21 08:49:42 +02:00
Coutinho de SouzaandRobert Helgesson 057117a401 kdeconnect: fix "tray.target" requires
The PR #5299[0] actually adds the requirement on "tray.target" for the
kdeconnect service, when kdeconnect-indicator is set to true. What it
should do is add the requirement directly to the latter. This commit
fixes it.

[0]: https://github.com/nix-community/home-manager/pull/5299#issue-2252834123
2024-04-20 00:38:28 +02:00
Robert Helgesson a204082274 firefox: fix test 2024-04-20 00:02:59 +02:00
Andrew MarshallandRobert Helgesson 3a435342e2 sway: check config file validity
Helps avoid successful build but Sway failing to start.

To meaningfully test this, I had to actually use `pkgs.sway` in the
test rather than the stub, but left all other tests using the stub and
changed them to skipping the test.

We need to pass `--unsupported-gpu` as Sway checks for `nvidia` in
`/proc/modules`, and the Nix sandbox has `/proc/modules` available.
2024-04-19 23:16:55 +02:00
Andrew MarshallandRobert Helgesson 95888b153c sway: writeText -> writeTextFile
The latter is more flexible and shall be used soon, splitting this
change out for simpler diff later.
2024-04-19 23:11:30 +02:00
Oğuz ErsenandHosted Weblate 7c61e400a9 Translate using Weblate (Turkish)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tr/
Translation: Home Manager/Home Manager CLI
2024-04-19 19:26:10 +02:00
Felipe SilvaandHosted Weblate 991f6fafce Translate using Weblate (Portuguese)
Currently translated at 100.0% (37 of 37 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: Felipe Silva <hey@felipeqq2.rocks>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt_BR/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-04-19 19:26:09 +02:00
gallegonovatoandHosted Weblate 5682ccdcaf Translate using Weblate (Spanish)
Currently translated at 100.0% (37 of 37 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translation: Home Manager/Home Manager CLI
2024-04-19 19:26:09 +02:00
Masum RezaandGitHub 938357cb23 hyprland: remove enableNvidiaPatches option
Hyprland no longer requires patching to work on Nvidia.
2024-04-19 19:25:59 +02:00
PasqualeandRobert Helgesson 6a171bfd84 kconfig: add module 2024-04-19 17:36:11 +02:00
Cynthia FoxandGitHub 1f305c363e remmina: add module
Adds a module to enable managing Remmina, an RDP client, with a Home
Manager module, providing a systemd service and mimetype integration
that can be disabled if so desired.
2024-04-19 17:16:42 +02:00
Ivan LeshchenkoandGitHub 31c77dcc2e sway: systemd customization 2024-04-19 17:15:54 +02:00
RamsesandGitHub 068dd4ae29 alacritty: cleanup after 0.13 merge in nixpkgs 2024-04-19 16:57:02 +02:00
RamsesandGitHub 7ca7025cf2 alacritty: fix escape sequence in example and test
See https://github.com/nix-community/home-manager/pull/4817#discussion_r1441710049
2024-04-19 16:26:23 +02:00
Coutinho de SouzaandRobert Helgesson dc906b197b kdeconnect: require "tray.target" for kdeconnect
Since kdeconnect-indicator is a tray application, it should require
"tray.target", as is the case for flameshot[0].

[0]: https://github.com/nix-community/home-manager/blob/b1a5b3d6a524c80c7dd20888bff227d52adf5f03/modules/services/flameshot.nix#L58
2024-04-19 14:22:32 +02:00
Raito BezariusandRobert Helgesson 0184c8180f neomutt: add some options
Superficially, allow source primary account by default and show
default mailbox.
2024-04-19 13:56:54 +02:00
Felipe SilvaandGitHub b1a5b3d6a5 vdirsyncer: set postHook to null when not set (#5294)
The `postHook` option was being processed and reset to a string, even if
the user set it to null, causing issues under certain conditions (see

Using `if-then-else` instead of `optionalString` keeps the option as
null, instead of setting it to an empty string.
2024-04-19 13:01:05 +02:00
diniamoandGitHub b62cad68b7 spotify-player: add module 2024-04-19 12:39:30 +02:00
Danil SuetinandGitHub b5b2b1ac63 helix: add ignores option 2024-04-19 12:05:08 +02:00
Henri SotaandRobert Helgesson 8ff7bb3f4d tofi: add module 2024-04-19 11:32:49 +02:00
Robert Helgesson f3506ba86c bash: add bash package to home.packages
Fixes #5295
2024-04-19 09:55:03 +02:00
uncenterandRobert Helgesson ffc3600f40 fd: add module 2024-04-19 00:31:16 +02:00
Robert Helgesson ff1c364654 qt: merge PR 5156 2024-04-19 00:28:00 +02:00
tschai-yimandRobert Helgesson 54e35e0e1c qt: use warnings API 2024-04-18 23:29:12 +02:00
be2b17615c qt: fix adwaita decorations link
Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com>
2024-04-18 23:25:50 +02:00
tschai-yimandRobert Helgesson b31019d64f qt: add adwaita platform theme
Fixes #4702 and https://github.com/NixOS/nixpkgs/issues/295345.
2024-04-18 23:25:50 +02:00
Hosted Weblate 7cebe921ea Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-04-18 17:26:10 +02:00
Robert HelgessonandGitHub 178e26895b home-manager: error out on missing option argument
Instead of an error

    line 958: $1: unbound variable

we now emit an error such as

    missing argument for --cores

Note, this is not perfect. In many cases you still get sub-optimal
error messages.
2024-04-18 17:25:13 +02:00
a-kenjiandGitHub f46814ec7c treewide: prefer the official wiki 2024-04-17 23:58:16 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
93b917d49f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5' (2024-04-10)
  → 'github:NixOS/nixpkgs/5672bc9dbf9d88246ddab5ac454e82318d094bb8' (2024-04-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-17 23:56:40 +02:00
Pol Dellaiera fa8c16e245 systemd: add enable option 2024-04-16 21:12:47 +02:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1c43dcfac4 ci: bump peaceiris/actions-gh-pages from 3 to 4
Bumps [peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) from 3 to 4.
- [Release notes](https://github.com/peaceiris/actions-gh-pages/releases)
- [Changelog](https://github.com/peaceiris/actions-gh-pages/blob/main/CHANGELOG.md)
- [Commits](https://github.com/peaceiris/actions-gh-pages/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peaceiris/actions-gh-pages
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-15 09:42:51 +02:00
Nathan HenrieandGitHub 59d50bc582 espanso: enable module on darwin 2024-04-15 09:40:27 +02:00
Jose PlanaandRobert Helgesson 9f32c66a51 k9s: configuration files in Darwin without XDG
Support alternate configuration files for k9s in darwin where XDG is
not mandated and k9s expects configuration files in
`~/Library/Application Support/k9s/`.
2024-04-14 23:48:01 +02:00
Jose PlanaandRobert Helgesson 76a1650c45 k9s: fix typos in configuration file names 2024-04-14 23:47:45 +02:00
Philipp MildenbergerandGitHub 630a0992b3 nushell: fix nushell config path on darwin 2024-04-14 08:58:16 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4cc3c91601 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/fd281bd6b7d3e32ddfa399853946f782553163b5' (2024-04-03)
  → 'github:NixOS/nixpkgs/1042fd8b148a9105f3c0aca3a6177fd1d9360ba5' (2024-04-10)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-04-14 08:56:05 +02:00
Mitchell SkaggsandGitHub f33d5086d3 rio: remove redundant lib.mdDoc call
This is an error as of https://github.com/NixOS/nixpkgs/pull/303841

It seems to have been missed in https://github.com/nix-community/home-manager/pull/4215
2024-04-13 12:59:33 -05:00
MiSumiSumiandGitHub 8fdf329526 neovim: enable use of external package manager (#5225)
* neovim: add extraWrapperArgs option

pass external arguments to neovim-unwrapper
this gives users more flexibility in managing neovim configuration

* neovim: add test for `extraWrapperArgs`
2024-04-13 16:50:15 +02:00
Bryn EdwardsandGitHub 40ab43ae98 foot: set PATH in server's systemd unit file
If not set, foot's terminal spawning shortcut will not work as the
`footclient` binary is not on the server's PATH.
2024-04-13 08:27:43 +02:00
RamsesandGitHub 31357486b0 fish: use the subcommand style for the status command (#4584)
The flag style has been deprecated and will eventually be removed.
2024-04-10 16:39:52 +02:00
Tony ZormanandGitHub 18f89ef74f firefox: add containersForce flag
Firefox, upon exit, creates the default containers.json file in place of
the one that home-manager created. This leads to errors when switching
to a new profile, as home-manager is careful with overwriting existing
files. The added option toggles that behaviour.

Closes: https://github.com/nix-community/home-manager/issues/4989
2024-04-10 08:29:32 +02:00
Jack WandGitHub b00d0e4fe9 bun: add module 2024-04-09 20:48:15 +02:00
Mario RodasandGitHub 40a99619da fzf: add compatibility with fzf≥0.48.0
fzf 0.48.0 [1] changed the way it integrates with shells.

[1] https://github.com/junegunn/fzf/releases/tag/0.48.0
2024-04-09 08:57:29 +02:00
github-actions[bot] a561ad6ab3 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)
  → 'github:NixOS/nixpkgs/fd281bd6b7d3e32ddfa399853946f782553163b5' (2024-04-03)
2024-04-07 03:59:32 +00:00
Smaug123andRobert Helgesson b787726a84 home-manager: extract inline shell script to file 2024-04-06 10:04:27 +02:00
O. C. TaskinandGitHub 782eed8bb6 programs.khal: add "addresses" option + tidy up (#5221)
- Add `accounts.<calendar|contact>.accounts.<name>.khal.addresses`
  option to enable new configuration option, "addresses", from khal,
  which is used for showing participation status [1].
- Remove mistaken new line in khal implementation, refer to [2].
- Make additions to the existing test case to check the new addresses
  feature. And remove the empty lines in expected configs.

[1]: https://khal.readthedocs.io/en/latest/configure.html#the-calendars-section
[2]: https://github.com/nix-community/home-manager/pull/5192#pullrequestreview-1975091763
2024-04-05 13:48:20 +02:00
1ffd393cba Translate using Weblate (Catalan)
Currently translated at 100.0% (36 of 36 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translation: Home Manager/Home Manager CLI

Co-authored-by: Leix b <abone9999@gmail.com>
2024-04-05 13:47:15 +02:00
Gabriel VenbergandGitHub 0c73c1b8da zoxide: remove obsolete workaround
Since version 9.3, zoxide has updated its nusehll init script to work
with the latest version of nushell.
2024-04-04 23:29:27 +02:00
Nathaniel BarraganandGitHub 9de3aab091 kdeconnect: add package option 2024-04-04 23:08:04 +02:00
VonfryandGitHub 7e91f2a0ba xmonad: fix cp failure if libFiles with subdirectories 2024-04-04 08:26:54 +02:00
LilleAilaandHosted Weblate 80546b220e Translate using Weblate (Norwegian Bokmål)
Currently translated at 94.4% (17 of 18 strings)

Translate using Weblate (Norwegian Bokmål)

Currently translated at 86.1% (31 of 36 strings)

Co-authored-by: LilleAila <olai.solsvik@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nb_NO/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-04-02 23:39:15 +02:00
SMFlorisandHosted Weblate 58e5ae81ce Translate using Weblate (Romanian)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: SMFloris <floris.sm@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ro/
Translation: Home Manager/Home Manager CLI
2024-04-02 23:39:15 +02:00
Petr Portnov | PROgrm_JARvisandHosted Weblate aca33e9955 Translate using Weblate (Russian)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Petr Portnov | PROgrm_JARvis <mrJARVIScraft@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translation: Home Manager/Home Manager CLI
2024-04-02 23:39:15 +02:00
quasigodandGitHub 81cd71995a hyprland: fix systemd variables example 2024-04-02 23:39:11 +02:00
Jalil David Salamé Messina e429a60900 bacon: add default value for settings
Currently you need to specify the settings if you want to use bacon, but
the empty settings works and is the default upstream:

- <https://dystroy.org/bacon/config/>
- [default `prefs.toml`][1]

[1] https://raw.githubusercontent.com/Canop/bacon/main/defaults/default-prefs.toml
2024-04-02 17:23:59 +02:00
Jalil David Salamé Messina 6396954c0d bacon: add package option
Allows overriding the package with a different version. Useful if you
need a different version and don't want (or can't) use an overlay.
2024-04-02 17:23:59 +02:00
Kareem-MedhatandGitHub 4be0464472 home-manager: fix missing string context
The `home-manager` package was being passed a `path` string pointing a
store path while the string didn't have context. As a result the
`home-manager` derivation was created without this path as an input
source allowing it to be garbage collected even though it it being
used by the `home-manager` script. This in turn caused certain
warnings and errors to occur.
2024-04-02 02:05:46 +02:00
Matthieu CoudronandGitHub 820be197cc programs.khal: ability to set RGB color (#5192)
The current module constrains to values in enum but khal supports RGB
colors as well
khal.readthedocs.io/en/latest/configure.html#the-calendars-section !
(be careful when setting an RGB value, it has to be quoted else it is ignored, got bitten by it with a manual config )

NB: It's also not possible to set addresses khal.readthedocs.io/en/latest/configure.html#the-calendars-section
2024-03-31 22:06:56 +02:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
30f2ec3951 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b06025f1533a1e07b6db3e75151caa155d1c7eb3' (2024-03-19)
  → 'github:NixOS/nixpkgs/d8fe5e6c92d0d190646fb9f1056741a229980089' (2024-03-29)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-31 09:07:48 +02:00
Nguyen KhanhandHosted Weblate c09deb869b Translate using Weblate (Vietnamese)
Currently translated at 5.5% (1 of 18 strings)

Translate using Weblate (Vietnamese)

Currently translated at 33.3% (12 of 36 strings)

Translate using Weblate (Vietnamese)

Currently translated at 11.1% (4 of 36 strings)

Co-authored-by: Nguyen Khanh <nguynkhan479@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/vi/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/vi/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-03-28 12:35:24 +01:00
Robert Helgesson c0ef0dab55 home-environment: fix formatting 2024-03-28 12:33:23 +01:00
Shaw VranaandRobert Helgesson 3142bdcc47 readline: optionally place config file in XDG dir
Based on PR #4189
2024-03-28 06:48:10 +01:00
Graham BennettandGitHub 179f6acaf7 antidote: Use builtins.storeDir (#5182)
This allows the module to work for non-/nix stores.
2024-03-27 09:45:49 -06:00
Sumner Evans eb869521cb darkman: allow no configuration
Closes #4779

Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-03-26 14:24:49 -06:00
Robert Helgesson 1c2c5e4cab home-manager: fix nix-build option -q
The `-q` option does not actually exist, nix-build expects `--quiet`.
2024-03-22 19:46:20 +01:00
Evgeny KurnevskyandRobert Helgesson 19b87b9ae6 vdirsyncer: add urlCommand and userNameCommand options 2024-03-22 16:56:17 +01:00
Gabriel FontesandRobert Helgesson 1c2acec999 xdg-portal: align with NixOS module
Nixpkgs has recently made a few major changes to its
xdg-desktop-portal package, which silently breaks our module here:

- The NIXOS_XDG_DESKTOP_PORTAL_CONFIG_DIR variable patch has been
  removed (in favor of putting portal configurations in /etc or
  XDG_CONFIG_HOME).

- A new variable, NIX_XDG_DESKTOP_PORTAL_DIR, was introduced in a
  patch to avoid setting XDG_DESKTOP_PORTAL_DIR (which also affected
  portal configuration reading, not only portal definitions)

I updated our module to match the changes, but this breakage also made
me revisit this module and look into some improvements.

Long story short, I think it's worth it to make it more similar to the
NixOS one, as it will make behavior more predictable and consistent.
The main change is relying on the upstream linked systemd
unit (instead of using systemd.user.services), and setting the
environment variables globally instead of scoping it to the unit, as
it's a very global thing anyway.
2024-03-20 23:41:55 +01:00
github-actions[bot] 3583fea786 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)
  → 'github:NixOS/nixpkgs/b06025f1533a1e07b6db3e75151caa155d1c7eb3' (2024-03-19)
2024-03-20 03:59:22 +00:00
honnipandHosted Weblate 022464438a Translate using Weblate (Korean)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: honnip <me@honnip.page>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ko/
Translation: Home Manager/Home Manager CLI
2024-03-19 05:01:46 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
6665da45dd flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
  → 'github:NixOS/nixpkgs/d691274a972b3165335d261cc4671335f5c67de9' (2024-03-14)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-18 23:22:02 +01:00
Scott EdlundandRobert Helgesson 93dcc3daa9 nix.gc: let systemd use any time config 2024-03-18 22:42:09 +01:00
Robert Helgesson baf7659448 kime: remove documentation dependency on config 2024-03-18 22:13:07 +01:00
s.seidenathandRobert Helgesson 865bef3435 kime: fix configuration
Switches the kime configuration format to use unstructured text. This
is necessary since version 3 and upwards use YAML tags.
2024-03-18 22:12:53 +01:00
Robert Helgesson 7b3fca5adc docs: minor fixes of guidelines 2024-03-17 23:35:57 +01:00
Michael Peyton JonesandRobert Helgesson 206f457fff prezto: be caseSensitive by default
See https://github.com/nix-community/home-manager/issues/2255.

This causes a really noticeable slowdown that is quite hard to track
down!
2024-03-15 20:59:21 +01:00
Icy-ThoughtandRobert Helgesson c781b28add zsh: add patterns option to syntax-highlighting 2024-03-15 19:29:51 +01:00
Icy-ThoughtandRobert Helgesson b004e47e03 zsh: correct link for syntax-highlighting styles 2024-03-15 19:29:51 +01:00
Matthieu CoudronandRobert Helgesson 3ad5c12f3c zsh: set autosuggestion color
Before, one could only toggle autosuggestion. This allows to set the
style as well.
2024-03-15 18:18:53 +01:00
SofieandGitHub dc2f3812b4 nix-gc: add daily frequency option
The systemd.time documentation defines the shorthands `daily` and
`minutely` which are currently not included in the nix-gc module.

This commit adds the `daily` option, but omits `minutely` since it's not
a timescale that would make sense to run a gc for.

https://www.freedesktop.org/software/systemd/man/latest/systemd.time.html
2024-03-15 13:36:03 +01:00
Patrick WidmerandRobert Helgesson ca922258e1 senpai: switch to scfg format 2024-03-15 11:42:17 +01:00
Gabriel ArazasandRobert Helgesson 029545350c activitywatch: add module 2024-03-15 09:39:56 +01:00
Kylie McClainandRobert Helgesson 096d9c04b3 qutebrowser: actually implement unbinding
The documentation for the option says...

> If you want a default binding to be passed through to the website,
> bind it to null.

but if you actually try to set a key to `null`, it causes an error.

> A definition for option
> `programs.qutebrowser.keyBindings."<Ctrl+Shift+Tab>".normal' is not
> of type `strings concatenated with " ;; "'.

So this commit implements unbinding as it is documented.
2024-03-14 22:38:52 +01:00
nbelakovskiandRobert Helgesson 35536fc6d6 docs: update beets and description of overriding packages
The beets package no longer has the "enableCheck" option so this was
confusing. Also the word override was used to mean two different
things so I modified the FAQ to use the word "change" and linked to
documentation regarding package overrides.
2024-03-14 21:20:04 +01:00
RepentantKnight121andHosted Weblate 601c22f8af Translate using Weblate (Vietnamese)
Currently translated at 8.3% (3 of 36 strings)

Co-authored-by: RepentantKnight121 <repentantknight121@outlook.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/vi/
Translation: Home Manager/Home Manager CLI
2024-03-14 20:55:02 +01:00
Sagi SarussiandGitHub ec4096e900 eza: fix typo in docs
Changes "rograms.eza.enableAliases" to "programs.eza.enableAliases".
2024-03-14 20:54:58 +01:00
zorrobertandRobert Helgesson bd9141ea97 fusuma: add missing dependencies 2024-03-14 18:08:10 +01:00
Phillip CloudandRobert Helgesson 587719494e gpg-agent: fix broken variable reference 2024-03-14 14:45:55 +01:00
Bruno BELANYIandRobert Helgesson 1ab3cec3a1 rbw: simplify 'pinentry' type
Following some upstream changes [1], it's now possible to use a simplified
package type for the option.

[1]: https://github.com/NixOS/nixpkgs/pull/133542
2024-03-14 08:29:43 +01:00
Bruno BELANYIandRobert Helgesson 01e4a5143e gpg-agent: migrate to 'pinentryPackage'
This follows upstream's module change [1], which allows setting any
package as a pinentry program.

[1]: https://github.com/NixOS/nixpkgs/pull/133542
2024-03-14 08:22:26 +01:00
Robert Helgesson 2f0db7d418 joplin-desktop: fix maintainer field 2024-03-13 18:11:23 +01:00
zorrobertandRobert Helgesson 383296ffa4 joplin-desktop: add module
PR #5020
2024-03-13 14:28:30 +01:00
Robert HelgessonandGitHub a82cdd288e offlineimap: disable starttls if tls is disabled
Fixes #5097
2024-03-13 13:47:31 +01:00
Norbert MelzerandGitHub 0906e8dfe7 eza: use mkDefault for aliases
Using `mkDefault` for the individual aliases makes it easier to
override or replace individual entries by the user, without having to
use `mkForce` which is often confusing for new users.
2024-03-13 13:46:29 +01:00
ShalokShalomandGitHub 31abb4f6bc docs: fix broken link 2024-03-13 13:45:11 +01:00
Pim SnelandGitHub 1b74e3679e docs: update home-manager-option-search URL 2024-03-13 12:25:47 +01:00
github-actions[bot] dab2437ca0 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
  → 'github:NixOS/nixpkgs/3030f185ba6a4bf4f18b87f345f104e6a6961f34' (2024-03-09)
2024-03-13 03:59:21 +00:00
Mathis HandGitHub 49a266d2ca hyprland: add option for per-input device configs 2024-03-12 23:16:18 +01:00
michaelBelsantiandRobert Helgesson a500de54b2 eza: replace enableAliases with integration options 2024-03-12 20:53:35 +01:00
Philipp KühnandRobert Helgesson 017b12de5b neomutt: adding unmailboxes option
Adding unmailboxes option to neomutt, which adds the `unmailboxes`
option it to every account.email with neomutt enabled.

See https://www.mutt.org/doc/manual/#mailboxes for more.
2024-03-11 14:44:17 +01:00
Lin XianyiandGitHub 36f873dfc8 pqiv: add extraConfig option 2024-03-10 10:20:21 +01:00
Matt WittmannandRobert Helgesson fe4180ad3f bat: handle existing cache in activation script
Run `bat cache --build` in an empty directory to work around failure
when ~/cache exists.
2024-03-10 08:19:10 +01:00
github-actions[bot] fbec898387 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b8697e57f10292a6165a20f03d2f42920dfaf973' (2024-03-03)
  → 'github:NixOS/nixpkgs/9df3e30ce24fd28c7b3e2de0d986769db5d6225d' (2024-03-06)
2024-03-10 03:59:25 +00:00
IgorandRobert Helgesson b0b0c3d943 targets/generic-linux: use xdg path for defexpr
Fixes warnings about the non-existent `~/.nix-defexpr` folder when
using `use-xdg-base-directories = true`.

Example:

    warning: Nix search path entry '/home/user/.nix-defexpr/channels' does not exist, ignoring
    Starting Home Manager activation
    Activating checkFilesChanged
    Activating checkLinkTargets
    Activating writeBoundary
    Activating installPackages
    replacing old 'home-manager-path'
    installing 'home-manager-path'
    Activating dconfSettings
    Activating linkDesktopApplications
    Activating linkGeneration
    Cleaning up orphan links from /home/user
    No change so reusing latest profile generation 13
    Creating home file links in /home/user
    Activating onFilesChange
    Activating reloadSystemd
    warning: Nix search path entry '/home/user/.nix-defexpr/channels' does not exist, ignoring
2024-03-09 13:43:12 +01:00
LiassicaandRobert Helgesson 16311f1d3c borgmatic: add option for pattern matching
Borgmatic has support for Borg's pattern matching. It is mutually
exclusive with the existing `sourceDirectories` option, so assertions
have been added to make sure that both are not set at the same
time (but also that at least one of them is). Additionally, tests have
been added to test the following configurations: `patterns` instead of
`sourceDirectories`, both at the same time, and neither.
2024-03-09 13:27:20 +01:00
VandRobert Helgesson 17431970b4 files: fix activation under Nix 2.3
In Nix 2.3, all GC roots must be stored under `/nix/var/nix/gcroots`,
unless `--indirect` is specified. In Nix 2.4 and above, this flag is
ignored, because all GC roots created by `--add-root` are indirect.

Change-Id: I3eb3d7bc774af2ff336a2cdf312d30a99cdcb928
2024-03-08 23:54:42 +01:00
VandRobert Helgesson b3a9fb9d05 treewide: stop run from discarding error messages
In most cases where this function is used, suppressing only the standard
output is more appropriate. Culling diagnostic output hides error
messages and makes debugging more difficult and confusing.

`$DRY_RUN_NULL`, which the `--silence` flag replaced, was used both for
suppressing standard output on its own, and for doing so along with
diagnostic output; however, when the `run` function was added this
distinction was lost, and both outputs would be discarded.

This reintroduces the needed functionality, and changes usages of
`--silence` to `--quiet` where previously only standard output was
suppressed, or where this should have probably been the case anyway.

Change-Id: Ifb1b52a1d1eea0117261c782d686ad7c71b43162
2024-03-08 23:54:42 +01:00
Filip PobořilandRobert Helgesson bfc438e9b7 ranger: add module 2024-03-08 23:35:34 +01:00
SilmarandRobert Helgesson b550d074fb zk: add module 2024-03-08 23:26:08 +01:00
Robert Helgesson 8b07ca5419 rio: fix docbookisms 2024-03-08 14:20:18 +01:00
David SánchezandGitHub 9a3a5b4402 rio: use XDG config for both linux and darwin
`rio` now uses the same config location for both Linux and macOS:

> MacOS and Linux configuration file path is `~/.config/rio/config.toml`.

Ref: https://raphamorim.io/rio/docs/configuration-file
2024-03-08 14:18:28 +01:00
Clément DOUINandGitHub 417015af0d himalaya: adjust code for v1.0.0-beta.3 2024-03-08 13:58:55 +01:00
Roberto Abdelkader Martínez PérezandRobert Helgesson 0c65bfa3cf git-sync: allow passing extraPackages to service
Sometimes extra packages are needed to successfully update a
repository, for example, git-sync.
2024-03-08 13:18:39 +01:00
novenary 1283bf6ebb xdg-user-dirs: check for existing symlink
When a non-directory, such as a file or a dead symlink, already exists,
mkdir -p fails with "cannot create directory ‘...’: File exists".

This is a problem when, for example, a symlink points to a directory on
a filesystem that isn't mounted yet.
2024-03-07 17:29:26 +02:00
briandRobert Helgesson cf111d1a84 zsh: improve shell{,Global}Aliases
This commit changes the way aliases are rendered, adding the "no more
flags" flag `--`, which means that, for example, the alias `"-" = "cd
-";` will work as expected. (I was getting a syntax error before this
change.)

Additionally, now the alias key is shell escaped, which may help some
edge cases. I'm honestly not sure if this part is necessary since I
assume an alias can't contain spaces anyway, but it definitely
shouldn't break anything.
2024-03-06 23:39:12 +01:00
Isaac GrannisandGitHub ad9254cd9a vdirsyncer: fix verify option type (#5096)
* vdirsyncer: change verify to type path

accounts.<calendar/contacts>.accounts.<name>.vdirsyncer.verify should not be a bool, it should be a path.

* vdirsyncer: Add example of verify use
2024-03-06 21:19:45 +01:00
musjjandGitHub f240015a3a gallery-dl: add package option 2024-03-06 18:43:55 +01:00
Sebastian SellmeierandRobert Helgesson 8d9fde0fba i3/sway: remove sebtm maintainer 2024-03-06 14:26:46 +01:00
Robert HelgessonandHosted Weblate 692726d2ad Translate using Weblate (German)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translation: Home Manager/Home Manager CLI
2024-03-06 14:09:57 +01:00
Languages add-onandHosted Weblate d19bf3ae21 Add translation using Weblate (Vietnamese)
Co-authored-by: Languages add-on <noreply-addon-languages@weblate.org>
2024-03-06 14:09:57 +01:00
Alexis RossfelderandHosted Weblate f30d23facc Translate using Weblate (French)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Alexis Rossfelder <rossfelderalexis@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translation: Home Manager/Home Manager CLI
2024-03-06 14:09:57 +01:00
Nam NguyenandHosted Weblate 572b070627 Add translation using Weblate (Vietnamese)
Co-authored-by: Nam Nguyen <pnam2311@gmail.com>
2024-03-06 14:09:57 +01:00
immwindandHosted Weblate c7e50657fb Translate using Weblate (Chinese (Simplified))
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: immwind <i@immwind.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translation: Home Manager/Home Manager CLI
2024-03-06 14:09:57 +01:00
Sera KarayanandHosted Weblate 571ac9199c Translate using Weblate (German)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Sera Karayan <sera@icefish.dev>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translation: Home Manager/Home Manager CLI
2024-03-06 14:09:57 +01:00
FedFer98123andHosted Weblate ae84f4fd2c Translate using Weblate (Italian)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: FedFer98123 <fede.ferrari123@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translation: Home Manager/Home Manager CLI
2024-03-06 14:09:57 +01:00
7FMandGitHub 40c57ce052 programs.khal: Simplify calendar setup (#5073)
* programs.khal: fix build failure due to null value

* calendar: allow null value for primaryCollection

* calendar / programs.khal: set default values to avoid common errors
2024-03-06 14:09:53 +01:00
Robert Helgesson 613384a511 tests: include a service in integration tests 2024-03-06 12:58:02 +01:00
Robert Helgesson 950673cec7 pueue: always write configuration file
Pueue requires the configuration file to contain a `shared` entry. We
therefore unconditionally add it as `shared: {}`.

Fixes #4295
2024-03-06 12:58:02 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
477176502a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5863c27340ba4de8f83e7e3c023b9599c3cb3c80' (2024-02-16)
  → 'github:NixOS/nixpkgs/b8697e57f10292a6165a20f03d2f42920dfaf973' (2024-03-03)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-03-06 12:37:54 +01:00
Joaquín TriñanesandGitHub 1d717f581b gpg-agent: Fix nushell integration 2024-03-06 11:54:01 +01:00
Robert Helgesson 3c7bacf1d4 ci: remove cachix action
All the extra binary cache lookups and uploads to Cachix make the
build quite a bit slower than necessary.
2024-03-06 08:42:21 +01:00
Robert Helgesson 9daee941ab gpg: fix immutable keyfile test 2024-03-06 08:42:20 +01:00
Robert Helgesson c386fde594 bemenu: stub package in tests 2024-03-06 08:42:20 +01:00
Robert Helgesson bdea159ffa fcitx5: fix reference to fcitx5-with-addons 2024-03-05 23:19:22 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
23ff9821bc ci: bump DeterminateSystems/update-flake-lock from 20 to 21
Bumps [DeterminateSystems/update-flake-lock](https://github.com/determinatesystems/update-flake-lock) from 20 to 21.
- [Release notes](https://github.com/determinatesystems/update-flake-lock/releases)
- [Commits](https://github.com/determinatesystems/update-flake-lock/compare/v20...v21)

---
updated-dependencies:
- dependency-name: DeterminateSystems/update-flake-lock
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-04 19:50:43 +01:00
Felipe SilvaandGitHub d579633ff9 khal: fix contact integration (#4836)
* khal: fix contact integration

- Add tests for contact+khal
- Make options `color`/`priority` available for contact accounts

* khal: add separate calendar for each contact collection

A contact account may have multiple VCARD collections, but Khal doesn't
search recursively. Collection folder names must be hardcoded, and each
has its own calendar.

- Add khal.collections option for contact accounts
- Default to previous setup for accounts with a single collection
- Add tests

* khal: specify how priority is defined by Khal

See https://khal.readthedocs.io/en/latest/configure.html
2024-03-03 18:12:42 +01:00
Robert Helgesson 4de84265d7 fcitx5: fix tests 2024-03-03 06:56:05 +01:00
Robert Helgesson 0992b38e5e tests: add mkStubPackage in Nixpkgs overlay 2024-03-03 06:56:05 +01:00
2f3367769a Translate using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (36 of 36 strings)


Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translation: Home Manager/Home Manager CLI

Co-authored-by: guto <joaoaugustolanjoni@gmail.com>
2024-02-29 11:54:14 +01:00
John Axel ErikssonandGitHub ecfffe3631 river: fix systemd activation (#5055)
The `exec` command does not do any shell parsing and does not
understand the `&&` which is how the extraCommands are added after
dbus activation. There doesn't seem to be a reason for `exec` here
anyway so just remove it and allow shell parsing.
2024-02-29 11:10:25 +01:00
XYenonandGitHub 1d085ea444 yazi: update shell integrations (#5048) 2024-02-27 00:00:56 +01:00
Christina E. SørensenandGitHub 4ee704cb13 xscreensaver: add package option
Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2024-02-24 21:34:39 +01:00
Mihai FufezanandGitHub ae7a3b5137 hyprland: fix reloading
Fix hyprctl erroring out due to HIS.
2024-02-24 21:04:47 +01:00
Judson LesterandRobert Helgesson 4e6d25a51b lorri: systemd allow access to cache directories
Some nix builds require RW access to `.cache/nix` and `.cache/lorri`.
2024-02-24 20:30:51 +01:00
Joey TerritoandRobert Helgesson 0e0e966954 zsh: fix broken ZDOTDIR when path contains spaces 2024-02-22 09:41:50 +01:00
gallegonovatoandHosted Weblate 0b69d57416 Translate using Weblate (Spanish)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translation: Home Manager/Home Manager CLI
2024-02-22 00:31:20 +01:00
Gaetan LepageandRobert Helgesson 3dda8e795f river: add module 2024-02-22 00:10:51 +01:00
James Conroy-FinnandRobert Helgesson 517601b37c jujutsu: remove shell completion
Completion is installed by the jujutsu package itself, making this
additional setup redundant.

https://github.com/nix-community/home-manager/pull/5016#issuecomment-1947449541
https://github.com/nix-community/home-manager/pull/5037#pullrequestreview-1888843990
2024-02-20 18:43:56 +01:00
Nikita PedorichandGitHub a54e05bc12 tealdeer: module improvements
- Cache update on HM activation removed
- freeformType settings
- More tests added
- Platform-dependent tests
- Maintainer added
2024-02-18 23:14:41 +01:00
Albert PescharandGitHub 738527f866 darwin: fonts: speed up font installation
* Skip font installation if the derivation hasn't changed.
* Use `rsync` instead of `install` to copy font files, to avoid useless
  copying of pre-existent identical files.
2024-02-18 23:09:58 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
11edf9cad7 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/f8e2ebd66d097614d51a56a755450d4ae1632df1' (2024-02-07)
  → 'github:NixOS/nixpkgs/5863c27340ba4de8f83e7e3c023b9599c3cb3c80' (2024-02-16)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-18 22:48:32 +01:00
СергійandHosted Weblate 309465d209 Translate using Weblate (Ukrainian)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/uk/
Translation: Home Manager/Home Manager CLI
2024-02-18 15:02:08 +01:00
bittin1ddc447d824349b2andHosted Weblate 7671ec1931 Translate using Weblate (Swedish)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translation: Home Manager/Home Manager CLI
2024-02-18 15:02:08 +01:00
Oğuz ErsenandHosted Weblate 5aec43bc0f Translate using Weblate (Turkish)
Currently translated at 100.0% (36 of 36 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tr/
Translation: Home Manager/Home Manager CLI
2024-02-18 15:02:08 +01:00
Robert HelgessonandHosted Weblate f41f54fb22 Translate using Weblate (Czech)
Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Indonesian)

Currently translated at 66.6% (24 of 36 strings)

Translate using Weblate (Romanian)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Ukrainian)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Portuguese)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Lithuanian)

Currently translated at 72.2% (13 of 18 strings)

Translate using Weblate (Lithuanian)

Currently translated at 86.1% (31 of 36 strings)

Translate using Weblate (Danish)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Dutch)

Currently translated at 88.8% (32 of 36 strings)

Translate using Weblate (Catalan)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Italian)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Turkish)

Currently translated at 100.0% (36 of 36 strings)

Translate using Weblate (Japanese)

Currently translated at 88.8% (32 of 36 strings)

Translate using Weblate (Korean)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (German)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Spanish)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Polish)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Chinese (Traditional))

Currently translated at 77.7% (28 of 36 strings)

Translate using Weblate (Chinese (Simplified))

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Russian)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (French)

Currently translated at 97.2% (35 of 36 strings)

Translate using Weblate (Norwegian Bokmål)

Currently translated at 77.7% (28 of 36 strings)

Translate using Weblate (Swedish)

Currently translated at 97.2% (35 of 36 strings)

Co-authored-by: Robert Helgesson <robert@rycee.net>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/cs/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/da/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/de/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/es/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/id/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ja/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ko/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/lt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ro/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/sv/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tr/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/uk/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/zh_Hant/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/lt/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-02-18 15:02:07 +01:00
Hosted Weblate bb69e1d43e Update translation files
Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Update translation files

Updated by "Update PO files to match POT (msgmerge)" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2024-02-18 15:02:07 +01:00
Robert Helgesson 3d6791b389 home-manager: add Nix sanity check
This should ensure that the necessary profile directories are created.
2024-02-15 22:05:29 +01:00
Robert Helgesson 07fd41171f home-manager: fix incorrect log message 2024-02-15 13:10:07 +01:00
Robert Helgesson 043ba285c6 tests: add basic integration tests
This introduces some rudimentary integration tests using the NixOS
test framework. The intent is to better catch regressions when doing
more elaborate changes that may affect overall Home Manager behavior.
Note, the tests are currently not run automatically.
2024-02-14 15:10:53 +01:00
Robert Helgesson 7889bfb475 home-manager: overrideable URLs in generated flake
When using the `init` sub-command, it is now possible to set the Home
Manager and Nixpkgs input URLs. Note, for now these options are
considered experimental.
2024-02-14 15:10:53 +01:00
Robert Helgesson 354643e6c1 neomutt: fix tests
Caused by an unfortunate interaction between #4597 and #4999.
2024-02-14 14:44:07 +01:00
Robert Helgesson 157bf71277 mpv: create doc output in tests 2024-02-14 11:25:39 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
21b078306a flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/faf912b086576fd1a15fca610166c98d47bc667e' (2024-02-05)
  → 'github:NixOS/nixpkgs/f8e2ebd66d097614d51a56a755450d4ae1632df1' (2024-02-07)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-11 21:30:00 +01:00
Christian Dannie StorgaardandGitHub a09cfdbaf1 neomutt: Initial IMAP support (#4597)
neomutt: Updated options and added tests

neomutt: Added test for individual mailbox type

neomutt: Formatted code

neomutt: Enable ssl_force_tls based on IMAP instead of SMTP

neomutt: Applied suggestions from @chayleaf

neomutt: fix breaking tests
2024-02-11 18:22:37 +01:00
zendoandGitHub bfd0ae29a8 emacs: use overrideScope instead of overrideScope' 2024-02-11 00:23:06 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
d1d6ca9b65 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b8b232ae7b8b144397fdb12d20f592e5e7c1a64d' (2024-01-31)
  → 'github:NixOS/nixpkgs/faf912b086576fd1a15fca610166c98d47bc667e' (2024-02-05)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-10 23:45:27 +01:00
Rafael CarvalhoandGitHub fb0196ad9d imapnotify: enable STARTTLS if enabled in email account config (#5013)
* imapnotify: enable STARTTLS if enabled in email account config

Since version 2.3.10 goimapnotify supports starttls. In version 2.3.11 a
typo in the settings was fixed, using tlsOptions.starttls to enable it.

This commit enables starttls in the goimapnotify config file if it is
enabled in the email account's imap settings.

* imapnotify: test generated config file

Compare the generated service config file with a manually verified
sample.
2024-02-10 23:01:01 +01:00
EmilyandGitHub 4c0357ff87 sway: fix workspace 10 missing from default config (#4636)
workspace 10 is part of upstream's default config, but was missing in home-manager.

The initial "sway: add module" PR (02d6040003) went through multiple iterations and had workspace 10 included for a brief moment.
Until the author removed it in a force-push commenting

> Have removed the last change which added bound ${modifer}+0 to workspace number 10 as this messed up workspace numbering in sway.

The reason might have been, that sway used to sort the workspaces in the order they appeared in the config.

Attribute sets in nix are sorted, but not "naturally sorted", meaning `bindsym Mod1+0 workspace number 10` comes before `bindsym Mod1+0 workspace number 1`.

It's unclear if that's what really happened. A workaround would have been to use `lib.lists.naturalSort` in `keybindingsStr`.

But I cannot reproduce this anymore in any way.
I assume this has been fixed many years ago by now.

upstream config: https://github.com/swaywm/sway/blob/020a572ed615b8fe272c7566a27ee0abe73a58d7/config.in#L113-L134
2024-02-10 19:59:52 +01:00
Alexis (Poliorcetics) BourgetandRobert Helgesson 5b9156fa9a zellij: use full executable path 2024-02-09 09:26:22 +01:00
GenericNerdyUsernameandGitHub f99eace7c1 jetbrains-remote: add module 2024-02-06 00:29:23 +01:00
arjan-sandGitHub f65dcd6c15 neomutt: fix crypt_use_gpgme in newer versions
Fixes config load error since newer versions of neomutt don't allow
`crypt_use_gpgme` to be loaded dynamically (from folder hooks)
2024-02-05 23:42:06 +01:00
NotAShelfandRobert Helgesson 7b4ea8d82f arrpc: add module 2024-02-05 23:36:51 +01:00
AntonandGitHub 13dbf2623d swayosd: update executable 2024-02-05 23:31:53 +01:00
Scott StevensonandGitHub b319781e30 home-manager: Check VISUAL before EDITOR for editor
Check VISUAL for a visual editor before EDITOR, as per Unix convention
and as followed by Git, crontab, mutt, and other tools.
2024-02-05 23:22:43 +01:00
Clément DOUINandGitHub 3c6f2dd59c himalaya: adjust module for v1.0.0-beta 2024-02-05 23:03:40 +01:00
shivaraj-bhandRobert Helgesson 274bd470a5 nix-gc: add service
The nix-gc service runs automatically at a specified frequency. It is
managed via launchd on macOS and systemd on Linux.
2024-02-05 18:10:00 +01:00
iofqandGitHub afcedcf2c8 mcfly: add interfaceView option 2024-02-05 07:35:23 +01:00
RucadiandGitHub a28b12d741 vscode: add openvscode-server
In order to manage the extensions and configs from openvscode-server,
the only additional requirement was some mapping missing between the
name of the package and the default configDir/extensionDir
2024-02-05 07:34:43 +01:00
musjjandGitHub 4740f2ccda kitty: always export KITTY_SHELL_INTEGRATION
This ensures that `KITTY_SHELL_INTEGRATION` is manually set to the
user's `shellIntegration.mode`. This is necessary because sometimes
the variable is not set in subshells or splits.
`shellIntegration.mode` is also now ensured to always contain `no-rc`.
2024-02-05 00:10:32 +01:00
Kylie McClainandGitHub 1683c507c2 vdirsyncer: create postHook script when non-empty 2024-02-05 00:07:19 +01:00
f80df90c10 fish: implement shellInitLast (after others)
Since the module system doesn't allow specifying order on types.lines
users can't specify anything to run after what modules have put into
shellInitInteractive since it runs last. This implements a fourth field
that runs after all others, not to be used by HM modules, but regular
users.

Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
2024-02-04 23:36:41 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
4ab01785b8 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/ae5c332cbb5827f6b1f02572496b141021de335f' (2024-01-25)
  → 'github:NixOS/nixpkgs/b8b232ae7b8b144397fdb12d20f592e5e7c1a64d' (2024-01-31)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-02-04 20:20:42 +01:00
Oğuz ErsenandHosted Weblate 9291f28f93 Translate using Weblate (Turkish)
Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/tr/
Translation: Home Manager/Home Manager CLI
2024-02-04 14:10:11 +01:00
Juraj HlistaandRobert Helgesson 230836bb7c hyprland: fix hyprctl crash
`/tmp/hypr` must be present so `hyprctl` doesn't crash.
2024-02-04 07:59:05 +01:00
Robert HelgessonandGitHub 1ca210648a tests: reduce closure sizes 2024-02-03 19:39:45 +01:00
RamsesandGitHub 880d9bc211 nix: fix generation of nix.conf for nix >= 2.20 2024-02-03 11:14:20 +01:00
Kylie McClainandRobert Helgesson 4d53427bce xfconf: fix config loading
The `run` function export was removed in #4965. This broke the
expectation in this module that `run` would be available outside of
main activation script, as `$DRY_RUN_CMD` once was.

Fixes #4980
2024-02-01 15:34:01 +01:00
Robert Helgesson 2db6a2a429 docs: add style sheets and scrubDerivations
This adds style sheets and `scrubDerivations` from nmd, thereby
removing the need to download them separately.
2024-02-01 01:10:58 +01:00
Carl Hjerpe d634c3abaf tealdeer: add option to toggle update on activation
This is a network operation that can take awhile if you're on a shitty
connection.
2024-01-28 21:18:29 +01:00
Robert Helgesson 4d54c29bce home-manager: remove the export of run
Fixes #4950
2024-01-28 10:53:09 +01:00
Sefa EyeogluandGitHub ebba24a6fe wob: add module
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2024-01-28 10:46:09 +01:00
mlyxshiandGitHub 7a461c70ed firefox: fix darwin NativeMessagingHostsPath 2024-01-28 10:45:17 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
e5f2a0590a flake.lock: Update (#4964)
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/612f97239e2cc474c13c9dafa0df378058c5ad8d' (2024-01-21)
  → 'github:NixOS/nixpkgs/ae5c332cbb5827f6b1f02572496b141021de335f' (2024-01-25)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-28 10:44:53 +01:00
Robert Helgesson b2f5695207 network-manager-applet: add XDG data directory
The Network Manager Applet package provides, for example, some icons
that are good to have accessible in an XDG data directory.
2024-01-26 23:04:20 +01:00
Carl Hjerpe 690764d2dc firefox: Reimplement FF native messaging
Farm links from the selected firefox package,
programs.firefox.nativeMessagingHosts and a package with a .keep file
for always creating the ~/.mozilla/native-messaging-hosts folder as a
regular folder with links in it.

Fixes #4959
2024-01-26 16:16:15 +01:00
GrizzlTandRobert Helgesson c7ce343d9b home-manager: add extendModules attribute
The `home-manager.lib.homeManagerConfiguration` function now has an
additional attribute that can be used to extend a Home Manager
configuration with additional modules outside the project tree.

It works similar to the result of `lib.nixosSystem` from Nixpkgs
2024-01-25 23:24:36 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
c82e52b0d9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/bbe7d8f876fbbe7c959c90ba2ae2852220573261' (2024-01-19)
  → 'github:NixOS/nixpkgs/612f97239e2cc474c13c9dafa0df378058c5ad8d' (2024-01-21)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-25 23:12:09 +01:00
Ryan HoriguchiandGitHub 03958aff44 firefox: add default containers 2024-01-25 23:08:09 +01:00
Sumner EvansandGitHub 70688f195a keepassx: remove module
This removes the services.keepassx module and all options related to it.
This is because KeePassX has been unmaintaned for a long time, and the
migration path to KeePassXC is not clear.

Note, this package probably hasn't worked for nearly a year since the
package was removed from Nixpkgs:
https://github.com/NixOS/nixpkgs/pull/216748

Closes #4949

Signed-off-by: Sumner Evans <me@sumnerevans.com>
2024-01-25 22:56:56 +01:00
6359d40f6e firefox: implement native messaging hosts
Fixes #1586
Fixes #1487

Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2024-01-24 23:22:57 +01:00
Robert Helgesson e84811035d treewide: deprecate VERBOSE_ECHO
The shell function `verboseEcho` can be used in its stead.
2024-01-24 13:36:05 +01:00
Robert Helgesson 190c6f4609 home-manager: avoid running empty nix profile remove
We only want to run `nix profile remove` if there is actually anything
to remove.
2024-01-24 13:36:05 +01:00
Robert Helgesson 4256729006 treewide: deprecate DRY_RUN_CMD and DRY_RUN_NULL
As a replacement, this adds the `run` helper function.
2024-01-24 13:36:05 +01:00
Nikita PedorichandGitHub 6b28ab2d79 tealdeer: add cache update activation script
Calls 'tldr --update' on home-manager switch
2024-01-24 08:21:24 +01:00
Jan TebernumandGitHub 3df2a80f3f zoxide: fix nushell 0.89 deprecation
Since nushell 0.89, automatically spreading lists is deprecated. This
commit introduces a string replace for the zoxide init script to replace
the deprecated code.
See: https://github.com/ajeetdsouza/zoxide/issues/662

Fixes: #4916
2024-01-23 10:10:11 +01:00
Anton TetovandGitHub 3d0dc78e80 bemenu: allow floats in settings
For example, the CLI option --width-factor controls the width of the
launcher and is set to a value between 0-1.
2024-01-23 08:21:17 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
2d47379ad5 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370' (2024-01-15)
  → 'github:NixOS/nixpkgs/bbe7d8f876fbbe7c959c90ba2ae2852220573261' (2024-01-19)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-22 00:24:39 +01:00
Robert Helgesson 4af6720fff k9s: fix unnecessary test dependency 2024-01-22 00:18:04 +01:00
Lucas WaglerandGitHub 020399c287 k9s: v0.29/v0.30 compatibility
- Add `skins` option for definition of multiple skin files
- Change file extension to ".yaml"
- Deprecate `skin` option (points to `skins.skin`)
2024-01-22 00:17:27 +01:00
Nikita PedorichandGitHub 0021558dba mise: fix test
assertPathExists -> assertFileExists
2024-01-21 23:26:31 +01:00
Nikita PedorichandGitHub 928f2528f9 mise: add module
This adds the support for the mise program, the successor of rtx. This
commit therefore also removes the rtx module.
2024-01-21 08:51:14 +01:00
Samuele FacendaandGitHub 9b378afae7 hyprland: change plugins settings generation
The previous syntax (`plugin:name { ...settings}`) is not working with
more than one plugin. There is no documentation for this, just the
source code [1].

With this update the plugins paths aren't generated together with the
full config (so the "plugin" field is not "important" anymore) and the
plugins settings are generated like the other fields.

[1] https://github.com/hyprwm/Hyprland/blob/4d403dac3244aab217fb9bf17a68e9a009fcadd8/src/config/ConfigManager.cpp#L1574
2024-01-21 00:40:55 +01:00
NovaViperandRobert Helgesson ce4b88c465 mcfly: add mcfly-fzf integration 2024-01-20 00:55:11 +01:00
Samuele FacendaandGitHub 2064348e55 hyprland: do not override existing plugins settings in config
The plugin setting in the Hyprland config is used both for defining
plugin paths and configuring the plugins. This fix removes the
silent override of the plugins settings converting them to the
`plugin:<name> { ...settings }` syntax.
2024-01-19 11:27:00 +01:00
Robert Helgesson d6185e83d8 docs, tests: revert to fetchTarball for nmd and nmt
Turns out pulling nmt and nmd from Nixpkgs causes an IFD, even when
the packages are fixed-output derivations.

Thus, since Sourcehut is up and well, we can revert to simply fetching
nmd and nmt directly.

See discussion in <https://github.com/nix-community/home-manager/pull/4884>.
2024-01-18 23:29:40 +01:00
AleksanaandGitHub b84191db12 gh: add github gist to default credential hosts 2024-01-18 00:47:58 +01:00
Jared BaurandGitHub d9c869681d sway: include cursor environment variables
DBus activated services such as mako use the XCURSOR_THEME and
XCURSOR_SIZE environment variables to decide how to show the cursor,
so without these, the cursor may not match the rest of the desktop
when hovering over (in this example) mako notification surfaces.
2024-01-18 00:30:06 +01:00
Benedikt RitterandGitHub 62856932af gradle: Don't enable programs.java
The gradle package from nixpkgs will install a default Java version and
pass it to the gradle executable without polluting the global env.
Users can customize this by overriding the gradle package like so:

  programs.gradle = {
    package = (pkgs.gradle.override {
      java = pkgs.jdk21;
    });
  }
2024-01-18 00:12:08 +01:00
Benedikt RitterandGitHub 9fed3282e9 gradle: re-add britter as maintainer
Follow up to 0360475ee0.
2024-01-18 00:08:06 +01:00
github-actions[bot] 646c243e6f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/9b19f5e77dd906cb52dade0b7bd280339d2a1f3d' (2024-01-13)
  → 'github:NixOS/nixpkgs/c3e128f3c0ecc1fb04aef9f72b3dcc2f6cecf370' (2024-01-15)
2024-01-17 03:59:33 +00:00
Emil NikolovandGitHub 16cefa78cc flake.lock: Update 2024-01-17 00:05:27 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
37d6eeceee flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/b0d36bd0a420ecee3bc916c91886caca87c894e9' (2023-12-30)
  → 'github:NixOS/nixpkgs/317484b1ead87b9c1b8ac5261a8d2dd748a0492d' (2024-01-08)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-16 13:37:12 +01:00
Damien CassouandRobert Helgesson bf4b576f84 firefox: restore compatibility for extraPolicies
This commit makes it possible to specify Firefox' extraPolicies
through:

    programs.firefox.package = pkgs.firefox.override {
      extraPolicies = {... }
    }

This was possible in the past but was broken by:

  3feeb77155
  firefox: add support for specifying policies (#4626)
2024-01-16 09:04:30 +01:00
ckieandRobert Helgesson fa152fd745 xsession: allow xplugd to restart on failure
This should let it recover a bit better from transient errors.
2024-01-16 08:07:00 +01:00
ManuelandRobert Helgesson 8c3b2a0cab flake: update release notes URL
The old URL providing information on deprecated
attributes (`extraModules` etc.) did not work anymore. This one,
"xhtml" instead of "html", does.
2024-01-15 20:30:59 +01:00
André SilvaandGitHub b989db5900 home-manager: check profile exists in nixProfileRemove 2024-01-15 17:25:23 +01:00
Robert Helgesson 846200eb57 docs: use nmd from Nixpkgs 2024-01-14 22:57:58 +01:00
Robert Helgesson 8ae3bfe2bf tests: use nmt from Nixpkgs 2024-01-14 22:57:56 +01:00
Robert Helgesson f2942f3385 Remove some formatting exceptions
This formats a few more file using nixfmt.
2024-01-13 19:05:27 +01:00
Dee AnzorgeandGitHub 6217b73598 listenbrainz-mpd: use sdnotify when possible
The ability for listenbrainz-mpd to notify systemd when it's ready was
added in 2.3.2:

https://codeberg.org/elomatreb/listenbrainz-mpd/releases/tag/v2.3.2
2024-01-13 18:52:33 +01:00
Harsh ShandilyaandGitHub 0912d26b30 gh: only run migration when required 2024-01-13 01:02:44 +01:00
Robert Helgesson 7403ed4980 home-manager: internalize uninstall
This adds a Boolean option `uninstall`. When enabled this option will
reset side-effecting configurations to their "empty" state. The intent
is that this will cause the activation script to remove all managed
files and packages.

Doing it this way should hopefully be more robust than the previous
solution. It also allows a somewhat more convenient uninstall process
when using Flakes; put `uninstall = true` in your existing
configuration and then do a switch.

Also add simple uninstall test in CI test job.
2024-01-13 00:32:31 +01:00
Robert Helgesson 93e804e7f8 docs: use alternative source of nmd 2024-01-11 14:46:44 +01:00
Silvio AnkermannandGitHub e13aa9e287 thunderbird: configure signature if set (#4852)
The identity's signature  will be configured according to signature.text
and signature.showSignature. Signature commands are not supported by
Thunderbird.
2024-01-09 15:19:17 +01:00
FireFragmentandHosted Weblate 51e44a13ac Translate using Weblate (Czech)
Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: FireFragment <snaselik.m@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/cs/
Translation: Home Manager/Home Manager CLI
2024-01-05 23:48:08 +00:00
Robert Helgesson 294c13fa4b home-manager: update --version to 24.05 2024-01-06 00:16:14 +01:00
Jared BaurandGitHub 26b8adb300 github: fix broken links
Current links to contributing and commit style guidelines are out of date.
2024-01-04 16:58:32 +01:00
c36cb65c4a xplr: support multiple plugins in cfg.plugins
Fixes ##4520

Co-authored-by: Arijit Basu <11632726+sayanarijit@users.noreply.github.com>
2024-01-04 10:02:32 +01:00
Gabriel FontesandRobert Helgesson fcbc70a7ee xdg-portal: add new module 2024-01-03 20:51:54 +01:00
XYenonandGitHub 992b38f29c yazi: fix nushell integration 2024-01-03 20:18:53 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
f772334b35 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/cfc3698c31b1fb9cdcf10f36c9643460264d0ca8' (2023-12-27)
  → 'github:NixOS/nixpkgs/b0d36bd0a420ecee3bc916c91886caca87c894e9' (2023-12-30)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2024-01-03 20:17:21 +01:00
MayNiklas 4d8f90205c zsh: fix zprof typo 2024-01-03 11:05:13 +01:00
~noodlez1232andRobert Helgesson 6e91c5df19 i3blocks: added configuration module 2024-01-01 10:15:19 +01:00
Guillaume GirolandGitHub f06edaf18b lorri: unbreak due to too tight sandboxing
lorri needs to be able to write to /run/user/uid for the socket, to its
own cache directory ~/.cache/lorri and to the directory for gc roots.
2024-01-01 09:56:03 +01:00
СергійandHosted Weblate b7ef79bcf4 Translate using Weblate (Ukrainian)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: Сергій <sergiy.goncharuk.1@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/uk/
Translation: Home Manager/Home Manager Modules
2023-12-31 15:09:47 +01:00
github-actions[bot] 2e8634c252 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/6df37dc6a77654682fe9f071c62b4242b5342e04' (2023-12-22)
  → 'github:NixOS/nixpkgs/cfc3698c31b1fb9cdcf10f36c9643460264d0ca8' (2023-12-27)
2023-12-31 03:59:18 +00:00
Omer NaveedandRobert Helgesson 2aff324cf6 bemenu: add module 2023-12-29 09:24:28 +01:00
Peter PfeuferandHosted Weblate c48ae40dbb Translate using Weblate (German)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: Peter Pfeufer <info@ppfeufer.de>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/de/
Translation: Home Manager/Home Manager Modules
2023-12-29 07:53:02 +00:00
x10an14andRobert Helgesson df7f29a231 zoxide: fix use with recent Nushell
1. Zoxide (v0.9.2) leverages `def-env` in their `zoxide init nushell`
   output.

2. Since Nushell v0.88, they have removed (previously deprecated)
   `def-env`:
      https://www.nushell.sh/blog/2023-12-12-nushell_0_88_0.html#breaking-changes-toc
2023-12-29 08:44:20 +01:00
MayNiklasandRobert Helgesson 77c698fa4b zsh: add support for zproof
Using zproof allows benchmarking the shell initialization. It must be
called as the first & last line of `~/.zshrc`.

PR #4745
2023-12-29 01:02:59 +01:00
Robert Helgesson 30f9cdd69d oh-my-posh: fix test under Darwin 2023-12-28 23:07:59 +01:00
r-vdpandRobert Helgesson ba6b75011b alacritty: make compatible with alacritty 0.13
The config file is in TOML from 0.13 onwards.
2023-12-28 21:25:20 +01:00
NAHOandRobert Helgesson f8a4a5c18f gh: idempotently consider existing symlinks
> -e file
>        True if file exists.
> -f file
>        True if file exists and is a regular file.
> [...]
> -L file
>        True if file exists and is a symbolic link.
>
> (Source: bash(1))
2023-12-28 19:19:38 +01:00
FugiandRobert Helgesson 6e2afa5c3b sftpman: add module 2023-12-28 14:03:49 +01:00
not puaandRobert Helgesson c24c298562 zsh.prezto: fix path in example for 'pmoduleDirs'
Minor fix in documentation. The example in
`programs.zsh.prezto.pmoduleDirs` is not compatible with shell
environment variables like `$HOME`, must be replaced with nix
compatible variables eg: `home.homeDirectory`.

Fixes #4452
2023-12-28 10:00:36 +01:00
Tom HallandRobert Helgesson 0f11c14065 osmscout-server: add module
Osmscout-server includes a setting in its UI to create a systemd user
service and socket to run the server on demand. This does not function
correctly on NixOS, for two reasons:

1. It assumes that the binary path is stable (e.g.
   /usr/bin/osmscout-server), which is not the case on NixOS.

2. It auto-detects the unwrapped binary path, which doesn't work.

This module allows the user to access the same functionality on NixOS.
2023-12-28 09:28:48 +01:00
SandroandRobert Helgesson 458544594b gpg-agent: don't set a default for pinentry
NixOS stopped building gtk2 pinentry by default in
https://github.com/NixOS/nixpkgs/pull/270266 and there does not appear
to be a reasonable other default.
2023-12-27 12:01:23 +01:00
Harsh Shandilya 2939d49036 gh: test for existence of hosts file
Having the module enabled but never using gh will result in the config file
existing but no hosts.yml. In that scenario we won't have anything to
migrate, so only test for hosts.yml.
2023-12-27 15:02:56 +05:30
Harsh Shandilya d1d950841d gh: include version in settings
Also add an activation script block for allowing gh version 2.40.0 and
later to perform account migration.
2023-12-27 11:42:06 +05:30
github-actions[bot]andRobert Helgesson 80679ea507 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/a9bf124c46ef298113270b1f84a164865987a91c' (2023-12-11)
  → 'github:NixOS/nixpkgs/6df37dc6a77654682fe9f071c62b4242b5342e04' (2023-12-22)
2023-12-25 19:02:53 +01:00
Callum IddonandRobert Helgesson 015a36e9c7 oh-my-posh: enable nushell integration 2023-12-25 19:01:13 +01:00
Louis ThevenetandHosted Weblate d5a917bab4 Translate using Weblate (French)
Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: Louis Thevenet <louis.thevenet@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/fr/
Translation: Home Manager/Home Manager CLI
2023-12-25 11:10:46 +01:00
Michael Hoang 16fcb9674a home-environment: fix incompatible profile error
This fixes the error:

    error: profile '/nix/var/nix/profiles/per-user/enzime/profile' is incompatible with 'nix-env'; please use 'nix profile' instead
2023-12-24 21:23:21 +11:00
TornaxO7andRobert Helgesson a2523ea034 gpg-agent: add nushell integration 2023-12-23 22:56:59 +01:00
pacienandGitHub de9134144b unison: better retry/restart reporting failures
The service was never marked with a failed state with the previous
approach, which could lead broken synchronisation pair states to go
undetected.

The module now uses a timer instead of unlimited restarts, which does
not have this issue.
2023-12-23 19:13:09 +01:00
sg-qwtandRobert Helgesson 7184dfe663 firefox: update docs example for nativeMessagingHosts
closes https://github.com/nix-community/home-manager/issues/4630

old way of cfg.enableTridactylNative is deprecated upstream
2023-12-23 18:01:51 +01:00
07c322a7cf aerc-accounts: support for maildirpp (#4653)
* aerc-accounts: support for maildirpp

aerc-accounts now is aware of the mbsync.subFolders setting

* aerc: Adds test for maildirpp format

---------

Co-authored-by: lgehr <lgehr@mailbox.org>
2023-12-22 18:14:39 +01:00
r-vdpandRobert Helgesson fb5ac0c870 nix-index: use interactive shell init for Fish 2023-12-21 18:13:31 +01:00
r-vdpandRobert Helgesson 19a7843734 zoxide: use interactive shell init for Fish 2023-12-21 18:13:24 +01:00
Stel AbregoandRobert Helgesson 8b797c8eea fish: escape abbr expansions once again
Commit 8cedd6 `fish: support flexible abbreviations` removed shell
escaping for fish shell abbr values. This was a dangerous breaking
change offered little value and made writing abbr expansions more
difficult. This commit restores automatic shell escaping of fish abbr
values.
2023-12-21 11:42:07 +01:00
Joaquín Triñanes b897544a79 direnv: Fix nushell integration ENV_CONVERSIONS 2023-12-21 09:24:48 +01:00
Joaquín TriñanesandRobert Helgesson 3bfaacf461 direnv: Make lines shorter 2023-12-21 00:00:17 +01:00
Joaquín TriñanesandRobert Helgesson bc52cdd579 direnv: Use ${getExe pkg} instead of ${pkg}/bin/pkg 2023-12-21 00:00:16 +01:00
Joaquín TriñanesandRobert Helgesson 67c4c05c29 direnv: Apply nushell env transformations
In nushell, the ENV_CONVERSIONS environment variable is used to
transform the defined variables from a string to a nushell value (PATH
to a list being one of the most common uses). This commit applies
user-defined conversions to direnv-loaded variables.

This fixes binary autocompletion not being triggered for newly added
paths and makes direnv work consistently with nushell
2023-12-21 00:00:16 +01:00
Tobias H. PetersenandRobert Helgesson 8f38f1a231 docs: fix broken home-manager options link 2023-12-20 23:55:48 +01:00
Robert Helgesson 0360475ee0 gradle: temporarily comment out the maintainer entry
Turns out it was an undefined entry.
2023-12-20 22:40:45 +01:00
Robert Helgesson 4f258945de thefuck: fix test case 2023-12-20 22:33:36 +01:00
Robert Helgesson c8c6a52702 sway: fix failing tests
Due to a recent change in Nixpkgs, the version field is required for
the sway package.
2023-12-20 22:29:00 +01:00
433120e47d gradle: add module
Introduces a new program called gradle for managing files stored in
the home directory by the [Gradle Build Tool](https://gradle.org).
Gradle uses the $HOME/.gradle folder for all it's configuration.

Features of the new program module are:

- Automatically setting programs.java.enable = true to make a Java
  installation available for running Gradle.
- Specifying an alternate Gradle home directory
- Setting of abitrary values for gradle.properties stored inside the
  Gradle home directory.
- Defining init scripts that will be linked into the init.d inside
  the Gradle home directory.

Co-authored-by: Olli Helenius <liff@iki.fi>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2023-12-20 12:41:17 +01:00
Pierce BartineandRobert Helgesson efc177c15f sapling: add module
Adds a program module for [Sapling](https://sapling-scm.com/).

Since Sapling itself is very similar in nature to Mercurial,
`modules/programs/mercurial.nix` was copied to make this module with
the ignore pieces removed (Sapling respects gitignore).
2023-12-19 23:58:05 +01:00
katelyn martinandGitHub ebeeef94ab docs: fix typo in nix-flakes.md 2023-12-19 12:51:08 -05:00
Robert Helgesson e8aaced73e home-manager: sort list packages output
Fixes #4788
2023-12-18 23:05:17 +01:00
Robert Helgesson e4dba0bd01 docs: set the manual version to "24.05 (unstable)" 2023-12-17 12:58:55 +01:00
Robert Helgesson 3b1de1c29c docs: additional improvements after migration
PR #4781
2023-12-17 12:55:50 +01:00
a2e592cc49 home-manager: improve nix profile detection
If `nix.settings.use-xdg-base-directories` is true, the
`~/.nix-profile` directory may not exist, and `home.profileDirectory`
should be checked instead.

Co-authored-by: Bruno BELANYI <bruno@belanyi.fr>
2023-12-17 12:22:53 +01:00
Viktor Kronvall c22b41f006 docs: fix broken link text 2023-12-17 01:03:30 +09:00
Viktor Kronvall 59c15ebe3d docs: fix link texts in release notes 2023-12-17 00:55:46 +09:00
ThinkChaosandGitHub e9b9ecef42 gtk: fix GTK 4 theme being ignored
Haven't dug into any code, but my best guess is GTK 4 ignores it on
purpose since devs campaigned against theming: https://stopthemingmy.app

According to the following link, it's fine for users to do it as long
as they don't expect support from app devs. And the campaign was
against distributions applying custom themes by default.

  https://github.com/GradienceTeam/Gradience/tree/0.4.1#%EF%B8%8F-gradience-stopthemingmyapp-and-adwaita-developers
2023-12-16 15:01:19 +01:00
Robert Helgesson b00a03b668 docs: additional improvements after migration
Most importantly, re-add missing appendix for Release Notes.

PR #4780
2023-12-16 11:01:02 +01:00
Pierre BailletandGitHub 5b3398668b fish: Fix babelization of hm-session-vars
Wrap babelfish version of hm-session-vars.sh into a function to avoid a
syntax error due to the use of `return` in the script.
2023-12-16 10:19:57 +01:00
Viktor Kronvall 07754e935a docs: add considerate as maintainer 2023-12-16 15:49:45 +09:00
Viktor Kronvall 6c82b1c9ce docs: use .xhtml for appendices 2023-12-16 15:46:42 +09:00
Viktor Kronvall 6fc71dc563 docs: add release-notes as appendix
The release notes used to be an appendix in the manual. After
converting to markdown that appendix got lost. This commit
reintroduces the release notes into the manual.
2023-12-16 15:46:00 +09:00
RyanandGitHub abdc82d930 yazi: pass additional args to ya alias
This allows commands like `ya /etc/nixos` and `ya --help` to be used.
2023-12-16 00:07:57 +01:00
Robin GlosterandRobert Helgesson 0e2e443ff2 hyprland: mark plugin setting as important
The plugins are often necessary for other configurations.
2023-12-14 08:14:24 +01:00
Robert HelgessonandGitHub be97e96dab flake: add packages for tests
With this it is possible to build a specific test by running

    $ nix build -L .#test-{test name}

For example

    $ nix build -L .#test-files-text
2023-12-14 08:05:51 +01:00
7a88cdedbd hyprland: improve config reload
When using the previous approach I've always gotten errors that I can't
reload config on the .lock file that exists in /tmp when you run a
standard configured hyprland.

This commit improves this by using hyprctl to find instances to reload
instead.

We can remove the HYPRLAND_INSTANCE_SIGNATURE bogus assignment once
https://github.com/hyprwm/Hyprland/issues/4088 is resolved.

Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
2023-12-14 08:04:57 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
5e9d1fe19f flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2c7f3c0fb7c08a0814627611d9d7d45ab6d75335' (2023-12-04)
  → 'github:NixOS/nixpkgs/a9bf124c46ef298113270b1f84a164865987a91c' (2023-12-11)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-12-14 00:41:28 +01:00
Jan SchmittandRobert Helgesson 7a69b3e738 ssh: add addKeysToAgent option 2023-12-14 00:11:45 +01:00
Moritz RumpfandGitHub d9297efd3a awscli: only write config files when not empty 2023-12-13 00:21:10 +01:00
Phil SimpsonandGitHub 0e7cd64674 docs: fix nix-darwin module configuration example
The example is missing a `;` which causes this error when you attempt
a `darwin-rebuild switch`.

```
       error: syntax error, unexpected '=', expecting ';'

       at /Users/968713/.nixpkgs/darwin-configuration.nix:17:30:

           16|   }
           17|   home-manager.users.eve = { pkgs, ... }: {
             |                              ^
           18|     home.packages = [
```
2023-12-13 00:01:02 +01:00
Brian LeungandGitHub 01a66e313f msmtp: add configurable package 2023-12-12 23:40:52 +01:00
Lucas EduardoandHosted Weblate b3c4e98aec Translate using Weblate (Portuguese)
Currently translated at 100.0% (35 of 35 strings)

Translation: Home Manager/Home Manager CLI
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt/
2023-12-11 17:06:28 +01:00
Blezz RotandHosted Weblate dd5aef0a79 Translate using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
2023-12-11 17:06:28 +01:00
Blezz RotandHosted Weblate 5be24c74d9 Translate using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
2023-12-10 17:00:25 +01:00
teu5usandHosted Weblate d33e0e7442 Translate using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Translation: Home Manager/Home Manager Modules
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
2023-12-10 17:00:25 +01:00
Blezz RotandHosted Weblate b61fae90ba Translate using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Translation: Home Manager/Home Manager CLI
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
2023-12-10 17:00:25 +01:00
Nara Díaz ViñolasandHosted Weblate bb202f194b Translate using Weblate (Catalan)
Currently translated at 100.0% (35 of 35 strings)

Translate using Weblate (Catalan)

Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: Nara Díaz Viñolas <rdvdev2@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ca/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ca/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2023-12-10 16:58:24 +01:00
Blezz RotandHosted Weblate 700002cbae Translate using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager Modules
2023-12-10 16:58:24 +01:00
teu5usandHosted Weblate c7b84ad0e8 Translate using Weblate (Russian)
Currently translated at 100.0% (18 of 18 strings)

Co-authored-by: teu5us <paulkreuzmann@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/ru/
Translation: Home Manager/Home Manager Modules
2023-12-10 16:58:24 +01:00
Nara Díaz ViñolasandRobert Helgesson defbb9c585 hyprland: add option sourceFirst
Add the option sourceFirst to the hyprland module. When this option is
enabled source entries will be put near the top of the file, so that
the variables declared in other files can be used by the other
configuration entries.

Add "source" to the list of important prefixes when the former option
is enabled.

Resolves #4729
2023-12-10 11:12:06 +01:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
9a00befa13 ci: bump cachix/cachix-action from 12 to 13
Bumps [cachix/cachix-action](https://github.com/cachix/cachix-action) from 12 to 13.
- [Release notes](https://github.com/cachix/cachix-action/releases)
- [Commits](https://github.com/cachix/cachix-action/compare/v12...v13)

---
updated-dependencies:
- dependency-name: cachix/cachix-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-12-10 09:08:54 +01:00
Richard DavisandRobert Helgesson 093777ee4a caffeine: remove ProtectHome service option
This option causes caffeine to be unable to start via the systemd
service.
2023-12-10 08:37:02 +01:00
D3vil0p3randRobert Helgesson e6b7303bd1 docs: fix broken links in README 2023-12-09 23:00:52 +01:00
Robert Helgesson fa91c109b0 docs: use relative paths to static resources
Fixes #4753
2023-12-09 13:20:54 +01:00
David HoudekandHosted Weblate efa36e8969 Translate using Weblate (Czech)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Czech)

Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: David Houdek <sarejnovec@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/cs/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/cs/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2023-12-09 09:35:48 +01:00
Robert Helgesson 7db6291d95 docs: migrate documentation
This resolves the long-standing deprecation warning by migrating the
documentation to using the nixos-render-docs tool. As part of this,
the documentation markup language is migrated to Markdown.

See pull-request #4673 for more.
2023-12-09 09:34:29 +01:00
Robert Helgesson f10eb1b3ee docs: apply nixfmt 2023-12-09 09:05:16 +01:00
Viktor Kronvall 613dbb35db docs: rename generated manual to index.xhtml
The `nixos-render-docs` tool outputs XHTML formatted content. In
order to convince browsers like `firefox` to treat the data as XHTML
the extension must be `.xhtml` and not `.html`.

Using the XHTML-formatted content as HTML is mainly an issue with
self-closing `<a />` tags.
2023-12-07 21:40:31 +09:00
Viktor Kronvall 0a71046493 docs: fix syntax highlighting
`document-highlighter` now outputs a `<code>` block inside the
pre-formatted `<pre>` tag. This changes the required CSS for
rendering code snippets. Moreover, this commit uses the highlightjs
as provided by the `document-highlighter` package instead of the
version packaged in `nmd`.
2023-12-07 21:31:50 +09:00
Viktor Kronvall b006bf1d74 docs: render DESCRIPTION and OPTIONS headings 2023-12-07 21:28:18 +09:00
Viktor Kronvall eff22a27e2 docs: replace console language with shell 2023-12-07 21:28:18 +09:00
Viktor Kronvall 67b797a377 docs: update nmd version
This update fixes the custom CSS to make the `$` character
non-selectable in highlighted code blocks.
2023-12-07 21:28:18 +09:00
Viktor Kronvall 5c2ef5243d docs: extend home-configuration.nix header
The previous version had a longer header before the options,
including a DESCRIPTION section and an header for the OPTIONS.
2023-12-07 21:28:18 +09:00
Viktor Kronvall be80122731 docs: include 3rd-party part 2023-12-07 21:28:18 +09:00
Viktor Kronvall b5a47bd700 docs: this is the home-manager manual 2023-12-07 21:28:18 +09:00
Viktor Kronvall 32063973cc docs: fix note blocks 2023-12-07 21:28:18 +09:00
Viktor Kronvall 2098c6fe91 docs: no justification in home-manager manpage
The `man home-configuration.nix` is configured to left
align the text similar to `man configuration.nix`. This
commit updates the `man home-manager` page to be consitent
with the two manpages mentioned above.
2023-12-07 21:28:18 +09:00
Viktor Kronvall 8dae2041ef docs: use nixos-render-docs
This commit removes the `home-manager-render-docs` package in favor
of upstream `nixos-render-docs` where the manpage generator has been
updated to take a `--header` and a `--footer` flag specifying static
content around the content derived from the options.json file.
2023-12-07 21:28:16 +09:00
Viktor Kronvall e4d290396c docs: update manual to refer to 23.11 2023-12-07 21:27:38 +09:00
Viktor Kronvall f48a0062df docs: update paths to make manual tests pass 2023-12-07 21:27:38 +09:00
Viktor Kronvall 0dcb767676 docs: add htmlOpenTool to manual
This commit extracts the htmlOpenTool from `nmd` into a module
in the home-manager docs directory. This is done to provide feature
parity with the documentation generated using the docbook .xml files.
2023-12-07 21:27:38 +09:00
Viktor Kronvall 728423e6f4 docs: add home-manager manpage 2023-12-07 21:27:38 +09:00
Viktor Kronvall 80ac72bf03 docs: render without deprecated optionsDocBook
The `optionsDocBook` function is deprecated in nixpkgs since
nixos-23.11. This commit updates the manual and manpages to
use commonmark formatted documentation instead of the deprecated
docbook format.
2023-12-07 21:27:38 +09:00
0x5a4andRobert Helgesson ac7216918c firefox: fix folders not showing in toolbar
Fixes #4568
2023-12-04 23:14:01 +01:00
Tom CammannandGitHub 948703f3e7 broot: Add nushell integration (#4714)
Add additional config flag `enableNushellIntegration` in broot.nix to
setup broot/br for nushell.
2023-12-04 08:57:35 +01:00
ZurgaandHosted Weblate e504e8d01f Translate using Weblate (Dutch)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Dutch)

Currently translated at 91.4% (32 of 35 strings)

Co-authored-by: Zurga <jim.lemmers@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nl/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/nl/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2023-12-03 14:17:59 +01:00
Lorenzo BrzekandHosted Weblate efe28e24f3 Translate using Weblate (Italian)
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Italian)

Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: Lorenzo Brzek <lorenzoservizi@proton.me>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/it/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/it/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2023-12-03 14:17:59 +01:00
Blezz RotandHosted Weblate ce67b37cab Translate using Weblate (Russian)
Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translation: Home Manager/Home Manager CLI
2023-12-03 14:17:59 +01:00
github-actions[bot] 0d40107119 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8' (2023-11-24)
  → 'github:NixOS/nixpkgs/e92039b55bcd58469325ded85d4f58dd5a4eaf58' (2023-11-29)
2023-12-03 03:59:43 +00:00
Yuchen GuoandRobert Helgesson 4a8545f5e7 swayidle: add systemd suspend to example 2023-12-01 13:17:50 +01:00
Yuchen GuoandRobert Helgesson 9e869829c2 swayidle: daemonize swaylock in example configuration 2023-12-01 13:17:43 +01:00
Nikolay MokrinskyandHosted Weblate ef9088253c Translate using Weblate (Russian)
Currently translated at 94.2% (33 of 35 strings)

Co-authored-by: Nikolay Mokrinsky <me@mokrinsky.ru>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translation: Home Manager/Home Manager CLI
2023-11-30 19:45:06 +01:00
Blezz RotandHosted Weblate 3d154dab14 Translate using Weblate (Russian)
Currently translated at 94.2% (33 of 35 strings)

Co-authored-by: Blezz Rot <markus.jenya04@yandex.ru>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/ru/
Translation: Home Manager/Home Manager CLI
2023-11-30 19:45:06 +01:00
Gabriel FontesandHosted Weblate 2a604e614f Translate using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (18 of 18 strings)

Translate using Weblate (Portuguese (Brazil))

Currently translated at 100.0% (35 of 35 strings)

Co-authored-by: Gabriel Fontes <hi@m7.rs>
Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/pt_BR/
Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/pt_BR/
Translation: Home Manager/Home Manager CLI
Translation: Home Manager/Home Manager Modules
2023-11-30 19:45:06 +01:00
Robert Helgesson db1878f013 home-manager: add 24.05 as valid state version 2023-11-27 08:46:43 +01:00
Damien CassouandRobert Helgesson 7c97c46dc4 signaturepdf: add service 2023-11-27 00:19:14 +01:00
home-manager-botGitHubgithub-actions[bot] <github-actions[bot]@users.noreply.github.com>
8340c0b4d9 flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/c757e9bd77b16ca2e03c89bf8bc9ecb28e0c06ad' (2023-11-17)
  → 'github:NixOS/nixpkgs/5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8' (2023-11-24)

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-11-27 00:05:55 +01:00
XYenon a462e7315d yazi: update shell integrations and docs 2023-11-25 16:17:54 +08:00
OTABI TomoyaandGitHub 8cedd63eed fish: support flexible abbreviations
https://github.com/fish-shell/fish-shell/releases/tag/3.6.0
2023-11-24 18:44:25 +01:00
Robert Helgesson e1f3b36ab0 home-manager: set unstable release to 24.05 2023-11-24 09:25:42 +01:00
4466 changed files with 178893 additions and 43131 deletions
+2 -1
View File
@@ -9,6 +9,7 @@ environment:
NIX_CONFIG: "experimental-features = nix-command flakes"
packages:
- nixos.cachix
- nixos.jq
tasks:
- setup: |
cachix use rycee
@@ -26,7 +27,7 @@ tasks:
if [[ $gitBranch == master ]]; then
dirName="unstable"
else
dirName="$(cat .release)"
dirName="$(jq -r .release < release.json)"
fi
rsync --delete -r --info=stats \
+4 -1
View File
@@ -11,7 +11,7 @@ insert_final_newline = true
# The JSON files contain newlines inconsistently
[*.json]
insert_final_newline = ignore
insert_final_newline = unset
# Makefiles always use tabs for indentation
[Makefile]
@@ -19,3 +19,6 @@ indent_style = tab
[*.md]
trim_trailing_whitespace = false
[*.plist]
insert_final_newline = false
+61
View File
@@ -0,0 +1,61 @@
# This file contains a list of commits that are not likely what you
# are looking for in a blame, such as mass reformatting or renaming.
#
# $ git config blame.ignoreRevsFile .git-blame-ignore-revs
# Treewide nixfmt-rfc-style
cba2f9ce95c8d10b66cacf05a275e3ad71959638
# Treewide remove with lib
0b491b460f52e87e23eb17bbf59c6ae64b7664c1
95711f926676018d279ba09fe7530d03b5d5b3e2
5e193cdcab61b5e7096ef3c132fdc0149e14f2d9
55cf1f16324e694c991e846ad5fc897f0f75ac64
a710f337d6f541f5ba50bc2d5daa6c34e9ee5834
10dca990ae02aaf41ff12c5b18dd3dcf258c0d04
d7f451d7b13bbe075abecfd345f8b149a000216a
65413f297f8c4c42a99270c15bce7bda1bfea724
b5976017741653251258112f7e6ee5d8b9e3a832
e0be70bcf94be20f8f0f6d215d909b614ab6ebeb
e30c6a41bc8548738341d10c0b17f8fead8e55ee
b5142d46a3f912ef99e9cec3e51d757fbeaf14ea
56374cc64d58451b359bb4e8502387d3a96e7c7b
32531e457215000b739da6cd40acfb080823f396
34d524f3edcf3a04c00ad2c09c24ec9d35d937f9
439a125afef8c97308ec0c6db75d38e15d92208d
5031c6d2978109336637977c165f82aa49fa16a7
b34b56689dcc75294e14e8c95db4e054a4e9573f
234613d77c939ff2e2c0f2c476a56d80930e5b8b
e3baf274f47678df6289c7482353cb6d38b7be5d
c90cd85b04ff3348978b05ba73ffc8e1b74b9fce
2d731a33b193209cb88b874e508ea912765f7d99
20fd9686b85dc64657a176466e23d0f3a5e1f760
96dee79b178d295b716052feca3ee46abc085abe
97d7946b5e107dd03cc82f21165251d4e0159655
0dfec9deb275854a56c97c356c40ef72e3a2e632
4b2d3b03becc184f2d1485e109c6a55f94d5f886
# Treewide remove lib.mdDoc
9f9e277b60a6e6915ad3a129e06861044b50fdf2
# Treewide replace usage of literalExample
bd11e2c5e67385970e59e55ba7a4c35d1ffaee4d
# Treewide nix fmt change
b4752b0eda6302b92a6d5dd554c83f188bc3ae6d
9136120c369d91144910a985262e3c3b8e8872d6
# Treewide remove noops
f2f1076c1f789595c2a2b18b76466fbd691025dd
# Treewide statix cleanup
01ea51d7065e0ab06a09df9db4d1c17f6eb2675f
74d8d470345b9324f89e14d675c14b92dc4a091d
5209a256fd507322b0dd09ade7bc61923da948cf
11ad9d2e42ebf6d00db4d7bae252f1c6b7dd36a4
74b0e979375b0ed469e2394820aa50ba2114800b
de90ee24082bb8dd44145f5c733b807467856820
# Deadnix cleanup
71402c5df34df5ee7b6c10d738018f9f0c8bde2b
a93d80bcec089abf80894c25ee3934b7e196bbd9
-15
View File
@@ -1,15 +0,0 @@
---
name: Feature request
about: Ask for a new feature to be added (module, program, etc.)
title: ''
labels: feature request
assignees: rycee, berbiche, sumnerevans
---
<!--
Note: Please search to see if the feature has already been requested
-->
### Description
@@ -0,0 +1,38 @@
name: "✨ Feature Request"
description: "Suggest an improvement to Home Manager"
title: "[Feature Request] "
labels: ["feature request"]
body:
- type: markdown
attributes:
value: |
Thank you for contributing to Home Manager!
Before you open a new issue, please search the existing issues to see if your feature has already been requested or discussed.
- type: markdown
attributes:
value: "## 🔧 Existing Module Improvement"
- type: input
id: existing-module-name
attributes:
label: Module Name
description: "What is the name of the module?"
placeholder: "e.g., programs.git"
- type: textarea
id: existing-module-feature
attributes:
label: Requested Feature
description: "Please describe the new feature or improvement in detail."
- type: textarea
id: existing-module-limitation
attributes:
label: Current Limitations
description: "Why can't your goal be achieved with the current implementation? Please be specific."
- type: markdown
attributes:
value: "---"
- type: textarea
id: additional-context
attributes:
label: Additional Context
description: Add any other context, screenshots, or configuration examples about the feature request here.
-5
View File
@@ -3,10 +3,6 @@ description: File a bug/issue
title: 'bug: '
labels: [bug, triage]
# We cannot use nix-community/home-manager
# See https://github.com/dear-github/dear-github/issues/170
assignees: [rycee, berbiche, sumnerevans]
body:
- type: checkboxes
attributes:
@@ -40,7 +36,6 @@ body:
label: Maintainer CC
description: |
Please @ people who are in the `meta.maintainers` list of the offending module.
If in doubt, check `git blame` for whoever last touched something.
validations:
required: false
- type: textarea
+37
View File
@@ -0,0 +1,37 @@
name: "✨ New Module Request"
description: "Suggest an addition to Home Manager"
title: "[New Module Request] "
labels: ["new module request"]
body:
- type: markdown
attributes:
value: |
Thank you for contributing to Home Manager!
Before you open a new issue, please search the existing issues to see if your feature has already been requested or discussed.
- type: markdown
attributes:
value: "## New Program or Service"
- type: input
id: new-program-name
attributes:
label: Program/Service Name
description: "What is the name of the program or service you would like to add?"
placeholder: "e.g., my-cool-cli-tool"
- type: input
id: new-program-repo
attributes:
label: Upstream Repository
description: "Please provide a link to the source code repository."
placeholder: "https://github.com/user/repo"
- type: textarea
id: new-program-docs
attributes:
label: Configuration Documentation
description: "Please provide links to any relevant documentation for configuring this program."
placeholder: "e.g., man page, project wiki, configuration file examples, etc."
- type: textarea
id: new-program-reason
attributes:
label: Reason for Addition
description: "**Why do you want this program or service added to Home Manager?"
+15 -15
View File
@@ -15,35 +15,35 @@ pull-request.
Also make sure to read the guidelines found at
https://github.com/nix-community/home-manager/blob/master/docs/contributing.adoc#sec-guidelines
https://nix-community.github.io/home-manager/#sec-guidelines
-->
- [ ] Change is backwards compatible.
- [ ] Code formatted with `./format`.
- [ ] Code formatted with `nix fmt` or
`nix-shell -A dev --run treefmt`.
- [ ] Code tested through `nix-shell --pure tests -A run.all` or `nix develop --ignore-environment .#all` using Flakes.
- [ ] Code tested through `nix build .#test-all`
or a targeted `nix run .#tests -- <pattern>`.
- [ ] Test cases updated/added. See [example](https://github.com/nix-community/home-manager/commit/f3fbb50b68df20da47f9b0def5607857fcc0d021#diff-b61a6d542f9036550ba9c401c80f00ef).
- [ ] Commit messages are formatted like
```
{component}: {description}
```
{component}: {description}
{long description}
```
{long description}
```
See [CONTRIBUTING](https://github.com/nix-community/home-manager/blob/master/docs/contributing.adoc#sec-commit-style) for more information and [recent commit messages](https://github.com/nix-community/home-manager/commits/master) for examples.
See [CONTRIBUTING](https://nix-community.github.io/home-manager/#sec-commit-style) for more information and [recent commit messages](https://github.com/nix-community/home-manager/commits/master) for examples.
- If this PR adds a new module
- [ ] Added myself as module maintainer. See [example](https://github.com/nix-community/home-manager/blob/068ff76a10e95820f886ac46957edcff4e44621d/modules/programs/lesspipe.nix#L6).
- [ ] Added myself as module maintainer. See [example](https://github.com/nix-community/home-manager/blob/a51598236f23c89e59ee77eb8e0614358b0e896c/modules/programs/lesspipe.nix#L11).
- [ ] Generate a news entry. See [News](https://nix-community.github.io/home-manager/index.xhtml#sec-news)
- [ ] Basic tests added. See [Tests](https://nix-community.github.io/home-manager/index.xhtml#sec-tests)
#### Maintainer CC
<!--
If you are updating a module, please @ people who are in its `meta.maintainers` list.
If in doubt, check `git blame` for whoever last touched something.
-->
- If this PR adds an exciting new feature or contains a breaking change.
- [ ] Generate a news entry. See [News](https://nix-community.github.io/home-manager/index.xhtml#sec-news)
+11 -6
View File
@@ -7,19 +7,24 @@ updates:
interval: "weekly"
commit-message:
prefix: "ci:"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "release-23.05"
target-branch: "release-26.05"
schedule:
interval: "weekly"
commit-message:
prefix: "ci:"
- package-ecosystem: "github-actions"
- package-ecosystem: "nix"
directory: "/"
target-branch: "release-23.11"
target-branch: "master"
schedule:
interval: "weekly"
commit-message:
prefix: "ci:"
prefix: "flake:"
- package-ecosystem: "nix"
directory: "/"
target-branch: "release-26.05"
schedule:
interval: "weekly"
commit-message:
prefix: "flake:"
+742 -34
View File
@@ -1,36 +1,744 @@
"mail":
- modules/programs/aerc*.nix
- modules/programs/alot*.nix
- tests/modules/programs/aerc/*
- tests/modules/programs/alot/*
- modules/programs/mujmap.nix
- tests/modules/programs/mujmap/*
- modules/programs/notmuch.nix
- modules/programs/neomutt*
- tests/modules/programs/neomutt/*
- modules/programs/getmail*
- modules/*/mbsync*
- tests/modules/programs/mbsync/*
- modules/programs/himalaya.nix
- tests/modules/programs/himalaya/*
- modules/programs/thunderbird.nix
- tests/modules/programs/thunderbird/*
- modules/services/imapnotify.nix
"neovim":
- modules/programs/neovim.nix
- tests/modules/programs/neovim/**/*
"shell":
- modules/lib/zsh.nix
- modules/programs/zsh*
- modules/programs/bash*
- tests/modules/programs/zsh/**/*
"release":
- base-branch:
- '^release-.*'
"ai":
- changed-files:
- any-glob-to-any-file:
- modules/programs/aiac.nix
- modules/programs/aichat.nix
- modules/programs/aider-chat.nix
- modules/programs/claude-code/**/*
- modules/programs/codex.nix
- modules/programs/fabric-ai.nix
- modules/programs/antigravity-cli.nix
- modules/programs/mcp.nix
- modules/programs/mistral-vibe.nix
- modules/programs/mods.nix
- modules/programs/opencode.nix
- modules/services/local-ai.nix
- modules/services/ollama.nix
"audio":
- changed-files:
- any-glob-to-any-file:
- modules/programs/beets.nix
- modules/programs/cava.nix
- modules/programs/cavalier.nix
- modules/programs/cmus.nix
- modules/programs/ncmpcpp.nix
- modules/programs/ncspot.nix
- modules/programs/pianobar.nix
- modules/programs/pyradio.nix
- modules/programs/radio-active.nix
- modules/programs/radio-cli.nix
- modules/programs/rmpc.nix
- modules/programs/spotify-player.nix
- modules/programs/timidity.nix
- modules/services/amberol.nix
- modules/services/easyeffects.nix
- modules/services/fluidsynth.nix
- modules/services/librespot.nix
- modules/services/listenbrainz-mpd.nix
- modules/services/mopidy.nix
- modules/services/mpd-discord-rpc.nix
- modules/services/mpd-mpris.nix
- modules/services/mpd.nix
- modules/services/mpdris2-rs.nix
- modules/services/mpdris2.nix
- modules/services/mpdscribble.nix
- modules/services/mpris-proxy.nix
- modules/services/pasystray.nix
- modules/services/playerctld.nix
- modules/services/pulseeffects.nix
- modules/services/rescrobbled.nix
- modules/services/spotifyd.nix
- tests/modules/services/mpd/**/*
"automation":
- changed-files:
- any-glob-to-any-file:
- modules/services/autotiling.nix
- modules/services/caffeine.nix
- modules/services/darkman.nix
- modules/services/devilspie2.nix
- modules/services/espanso.nix
- modules/services/keynav.nix
- modules/services/skhd.nix
"backup":
- changed-files:
- any-glob-to-any-file:
- modules/programs/borgmatic.nix
- modules/programs/rclone.nix
- modules/services/borgmatic.nix
- modules/services/restic.nix
- tests/modules/programs/borgmatic/**/*
- tests/modules/services/borgmatic/**/*
"bars":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ashell.nix
- modules/programs/eww.nix
- modules/programs/hyprpanel/default.nix
- modules/programs/i3bar-river.nix
- modules/programs/sketchybar.nix
- modules/programs/tray-tui.nix
- modules/programs/waybar.nix
- modules/programs/xmobar.nix
- modules/programs/yambar.nix
- modules/services/polybar.nix
- modules/services/taffybar.nix
- tests/modules/programs/ashell/**/*
- tests/modules/programs/i3bar-river/**/*
- tests/modules/programs/waybar/**/*
- tests/modules/services/polybar/**/*
"browsers":
- changed-files:
- any-glob-to-any-file:
- modules/misc/mozilla-messaging-hosts.nix
- modules/programs/amfora.nix
- modules/programs/chawan.nix
- modules/programs/chromium.nix
- modules/programs/firefox/**/*
- modules/programs/firefoxpwa.nix
- modules/programs/floorp.nix
- modules/programs/librewolf.nix
- modules/programs/nyxt.nix
- modules/programs/qutebrowser.nix
- modules/programs/w3m.nix
- tests/modules/programs/chromium/**/*
- tests/modules/programs/firefox/**/*
- tests/modules/programs/qutebrowser/**/*
"calendar":
- modules/programs/khal*
- modules/*/vdirsyncer*
- modules/accounts/calendar.nix
- changed-files:
- any-glob-to-any-file:
- modules/*/vdirsyncer*.nix
- modules/accounts/calendar.nix
- modules/programs/khal/**/*
- modules/programs/pimsync/**/*
- modules/programs/qcal.nix
- modules/programs/vdirsyncer/**/*
- modules/services/pimsync.nix
- tests/modules/programs/khal/**/*
"clipboard":
- changed-files:
- any-glob-to-any-file:
- modules/services/clipcat.nix
- modules/services/cliphist.nix
- modules/services/clipman.nix
- modules/services/clipmenu.nix
- modules/services/clipse.nix
- modules/services/copyq.nix
- modules/services/parcellite.nix
- modules/services/pbgopy.nix
- modules/services/wl-clip-persist.nix
- tests/modules/services/clipman/**/*
- tests/modules/services/copyq/**/*
- tests/modules/services/wl-clip-persist/**/*
"cli-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/aliae.nix
- modules/programs/amoco.nix
- modules/programs/antidote.nix
- modules/programs/atool.nix
- modules/programs/atuin.nix
- modules/programs/autojump.nix
- modules/programs/bashmount.nix
- modules/programs/bat.nix
- modules/programs/bottom.nix
- modules/programs/boxxy.nix
- modules/programs/broot.nix
- modules/programs/btop.nix
- modules/programs/carapace.nix
- modules/programs/clock-rs.nix
- modules/programs/delta.nix
- modules/programs/diff-highlight.nix
- modules/programs/diff-so-fancy.nix
- modules/programs/difftastic.nix
- modules/programs/dircolors.nix
- modules/programs/direnv.nix
- modules/programs/eza.nix
- modules/programs/fastfetch.nix
- modules/programs/fd.nix
- modules/programs/fzf.nix
- modules/programs/goto.nix
- modules/programs/grep.nix
- modules/programs/hstr.nix
- modules/programs/htop.nix
- modules/programs/hwatch.nix
- modules/programs/hyfetch.nix
- modules/programs/infat.nix
- modules/programs/inori.nix
- modules/programs/jq*.nix
- modules/programs/keychain.nix
- modules/programs/less.nix
- modules/programs/lesspipe.nix
- modules/programs/lsd.nix
- modules/programs/man.nix
- modules/programs/mc.nix
- modules/programs/mcfly.nix
- modules/programs/navi.nix
- modules/programs/nix-your-shell.nix
- modules/programs/nom.nix
- modules/programs/parallel.nix
- modules/programs/patdiff.nix
- modules/programs/pay-respects.nix
- modules/programs/pazi.nix
- modules/programs/pet.nix
- modules/programs/pistol.nix
- modules/programs/pls.nix
- modules/programs/readline.nix
- modules/programs/riff.nix
- modules/programs/ripgrep*.nix
- modules/programs/scmpuff.nix
- modules/programs/screen.nix
- modules/programs/script-directory.nix
- modules/programs/sesh.nix
- modules/programs/sherlock.nix
- modules/programs/skim.nix
- modules/programs/superfile.nix
- modules/programs/tealdeer.nix
- modules/programs/television.nix
- modules/programs/tmate.nix
- modules/programs/tmux.nix
- modules/programs/topgrade.nix
- modules/programs/translate-shell.nix
- modules/programs/ty.nix
- modules/programs/uv.nix
- modules/programs/vivid.nix
- modules/programs/watson.nix
- modules/programs/z-lua.nix
- modules/programs/zellij.nix
- modules/programs/zk.nix
- modules/programs/zoxide.nix
- modules/programs/zplug.nix
- tests/modules/programs/fzf/**/*
- tests/modules/programs/tmux/**/*
"contacts":
- modules/accounts/contacts.nix
- changed-files:
- any-glob-to-any-file:
- modules/accounts/contacts.nix
- modules/programs/abook.nix
- modules/programs/khard.nix
- tests/modules/programs/abook/**/*
- tests/modules/programs/khard/**/*
"containers":
- changed-files:
- any-glob-to-any-file:
- modules/programs/distrobox.nix
- modules/programs/docker-cli.nix
- modules/services/colima.nix
- modules/services/podman/**/*
- modules/services/podman/linux/**/*
"desktop-ui":
- changed-files:
- any-glob-to-any-file:
- modules/programs/desktoppr.nix
- modules/programs/gnome-shell.nix
- modules/programs/hyprshot.nix
- modules/programs/quickshell.nix
- modules/programs/satty.nix
- modules/programs/swappy.nix
- modules/services/avizo.nix
- modules/services/blanket.nix
- modules/services/flameshot.nix
- modules/services/gromit-mpx.nix
- modules/services/linux-wallpaperengine.nix
- modules/services/picom.nix
- modules/services/random-background.nix
- modules/services/volnoti.nix
- modules/services/wob.nix
- modules/services/wpaperd.nix
"desktop-utilities":
- changed-files:
- any-glob-to-any-file:
- modules/programs/autorandr.nix
- modules/programs/bluetuith.nix
- modules/services/autorandr.nix
- modules/services/blueman-applet.nix
- modules/services/gnome-keyring.nix
- modules/services/lxqt-policykit-agent.nix
- modules/services/network-manager-applet.nix
- modules/services/polkit-gnome.nix
- modules/services/redshift-gammastep/**/*
- modules/services/sctd.nix
- modules/services/snixembed.nix
- modules/services/status-notifier-watcher.nix
- modules/services/systembus-notify.nix
- modules/services/tailscale-systray.nix
- modules/services/trayscale.nix
- modules/services/udiskie.nix
- modules/services/unclutter.nix
- modules/services/xembed-sni-proxy.nix
"dev-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/amber.nix
- modules/programs/awscli.nix
- modules/programs/bacon.nix
- modules/programs/bun.nix
- modules/programs/cargo.nix
- modules/programs/darcs.nix
- modules/programs/earthly.nix
- modules/programs/eclipse.nix
- modules/programs/gcc.nix
- modules/programs/go.nix
- modules/programs/gradle.nix
- modules/programs/granted.nix
- modules/programs/grype.nix
- modules/programs/java.nix
- modules/programs/jetbrains-remote.nix
- modules/programs/k9s.nix
- modules/programs/kraftkit.nix
- modules/programs/kubecolor.nix
- modules/programs/kubeswitch.nix
- modules/programs/lazydocker.nix
- modules/programs/lazysql.nix
- modules/programs/matplotlib.nix
- modules/programs/mercurial.nix
- modules/programs/mergiraf.nix
- modules/programs/mise.nix
- modules/programs/mr.nix
- modules/programs/mypy.nix
- modules/programs/nh.nix
- modules/programs/nix-index.nix
- modules/programs/nix-init.nix
- modules/programs/nix-search-tv.nix
- modules/programs/npm.nix
- modules/programs/numbat.nix
- modules/programs/nvchecker.nix
- modules/programs/opam.nix
- modules/programs/openstackclient.nix
- modules/programs/pgcli.nix
- modules/programs/piston-cli.nix
- modules/programs/poetry.nix
- modules/programs/pyenv.nix
- modules/programs/pylint.nix
- modules/programs/pywal.nix
- modules/programs/rbenv.nix
- modules/programs/rizin.nix
- modules/programs/ruff.nix
- modules/programs/sagemath.nix
- modules/programs/sbt.nix
- modules/programs/sftpman.nix
- modules/programs/smug.nix
- modules/programs/sqls.nix
- modules/programs/tex-fmt.nix
- modules/programs/texlive.nix
- modules/programs/tirith.nix
- modules/programs/vim-vint.nix
- modules/programs/visidata.nix
- modules/programs/yarn/default.nix
- modules/services/lorri.nix
- tests/modules/programs/go/**/*
- tests/modules/programs/java/**/*
"editors":
- changed-files:
- any-glob-to-any-file:
- modules/programs/amp.nix
- modules/programs/anvil-editor.nix
- modules/programs/cudatext.nix
- modules/programs/emacs.nix
- modules/programs/formiko.nix
- modules/programs/fresh-editor.nix
- modules/programs/helix.nix
- modules/programs/kakoune.nix
- modules/programs/lapce.nix
- modules/programs/micro.nix
- modules/programs/ne.nix
- modules/programs/neovide.nix
- modules/programs/neovim.nix
- modules/programs/retext.nix
- modules/programs/vim.nix
- modules/programs/vscode/**/*
- modules/programs/zed-editor.nix
- modules/services/emacs.nix
- tests/modules/programs/emacs/**/*
- tests/modules/programs/helix/**/*
- tests/modules/programs/neovim/**/*
- tests/modules/programs/vim/**/*
"file-manager":
- changed-files:
- any-glob-to-any-file:
- modules/programs/joshuto.nix
- modules/programs/lf.nix
- modules/programs/nnn.nix
- modules/programs/ranger.nix
- modules/programs/vifm.nix
- modules/programs/xplr.nix
- modules/programs/yazi.nix
- tests/modules/programs/lf/**/*
- tests/modules/programs/nnn/**/*
- tests/modules/programs/ranger/**/*
- tests/modules/programs/yazi/**/*
"gaming":
- changed-files:
- any-glob-to-any-file:
- modules/programs/am2rlauncher.nix
- modules/programs/kodi.nix
- modules/programs/lutris.nix
- modules/programs/mangohud.nix
- modules/programs/prismlauncher.nix
- modules/programs/retroarch.nix
- modules/programs/sm64ex.nix
- modules/programs/ttyper.nix
- modules/programs/vinegar.nix
- modules/services/ludusavi.nix
"git":
- changed-files:
- any-glob-to-any-file:
- modules/programs/gh.nix
- modules/programs/gh-dash.nix
- modules/programs/git*.nix
- modules/programs/jjui.nix
- modules/programs/jujutsu.nix
- modules/programs/lazygit.nix
- modules/programs/lazyworktree.nix
- modules/programs/radicle.nix
- modules/programs/sapling.nix
- modules/services/git-sync.nix
- modules/services/radicle.nix
- tests/modules/programs/gh/**/*
- tests/modules/programs/gh-dash/**/*
- tests/modules/programs/git/**/*
"mail":
- changed-files:
- any-glob-to-any-file:
- modules/*/mbsync*
- modules/programs/aerc/**/*
- modules/programs/afew.nix
- modules/programs/alot/**/*
- modules/programs/astroid/**/*
- modules/programs/getmail*
- modules/programs/getmail/**/*
- modules/programs/himalaya.nix
- modules/programs/lieer.nix
- modules/programs/mbsync/**/*
- modules/programs/meli.nix
- modules/programs/msmtp*
- modules/programs/msmtp/**/*
- modules/programs/mu.nix
- modules/programs/mujmap.nix
- modules/programs/neomutt*
- modules/programs/neomutt/**/*
- modules/programs/notmuch/**/*
- modules/programs/offlineimap/**/*
- modules/programs/thunderbird.nix
- modules/services/getmail.nix
- modules/services/imapnotify/**/*
- modules/services/lieer.nix
- modules/services/muchsync.nix
- modules/services/protonmail-bridge.nix
- tests/modules/programs/aerc/*
- tests/modules/programs/alot/*
- tests/modules/programs/himalaya/*
- tests/modules/programs/mbsync/*
- tests/modules/programs/mujmap/*
- tests/modules/programs/neomutt/*
- tests/modules/programs/thunderbird/*
"messaging":
- changed-files:
- any-glob-to-any-file:
- modules/programs/abaddon.nix
- modules/programs/algia.nix
- modules/programs/discocss.nix
- modules/programs/discord.nix
- modules/programs/element-desktop.nix
- modules/programs/gurk-rs.nix
- modules/programs/halloy.nix
- modules/programs/havoc.nix
- modules/programs/hexchat.nix
- modules/programs/iamb.nix
- modules/programs/irssi.nix
- modules/programs/nheko.nix
- modules/programs/pidgin.nix
- modules/programs/senpai.nix
- modules/programs/tiny.nix
- modules/programs/vesktop.nix
- modules/programs/zapzap.nix
- modules/services/pantalaimon.nix
- tests/modules/programs/gurk-rs/**/*
- tests/modules/programs/irssi/**/*
- tests/modules/programs/nheko/**/*
"monitoring":
- changed-files:
- any-glob-to-any-file:
- modules/services/activitywatch.nix
- modules/services/batsignal.nix
- modules/services/cbatticon.nix
- modules/services/conky.nix
- modules/services/glance.nix
- modules/services/poweralertd.nix
"notification":
- changed-files:
- any-glob-to-any-file:
- modules/programs/noti.nix
- modules/services/dunst.nix
- modules/services/fnott.nix
- modules/services/mako.nix
- modules/services/notify-osd.nix
- modules/services/swaync.nix
- modules/services/twmn.nix
- tests/modules/services/dunst/**/*
- tests/modules/services/mako/**/*
"productivity":
- changed-files:
- any-glob-to-any-file:
- modules/programs/anki/**/*
- modules/programs/aphorme.nix
- modules/programs/calibre.nix
- modules/programs/comodoro.nix
- modules/programs/foliate.nix
- modules/programs/info.nix
- modules/programs/joplin-desktop.nix
- modules/programs/jrnl.nix
- modules/programs/ledger.nix
- modules/programs/newsboat.nix
- modules/programs/obsidian.nix
- modules/programs/onlyoffice.nix
- modules/programs/pandoc.nix
- modules/programs/papis.nix
- modules/programs/pubs.nix
- modules/programs/sioyek.nix
- modules/programs/taskwarrior.nix
- modules/programs/todoman.nix
- modules/programs/zathura.nix
- modules/services/comodoro.nix
- modules/services/rsibreak.nix
- modules/services/safeeyes.nix
- modules/services/taskwarrior-sync.nix
- modules/services/tomat.nix
"password-manager":
- changed-files:
- any-glob-to-any-file:
- modules/programs/browserpass.nix
- modules/programs/keepassxc.nix
- modules/programs/password-store.nix
- modules/programs/rbw.nix
- modules/programs/rofi-pass.nix
- modules/services/pass-secret-service.nix
- modules/services/proton-pass-agent.nix
- tests/modules/programs/keepassxc/**/*
- tests/modules/programs/password-store/**/*
- tests/modules/programs/rofi-pass/**/*
"photo":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ahoviewer.nix
- modules/programs/feh.nix
- modules/programs/gallery-dl.nix
- modules/programs/imv.nix
- modules/programs/pqiv.nix
- modules/programs/swayimg.nix
- modules/programs/wallust.nix
"shell":
- changed-files:
- any-glob-to-any-file:
- modules/lib/zsh.nix
- modules/programs/bash.nix
- modules/programs/fish.nix
- modules/programs/intelli-shell.nix
- modules/programs/ion.nix
- modules/programs/nushell.nix
- modules/programs/oh-my-posh.nix
- modules/programs/powerline-go.nix
- modules/programs/sheldon.nix
- modules/programs/starship.nix
- modules/programs/zsh/**/*
- tests/modules/programs/bash/**/*
- tests/modules/programs/fish/**/*
- tests/modules/programs/nushell/**/*
- tests/modules/programs/zsh/**/*
"sync":
- changed-files:
- any-glob-to-any-file:
- modules/programs/acd-cli.nix
- modules/programs/airlift.nix
- modules/programs/alistral.nix
- modules/programs/onedrive.nix
- modules/programs/rtorrent.nix
- modules/services/davmail.nix
- modules/services/dropbox.nix
- modules/services/etesync-dav.nix
- modules/services/kdeconnect.nix
- modules/services/megasync.nix
- modules/services/nextcloud-client.nix
- modules/services/owncloud-client.nix
- modules/services/pizauth.nix
- modules/services/syncthing.nix
- modules/services/unison.nix
- tests/modules/services/dropbox/**/*
- tests/modules/services/syncthing/**/*
"system":
- changed-files:
- any-glob-to-any-file:
- modules/programs/anup.nix
- modules/programs/command-not-found/**/*
- modules/programs/gpg.nix
- modules/programs/home-manager.nix
- modules/programs/mullvad-vpn.nix
- modules/programs/opkssh.nix
- modules/programs/ssh.nix
- modules/services/gpg-agent.nix
- modules/services/home-manager*.nix
- modules/services/kbfs.nix
- modules/services/keybase.nix
- modules/services/macos-remap-keys/**/*
- modules/services/nix-gc.nix
- modules/services/ssh-agent.nix
- modules/services/ssh-tpm-agent.nix
- modules/services/yubikey-agent.nix
- tests/modules/services/home-manager*/**/*
"system-tools":
- changed-files:
- any-glob-to-any-file:
- modules/programs/andcli.nix
- modules/programs/aria2.nix
- modules/programs/aria2p.nix
- modules/programs/trippy.nix
- modules/services/arrpc.nix
- modules/services/cachix-agent.nix
- modules/services/fusuma.nix
- modules/services/grobi.nix
- modules/services/hound.nix
- modules/services/jankyborders.nix
- modules/services/opensnitch-ui.nix
- modules/services/osmscout-server.nix
- modules/services/plan9port.nix
- modules/services/psd.nix
- modules/services/pueue.nix
- modules/services/recoll.nix
- modules/services/signaturepdf.nix
- modules/services/tahoe-lafs.nix
- modules/services/tldr-update.nix
"terminal":
- changed-files:
- any-glob-to-any-file:
- modules/programs/alacritty.nix
- modules/programs/foot.nix
- modules/programs/ghostty.nix
- modules/programs/gnome-terminal.nix
- modules/programs/kitty.nix
- modules/programs/macchina/**/*
- modules/programs/ptyxis.nix
- modules/programs/rio.nix
- modules/programs/terminator.nix
- modules/programs/termite.nix
- modules/programs/urxvt.nix
- modules/programs/waveterm.nix
- modules/programs/wezterm.nix
- modules/services/shpool.nix
- tests/modules/programs/alacritty/**/*
- tests/modules/programs/foot/**/*
- tests/modules/programs/ghostty/**/*
- tests/modules/programs/kitty/**/*
"video":
- changed-files:
- any-glob-to-any-file:
- modules/programs/animdl.nix
- modules/programs/anime-downloader.nix
- modules/programs/aperture.nix
- modules/programs/asciinema.nix
- modules/programs/freetube.nix
- modules/programs/mpv.nix
- modules/programs/mpvpaper.nix
- modules/programs/obs-studio.nix
- modules/programs/streamlink.nix
- modules/programs/twitch-tui.nix
- modules/programs/yt-dlp.nix
- modules/services/jellyfin-mpv-shim.nix
- modules/services/plex-mpv-shim.nix
- tests/modules/programs/mpv/**/*
"remote-desktop":
- changed-files:
- any-glob-to-any-file:
- modules/programs/looking-glass-client.nix
- modules/services/remmina.nix
- modules/services/wayvnc.nix
"wayland":
- changed-files:
- any-glob-to-any-file:
- modules/programs/ashell.nix
- modules/programs/anyrun.nix
- modules/services/awww.nix
- modules/programs/bemenu.nix
- modules/programs/fuzzel.nix
- modules/programs/hyprlock.nix
- modules/programs/kickoff.nix
- modules/programs/onagre.nix
- modules/programs/sway-easyfocus.nix
- modules/programs/swaylock.nix
- modules/programs/swayr.nix
- modules/programs/tofi.nix
- modules/programs/waybar.nix
- modules/programs/waylogout.nix
- modules/programs/wayprompt.nix
- modules/programs/wleave.nix
- modules/programs/wlogout.nix
- modules/programs/wofi.nix
- modules/programs/workstyle.nix
- modules/programs/yofi.nix
- modules/programs/vicinae/**/*
- modules/programs/i3bar-river.nix
- modules/services/fnott.nix
- modules/services/hypridle.nix
- modules/services/hyprlauncher.nix
- modules/services/hyprpaper.nix
- modules/services/hyprpolkitagent.nix
- modules/services/hyprshell.nix
- modules/services/hyprsunset.nix
- modules/services/kanshi.nix
- modules/services/mako.nix
- modules/services/shikane.nix
- modules/services/swayidle.nix
- modules/services/swaync.nix
- modules/services/swayosd.nix
- modules/services/walker.nix
- modules/services/way-displays.nix
- modules/services/wlsunset.nix
- modules/services/wluma.nix
- modules/services/wpaperd.nix
- tests/modules/programs/ashell/**/*
- tests/modules/programs/i3bar-river/**/*
- tests/modules/programs/swaylock/**/*
- tests/modules/programs/vicinae/**/*
- tests/modules/programs/waybar/**/*
"window-managers":
- changed-files:
- any-glob-to-any-file:
- modules/programs/aerospace.nix
- modules/programs/i3bar-river.nix
- modules/programs/i3blocks.nix
- modules/programs/i3status-rust.nix
- modules/programs/i3status.nix
- modules/services/window-managers/**/*
"x11":
- changed-files:
- any-glob-to-any-file:
- modules/programs/i3blocks.nix
- modules/programs/i3status-rust.nix
- modules/programs/i3status.nix
- modules/programs/rofi.nix
- modules/programs/tint2.nix
- modules/programs/xmobar.nix
- modules/programs/yambar.nix
- modules/services/betterlockscreen.nix
- modules/services/dunst.nix
- modules/services/dwm-status.nix
- modules/services/picom.nix
- modules/services/polybar.nix
- modules/services/screen-locker.nix
- modules/services/stalonetray.nix
- modules/services/sxhkd.nix
- modules/services/taffybar.nix
- modules/services/trayer.nix
- modules/services/xcape.nix
- modules/services/xembed-sni-proxy.nix
- modules/services/xidlehook.nix
- modules/services/xscreensaver.nix
- modules/services/xsettingsd.nix
- modules/services/xsuspender.nix
- tests/modules/programs/i3blocks/**/*
- tests/modules/programs/i3status-rust/**/*
- tests/modules/programs/i3status/**/*
- tests/modules/programs/rofi/**/*
- tests/modules/services/picom/**/*
- tests/modules/services/polybar/**/*
-71
View File
@@ -1,71 +0,0 @@
# Configuration for probot-stale - https://github.com/probot/stale
daysUntilStale: 90
daysUntilClose: false
staleLabel: "status: stale"
issues:
markComment: |
<p>
Thank you for your contribution!
I marked this issue as stale due to inactivity.
Please be considerate of people watching this issue and receiving notifications before commenting 'I have this issue too'.
We welcome additional information that will help resolve this issue.
<b>Please read the relevant sections below before commenting.</b>
</p>
<details>
<summary><b>If you are the original author of the issue</b></summary>
<p>
* If this is resolved, please consider closing it so that the maintainers know not to focus on this.
* If this might still be an issue, but you are not interested in promoting its resolution, please consider closing it while encouraging others to take over and reopen an issue if they care enough.
* If you know how to solve the issue, please consider submitting a Pull Request that addresses this issue.
</p>
</details>
<details>
<summary><b>If you are <i>not</i> the original author of the issue</b></summary>
<p>
* If you are also experiencing this issue, please add details of your situation to help with the debugging process.
* If you know how to solve the issue, please consider submitting a Pull Request that addresses this issue.
</p>
</details>
<details>
<summary><b>Memorandum on closing issues</b></summary>
<p>
Don't be afraid to manually close an issue, even if it holds valuable information.
Closed issues stay in the system for people to search, read, cross-reference, or even reopen nothing is lost!
Closing obsolete issues is an important way to help maintainers focus their time and effort.
</p>
</details>
pulls:
markComment: |
<p>
Thank you for your contribution!
I marked this pull request as stale due to inactivity.
<b>Please read the relevant sections below before commenting.</b>
</p>
<details>
<summary><b>If you are the original author of the PR</b></summary>
<p>
* GitHub sometimes doesn't notify people who commented / reviewed a PR previously when you (force) push commits. *If you have addressed the reviews* you can [officially ask for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review) from those who commented to you or anyone else.
* If it is unfinished but you plan to finish it, please mark it as a draft.
* If you don't expect to work on it any time soon, please consider closing it with a short comment encouraging someone else to pick up your work.
* To get things rolling again, rebase the PR against the target branch and address valid comments.
</p>
</details>
<details>
<summary><b>If you are <i>not</i> the original author of the PR</b></summary>
<p>
* If you want to pick up the work on this PR, please create a new PR and indicate that it supercedes and closes this PR.
</p>
</details>
+45
View File
@@ -0,0 +1,45 @@
# Based on
# https://github.com/NixOS/nixpkgs/blob/2566f9dc/.github/workflows/backport.yml
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
permissions:
contents: write
pull-requests: write
jobs:
backport:
name: Backport Pull Request
if: >
vars.CI_APP_ID
&& github.event.pull_request.merged == true
&& (
github.event.action != 'labeled'
|| startsWith(github.event.label.name, 'backport')
)
runs-on: ubuntu-latest
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- uses: actions/checkout@v7
with:
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
ref: ${{ github.event.pull_request.base.sha }}
- name: Create backport PRs
id: backport
uses: korthout/backport-action@v4
with:
# See https://github.com/korthout/backport-action#inputs
github_token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
branch_name: backport/${target_branch}/${pull_number}
copy_labels_pattern: .*
+15
View File
@@ -0,0 +1,15 @@
on:
push:
branches:
- master
jobs:
triage:
runs-on: ubuntu-latest
if: github.repository_owner == 'nix-community'
steps:
- uses: mschilde/auto-label-merge-conflicts@master
with:
CONFLICT_LABEL_NAME: "merge conflict"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MAX_RETRIES: 5
WAIT_MS: 10000
+18 -16
View File
@@ -3,26 +3,28 @@ on:
push:
branches:
- master
workflow_dispatch:
jobs:
publish:
if: github.event_name != 'schedule' || github.repository_owner == 'nix-community'
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v23
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: nix-community
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: |
nix-build -A docs.html
cp -r result/share/doc/home-manager public
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
- uses: actions/checkout@v7
- uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- uses: cachix/cachix-action@v17
with:
name: nix-community
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: |
nix-build -A docs.html
cp -r result/share/doc/home-manager public
- name: Deploy
uses: peaceiris/actions-gh-pages@v4
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
+13 -2
View File
@@ -11,14 +11,25 @@ on:
permissions:
contents: read
pull-requests: write
issues: write
jobs:
labels:
runs-on: ubuntu-latest
if: github.repository_owner == 'nix-community'
steps:
- uses: actions/labeler@v4
- name: Get changed files count
id: count
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
COUNT=$(gh api "repos/${{ github.repository }}/pulls/$PR_NUMBER/files" --paginate --jq '.[].filename' | grep -c '^modules/' || true)
echo "Found $COUNT changed module files."
echo "count=$COUNT" >> "$GITHUB_OUTPUT"
- uses: actions/labeler@v6
if: steps.count.outputs.count <= 10
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
sync-labels: true
+81
View File
@@ -0,0 +1,81 @@
name: Tag Module Maintainers
on:
pull_request_target:
types: [opened, ready_for_review, reopened, synchronize]
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.run_id }}
cancel-in-progress: true
permissions:
contents: read
pull-requests: write
jobs:
tag-maintainers:
runs-on: ubuntu-latest
if: |
github.event.pull_request.draft == false &&
github.event.pull_request.state == 'open'
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- name: Checkout code
uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.base.sha }}
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
echo "rev=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock)" >> "$GITHUB_OUTPUT"
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/${{ steps.get-nixpkgs.outputs.rev }}.tar.gz
extra_nix_config: |
experimental-features = nix-command flakes
- name: Get changed files
id: changed-files
env:
GH_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
run: |
CHANGED_FILES=$(gh pr diff "$PR_NUMBER" --name-only | grep '^modules/' | grep -v '^modules/\(po\|.*\/news\)/' || true)
echo "Changed files:"
echo "$CHANGED_FILES"
echo "changed_files<<EOF" >> "$GITHUB_OUTPUT"
echo "$CHANGED_FILES" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
- name: Extract Maintainers
id: extract-maintainers
env:
CHANGED_FILES: ${{ steps.changed-files.outputs.changed_files }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
run: |
echo "Extracting maintainers from changed files..."
MAINTAINERS=$(lib/python/extract-maintainers.py \
--changed-files "$CHANGED_FILES" \
--pr-author "$PR_AUTHOR")
echo "maintainers=$MAINTAINERS" >> "$GITHUB_OUTPUT"
echo "Found maintainers: $MAINTAINERS"
- name: Manage Reviewers
env:
GH_TOKEN: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
OWNER: ${{ github.repository_owner }}
REPO: ${{ github.event.repository.name }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_AUTHOR: ${{ github.event.pull_request.user.login }}
MAINTAINERS: ${{ steps.extract-maintainers.outputs.maintainers }}
CHANGED_FILES: ${{ steps.changed-files.outputs.changed_files }}
BOT_NAME: ${{ steps.app-token.outputs.app-slug || 'github-actions' }}
run: |
./lib/python/manage-reviewers.py \
--owner "$OWNER" \
--repo "$REPO" \
--pr-number "$PR_NUMBER" \
--pr-author "$PR_AUTHOR" \
--current-maintainers "$MAINTAINERS" \
--changed-files "$CHANGED_FILES" \
--bot-user-name "$BOT_NAME"
+115 -17
View File
@@ -3,28 +3,126 @@ on:
pull_request:
schedule:
- cron: "30 2 * * *"
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.run_id }}
cancel-in-progress: true
permissions: {}
jobs:
changes:
runs-on: ubuntu-latest
timeout-minutes: 5
outputs:
docs: ${{ steps.changes.outputs.docs }}
format: ${{ steps.changes.outputs.format }}
hm: ${{ steps.changes.outputs.hm }}
parse: ${{ steps.changes.outputs.parse }}
tests: ${{ steps.changes.outputs.tests }}
steps:
- uses: actions/checkout@v7
- uses: dorny/paths-filter@v4
id: changes
with:
filters: |
tests:
- 'flake.lock'
- 'flake.nix'
- 'modules/**'
- 'nix-darwin/**'
- 'nixos/**'
- 'tests/**'
docs:
- '**.md'
- 'docs/**'
- 'flake.lock'
- 'flake.nix'
- 'modules/**'
format:
- '**/*.nix'
hm:
- 'flake.lock'
- 'flake.nix'
- 'home-manager/**'
parse:
- '**/*.nix'
- 'flake.lock'
tests:
needs: changes
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v23
with:
nix_path: nixpkgs=channel:nixos-23.11
- uses: cachix/cachix-action@v12
with:
name: nix-community
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: |
if grep -R --exclude stdlib-extended.nix literalExample modules ; then
echo "Error: literalExample should be replaced by literalExpression" > /dev/stderr
exit 1
fi
- run: nix-build --show-trace -A docs.jsonModuleMaintainers
- run: ./format -c
- run: nix-shell --show-trace . -A install
- run: nix-shell --show-trace --arg enableBig false --pure tests -A run.all
- uses: actions/checkout@v7
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
echo "rev=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock)" >> "$GITHUB_OUTPUT"
- uses: cachix/install-nix-action@v31
if: github.event_name == 'schedule' || needs.changes.outputs.docs == 'true' || needs.changes.outputs.tests == 'true' || needs.changes.outputs.hm == 'true' || needs.changes.outputs.parse == 'true' || needs.changes.outputs.format == 'true'
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/${{ steps.get-nixpkgs.outputs.rev }}.tar.gz
extra_nix_config: |
sandbox = true
- name: Build docs
if: github.event_name == 'schedule' || needs.changes.outputs.docs == 'true'
run: nix build --show-trace .#docs-jsonModuleMaintainers
- name: Parse Nix files with nix and Lix
if: >-
matrix.os == 'ubuntu-latest' &&
(github.event_name == 'schedule' || needs.changes.outputs.parse == 'true')
run: nix build --show-trace --keep-going .#ci-parse .#ci-parse-lix
- name: Format Check
if: >-
matrix.os == 'ubuntu-latest' &&
(github.event_name == 'schedule' || needs.changes.outputs.format == 'true')
run: nix fmt -- --ci
- name: Test init --switch with locked inputs
if: github.event_name == 'schedule' || needs.changes.outputs.hm == 'true'
run: |
# Copy lock file to home directory for consistent testing
mkdir -p ~/.config/home-manager
cp flake.lock ~/.config/home-manager/
nix run .#home-manager -- init --switch --override-input home-manager .
- name: Uninstall
if: github.event_name == 'schedule' || needs.changes.outputs.hm == 'true'
run: yes | nix run . -- uninstall
- name: Generate Job Summary
if: github.event_name == 'pull_request'
shell: bash
run: |
echo "### Test Job Summary" >> "$GITHUB_STEP_SUMMARY"
echo "" >> "$GITHUB_STEP_SUMMARY"
echo "A summary of tasks triggered by file changes in this PR:" >> "$GITHUB_STEP_SUMMARY"
echo "" >> "$GITHUB_STEP_SUMMARY"
if [[ "${{ needs.changes.outputs.docs }}" == "true" ]]; then
echo "- ✅ **Docs Build:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Docs Build:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.format }}" == "true" ]]; then
echo "- ✅ **Format Check:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Format Check:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.parse }}" == "true" ]]; then
echo "- ✅ **Nix Parse (nix + Lix):** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Nix Parse (nix + Lix):** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.hm }}" == "true" ]]; then
echo "- ✅ **Home Manager Tests:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **Home Manager Tests:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
if [[ "${{ needs.changes.outputs.tests }}" == "true" ]]; then
echo "- ✅ **General Tests:** Triggered" >> "$GITHUB_STEP_SUMMARY"
else
echo "- ☑️ **General Tests:** Skipped (no relevant files changed)" >> "$GITHUB_STEP_SUMMARY"
fi
-20
View File
@@ -1,20 +0,0 @@
name: Update flake inputs
on:
schedule:
# Update every Sunday and Wednesday
- cron: "51 3 * * 0,3"
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Nix
uses: cachix/install-nix-action@v23
- name: Update flake.lock
uses: DeterminateSystems/update-flake-lock@v20
with:
token: ${{ secrets.GH_TOKEN_FOR_UPDATES }}
pr-labels: dependencies
+286
View File
@@ -0,0 +1,286 @@
name: Update maintainers list
on:
push:
branches:
- main
paths:
- lib/maintainers.nix
schedule:
# Update every Monday at 9 AM UTC
- cron: "0 9 * * 1"
workflow_dispatch:
inputs:
create_pr:
description: "Create PR even if no changes"
required: false
default: false
type: boolean
jobs:
update-maintainers:
runs-on: ubuntu-latest
if: github.repository_owner == 'nix-community' || github.event_name == 'workflow_dispatch'
permissions:
contents: write
pull-requests: write
issues: write
env:
pr_branch: update/maintainers-${{ github.ref_name }}
steps:
- name: Create GitHub App token
uses: actions/create-github-app-token@v3
if: vars.CI_APP_ID
id: app-token
with:
app-id: ${{ vars.CI_APP_ID }}
private-key: ${{ secrets.CI_APP_PRIVATE_KEY }}
- name: Get GitHub App user info
id: user-info
if: vars.CI_APP_ID
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
slug: ${{ steps.app-token.outputs.app-slug }}
run: |
name="$slug[bot]"
id=$(gh api "/users/$name" --jq .id)
{
echo "id=$id"
echo "name=$name"
echo "email=$id+$name@users.noreply.github.com"
} >> "$GITHUB_OUTPUT"
- name: Checkout repository
uses: actions/checkout@v7
with:
token: ${{ steps.app-token.outputs.token || github.token }}
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
echo "rev=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock)" >> "$GITHUB_OUTPUT"
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/${{ steps.get-nixpkgs.outputs.rev }}.tar.gz
- name: Setup Git
env:
name: ${{ steps.user-info.outputs.name || 'github-actions[bot]' }}
email: ${{ steps.user-info.outputs.email || '41898282+github-actions[bot]@users.noreply.github.com' }}
run: |
git config user.name "$name"
git config user.email "$email"
- name: Save old maintainers
id: old-maintainers
run: |
echo "📄 Saving old maintainers file for comparison..."
echo "old_maintainers=$(nix eval --file all-maintainers.nix --apply 'builtins.attrNames' --json 2>/dev/null || echo '[]')" >> "$GITHUB_OUTPUT"
- name: Generate updated maintainers list
run: |
echo "::group::📋 Generating updated generated/all-maintainers.nix..."
./lib/python/generate-all-maintainers.py
echo "::endgroup::"
echo "::group::🎨 Formatting with nixfmt..."
nix fmt all-maintainers.nix
echo "::endgroup::"
- name: Check for changes and compare maintainers
id: check-changes
env:
old_maintainers: ${{ steps.old-maintainers.outputs.old_maintainers }}
run: |
if git diff --quiet all-maintainers.nix; then
echo "No changes to all-maintainers.nix"
echo "has_changes=false" >> "$GITHUB_OUTPUT"
echo "maintainer_changes=No changes detected" >> "$GITHUB_OUTPUT"
else
echo "Changes detected in all-maintainers.nix"
echo "has_changes=true" >> "$GITHUB_OUTPUT"
# Get change statistics
added=$(git diff --numstat all-maintainers.nix | cut -f1)
removed=$(git diff --numstat all-maintainers.nix | cut -f2)
echo "changes_summary=+$added -$removed lines" >> "$GITHUB_OUTPUT"
# Compare old and new maintainers using nix eval
echo "🔍 Comparing maintainers..."
# Extract maintainer names from new file
new_maintainers=$(nix eval --file all-maintainers.nix --apply 'builtins.attrNames' --json)
# Compare using nix eval
comparison=$(nix eval --expr "
let
old = builtins.fromJSON ''$old_maintainers'';
new = builtins.fromJSON ''$new_maintainers'';
oldSet = builtins.listToAttrs (map (name: { name = name; value = true; }) old);
newSet = builtins.listToAttrs (map (name: { name = name; value = true; }) new);
added = builtins.filter (name: !(oldSet ? \${name})) new;
removed = builtins.filter (name: !(newSet ? \${name})) old;
in {
added = added;
removed = removed;
total_old = builtins.length old;
total_new = builtins.length new;
}
" --json)
# Format comparison output
added_count=$(echo "$comparison" | jq '.added | length')
removed_count=$(echo "$comparison" | jq '.removed | length')
total_old=$(echo "$comparison" | jq '.total_old')
total_new=$(echo "$comparison" | jq '.total_new')
maintainer_summary="**Added:** $added_count maintainers"
maintainer_summary="$maintainer_summary\n**Removed:** $removed_count maintainers"
maintainer_summary="$maintainer_summary\n**Total:** $total_old → $total_new maintainers"
if [ "$added_count" -gt 0 ]; then
added_names=$(echo "$comparison" | jq -r '.added | join(", ")')
maintainer_summary="$maintainer_summary\n\n**✅ Added:** $added_names"
fi
if [ "$removed_count" -gt 0 ]; then
removed_names=$(echo "$comparison" | jq -r '.removed | join(", ")')
maintainer_summary="$maintainer_summary\n\n**❌ Removed:** $removed_names"
fi
echo "maintainer_changes<<EOF" >> "$GITHUB_OUTPUT"
echo -e "$maintainer_summary" >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
fi
- name: Validate generated file
if: steps.check-changes.outputs.has_changes == 'true'
run: |
echo "🔍 Validating generated all-maintainers.nix..."
if nix-instantiate --eval ./all-maintainers.nix --strict > /dev/null; then
echo "✅ Generated file has valid Nix syntax"
else
echo "❌ Generated file has invalid Nix syntax"
exit 1
fi
- name: Create update branch
run: |
git branch -D "$pr_branch" || echo "Nothing to delete"
git switch -c "$pr_branch"
- name: Get info on the current PR
id: open_pr_info
env:
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
run: |
# Query for info about the already open update PR
info=$(
gh api graphql -F owner='{owner}' -F repo='{repo}' -F branch="$pr_branch" -f query='
query($owner:String!, $repo:String!, $branch:String!) {
repository(owner: $owner, name: $repo) {
pullRequests(first: 1, states: OPEN, headRefName: $branch) {
nodes {
number
url
}
}
}
}
' | jq --raw-output '
.data.repository.pullRequests.nodes[]
| to_entries[]
| "\(.key)=\(.value)"
'
)
if [[ -n "$info" ]]; then
echo "PR info:"
echo "$info"
echo "$info" >> "$GITHUB_OUTPUT"
else
echo "No PR is currently open"
fi
- name: Fetch current PR's branch
if: steps.open_pr_info.outputs.number
run: |
git fetch origin "$pr_branch"
git branch --set-upstream-to "origin/$pr_branch"
- name: Create Pull Request
id: create-pr
if: steps.check-changes.outputs.has_changes == 'true' || github.event.inputs.create_pr == 'true'
env:
GH_TOKEN: ${{ steps.app-token.outputs.token || github.token }}
title: "maintainers: update all-maintainers.nix"
commit_body: |
Automated update of the master maintainers list combining:
- Home Manager specific maintainers from modules/lib/maintainers.nix
- Nixpkgs maintainers referenced in Home Manager modules
${{ steps.check-changes.outputs.maintainer_changes }}
Generated by: lib/python/generate-all-maintainers.py
pr_url: ${{ steps.open_pr_info.outputs.url }}
pr_num: ${{ steps.open_pr_info.outputs.number }}
pr_body: |
## 📋 Summary
This PR updates the master maintainers list (`all-maintainers.nix`) which combines:
- **Home Manager specific maintainers** from `modules/lib/maintainers.nix`
- **Nixpkgs maintainers** referenced in Home Manager modules
## 🔄 Changes
**Statistics:** ${{ steps.check-changes.outputs.changes_summary || 'No content changes (format/comment updates only)' }}
${{ steps.check-changes.outputs.maintainer_changes }}
The updated list includes all maintainers needed for review assignments across the Home Manager project.
## 🤖 Automation
- **Generated by:** `lib/python/generate-all-maintainers.py`
- **Trigger:** ${{ github.event_name == 'schedule' && 'Scheduled weekly update' || 'Manual workflow dispatch' }}
- **Validation:** File syntax verified with `nix eval`
---
🤖 *This PR was automatically created by the [update-maintainers workflow](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})*
run: |
# Commit the changes
git add all-maintainers.nix
git commit -m "$title" -m "$commit_body"
echo "Pushing to remote branch $pr_branch"
git push --force --set-upstream origin "$pr_branch"
if [ -z "$pr_num" ]; then
echo "Creating new pull request."
PR_URL=$(
gh pr create \
--title "$title" \
--body "$pr_body"
)
else
PR_URL=$pr_url
echo "Pull request already exists: $PR_URL"
gh pr edit "$pr_num" --body "$pr_body"
fi
echo "pr_url=$PR_URL" >> "$GITHUB_OUTPUT"
- name: Summary
env:
has_changes: ${{ steps.check-changes.outputs.has_changes }}
changes: ${{ steps.check-changes.outputs.changes_summary }}
pr_url: ${{ steps.create-pr.outputs.pr_url}}
pr_num: ${{ steps.open_pr_info.outputs.number }}
run: |
if [[ "$has_changes" == "true" ]]; then
if [[ -n "$pr_num" ]]; then
echo "✅ Successfully updated PR with new changes."
echo "$changes"
echo "🔗 PR URL: $pr_url"
echo "### ✅ PR Updated" >> "$GITHUB_STEP_SUMMARY"
echo "[$pr_url]($pr_url)" >> "$GITHUB_STEP_SUMMARY"
elif [[ -n "$pr_url" ]]; then
echo "✅ Successfully created PR with maintainer updates."
echo "$changes"
echo "🔗 PR URL: $pr_url"
echo "### ✅ PR Created" >> "$GITHUB_STEP_SUMMARY"
echo "[$pr_url]($pr_url)" >> "$GITHUB_STEP_SUMMARY"
else
echo "❌ Failed to create or update pull request."
echo "### ❌ PR Operation Failed" >> "$GITHUB_STEP_SUMMARY"
echo "A pull request was intended but the URL was not captured. Please check the logs." >> "$GITHUB_STEP_SUMMARY"
fi
else
echo "️ No changes detected - maintainers list is up to date."
echo "### ️ No Changes" >> "$GITHUB_STEP_SUMMARY"
echo "The maintainers list is up-to-date. No PR was created." >> "$GITHUB_STEP_SUMMARY"
fi
@@ -0,0 +1,52 @@
name: Validate maintainers.nix
on:
pull_request:
paths:
- "modules/lib/maintainers.nix"
- "flake.lock"
- "all-maintainers.nix"
workflow_dispatch:
inputs:
run_tests:
description: 'Run validation tests'
required: false
default: true
type: boolean
jobs:
validate-maintainers:
runs-on: ubuntu-latest
if: github.repository_owner == 'nix-community'
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Get Nixpkgs revision from flake.lock
id: get-nixpkgs
run: |
echo "rev=$(jq -r '.nodes.nixpkgs.locked.rev' flake.lock)" >> "$GITHUB_OUTPUT"
- name: Install Nix
uses: cachix/install-nix-action@v31
with:
nix_path: nixpkgs=https://github.com/NixOS/nixpkgs/archive/${{ steps.get-nixpkgs.outputs.rev }}.tar.gz
- name: Validate Nix syntax
run: ./lib/python/validate-maintainers-syntax.py
- name: Validate maintainer entries
run: ./lib/python/validate-maintainer-entries.py
- name: Check for duplicate maintainers
run: ./lib/python/check-duplicate-maintainers.py
- name: Test generation
if: inputs.run_tests == true
run: |
echo "🔍 Testing all-maintainers.nix generation..."
./lib/python/generate-all-maintainers.py
echo "🔍 Validating generated file..."
if nix eval --file ./all-maintainers.nix --json > /dev/null; then
echo "✅ Generated file has valid Nix syntax"
else
echo "❌ Generated file has invalid Nix syntax"
exit 1
fi
- name: Summary
run: |
echo "✅ All validation checks passed!"
echo "📋 The maintainers.nix file is ready for merge"
+2
View File
@@ -1 +1,3 @@
/result*
/tests/flake.lock
.DS_Store
-12
View File
@@ -18,15 +18,3 @@ pages:
rules:
- if: $CI_COMMIT_BRANCH == "master"
when: always
Deploy NUR:
stage: deploy
variables:
HM_BRANCH: $CI_COMMIT_REF_NAME
HM_COMMIT_SHA: $CI_COMMIT_SHA
trigger:
project: rycee/nur-expressions
branch: master
rules:
- if: $CI_COMMIT_BRANCH == "master" || $CI_COMMIT_BRANCH =~ /^release-/
when: always
+1
View File
@@ -0,0 +1 @@
Noah Biewesch <dev@noahbiewesch.com> <90870942+trueNAHO@users.noreply.github.com>
-1
View File
@@ -1 +0,0 @@
23.11
+8
View File
@@ -0,0 +1,8 @@
# Contributing
Home Manager contribution guidelines live in the manual:
- [`docs/manual/contributing.md`](docs/manual/contributing.md)
- <https://nix-community.github.io/home-manager/#ch-contributing>
Read those docs before changing modules, tests, news entries, or release notes.
+28
View File
@@ -0,0 +1,28 @@
# Common commands
#
# Contributing manual:
# - https://nix-community.github.io/home-manager/#ch-contributing
# List tests matching a pattern `pattern`
list *pattern:
nix run .#tests -- -l {{pattern}}
# Run all tests matching a pattern `pattern`
test *pattern:
nix run .#tests -- {{pattern}}
# List integration tests
list_integration_tests:
nix run .#tests -- -t -l
# Run integration tests
integration_tests:
nix run .#tests -- -t integration-test-
# Create a news entry
create-news-entry:
modules/misc/news/create-news-entry.sh
# format codebase with treefmt
format:
treefmt
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2017-2023 Home Manager contributors
Copyright (c) 2017-2026 Home Manager contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+255
View File
@@ -0,0 +1,255 @@
# Maintaining Home Manager
This file is intended as a reference for Home Manager's core maintainers,
although it may be interesting for anyone curious how we do certain things.
## Releasing
Home Manager releases stable versions in sync with NixOS/nixpkgs. A _`YY.05`_
version is released in May and a _`YY.11`_ version is released in November.
We do not need to wait for the release to come out of _"beta"_ before creating a
branch, however we _should_ wait before updating links and references on the
`master` branch.
Creating a stable branch may require temporarily disabling branch protection.
This can only be done by an "admin" or "owner".
Once a stable branch is created, its flake inputs should be updated to point to
the corresponding stable versions. The branch can be created before these exist,
in which case they should be updated when the corresponding stable inputs become
available.
Once a stable version is considered "out of beta", references to Home Manager's
stable branch should be updated on the `master` branch to reference the new
version.
### Release Workflow
The release process involves four phases in a specific order:
1. **On master - Mark current as stable**: Update all documentation and examples
to reflect the current release (e.g., 25.11) as stable, removing "(unstable)"
tags
2. **Cut the release branch**: Create the new release branch from master (e.g.,
`release-25.11`)
3. **On release branch - Mark as release branch**: Set `isReleaseBranch: true`
in `release.json`
4. **On master - Prepare for next**: Bump version to next release (e.g., 26.05)
and add "(unstable)" tag back
**Important**: The `isReleaseBranch` field in `release.json` is managed
differently on each branch:
- On **master**: Always remains `false`
- On **release branches**: Set to `true` in a separate commit after cutting the
branch from master
This workflow ensures that the release branch captures a stable snapshot of
master, which then moves forward to the next development cycle.
### Release Preparation Checklist
#### Step 1: On master - Mark Current as Stable
**When**: When ready to cut a new release branch (e.g., when preparing to
release 25.11)
Reference commits:
- `e08e6e2389234000b0447e57abf61d8ccd59a68e` (home-manager: set 25.05 as stable)
1. **README.md**
- Update example release branch references (e.g., `release-24.11`
`release-25.05`)
- Update current stable version references (e.g., `24.11``25.05`)
2. **docs/manual/installation/nix-darwin.md**
- Update channel version in example commands
- Update `home.stateVersion` in examples
3. **docs/manual/installation/nixos.md**
- Update channel version in example commands
- Update tarball URLs
- Update `home.stateVersion` in examples
4. **docs/manual/installation/standalone.md**
- Update channel version in example commands
5. **docs/manual/manual.md**
- Remove `(unstable)` suffix from version
6. **docs/manual/nix-flakes/standalone.md**
- Update flake references (e.g., `home-manager/release-24.11`
`home-manager/release-25.05`)
- Update `$branch` examples
7. **docs/manual/usage/configuration.md**
- Update `home.stateVersion` in example configurations
8. **docs/release-notes/rl-YYMM.md**
- Replace "This is the current unstable branch and the information in this
section is therefore not final."
- With: "The YY.MM release branch became stable in <Month>, YYYY."
9. **home-manager/home-manager** script
- Update default `home.stateVersion` in generated configurations
- Update `home.stateVersion` in uninstall function
10. **modules/misc/uninstall.nix**
- Update `home.stateVersion` in uninstall config
**Note**: Do NOT change `isReleaseBranch` in `release.json` - keep it as `false`
#### Step 2: Cut the release branch
**When**: After Step 1 is merged to master
1. Create the new release branch from master
- Example: `git checkout -b release-25.11 master`
2. Push the branch to the repository
#### Step 3: On the release branch - Mark as Release Branch
**When**: Immediately after creating the release branch
Reference commits:
- `70a787cc5` (release: set release branch)
1. **release.json**
- Change `isReleaseBranch` from `false` to `true`
- Do NOT change the `release` field (it's already correct from Step 1)
2. **flake.nix**
- Update the nixpkgs input to track the corresponding stable branch
- Example: For `release-25.11`, change from:
```nix
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
```
to:
```nix
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
```
- Run `nix flake update` to update flake.lock to the stable branch
- Commit the flake.nix and flake.lock changes
**Note**: The release branch should track the stable NixOS release channel
(e.g., `nixos-25.11`), while master continues to track `nixpkgs-unstable`.
#### Step 3.5: On master - Update CI for the New Release Branch
**When**: After marking the release branch as a release branch (Step 3)
**Where**: On the **master** branch (CI workflows run from master)
**What**: Update GitHub Actions workflows to include the new stable branch
1. **.github/workflows/update-flake.yml** (on master)
- Replace the old stable branch with the new release branch in the matrix
- Example: When creating `release-25.11`, update the matrix from:
```yaml
strategy:
matrix:
branch: [master, release-25.05]
```
to:
```yaml
strategy:
matrix:
branch: [master, release-25.11]
```
- This ensures automated flake.lock updates run on the current stable branch
- Note: We only maintain CI for the latest stable release, not older releases
2. **.github/dependabot.yml** (on master)
- Replace the old stable branch with the new release branch
- Example: When creating `release-25.11`, update the target-branch from:
```yaml
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "release-25.05"
schedule:
interval: "weekly"
commit-message:
prefix: "ci:"
```
to:
```yaml
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "release-25.11"
schedule:
interval: "weekly"
commit-message:
prefix: "ci:"
```
- This ensures automated dependency updates for GitHub Actions on the current
stable branch
- Note: We only maintain dependabot for the latest stable release, not older
releases
**Important**: CI workflows are executed from master, so this change must be
committed to the master branch.
#### Step 4: On master - Prepare for Next Release
**When**: After cutting the release branch, prepare master for the next
development cycle
Reference commits:
- `9a4a9f1d6e43fe4044f6715ae7cc85ccb1d2fe09` (home-manager: prepare 25.11)
1. **docs/release-notes/rl-YYMM.md** (CREATE NEW)
- Create new release notes file for next version with unstable warning
- Example: Create `rl-2605.md` when preparing for 26.05
2. **docs/manual/manual.md**
- Update version to next release with `(unstable)` tag
- Example: `25.11` → `26.05 (unstable)`
3. **docs/release-notes/release-notes.md**
- Add new release notes file `rl-YYMM.md` at the top of the chapters list
4. **home-manager/home-manager** script
- Update `--version` output to next version
- Example: `echo 25.11-pre` → `echo 26.05-pre`
5. **modules/misc/version.nix**
- Add new version string to `stateVersion` enum list
- Example: Add `"26.05"` after `"25.11"`
6. **release.json**
- Update `release` field to next version (e.g., `"25.11"` → `"26.05"`)
- **IMPORTANT**: Keep `isReleaseBranch` as `false` on master
### Version State Changes
Each release may introduce state version changes that affect the default
behavior of Home Manager for users who set `home.stateVersion` to that version.
State version changes should be documented in the release notes under a "State
Version Changes" section, explaining what behavior changes for users who set
their state version to the new release.
### Backporting
Stable branches get bug fixes and security updates, but usually not new modules
or features. When backporting:
1. Use `git cherry-pick -x <commit>` to preserve the original commit reference
2. Test that the backport builds successfully
3. Consider whether the change might affect existing stable users
4. Update the PR/commit message to indicate it's a backport
If a user needs a module backported, they should open an issue explaining the
use case.
+2 -1
View File
@@ -17,4 +17,5 @@ test-install:
HOME=$(shell mktemp -d) NIX_PATH=${NIX_PATH} nix-shell . -A install
format:
./format
# added 2026-03-01
@echo "run \"nix-shell -A dev --run 'just format'\" instead"
+16 -20
View File
@@ -17,7 +17,7 @@ For a systematic overview of Home Manager and its available options, please see:
- [Home Manager manual][manual]
- [Home Manager configuration options][configuration options]
- [3rd party Home Manager option
search](https://mipmip.github.io/home-manager-option-search/)
search](https://home-manager-options.extranix.com/)
If you would like to contribute to Home Manager, then please have a look at
["Contributing" in the manual][contributing].
@@ -25,10 +25,11 @@ If you would like to contribute to Home Manager, then please have a look at
Releases
--------
Home Manager is developed against `nixpkgs-unstable` branch, which often causes
it to contain tweaks for changes/packages not yet released in stable [NixOS][].
Home Manager is developed against the `nixpkgs-unstable` branch, which often
causes it to contain tweaks for changes/packages not yet released in stable
[NixOS][].
To avoid breaking users' configurations, Home Manager is released in branches
corresponding to NixOS releases (e.g. `release-23.11`). These branches get
corresponding to NixOS releases (e.g. `release-26.05`). These branches get
fixes, but usually not new modules. If you need a module to be backported, then
feel free to open an issue.
@@ -45,19 +46,14 @@ and gradually make it more elaborate as you learn.
In some cases Home Manager cannot detect whether it will overwrite a previous
manual configuration. For example, the Gnome Terminal module will write to your
dconf store and cannot tell whether a configuration that it is about to be
dconf store and cannot tell whether a configuration that is about to be
overwritten was from a previous Home Manager generation or from manual
configuration.
Home Manager targets [NixOS][] unstable and NixOS version 23.11 (the current
Home Manager targets `nixpkgs-unstable` and NixOS version 26.05 (the current
stable version), it may or may not work on other Linux distributions and NixOS
versions.
Also, the `home-manager` tool does not explicitly support rollbacks at the
moment so if your home directory gets messed up you'll have to fix it yourself.
See the [rollbacks][] section for instructions on how to manually perform a
rollback.
Now when your expectations have been built up and you are eager to try all this
out you can go ahead and read the rest of this text.
@@ -112,17 +108,17 @@ License
This project is licensed under the terms of the [MIT license](LICENSE).
[#home-manager]: https://webchat.oftc.net/?channels=home-manager
[Nix Flakes]: https://nixos.wiki/wiki/Flakes
[Nix Flakes]: https://wiki.nixos.org/wiki/Flakes
[NixOS]: https://nixos.org/
[Nix]: https://nixos.org/explore.html
[Nixpkgs]: https://github.com/NixOS/nixpkgs
[OFTC]: https://oftc.net/
[configuration options]: https://nix-community.github.io/home-manager/options.html
[configuration options]: https://nix-community.github.io/home-manager/options.xhtml
[contributing]: https://nix-community.github.io/home-manager/#ch-contributing
[manual nix flakes]: https://nix-community.github.io/home-manager/index.html#ch-nix-flakes
[manual nix-darwin install]: https://nix-community.github.io/home-manager/index.html#sec-install-nix-darwin-module
[manual nixos install]: https://nix-community.github.io/home-manager/index.html#sec-install-nixos-module
[manual standalone install]: https://nix-community.github.io/home-manager/index.html#sec-install-standalone
[manual]: https://nix-community.github.io/home-manager/index.html
[nix-darwin]: https://github.com/LnL7/nix-darwin
[rollbacks]: https://nix-community.github.io/home-manager/index.html#sec-usage-rollbacks
[manual nix flakes]: https://nix-community.github.io/home-manager/#ch-nix-flakes
[manual nix-darwin install]: https://nix-community.github.io/home-manager/#sec-install-nix-darwin-module
[manual nixos install]: https://nix-community.github.io/home-manager/#sec-install-nixos-module
[manual standalone install]: https://nix-community.github.io/home-manager/#sec-install-standalone
[manual]: https://nix-community.github.io/home-manager/
[nix-darwin]: https://github.com/nix-darwin/nix-darwin
[rollbacks]: https://nix-community.github.io/home-manager/index.xhtml#sec-usage-rollbacks
+2537
View File
File diff suppressed because it is too large Load Diff
+1
View File
@@ -0,0 +1 @@
attribute = "buildbot"
+45
View File
@@ -0,0 +1,45 @@
{
lib,
nix,
runCommand,
}:
let
home-manager =
with lib.fileset;
toSource {
root = ../.;
fileset = (fileFilter (file: file.hasExt "nix") ../.);
};
parseLog = "$TMPDIR/nix-parse.log";
in
runCommand "nix-parse-${nix.name}"
{
nativeBuildInputs = [
nix
];
}
''
export NIX_STORE_DIR=$TMPDIR/store
export NIX_STATE_DIR=$TMPDIR/state
nix-store --init
cd "${home-manager}"
# This will only show the first parse error, not all of them. That's fine, because
# the other CI jobs will report in more detail. This job is about checking parsing
# across different implementations / versions, not about providing the best DX.
# Returning all parse errors requires significantly more resources.
if ! find . -type f -iname '*.nix' | xargs -P $(nproc) nix-instantiate --parse 2> "${parseLog}" > /dev/null; then
cat "${parseLog}" >&2
echo "Parse failed in nix-instantiate." >&2
exit 1
fi
if grep "warning" "${parseLog}"; then
cat "${parseLog}" >&2
echo "Failing due to warnings in stderr" >&2
exit 1
fi
touch $out
''
+42 -15
View File
@@ -1,23 +1,50 @@
{ pkgs ? import <nixpkgs> { } }:
{
pkgs ? import <nixpkgs> { },
}:
rec {
docs = let releaseInfo = pkgs.lib.importJSON ./release.json;
in with import ./docs {
inherit pkgs;
inherit (releaseInfo) release isReleaseBranch;
}; {
html = manual.html;
manPages = manPages;
json = options.json;
jsonModuleMaintainers = jsonModuleMaintainers; # Unstable, mainly for CI.
let
path = builtins.path {
path = ./.;
name = "home-manager-source";
};
home-manager = pkgs.callPackage ./home-manager { path = toString ./.; };
nixpkgs = (
import (
let
lock = builtins.fromJSON (builtins.readFile ./flake.lock);
n = lock.nodes.nixpkgs.locked;
in
fetchTarball {
url = "https://github.com/${n.owner}/${n.repo}/archive/${n.rev}.tar.gz";
sha256 = n.narHash;
}
) { }
);
in
rec {
docs =
let
releaseInfo = pkgs.lib.importJSON ./release.json;
in
with import ./docs {
inherit pkgs;
inherit (releaseInfo) release isReleaseBranch;
};
{
install =
pkgs.callPackage ./home-manager/install.nix { inherit home-manager; };
inherit manPages jsonModuleMaintainers;
inherit (manual) html htmlOpenTool;
inherit (options) json;
};
home-manager = pkgs.callPackage ./home-manager { inherit path; };
install = pkgs.callPackage ./home-manager/install.nix { inherit home-manager; };
nixos = import ./nixos;
lib = import ./lib { inherit (pkgs) lib; };
path = ./.;
dev = nixpkgs.callPackage ./home-manager/devShell.nix { };
inherit path;
}
-22
View File
@@ -1,22 +0,0 @@
[[ch-3rd-party]]
== Third-Party Tools and Extensions
Here is a collection of tools and extensions that relate to Home
Manager. Note, these are maintained outside the regular Home Manager
flow so quality and support may vary wildly. If you encounter problems
then please raise them in the corresponding project, not as issues in
the Home Manager tracker.
If you have made something interesting related to Home Manager then
you are encouraged to create a PR that expands this chapter.
[[sec-3rd-party-module-collections]]
=== Module Collections
- https://github.com/schuelermine/xhmm[xhmm — extra Home Manager modules]
+
A collection of modules maintained by Anselm Schüler.
- https://github.com/danth/stylix/[Stylix — System-wide colorscheming and typography]
+
Configure your applications to get coherent color scheme and font.
-266
View File
@@ -1,266 +0,0 @@
[[ch-contributing]]
== Contributing
:open-issues: https://github.com/nix-community/home-manager/issues
:new-issue: https://github.com/nix-community/home-manager/issues/new
:fork-a-repo: https://help.github.com/articles/fork-a-repo/
:create-a-pull-request: https://help.github.com/articles/creating-a-pull-request/
:seven-rules: https://chris.beams.io/posts/git-commit/#seven-rules
:news-nix: https://github.com/nix-community/home-manager/blob/master/modules/misc/news.nix
:nixfmt: https://github.com/serokell/nixfmt/
:example-commit-message: https://github.com/nix-community/home-manager/commit/69f8e47e9e74c8d3d060ca22e18246b7f7d988ef
Contributions to Home Manager are very welcome. To make the process as smooth as possible for both you and the Home Manager maintainers we provide some guidelines that we ask you to follow. See <<sec-contrib-getting-started>> for information on how to set up a suitable development environment and <<sec-guidelines>> for the actual guidelines.
This text is mainly directed at those who would like to make code contributions to Home Manager. If you just want to report a bug then first look among the already {open-issues}[open issues], if you find one matching yours then feel free to comment on it to add any additional information you may have. If no matching issue exists then go to the {new-issue}[new issue] page and write a description of your problem. Include as much information as you can, ideally also include relevant excerpts from your Home Manager configuration.
[[sec-contrib-getting-started]]
=== Getting started
If you have not previously forked Home Manager then you need to do that first. Have a look at GitHub's {fork-a-repo}[Fork a repo] for instructions on how to do this.
Once you have a fork of Home Manager you should create a branch starting at the most recent `master` branch. Give your branch a reasonably descriptive name. Commit your changes to this branch and when you are happy with the result and it fulfills <<sec-guidelines>> then push the branch to GitHub and {create-a-pull-request}[create a pull request].
Assuming your clone is at `$HOME/devel/home-manager` then you can make the `home-manager` command use it by either
1. overriding the default path by using the `-I` command line option:
+
[source,console]
$ home-manager -I home-manager=$HOME/devel/home-manager
+
or, if using <<sec-flakes-standalone,flakes>>:
+
[source,console]
$ home-manager --override-input home-manager ~/devel/home-manager
+
or
2. changing the default path by ensuring your configuration includes
+
[source,nix]
----
programs.home-manager.enable = true;
programs.home-manager.path = "$HOME/devel/home-manager";
----
+
and running `home-manager switch` to activate the change. Afterwards, `home-manager build` and `home-manager switch` will use your cloned repository.
The first option is good if you only temporarily want to use your clone.
[[sec-guidelines]]
=== Guidelines
:irc-home-manager: https://webchat.oftc.net/?channels=home-manager
:valuable-options: https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md#valuable-options
:rfc-42: https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
:assertions: https://nixos.org/manual/nixos/stable/index.html#sec-assertions
If your contribution satisfy the following rules then there is a good chance it will be merged without too much trouble. The rules are enforced by the Home Manager maintainers and to a lesser extent the Home Manager CI system.
If you are uncertain how these rules affect the change you would like to make then feel free to start a discussion in the {irc-home-manager}[#home-manager] IRC channel, ideally before you start developing.
[[sec-guidelines-back-compat]]
==== Maintain backward compatibility
Your contribution should not cause another user's existing configuration to break unless there is a very good reason and the change should be announced to the user through an {assertions}[assertion] or similar.
Remember that Home Manager is used in many different environments and you should consider how your change may effect others. For example,
- Does your change work for people that do not use NixOS? Consider other GNU/Linux distributions and macOS.
- Does your change work for people whose configuration is built on one system and deployed on another system?
[[sec-guidelines-forward-compat]]
==== Keep forward compatibility in mind
The master branch of Home Manager tracks the unstable channel of Nixpkgs, which may update package versions at any time. It is therefore important to consider how a package update may affect your code and try to reduce the risk of breakage.
The most effective way to reduce this risk is to follow the advice in <<sec-guidelines-valuable-options>>.
[[sec-guidelines-valuable-options]]
==== Add only valuable options
When creating a new module it is tempting to include every option supported by the software. This is _strongly_ discouraged. Providing many options increases maintenance burden and risk of breakage considerably. This is why only the most {valuable-options}[important software options] should be modeled explicitly. Less important options should be expressible through an `extraConfig` escape hatch.
A good rule of thumb for the first implementation of a module is to only add explicit options for those settings that absolutely must be set for the software to function correctly. It follows that a module for software that provides sensible default values for all settings would require no explicit options at all.
If the software uses a structured configuration format like a JSON, YAML, INI, TOML, or even a plain list of key/value pairs then consider using a `settings` option as described in {rfc-42}[Nix RFC 42].
[[sec-guidelines-add-tests]]
==== Add relevant tests
If at all possible, make sure to add new tests and expand existing tests so that your change will keep working in the future. See <<sec-tests>> for more information about the Home Manager test suite.
All contributed code _must_ pass the test suite.
[[sec-guidelines-module-maintainer]]
==== Add relevant documentation
:nixpkgs-markdown: https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-markup
:docbook: https://tdg.docbook.org/
:asciidoc: https://asciidoc.org/
Many code changes require changing the documentation as well. Module options should be documented with {nixpkgs-markdown}[Nixpkgs-flavoured Markdown]. Home Manager is itself documented using a combination of {docbook}[DocBook] and {asciidoc}[AsciiDoc]. All text is hosted in Home Manager's Git repository.
The HTML version of the manual containing both the module option descriptions and the documentation of Home Manager can be generated and opened by typing the following in a shell within a clone of the Home Manager Git repository:
[source,console]
$ nix-build -A docs.html
$ xdg-open ./result/share/doc/home-manager/index.html
When you have made changes to a module, it is a good idea to check that the man page version of the module options looks good:
[source,console]
$ nix-build -A docs.manPages
$ man ./result/share/man/man5/home-configuration.nix.5.gz
==== Add yourself as a module maintainer
Every new module _must_ include a named maintainer using the `meta.maintainers` attribute. If you are a user of a module that currently lacks a maintainer then please consider adopting it.
If you are present in the nixpkgs maintainer list then you can use that entry. If you are not then you can add yourself to `modules/lib/maintainers.nix` in the Home Manager project.
Maintainers are encouraged to join the IRC or Matrix channel and participate when they have opportunity.
[[sec-guidelines-code-style]]
==== Format your code
Make sure your code is formatted as described in <<sec-code-style>>. To maintain consistency throughout the project you are encouraged to browse through existing code and adopt its style also in new code.
[[sec-guidelines-commit-message-style]]
==== Format your commit messages
Similar to <<sec-guidelines-code-style>> we encourage a consistent commit message format as described in <<sec-commit-style>>.
[[sec-guidelines-news-style]]
==== Format your news entries
If your contribution includes a change that should be communicated to users of Home Manager then you can add a news entry. The entry must be formatted as described in <<sec-news>>.
When new modules are added a news entry should be included but you do not need to create this entry manually. The merging maintainer will create the entry for you. This is to reduce the risk of merge conflicts.
[[sec-guidelines-conditional-modules]]
==== Use conditional modules and news
Home Manager includes a number of modules that are only usable on some of the supported platforms. The most common example of platform specific modules are those that define systemd user services, which only works on Linux systems.
If you add a module that is platform specific then make sure to include a condition in the `loadModule` function call. This will make the module accessible only on systems where the condition evaluates to `true`.
Similarly, if you are adding a news entry then it should be shown only to users that may find it relevant, see <<sec-news>> for a description of conditional news.
[[sec-guidelines-licensing]]
==== Mind the license
The Home Manager project is covered by the MIT license and we can only accept contributions that fall under this license, or are licensed in a compatible way. When you contribute self written code and documentation it is assumed that you are doing so under the MIT license.
A potential gotcha with respect to licensing are option descriptions. Often it is convenient to copy from the upstream software documentation. When this is done it is important to verify that the license of the upstream documentation allows redistribution under the terms of the MIT license.
[[sec-commit-style]]
=== Commits
The commits in your pull request should be reasonably self-contained, that is, each commit should make sense in isolation. In particular, you will be asked to amend any commit that introduces syntax errors or similar problems even if they are fixed in a later commit.
The commit messages should follow the {seven-rules}[seven rules], except for "Capitalize the subject line". We also ask you to include the affected code component or module in the first line. That is, a commit message should follow the template
----
{component}: {description}
{long description}
----
where `{component}` refers to the code component (or module) your change affects, `{description}` is a very brief description of your change, and `{long description}` is an optional clarifying description. As a rare exception, if there is no clear component, or your change affects many components, then the `{component}` part is optional. See <<ex-commit-message>> for a commit message that fulfills these requirements.
[[ex-commit-message]]
.Compliant commit message
===============================================================================
The commit {example-commit-message}[69f8e47e9e74c8d3d060ca22e18246b7f7d988ef] contains the commit message
----
starship: allow running in Emacs if vterm is used
The vterm buffer is backed by libvterm and can handle Starship prompts
without issues.
----
which ticks all the boxes necessary to be accepted in Home Manager.
===============================================================================
Finally, when adding a new module, say `programs/foo.nix`, we use the fixed commit format `foo: add module`. You can, of course, still include a long description if you wish.
[[sec-code-style]]
=== Code Style
The code in Home Manager is formatted by the {nixfmt}[nixfmt] tool and the formatting is checked in the pull request tests. Run the `format` tool inside the project repository before submitting your pull request.
Keep lines at a reasonable width, ideally 80 characters or less. This also applies to string literals.
We prefer `lowerCamelCase` for variable and attribute names with the accepted exception of variables directly referencing packages in Nixpkgs which use a hyphenated style. For example, the Home Manager option `services.gpg-agent.enableSshSupport` references the `gpg-agent` package in Nixpkgs.
[[sec-news]]
=== News
Home Manager includes a system for presenting news to the user. When making a change you, therefore, have the option to also include an associated news entry. In general, a news entry should only be added for truly noteworthy news. For example, a bug fix or new option does generally not need a news entry.
If you do have a change worthy of a news entry then please add one in {news-nix}[`news.nix`] but you should follow some basic guidelines:
- The entry timestamp should be in ISO-8601 format having "+00:00" as time zone. For example, "2017-09-13T17:10:14+00:00". A suitable timestamp can be produced by the command
+
[source,console]
$ date --iso-8601=second --universal
- The entry condition should be as specific as possible. For example, if you are changing or deprecating a specific option then you could restrict the news to those users who actually use this option.
- Wrap the news message so that it will fit in the typical terminal, that is, at most 80 characters wide. Ideally a bit less.
- Unlike commit messages, news will be read without any connection to the Home Manager source code. It is therefore important to make the message understandable in isolation and to those who do not have knowledge of the Home Manager internals. To this end it should be written in more descriptive, prose like way.
- If you refer to an option then write its full attribute path. That is, instead of writing
+
----
The option 'foo' has been deprecated, please use 'bar' instead.
----
+
it should read
+
----
The option 'services.myservice.foo' has been deprecated, please
use 'services.myservice.bar' instead.
----
- A new module, say `foo.nix`, should always include a news entry that has a message along the lines of
+
----
A new module is available: 'services.foo'.
----
+
If the module is platform specific, e.g., a service module using systemd, then a condition like
+
[source,nix]
condition = hostPlatform.isLinux;
+
should be added. If you contribute a module then you don't need to add this entry, the merger will create an entry for you.
[[sec-tests]]
=== Tests
Home Manager includes a basic test suite and it is highly recommended to include at least one test when adding a module. Tests are typically in the form of "golden tests" where, for example, a generated configuration file is compared to a known correct file.
It is relatively easy to create tests by modeling the existing tests, found in the `tests` project directory. For a full reference to the functions available in test scripts, you can look at NMT's https://git.sr.ht/~rycee/nmt/tree/master/item/bash-lib[bash-lib].
The full Home Manager test suite can be run by executing
[source,console]
$ nix-shell --pure tests -A run.all
in the project root. List all test cases through
[source,console]
$ nix-shell --pure tests -A list
and run an individual test, for example `alacritty-empty-settings`, through
[source,console]
$ nix-shell --pure tests -A run.alacritty-empty-settings
However, those invocations will impurely source the systems nixpkgs, and may cause failures. To run against the nixpkgs from the flake.lock, use instead e.g.
[source,console]
$ nix develop --ignore-environment .#all
+266 -106
View File
@@ -1,154 +1,314 @@
{ pkgs
{
pkgs,
# Note, this should be "the standard library" + HM extensions.
, lib ? import ../modules/lib/stdlib-extended.nix pkgs.lib
# Note, this should be "the standard library" + HM extensions.
lib ? import ../modules/lib/stdlib-extended.nix pkgs.lib,
, release, isReleaseBranch }:
release,
isReleaseBranch,
}:
let
nmdSrc = fetchTarball {
url =
"https://git.sr.ht/~rycee/nmd/archive/824a380546b5d0d0eb701ff8cd5dbafb360750ff.tar.gz";
sha256 = "0vvj40k6bw8ssra8wil9rqbsznmfy1kwy7cihvm13rajwdg9ycgg";
};
nmd = import nmdSrc {
inherit lib;
# The DocBook output of `nixos-render-docs` doesn't have the change
# `nmd` uses to work around the broken stylesheets in
# `docbook-xsl-ns`, so we restore the patched version here.
pkgs = pkgs // {
docbook-xsl-ns =
pkgs.docbook-xsl-ns.override { withManOptDedupPatch = true; };
};
};
# Recursively replace each derivation in the given attribute set
# with the same derivation but with the `outPath` attribute set to
# the string `"\${pkgs.attribute.path}"`. This allows the
# documentation to refer to derivations through their values without
# establishing an actual dependency on the derivation output.
#
# This is not perfect, but it seems to cover a vast majority of use
# cases.
#
# Caveat: even if the package is reached by a different means, the
# path above will be shown and not e.g.
# `${config.services.foo.package}`.
scrubDerivations =
prefixPath: attrs:
let
scrubDerivation =
name: value:
let
pkgAttrName = prefixPath + "." + name;
in
if lib.isAttrs value then
scrubDerivations pkgAttrName value
// lib.optionalAttrs (lib.isDerivation value) {
outPath = "\${${pkgAttrName}}";
}
else
value;
in
lib.mapAttrs scrubDerivation attrs;
# Make sure the used package is scrubbed to avoid actually
# instantiating derivations.
scrubbedPkgsModule = {
imports = [{
_module.args = {
pkgs = lib.mkForce (nmd.scrubDerivations "pkgs" pkgs);
pkgs_i686 = lib.mkForce { };
};
}];
imports = [
{
_module.args = {
pkgs = lib.mkForce (scrubDerivations "pkgs" pkgs);
pkgs_i686 = lib.mkForce { };
};
}
];
};
dontCheckDefinitions = { _module.check = false; };
dontCheckDefinitions = {
_module.check = false;
};
gitHubDeclaration = user: repo: subpath:
let urlRef = if isReleaseBranch then "release-${release}" else "master";
in {
gitHubDeclaration =
user: repo: subpath:
let
urlRef = if isReleaseBranch then "release-${release}" else "master";
in
{
url = "https://github.com/${user}/${repo}/blob/${urlRef}/${subpath}";
name = "<${repo}/${subpath}>";
};
hmPath = toString ./..;
buildOptionsDocs = args@{ modules, includeModuleSystemOptions ? true, ... }:
let options = (lib.evalModules { inherit modules; }).options;
in pkgs.buildPackages.nixosOptionsDoc ({
options = if includeModuleSystemOptions then
options
else
builtins.removeAttrs options [ "_module" ];
transformOptions = opt:
opt // {
# Clean up declaration sites to not refer to the Home Manager
# source tree.
declarations = map (decl:
if lib.hasPrefix hmPath (toString decl) then
gitHubDeclaration "nix-community" "home-manager"
(lib.removePrefix "/" (lib.removePrefix hmPath (toString decl)))
else if decl == "lib/modules.nix" then
# TODO: handle this in a better way (may require upstream
# changes to nixpkgs)
gitHubDeclaration "NixOS" "nixpkgs" decl
# Keep submodule option docs visible when wrapped in `either` (and therefore
# in `nullOr (either ...)`), which upstream currently omits.
docsLib = lib.extend (
_self: super:
let
mergeEitherSubOptions =
prefix: leftType: rightType:
let
getSubOptionsOrEmpty =
optionType:
let
subOptions = optionType.getSubOptions prefix;
in
if builtins.isAttrs subOptions then subOptions else { };
mkOptionDecl = options: {
_file = "<docs/default.nix>";
pos = null;
inherit options;
};
optionSets = lib.filter (options: options != { }) [
(getSubOptionsOrEmpty leftType)
(getSubOptionsOrEmpty rightType)
];
mergedOptions = lib.foldl' (
acc: options:
if acc == { } then
options
else
decl) opt.declarations;
(super.mergeOptionDecls prefix [
(mkOptionDecl acc)
(mkOptionDecl options)
]).options
) { } optionSets;
in
mergedOptions;
in
{
types = super.types // {
either =
leftType: rightType:
(super.types.either leftType rightType)
// {
getSubOptions = prefix: mergeEitherSubOptions prefix leftType rightType;
};
};
}
);
buildOptionsDocs =
args@{
modules,
includeModuleSystemOptions ? true,
...
}:
let
# to discourage references from option descriptions and defaults.
poisonModule =
let
poisonAttr = n: {
name = n;
value = abort ''
error: the option documentation has a dependency on the configuration.
You may, for example, have added an option attribute like
default = ''${config.some.value};
Since the default value is included in the Home Manager manual, this
would make the manual depend on the user's configuration.
To avoid this problem in this particular case, consider changing to
default = ''${config.some.value};
defaultText = lib.literalExpression "\\''${config.some.value}";'';
};
in
{ options, ... }:
{
config = lib.listToAttrs (map poisonAttr (lib.filter (n: n != "_module") (lib.attrNames options)));
};
} // builtins.removeAttrs args [ "modules" "includeModuleSystemOptions" ]);
inherit
(
(docsLib.evalModules {
modules = modules ++ [ poisonModule ];
class = "homeManager";
})
)
options
;
in
pkgs.buildPackages.nixosOptionsDoc (
{
options = if includeModuleSystemOptions then options else removeAttrs options [ "_module" ];
transformOptions =
opt:
opt
// {
# Clean up declaration sites to not refer to the Home Manager
# source tree.
declarations = map (
decl:
if lib.hasPrefix hmPath (toString decl) then
gitHubDeclaration "nix-community" "home-manager" (
lib.removePrefix "/" (lib.removePrefix hmPath (toString decl))
)
else if decl == "lib/modules.nix" then
# TODO: handle this in a better way (may require upstream
# changes to nixpkgs)
gitHubDeclaration "NixOS" "nixpkgs" decl
else
decl
) opt.declarations;
};
}
// removeAttrs args [
"modules"
"includeModuleSystemOptions"
]
);
hmOptionsDocs = buildOptionsDocs {
modules = import ../modules/modules.nix {
inherit lib pkgs;
check = false;
} ++ [ scrubbedPkgsModule ];
modules =
import ../modules/modules.nix {
lib = docsLib;
inherit pkgs;
check = false;
}
++ [ scrubbedPkgsModule ];
variablelistId = "home-manager-options";
};
nixosOptionsDocs = buildOptionsDocs {
modules = [ ../nixos scrubbedPkgsModule dontCheckDefinitions ];
modules = [
../nixos
scrubbedPkgsModule
dontCheckDefinitions
];
includeModuleSystemOptions = false;
variablelistId = "nixos-options";
optionIdPrefix = "nixos-opt-";
};
nixDarwinOptionsDocs = buildOptionsDocs {
modules = [ ../nix-darwin scrubbedPkgsModule dontCheckDefinitions ];
modules = [
../nix-darwin
scrubbedPkgsModule
dontCheckDefinitions
];
includeModuleSystemOptions = false;
variablelistId = "nix-darwin-options";
optionIdPrefix = "nix-darwin-opt-";
};
docs = nmd.buildDocBookDocs {
pathName = "home-manager";
projectName = "Home Manager";
modulesDocs = [{
docBook = pkgs.linkFarm "hm-module-docs-for-nmd" {
"nmd-result/home-manager-options.xml" = hmOptionsDocs.optionsDocBook;
"nmd-result/nix-darwin-options.xml" =
nixDarwinOptionsDocs.optionsDocBook;
"nmd-result/nixos-options.xml" = nixosOptionsDocs.optionsDocBook;
release-config = builtins.fromJSON (builtins.readFile ../release.json);
revision = "release-${release-config.release}";
# Generate the `man home-configuration.nix` package
home-configuration-manual =
pkgs.runCommand "home-configuration-reference-manpage"
{
nativeBuildInputs = [
pkgs.buildPackages.installShellFiles
pkgs.nixos-render-docs
];
allowedReferences = [ "out" ];
}
''
# Generate manpages.
mkdir -p $out/share/man/man5
mkdir -p $out/share/man/man1
nixos-render-docs -j $NIX_BUILD_CORES options manpage \
--revision ${revision} \
--header ${./home-configuration-nix-header.5} \
--footer ${./home-configuration-nix-footer.5} \
${hmOptionsDocs.optionsJSON}/share/doc/nixos/options.json \
$out/share/man/man5/home-configuration.nix.5
cp ${./home-manager.1} $out/share/man/man1/home-manager.1
'';
# Generate the HTML manual pages
home-manager-manual = pkgs.callPackage ./home-manager-manual.nix {
home-manager-options = {
home-manager = {
json = hmOptionsDocs.optionsJSON;
};
}];
documentsDirectory = ./.;
documentType = "book";
chunkToc = ''
<toc>
<d:tocentry xmlns:d="http://docbook.org/ns/docbook" linkend="book-home-manager-manual"><?dbhtml filename="index.html"?>
<d:tocentry linkend="ch-options"><?dbhtml filename="options.html"?></d:tocentry>
<d:tocentry linkend="ch-nixos-options"><?dbhtml filename="nixos-options.html"?></d:tocentry>
<d:tocentry linkend="ch-nix-darwin-options"><?dbhtml filename="nix-darwin-options.html"?></d:tocentry>
<d:tocentry linkend="ch-tools"><?dbhtml filename="tools.html"?></d:tocentry>
<d:tocentry linkend="ch-release-notes"><?dbhtml filename="release-notes.html"?></d:tocentry>
</d:tocentry>
</toc>
'';
nixos = {
json = nixosOptionsDocs.optionsJSON;
};
nix-darwin = {
json = nixDarwinOptionsDocs.optionsJSON;
};
};
inherit revision;
};
in {
inherit nmdSrc;
html = home-manager-manual;
htmlOpenTool = pkgs.callPackage ./html-open-tool.nix { } { inherit html; };
in
{
options = {
# TODO: Use `hmOptionsDocs.optionsJSON` directly once upstream
# `nixosOptionsDoc` is more customizable.
json = pkgs.runCommand "options.json" {
meta.description = "List of Home Manager options in JSON format";
} ''
mkdir -p $out/{share/doc,nix-support}
cp -a ${hmOptionsDocs.optionsJSON}/share/doc/nixos $out/share/doc/home-manager
substitute \
${hmOptionsDocs.optionsJSON}/nix-support/hydra-build-products \
$out/nix-support/hydra-build-products \
--replace \
'${hmOptionsDocs.optionsJSON}/share/doc/nixos' \
"$out/share/doc/home-manager"
'';
json =
pkgs.runCommand "options.json"
{
meta.description = "List of Home Manager options in JSON format";
}
''
mkdir -p $out/{share/doc,nix-support}
cp -a ${hmOptionsDocs.optionsJSON}/share/doc/nixos $out/share/doc/home-manager
substitute \
${hmOptionsDocs.optionsJSON}/nix-support/hydra-build-products \
$out/nix-support/hydra-build-products \
--replace-fail \
'${hmOptionsDocs.optionsJSON}/share/doc/nixos' \
"$out/share/doc/home-manager"
'';
};
manPages = docs.manPages;
manPages = home-configuration-manual;
manual = { inherit (docs) html htmlOpenTool; };
manual = { inherit html htmlOpenTool; };
# Unstable, mainly for CI.
jsonModuleMaintainers = pkgs.writeText "hm-module-maintainers.json" (let
result = lib.evalModules {
modules = import ../modules/modules.nix {
inherit lib pkgs;
check = false;
} ++ [ scrubbedPkgsModule ];
};
in builtins.toJSON result.config.meta.maintainers);
jsonModuleMaintainers = pkgs.writeText "hm-module-maintainers.json" (
let
result = lib.evalModules {
modules =
import ../modules/modules.nix {
inherit lib pkgs;
check = false;
}
++ [ scrubbedPkgsModule ];
class = "homeManager";
};
in
builtins.toJSON result.config.meta.maintainers
);
# Unstable, for tests.
_internal = { inherit docsLib; };
}
-192
View File
@@ -1,192 +0,0 @@
[[ch-faq]]
== Frequently Asked Questions (FAQ)
=== Why is there a collision error when switching generation?
Home Manager currently installs packages into the user environment, precisely as if the packages were installed through `nix-env --install`. This means that you will get a collision error if your Home Manager configuration attempts to install a package that you already have installed manually, that is, packages that shows up when you run `nix-env --query`.
For example, imagine you have the `hello` package installed in your environment
[source,console]
----
$ nix-env --query
hello-2.10
----
and your Home Manager configuration contains
[source,nix]
----
home.packages = [ pkgs.hello ];
----
Then attempting to switch to this configuration will result in an error similar to
[source,console]
----
$ home-manager switch
these derivations will be built:
/nix/store/xg69wsnd1rp8xgs9qfsjal017nf0ldhm-home-manager-path.drv
[…]
Activating installPackages
replacing old home-manager-path
installing home-manager-path
building path(s) /nix/store/b5c0asjz9f06l52l9812w6k39ifr49jj-user-environment
Wide character in die at /nix/store/64jc9gd2rkbgdb4yjx3nrgc91bpjj5ky-buildenv.pl line 79.
collision between /nix/store/fmwa4axzghz11cnln5absh31nbhs9lq1-home-manager-path/bin/hello and /nix/store/c2wyl8b9p4afivpcz8jplc9kis8rj36d-hello-2.10/bin/hello; use nix-env --set-flag priority NUMBER PKGNAME to change the priority of one of the conflicting packages
builder for /nix/store/b37x3s7pzxbasfqhaca5dqbf3pjjw0ip-user-environment.drv failed with exit code 2
error: build of /nix/store/b37x3s7pzxbasfqhaca5dqbf3pjjw0ip-user-environment.drv failed
----
The solution is typically to uninstall the package from the environment using `nix-env --uninstall` and reattempt the Home Manager generation switch.
You could also opt to unistall _all_ of the packages from your profile with `nix-env --uninstall '*'`.
=== Why are the session variables not set?
:foreign-env: https://github.com/oh-my-fish/plugin-foreign-env
Home Manager is only able to set session variables automatically if it manages your Bash, Z shell, or fish shell configuration. To enable such management you use <<opt-programs.bash.enable>>, <<opt-programs.zsh.enable>>, or <<opt-programs.fish.enable>>.
If you don't want to let Home Manager manage your shell then you will have to manually source the `~/.nix-profile/etc/profile.d/hm-session-vars.sh` file in an appropriate way. In Bash and Z shell this can be done by adding
[source,bash]
----
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
----
to your `.profile` and `.zshrc` files, respectively. The `hm-session-vars.sh` file should work in most Bourne-like shells. For fish shell, it is possible to source it using {foreign-env}[the foreign-env plugin]
[source,bash]
----
fenv source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" > /dev/null
----
=== How to set up a configuration for multiple users/machines?
:post-your-homenix: https://www.reddit.com/r/NixOS/comments/9bb9h9/post_your_homemanager_homenix_file/
A typical way to prepare a repository of configurations for multiple logins and machines is to prepare one "top-level" file for each unique combination.
For example, if you have two machines, called "kronos" and "rhea" on which you want to configure your user "jane" then you could create the files
- `kronos-jane.nix`,
- `rhea-jane.nix`, and
- `common.nix`
in your repository.
On the kronos and rhea machines you can then make
`~jane/.config/home-manager/home.nix`
be a symbolic link to the corresponding file in your configuration repository.
The `kronos-jane.nix` and `rhea-jane.nix` files follow the format
[source,nix]
----
{ ... }:
{
imports = [ ./common.nix ];
# Various options that are specific for this machine/user.
}
----
while the `common.nix` file contains configuration shared across the two logins. Of course, instead of just a single `common.nix` file you can have multiple ones, even one per program or service.
You can get some inspiration from the {post-your-homenix}[Post your home-manager home.nix file!] Reddit thread.
=== Why do I get an error message about `ca.desrt.dconf` or `dconf.service`?
You are most likely trying to configure something that uses dconf
but the DBus session is not aware of the dconf service.
The full error you might get is
----
error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files
----
or
----
error: GDBus.Error:org.freedesktop.systemd1.NoSuchUnit: Unit dconf.service not found.
----
The solution on NixOS is to add
[source,nix]
programs.dconf.enable = true;
to your system configuration.
=== How do I install packages from Nixpkgs unstable?
If you are using a stable version of Nixpkgs but would like to install some particular packages from Nixpkgs unstable or some other channel then you can import the unstable Nixpkgs and refer to its packages within your configuration. Something like
[source,nix]
----
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
home.packages = [
pkgsUnstable.foo
];
# …
}
----
should work provided you have a Nix channel called `nixpkgs-unstable`.
You can add the `nixpkgs-unstable` channel by running
[source,console]
----
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable
$ nix-channel --update
----
Note, the package will not be affected by any package overrides, overlays, etc.
=== How do I override the package used by a module?
:nixpkgs-overlays: https://nixos.org/nixpkgs/manual/#chap-overlays
By default Home Manager will install the package provided by your chosen `nixpkgs` channel but occasionally you might end up needing to change this package. This can typically be done in two ways.
1. If the module provides a `package` option, such as `programs.beets.package`, then this is the recommended way to perform the override. For example,
+
[source,nix]
programs.beets.package = pkgs.beets.override { enableCheck = true; };
2. If no `package` option is available then you can typically override the relevant package using an {nixpkgs-overlays}[overlay].
+
For example, if you want to use the `programs.skim` module but use the `skim` package from Nixpkgs unstable, then a configuration like
+
[source,nix]
----
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
programs.skim.enable = true;
nixpkgs.overlays = [
(self: super: {
skim = pkgsUnstable.skim;
})
];
# …
}
----
+
should work OK.
+45
View File
@@ -0,0 +1,45 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1779877693,
"narHash": "sha256-NOF9NAREhxr50bbBfVcVOq+ArCMSoe8dP79Pk2uyARk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4100e830e085863741bc69b156ec4ccd53ab5be0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"scss-reset": "scss-reset"
}
},
"scss-reset": {
"flake": false,
"locked": {
"lastModified": 1683906868,
"narHash": "sha256-cif5Sx8Ca5vxdw/mNAgpulLH15TwmzyJFNM7JURpoaE=",
"owner": "andreymatin",
"repo": "scss-reset",
"rev": "5a7bd491ac82441e6283fb0d5d54644b913b30c7",
"type": "github"
},
"original": {
"owner": "andreymatin",
"ref": "1.4.2",
"repo": "scss-reset",
"type": "github"
}
}
},
"root": "root",
"version": 7
}
+88
View File
@@ -0,0 +1,88 @@
{
description = "Support developing Home Manager documentation";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
scss-reset = {
url = "github:andreymatin/scss-reset/1.4.2";
flake = false;
};
};
outputs =
{
nixpkgs,
scss-reset,
...
}:
let
supportedSystems = [
"aarch64-darwin"
"aarch64-linux"
"i686-linux"
"x86_64-darwin"
"x86_64-linux"
];
# Note, this should be "the standard library" + HM extensions.
lib = import ../modules/lib/stdlib-extended.nix nixpkgs.lib;
forAllSystems = lib.genAttrs supportedSystems;
flakePkgs = pkgs: {
p-build = pkgs.writeShellScriptBin "p-build" ''
set -euo pipefail
export PATH=${
lib.makeBinPath [
pkgs.coreutils
pkgs.rsass
]
}
tmpfile=$(mktemp -d)
trap "rm -r $tmpfile" EXIT
ln -s "${scss-reset}/build" "$tmpfile/scss-reset"
rsass --load-path="$tmpfile" --style compressed \
./static/style.scss > ./static/style.css
echo "Generated ./static/style.css"
'';
};
releaseInfo = lib.importJSON ../release.json;
in
{
devShells = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
fpkgs = flakePkgs pkgs;
in
{
default = pkgs.mkShell {
name = "hm-docs";
packages = [ fpkgs.p-build ];
};
}
);
# Expose the docs outputs
packages = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
docs = import ./default.nix {
inherit pkgs lib;
inherit (releaseInfo) isReleaseBranch release;
};
in
{
inherit (docs) manPages jsonModuleMaintainers;
inherit (docs.manual) html htmlOpenTool;
inherit (docs.options) json;
}
);
};
}
+3
View File
@@ -0,0 +1,3 @@
.SH "AUTHORS"
.PP
Home Manager contributors
+17
View File
@@ -0,0 +1,17 @@
.TH "HOME-CONFIGURATION\&.NIX" "5" "01/01/1980" "Home Manager"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" enable line breaks after slashes
.cflags 4 /
.SH "NAME"
\fIhome\-configuration\&.nix\fP \- Home Manager configuration specification
.SH "DESCRIPTION"
.sp
The file ~/\&.config/home\-manager/home\&.nix contains the declarative specification of your Home Manager configuration\&. The command \fBhome\-manager\fR takes this file and realises the user environment configuration specified therein\&.
.SH "OPTIONS"
.PP
You can use the following options in
home\-configuration\&.nix:
.PP
+91
View File
@@ -0,0 +1,91 @@
{
stdenv,
lib,
callPackage,
mdbook,
python3,
revision,
home-manager-options,
}:
let
outputPath = "share/doc/home-manager";
mdbookOptions = callPackage ./mdbook/options.nix {
manpageUrls = ./manual/manpage-urls.json;
inherit revision;
optionDocs = {
home-manager = {
title = "Home Manager Configuration Options";
path = "home-manager";
prefix = "opt-";
json = "${home-manager-options.home-manager.json}";
};
nixos = {
title = "NixOS Configuration Options";
path = "nixos";
prefix = "nixos-opt-";
json = "${home-manager-options.nixos.json}";
};
nix-darwin = {
title = "nix-darwin Configuration Options";
path = "nix-darwin";
prefix = "nix-darwin-opt-";
json = "${home-manager-options.nix-darwin.json}";
};
};
};
in
stdenv.mkDerivation {
name = "home-manager-manual";
nativeBuildInputs = [
mdbook
python3
];
src = ./.;
buildPhase = ''
runHook preBuild
mkdir -p source
python3 ${./mdbook/convert-markup.py} "$src/manual" source
python3 ${./mdbook/convert-markup.py} \
--base-depth 1 \
"$src/release-notes" \
source/release-notes
cp -r ${mdbookOptions}/options source/options
python3 ${./mdbook/substitute-summary.py} \
source/SUMMARY.md \
${mdbookOptions}/summary/home-manager.md \
${mdbookOptions}/summary/nixos.md \
${mdbookOptions}/summary/nix-darwin.md
mdbook build source --dest-dir book
mkdir -p out
cp -r book/* out/
python3 ${./mdbook/legacy-redirects.py} source out
runHook postBuild
'';
installPhase = ''
dest="$out/${outputPath}"
mkdir -p "$(dirname "$dest")"
mv out "$dest"
mkdir -p $out/nix-support/
echo "doc manual $dest index.html" >> $out/nix-support/hydra-build-products
'';
passthru = {
inherit home-manager-options mdbookOptions;
};
meta = {
maintainers = [ lib.maintainers.considerate ];
};
}
+424
View File
@@ -0,0 +1,424 @@
.Dd January 1, 1980
.Dt home-manager 1
.Os Home Manager
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" enable line breaks after slashes
.cflags 4 /
.Sh NAME
.Nm home-manager
.Nd reconfigure a user environment
.
.
.
.Sh SYNOPSIS
.Nm home-manager
.Bro
.Cm build
.Cm | init Op Fl -switch Ar dir
.Cm | instantiate
.Cm | edit
.Cm | expire-generations Ar timestamp
.Cm | generations
.Cm | help
.Cm | news
.Cm | option Oo Fl -recursive Oc Ar option.name
.Cm | packages
.Cm | remove-generations Ar ID \&...
.Cm | switch
.Op Fl -rollback
.Op Bro Fl c | Fl -specialisation Brc Ar NAME
.Cm | uninstall
.Brc
.Op Fl A Ar attrPath
.Op Fl I Ar path
.Op Fl -flake Ar flake-uri
.Op Fl b Ar ext
.Op Bro Fl f | Fl -file Brc Ar path
.Op Bro Fl h | Fl -help Brc
.Op Fl -version
.Op Bro Fl n | Fl -dry-run Brc
.Op Fl -option Ar name Ar value
.Op Fl -cores Ar number
.Op Bro Fl j | Fl -max-jobs Brc Ar number
.Op Fl -option
.Op Fl -impure
.Op Fl -keep-failed
.Op Fl -keep-going
.Op Bro Fl L | Fl -print-build-logs Brc
.Op Fl -log-format
.Op Fl -show-trace
.Op Fl -(no-)substitute
.Op Fl -no-out-link
.Op Fl -refresh
.Op Bro Fl v | Fl -verbose Brc
.
.Sh DESCRIPTION
.Pp
This command updates the user environment so that it corresponds to the configuration specified in
$XDG_CONFIG_HOME/home-manager/home.nix
or
$XDG_CONFIG_HOME/home-manager/flake.nix.
.Pp
All operations using this tool expects a sub-command that indicates the operation to perform. It must be one of
.Pp
.Bl -tag -width Ds
.It Cm build
.RS 4
Build configuration into a result directory.
.RE
.It Cm init Op Fl -switch Op Ar dir
.RS 14
Generates an initial home.nix file for the current user. If Nix flakes are
enabled, then this command also generates a flake.nix file.
.sp
If a path
.Ar dir
is given then the configuration will be generated in that directory. Otherwise, the configuration will be generated in
~/.config/home-manager. The output directory will be created if it does not exist.
.sp
If the
.Fl -switch
option is given, then the generated configuration is activated.
.sp
Note, this command will not overwrite any existing files. It is therefore safe to initialize a configuration, edit it, and then re-run the
.Cm init
command with
.Fl -switch
enabled to activate the configuration.
.RE
.Pp
.It Cm instantiate
.RS 15
Instantiate the configuration and print the resulting derivation\&.
.RE
.Pp
.It Cm edit
.RS 16
Open the home configuration using the editor indicated by \fBVISUAL\fR or \fBEDITOR\fR\&.
.RE
.Pp
.It Cm expire-generations Ar timestamp
.RS 4
Remove generations older than
.Ar timestamp
where
.Ar timestamp
is interpreted as in the
.Fl d
argument of the
\fBdate\fR(1)
tool. For example
-30 days or 2018-01-01.
.RE
.PP
.It Cm generations
.RS 4
List all home environment generations\&.
.RE
.Pp
.It Cm help
.RS 4
Print tool help.
.RE
.Pp
.It Cm news
.RS 4
Show news entries in a pager.
.RE
.PP
.It Cm option Oo Fl -recursive Oc Ar option.name
.RS 4
Inspect the given option name in the home configuration, like
\fBnixos-option\fR(8)\&.
.sp
If the
.Fl -recursive
option is given, print all the values at or below the option name recursively\&.
.RE
.Pp
.It Cm packages
.RS 4
List all packages installed in home-manager-path.
.RE
.Pp
.It Cm remove-generations Ar ID \&...
.RS 4
Remove indicated generations. Use the
.Cm generations
sub-command to find suitable generation numbers.
.RE
.Pp
.It Cm switch Oo Fl -rollback Oc Oo Bro Fl c | Fl -specialisation Brc Ar NAME Oc
.RS 4
Build and activate the configuration\&.
.sp
If the
.Fl -rollback
option is given, then the build is not done, instead roll back to and
activate the configuration prior to the current configuration\&.
.sp
If the
.Fl -specialisation
option is given, then the named specialisation is activated\&.
.RE
.Pp
.It Cm uninstall
.RS 4
Remove Home Manager from the user environment\&. This will
.sp
.RE
.RS 4
.Bl -bullet
.It
remove all managed files from the home directory,
.RE
.sp
.RS 4
.It
remove packages installed through Home Manager from the user profile, and
.RE
.sp
.RS 4
.It
remove all Home Manager generations and make them available for immediate garbage collection\&.
.RE
.El
.sp
.RE
.El
.
.Sh OPTIONS
.Pp
The tool accepts the options
.Pp
.Bl -tag -width Ds
.It Cm Fl A Ar attrPath
.RS 4
Optional attribute that selects a configuration expression in the configuration file. That is, if
home.nix contains
.sp
.if n \{\
.RS 4
.\}
.nf
{
joe\-at\-work = {pkgs, \&.\&.\&.}: { home\&.packages = [ pkgs\&.fortune ]; };
joe\-at\-home = {pkgs, \&.\&.\&.}: { home\&.packages = [ pkgs\&.cowsay ]; };
}
.fi
.if n \{\
.RE
.\}
.sp
then the command
\fBhome\-manager switch \-A joe\-at\-work\fR
will activate the profile containing the fortune program\&.
.RE
.PP
.It Cm Fl I Ar path
.RS 4
Add a path to the Nix expression search path. For example, to build a Home Manager profile using a specific Nixpkgs run
.Cm home-manager Fl I Ar nixpkgs=/absolute/path/to/nixpkgs build.
By default
.Ar <nixpkgs>
is used.
.RE
.Pp
.It Cm Fl -flake Ar flake-uri[#name]
.RS 4
Build Home Manager configuration from the flake, which must contain the output homeConfigurations.name. If no name is specified it will first try username@hostname and then username.
.RE
.Pp
.It Cm Fl b Ar extension
.RS 4
Enable automatic resolution of collisions between unmanaged and managed files\&. The name of the original file will be suffixed by the given extension\&. For example,
.sp
.if n \{\
.RS 4
.\}
.nf
$ \fBhome\-manager \-b bck switch\fR
.fi
.if n \{\
.RE
.\}
.sp
will cause a colliding file
~/\&.config/foo\&.conf
to be moved to
~/\&.config/foo\&.conf\&.bck\&.
.RE
.Pp
.It Cm Fl f Ar path, Fl -file Ar path
.RS 4
Indicates the path to the Home Manager configuration file. If not given,
$XDG_CONFIG_HOME/home-manager/home.nix
is used.
.RE
.Pp
.It Cm Fl h, Fl -help
.RS 4
Prints usage information for the
\fBhome\-manager\fR
tool.
.RE
.Pp
.It Cm Fl -version
.RS 4
Prints the version number of the
\fBhome\-manager\fR
tool.
.RE
.Pp
.It Cm Fl n, Fl -dry-run
.RS 4
Perform a dry-run of the given operation, only prints what actions would be taken.
.RE
.Pp
.It Cm Fl -option Ar name Ar value
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -cores Ar number
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl j Ar number, Fl -max-jobs Ar number
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.\" TODO
.Pp
.It Cm Fl -debug
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -impure
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -keep-failed
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -keep-going
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl L, Fl -print-build-logs
.RS 4
Passed on to
\fBnix build\fR()
when building from a flake\&.
.RE
.Pp
.It Cm Fl -log-format Ar format
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -show-trace
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -(no-)substitute
.RS 4
Passed on to
\fBnix-build\fR(1)\&.
.RE
.Pp
.It Cm Fl -no-out-link
.RS 4
Passed on to
\fBnix-build\fR(1)
when running
\fBhome\-manager build\fR\&.
.RE
.Pp
.It Cm Fl -refresh
.RS 4
Passed on to
\fBnix-build\fR(1)
.RE
.Pp
.It Cm Fl v, Fl -verbose
.RS 4
Activates verbose output\&.
.RE
.El
.Sh FILES
.Pp
$XDG_DATA_HOME/home\-manager/news\-read\-ids
.RS 4
Identifiers of news items that have been shown\&. Can be deleted to reset the read news indicator\&.
.RE
.Sh BUGS
.Pp
Please report any bugs on the
\m[blue]\fBproject issue tracker\fR\m[]\&.
.Sh SEE ALSO
.Pp
\fBhome-configuration.nix\fR(5)
.Sh AUTHOR
.Pp
\fBHome Manager contributors\fR
.RS 4
Author.
.RE
.Sh COPYRIGHT
.br
Copyright \(co 2017\(en2026 Home Manager contributors
.br
+53
View File
@@ -0,0 +1,53 @@
{
writeShellScriptBin,
makeDesktopItem,
symlinkJoin,
}:
{
html,
pathName ? "home-manager",
projectName ? pathName,
name ? "${pathName}-help",
}:
let
helpScript = writeShellScriptBin name ''
set -euo pipefail
if [[ ! -v BROWSER || -z $BROWSER ]]; then
for candidate in xdg-open open w3m; do
BROWSER="$(type -P $candidate || true)"
if [[ -x $BROWSER ]]; then
break;
fi
done
fi
if [[ ! -v BROWSER || -z $BROWSER ]]; then
echo "$0: unable to start a web browser; please set \$BROWSER"
exit 1
fi
manualPath="${html}/share/doc/${pathName}/index.html"
if [[ ! -e $manualPath ]]; then
manualPath="${html}/share/doc/${pathName}/index.xhtml"
fi
exec "$BROWSER" "$manualPath"
'';
desktopItem = makeDesktopItem {
name = "${pathName}-manual";
desktopName = "${projectName} Manual";
genericName = "View ${projectName} documentation in a web browser";
icon = "nix-snowflake";
exec = "${helpScript}/bin/${name}";
categories = [ "System" ];
};
in
symlinkJoin {
inherit name;
paths = [
helpScript
desktopItem
];
}
-355
View File
@@ -1,355 +0,0 @@
[[ch-installation]]
== Installing Home Manager
:nix-darwin: https://github.com/LnL7/nix-darwin/
:nixos-wiki-flakes: https://nixos.wiki/wiki/Flakes
Home Manager can be used in three primary ways:
1. Using the standalone `home-manager` tool. For platforms other than
NixOS and Darwin, this is the only available choice. It is also
recommended for people on NixOS or Darwin that want to manage their
home directory independently of the system as a whole. See
<<sec-install-standalone>> for instructions on how to perform this
installation.
2. As a module within a NixOS system configuration. This allows the
user profiles to be built together with the system when running
`nixos-rebuild`. See <<sec-install-nixos-module>> for a description of
this setup.
3. As a module within a {nix-darwin}[nix-darwin] system configuration.
This allows the user profiles to be built together with the system
when running `darwin-rebuild`. See <<sec-install-nix-darwin-module>>
for a description of this setup.
[NOTE]
In this chapter we describe how to install Home Manager in the
standard way using channels. If you prefer to use
{nixos-wiki-flakes}[Nix Flakes] then please see the instructions in
<<ch-nix-flakes>>.
[[sec-install-standalone]]
=== Standalone installation
:nix-allowed-users: https://nixos.org/nix/manual/#conf-allowed-users
:nixos-allowed-users: https://nixos.org/manual/nixos/stable/options.html#opt-nix.settings.allowed-users
:bash: https://www.gnu.org/software/bash/
:zsh: http://zsh.sourceforge.net/
:fish: https://fishshell.com
:plugin-foreign-env: https://github.com/oh-my-fish/plugin-foreign-env
:babelfish: https://github.com/bouk/babelfish
1. Make sure you have a working Nix installation. Specifically, make
sure that your user is able to build and install Nix packages. For
example, you should be able to successfully run a command like
`nix-instantiate '<nixpkgs>' -A hello` without having to switch to the
root user. For a multi-user install of Nix this means that your user
must be covered by the {nix-allowed-users}[`allowed-users`] Nix
option. On NixOS you can control this option using the
{nixos-allowed-users}[`nix.settings.allowed-users`] system option.
2. Add the appropriate Home Manager channel. If you are following
Nixpkgs master or an unstable channel you can run
+
[source,console]
----
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ nix-channel --update
----
+
and if you follow a Nixpkgs version 23.11 channel you can run
+
[source,console]
----
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz home-manager
$ nix-channel --update
----
3. Run the Home Manager installation command and create the first Home
Manager generation:
+
[source,console]
$ nix-shell '<home-manager>' -A install
+
Once finished, Home Manager should be active and available in your
user environment.
4. If you do not plan on having Home Manager manage your shell
configuration then you must source the
+
[source,bash]
$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
+
file in your shell configuration. Alternatively source
+
[source,bash]
/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh
+
when managing home configuration together with system configuration.
+
This file can be sourced directly by POSIX.2-like shells such as
{bash}[Bash] or {zsh}[Z shell]. {fish}[Fish] users can use utilities
such as {plugin-foreign-env}[foreign-env] or {babelfish}[babelfish].
+
For example, if you use Bash then add
+
[source,bash]
----
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
----
+
to your `~/.profile` file.
If instead of using channels you want to run Home Manager from a Git
checkout of the repository then you can use the
<<opt-programs.home-manager.path>> option to specify the absolute path
to the repository.
Once installed you can see <<ch-usage>> for a more detailed
description of Home Manager and how to use it.
[[sec-install-nixos-module]]
=== NixOS module
Home Manager provides a NixOS module that allows you to prepare user
environments directly from the system configuration file, which often
is more convenient than using the `home-manager` tool. It also opens
up additional possibilities, for example, to automatically configure
user environments in NixOS declarative containers or on systems
deployed through NixOps.
To make the NixOS module available for use you must `import` it into
your system configuration. This is most conveniently done by adding a
Home Manager channel to the root user. For example, if you are
following Nixpkgs master or an unstable channel, you can run
[source,console]
----
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ sudo nix-channel --update
----
and if you follow a Nixpkgs version 23.11 channel, you can run
[source,console]
----
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz home-manager
$ sudo nix-channel --update
----
It is then possible to add
[source,nix]
imports = [ <home-manager/nixos> ];
to your system `configuration.nix` file, which will introduce a new
NixOS option called `home-manager.users` whose type is an attribute
set that maps user names to Home Manager configurations.
For example, a NixOS configuration may include the lines
[source,nix]
----
users.users.eve.isNormalUser = true;
home-manager.users.eve = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "23.11";
};
----
and after a `sudo nixos-rebuild switch` the user eve's environment should
include a basic Bash configuration and the packages atool and httpie.
[NOTE]
====
If `nixos-rebuild switch` does not result in the environment you expect,
you can take a look at the output of the Home Manager activation script output using
[source,console]
$ systemctl status "home-manager-$USER.service"
====
If you do not plan on having Home Manager manage your shell
configuration then you must add either
[source,bash]
----
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
----
or
[source,bash]
----
. "/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh"
----
to your shell configuration, depending on whether
<<nixos-opt-home-manager.useUserPackages>> is enabled. This file can
be sourced directly by POSIX.2-like shells such as {bash}[Bash] or
{zsh}[Z shell]. {fish}[Fish] users can use utilities such as
{plugin-foreign-env}[foreign-env] or {babelfish}[babelfish].
[NOTE]
====
By default packages will be installed to `$HOME/.nix-profile` but they
can be installed to `/etc/profiles` if
[source,nix]
home-manager.useUserPackages = true;
is added to the system configuration. This is necessary if, for
example, you wish to use `nixos-rebuild build-vm`. This option may
become the default value in the future.
====
[NOTE]
====
By default, Home Manager uses a private `pkgs` instance that is
configured via the `home-manager.users.<name>.nixpkgs` options. To
instead use the global `pkgs` that is configured via the system level
`nixpkgs` options, set
[source,nix]
home-manager.useGlobalPkgs = true;
This saves an extra Nixpkgs evaluation, adds consistency, and removes
the dependency on `NIX_PATH`, which is otherwise used for importing
Nixpkgs.
====
[NOTE]
====
Home Manager will pass `osConfig` as a module argument to any modules
you create. This contains the system's NixOS configuration.
[source,nix]
{ lib, pkgs, osConfig, ... }:
====
Once installed you can see <<ch-usage>> for a more detailed
description of Home Manager and how to use it.
[[sec-install-nix-darwin-module]]
=== nix-darwin module
Home Manager provides a module that allows you to prepare user
environments directly from the {nix-darwin}[nix-darwin] configuration
file, which often is more convenient than using the `home-manager`
tool.
To make the NixOS module available for use you must `import` it into
your system configuration. This is most conveniently done by adding a
Home Manager channel. For example, if you are following Nixpkgs master
or an unstable channel, you can run
[source,console]
----
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ nix-channel --update
----
and if you follow a Nixpkgs version 23.11 channel, you can run
[source,console]
----
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-23.11.tar.gz home-manager
$ nix-channel --update
----
It is then possible to add
[source,nix]
imports = [ <home-manager/nix-darwin> ];
to your nix-darwin `configuration.nix` file, which will introduce a
new NixOS option called `home-manager` whose type is an attribute set
that maps user names to Home Manager configurations.
For example, a nix-darwin configuration may include the lines
[source,nix]
----
users.users.eve = {
name = "eve";
home = "/Users/eve";
}
home-manager.users.eve = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "23.11";
};
----
and after a `darwin-rebuild switch` the user eve's environment
should include a basic Bash configuration and the packages atool and
httpie.
If you do not plan on having Home Manager manage your shell
configuration then you must add either
[source,bash]
----
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
----
or
[source,bash]
----
. "/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh"
----
to your shell configuration, depending on whether
<<nix-darwin-opt-home-manager.useUserPackages>> is enabled. This file
can be sourced directly by POSIX.2-like shells such as {bash}[Bash] or
{zsh}[Z shell]. {fish}[Fish] users can use utilities such as
{plugin-foreign-env}[foreign-env] or {babelfish}[babelfish].
[NOTE]
====
By default user packages will not be ignored in favor of
`environment.systemPackages`, but they will be installed to
`/etc/profiles/per-user/$USERNAME` if
[source,nix]
home-manager.useUserPackages = true;
is added to the nix-darwin configuration. This option may become the
default value in the future.
====
[NOTE]
====
By default, Home Manager uses a private `pkgs` instance that is
configured via the `home-manager.users.<name>.nixpkgs` options. To
instead use the global `pkgs` that is configured via the system level
`nixpkgs` options, set
[source,nix]
home-manager.useGlobalPkgs = true;
This saves an extra Nixpkgs evaluation, adds consistency, and removes
the dependency on `NIX_PATH`, which is otherwise used for importing
Nixpkgs.
====
[NOTE]
====
Home Manager will pass `osConfig` as a module argument to any modules
you create. This contains the system's nix-darwin configuration.
[source,nix]
{ lib, pkgs, osConfig, ... }:
====
Once installed you can see <<ch-usage>> for a more detailed
description of Home Manager and how to use it.
-40
View File
@@ -1,40 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refmeta>
<refentrytitle><filename>home-configuration.nix</filename></refentrytitle>
<manvolnum>5</manvolnum>
<refmiscinfo class="source">Home Manager</refmiscinfo>
<!-- <refmiscinfo class="version"><xi:include href="version.txt" parse="text"/></refmiscinfo> -->
</refmeta>
<refnamediv>
<refname><filename>home-configuration.nix</filename></refname>
<refpurpose>Home Manager configuration specification</refpurpose>
</refnamediv>
<refsection>
<title>Description</title>
<simpara>
The file <filename>~/.config/home-manager/home.nix</filename> contains the
declarative specification of your Home Manager configuration. The command
<command>home-manager</command> takes this file and realises the user
environment configuration specified therein.
</simpara>
</refsection>
<refsection>
<title>Options</title>
<para>
You can use the following options in
<filename>home-configuration.nix</filename>:
</para>
<xi:include href="./nmd-result/home-manager-options.xml" xpointer="home-manager-options" />
</refsection>
<refsection>
<title>See also</title>
<para>
<citerefentry>
<refentrytitle>home-manager</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
</para>
</refsection>
</refentry>
-713
View File
@@ -1,713 +0,0 @@
<refentry xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refmeta>
<refentrytitle><command>home-manager</command>
</refentrytitle><manvolnum>1</manvolnum>
<refmiscinfo class="source">Home Manager</refmiscinfo>
</refmeta>
<refnamediv>
<refname><command>home-manager</command>
</refname><refpurpose>reconfigure a user environment</refpurpose>
</refnamediv>
<refsynopsisdiv>
<cmdsynopsis>
<command>home-manager</command> <group choice="req">
<arg choice="plain">
build
</arg>
<arg choice="plain">
init <arg>--switch</arg> <arg><replaceable>dir</replaceable></arg>
</arg>
<arg choice="plain">
instantiate
</arg>
<arg choice="plain">
edit
</arg>
<arg choice="plain">
expire-generations <replaceable>timestamp</replaceable>
</arg>
<arg choice="plain">
generations
</arg>
<arg choice="plain">
help
</arg>
<arg choice="plain">
news
</arg>
<arg choice="plain">
option <replaceable>option.name</replaceable>
</arg>
<arg choice="plain">
packages
</arg>
<arg choice="plain">
remove-generations <replaceable>ID …</replaceable>
</arg>
<arg choice="plain">
switch
</arg>
<arg choice="plain">
uninstall
</arg>
</group>
<sbr />
<arg>
-A <replaceable>attrPath</replaceable>
</arg>
<arg>
-I <replaceable>path</replaceable>
</arg>
<arg>
--flake <replaceable>flake-uri</replaceable>
</arg>
<arg>
-b <replaceable>ext</replaceable>
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-f
</arg>
<arg choice="plain">
--file
</arg>
</group> <replaceable>path</replaceable>
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-h
</arg>
<arg choice="plain">
--help
</arg>
</group>
</arg>
<arg>
--version
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-n
</arg>
<arg choice="plain">
--dry-run
</arg>
</group>
</arg>
<arg>
--option <replaceable>name</replaceable> <replaceable>value</replaceable>
</arg>
<arg>
--cores <replaceable>number</replaceable>
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-j
</arg>
<arg choice="plain">
--max-jobs
</arg>
</group>
<replaceable>number</replaceable>
</arg>
<arg>
--debug
</arg>
<arg>
--impure
</arg>
<arg>
--keep-failed
</arg>
<arg>
--keep-going
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-L
</arg>
<arg choice="plain">
--print-build-logs
</arg>
</group>
</arg>
<arg>
--show-trace
</arg>
<arg>
--(no-)substitute
</arg>
<arg>
--no-out-link
</arg>
<arg>
--refresh
</arg>
<arg>
<group choice="req">
<arg choice="plain">
-v
</arg>
<arg choice="plain">
--verbose
</arg>
</group>
</arg>
</cmdsynopsis>
</refsynopsisdiv>
<refsection>
<title>Description</title>
<para>
This command updates the user environment so that it corresponds to the
configuration specified in
<filename>$XDG_CONFIG_HOME/home-manager/home.nix</filename> or
<filename>$XDG_CONFIG_HOME/home-manager/flake.nix</filename>.
</para>
<para>
All operations using this tool expects a sub-command that indicates the
operation to perform. It must be one of
<variablelist>
<varlistentry>
<term>
<option>build</option>
</term>
<listitem>
<para>
Build configuration into a <filename>result</filename> directory.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>init</option> [<option>--switch</option>] [<replaceable>dir</replaceable>]
</term>
<listitem>
<simpara>
Generates an initial <filename>home.nix</filename> file for the
current user. If Nix flakes are enabled, then this command also
generates a <filename>flake.nix</filename> file.
</simpara>
<simpara>
If a path <replaceable>dir</replaceable> is given then the
configuration will be generated in that directory. Otherwise, the
configuration will be generated in
<filename>~/.config/home-manager</filename>. The output directory will
be created if it does not exist.
</simpara>
<simpara>
If the <option>--switch</option> option is given, then the generated
configuration is activated.
</simpara>
<simpara>
Note, this command will not overwrite any existing files. It is
therefore safe to initialize a configuration, edit it, and then re-run
the <option>init</option> command with <option>--switch</option>
enabled to activate the configuration.
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>instantiate</option>
</term>
<listitem>
<para>
Instantiate the configuration and print the resulting derivation.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>edit</option>
</term>
<listitem>
<para>
Open the home configuration using the editor indicated by
<envar>EDITOR</envar>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>expire-generations <replaceable>timestamp</replaceable></option>
</term>
<listitem>
<para>
Remove generations older than <replaceable>timestamp</replaceable> where
<replaceable>timestamp</replaceable> is interpreted as in the
<option>-d</option> argument of the <citerefentry>
<refentrytitle>date</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry> tool. For example <literal>-30
days</literal> or <literal>2018-01-01</literal>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>generations</option>
</term>
<listitem>
<para>
List all home environment generations.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>help</option>
</term>
<listitem>
<para>
Print tool help.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>news</option>
</term>
<listitem>
<para>
Show news entries in a pager.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>option <replaceable>option.name</replaceable></option>
</term>
<listitem>
<para>
Inspect the given option name in the home configuration, like <citerefentry>
<refentrytitle>nixos-option</refentrytitle>
<manvolnum>8</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>packages</option>
</term>
<listitem>
<para>
List all packages installed in <varname>home-manager-path</varname>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>remove-generations <replaceable>ID …</replaceable></option>
</term>
<listitem>
<para>
Remove indicated generations. Use the <option>generations</option>
sub-command to find suitable generation numbers.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>switch</option>
</term>
<listitem>
<para>
Build and activate the configuration.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>uninstall</option>
</term>
<listitem>
<para>
Remove Home Manager from the user environment. This will
<itemizedlist>
<listitem>
<para>
remove all managed files from the home directory,
</para>
</listitem>
<listitem>
<para>
remove packages installed through Home Manager from the user profile,
and
</para>
</listitem>
<listitem>
<para>
remove all Home Manager generations and make them available
for immediate garbage collection.
</para>
</listitem>
</itemizedlist>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsection>
<refsection>
<title>Options</title>
<para>
The tool accepts the options
</para>
<variablelist>
<varlistentry>
<term>
<option>-A <replaceable>attrPath</replaceable></option>
</term>
<listitem>
<para>
Optional attribute that selects a configuration expression in the
configuration file. That is, if <filename>home.nix</filename> contains
<programlisting language="nix">
{
joe-at-work = {pkgs, ...}: { home.packages = [ pkgs.fortune ]; };
joe-at-home = {pkgs, ...}: { home.packages = [ pkgs.cowsay ]; };
}
</programlisting>
then the command <command>home-manager switch -A joe-at-work</command>
will activate the profile containing the fortune program.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-I <replaceable>path</replaceable></option>
</term>
<listitem>
<para>
Add a path to the Nix expression search path. For example, to build a
Home Manager profile using a specific Nixpkgs run <command>home-manager
-I nixpkgs=/absolute/path/to/nixpkgs build</command>. By default
<literal>&lt;nixpkgs&gt;</literal> is used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--flake <replaceable>flake-uri[#name]</replaceable></option>
</term>
<listitem>
<para>
Build Home Manager configuration from the flake, which must contain the
output homeConfigurations.name. If no name is specified it will first try
username@hostname and then username.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-b <replaceable>extension</replaceable></option>
</term>
<listitem>
<para>
Enable automatic resolution of collisions between unmanaged and managed
files. The name of the original file will be suffixed by the given
extension. For example,
<screen>
<prompt>$</prompt> <userinput>home-manager -b bck switch</userinput>
</screen>
will cause a colliding file <filename>~/.config/foo.conf</filename> to be
moved to <filename>~/.config/foo.conf.bck</filename>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-f <replaceable>path</replaceable></option>
</term>
<term>
<option>--file <replaceable>path</replaceable></option>
</term>
<listitem>
<para>
Indicates the path to the Home Manager configuration file. If not given,
<filename>$XDG_CONFIG_HOME/home-manager/home.nix</filename> is used.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-h</option>
</term>
<term>
<option>--help</option>
</term>
<listitem>
<para>
Prints usage information for the <command>home-manager</command> tool.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--version</option>
</term>
<listitem>
<para>
Prints the version number of the <command>home-manager</command> tool.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-n</option>
</term>
<term>
<option>--dry-run</option>
</term>
<listitem>
<para>
Perform a dry-run of the given operation, only prints what actions would
be taken.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--option <replaceable>name</replaceable> <replaceable>value</replaceable></option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--cores <replaceable>number</replaceable></option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-j <replaceable>number</replaceable></option>
</term>
<term>
<option>--max-jobs <replaceable>number</replaceable></option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--debug</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--impure</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--keep-failed</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--keep-going</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-L</option>
</term>
<term>
<option>--print-build-logs</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix build</refentrytitle>
</citerefentry>
when building from a flake.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--show-trace</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--(no-)substitute</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--no-out-link</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>
when running <command>home-manager build</command>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>--refresh</option>
</term>
<listitem>
<para>
Passed on to <citerefentry>
<refentrytitle>nix-build</refentrytitle>
<manvolnum>1</manvolnum> </citerefentry>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
<option>-v</option>
</term>
<term>
<option>--verbose</option>
</term>
<listitem>
<para>
Activates verbose output.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Files</title>
<variablelist>
<varlistentry>
<term>
<filename>$XDG_DATA_HOME/home-manager/news-read-ids</filename>
</term>
<listitem>
<para>
Identifiers of news items that have been shown. Can be deleted to reset
the read news indicator.
</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Bugs</title>
<para>
Please report any bugs on the
<link
xlink:href="https://github.com/nix-community/home-manager/issues">project
issue tracker</link>.
</para>
</refsection>
<refsection>
<title>See also</title>
<para>
<citerefentry>
<refentrytitle>home-configuration.nix</refentrytitle>
<manvolnum>5</manvolnum> </citerefentry>
</para>
</refsection>
</refentry>
-12
View File
@@ -1,12 +0,0 @@
<reference xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Home Manager Reference Pages</title>
<info>
<author><personname>Home Manager contributors</personname></author>
<copyright><year>20172022</year><holder>Home Manager contributors</holder>
</copyright>
</info>
<xi:include href="man-configuration.xml" />
<xi:include href="man-home-manager.xml" />
</reference>
-57
View File
@@ -1,57 +0,0 @@
<book xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xi="http://www.w3.org/2001/XInclude"
version="5.0"
xml:id="book-home-manager-manual">
<info>
<title>Home Manager Manual</title>
</info>
<preface>
<title>Preface</title>
<para>
This manual will eventually describe how to install, use, and extend Home
Manager.
</para>
<para>
If you encounter problems then please reach out on the IRC channel
<link xlink:href="https://webchat.oftc.net/?channels=home-manager">#home-manager</link>
hosted by <link xlink:href="https://oftc.net/">OFTC</link>.
There is also a <link xlink:href="https://matrix.to/#/%23hm:rycee.net">Matrix room</link>,
which is bridged to the IRC channel.
If your problem is caused by a bug in Home Manager then it should
be reported on the
<link xlink:href="https://github.com/nix-community/home-manager/issues">Home Manager issue tracker</link>.
</para>
<note>
<para>
Commands prefixed with <literal>$ sudo</literal> have to be run as root, either
requiring to login as root user or temporarily switching to it using
<literal>sudo</literal> for example.
</para>
</note>
</preface>
<xi:include href="installation.xml" />
<xi:include href="usage.xml" />
<xi:include href="nix-flakes.xml" />
<xi:include href="writing-modules.xml" />
<xi:include href="contributing.xml" />
<xi:include href="3rd-party.xml" />
<xi:include href="faq.xml" />
<appendix xml:id="ch-options">
<title>Configuration Options</title>
<xi:include href="./nmd-result/home-manager-options.xml" xpointer="home-manager-options" />
</appendix>
<appendix xml:id="ch-nixos-options">
<title>NixOS Module Options</title>
<xi:include href="./nmd-result/nixos-options.xml" xpointer="nixos-options" />
</appendix>
<appendix xml:id="ch-nix-darwin-options">
<title>nix-darwin Module Options</title>
<xi:include href="./nmd-result/nix-darwin-options.xml" xpointer="nix-darwin-options" />
</appendix>
<appendix xml:id="ch-tools">
<title>Tools</title>
<xi:include href="./man-home-manager.xml" />
</appendix>
<xi:include href="./release-notes/release-notes.xml" />
</book>
+14
View File
@@ -0,0 +1,14 @@
# Third-Party Tools and Extensions {#ch-3rd-party}
Here is a collection of tools and extensions that relate to Home
Manager. Note, these are maintained outside the regular Home Manager
flow so quality and support may vary wildly. If you encounter problems
then please raise them in the corresponding project, not as issues in
the Home Manager tracker.
If you have made something interesting related to Home Manager then you
are encouraged to create a PR that expands this chapter.
```{=include=} sections
3rd-party/collections.md
```
+11
View File
@@ -0,0 +1,11 @@
# Module Collections {#sec-3rd-party-module-collections}
- [xhmm --- extra Home Manager
modules](https://github.com/schuelermine/xhmm)
A collection of modules maintained by Anselm Schüler.
- [Stylix --- System-wide colorscheming and
typography](https://github.com/danth/stylix/)
Configure your applications to get coherent color scheme and font.
+64
View File
@@ -0,0 +1,64 @@
# Summary
- [Preface](preface.md)
- [Introduction to Home Manager](introduction.md)
- [Installing Home Manager](installation.md)
- [Standalone installation](installation/standalone.md)
- [NixOS module](installation/nixos.md)
- [nix-darwin module](installation/nix-darwin.md)
- [Using Home Manager](usage.md)
- [Configuration Example](usage/configuration.md)
- [Rollbacks](usage/rollbacks.md)
- [Keeping your ~ safe from harm](usage/dotfiles.md)
- [Graphical services](usage/graphical.md)
- [GPU on non-NixOS systems](usage/gpu-non-nixos.md)
- [Modular Services](usage/modular-services.md)
- [Updating](usage/updating.md)
- [Upgrading to a new Home Manager release](usage/upgrading.md)
- [Nix Flakes](nix-flakes.md)
- [Prerequisites](nix-flakes/prerequisites.md)
- [Standalone setup](nix-flakes/standalone.md)
- [NixOS module](nix-flakes/nixos.md)
- [nix-darwin module](nix-flakes/nix-darwin.md)
- [flake-parts module](nix-flakes/flake-parts.md)
- [Writing Home Manager Modules](writing-modules.md)
- [Option Types](writing-modules/types.md)
- [Contributing](contributing.md)
- [Getting started](contributing/getting-started.md)
- [Guidelines](contributing/guidelines.md)
- [Release Notes](contributing/release-notes.md)
- [News](contributing/news.md)
- [Tests](contributing/tests.md)
- [Home Manager Internals](internals.md)
- [Activation](internals/activation.md)
- [Third-Party Tools and Extensions](3rd-party.md)
- [Module Collections](3rd-party/collections.md)
- [Frequently Asked Questions (FAQ)](faq.md)
- [Why is there a collision error when switching generation?](faq/collision.md)
- [Why are the session variables not set?](faq/session-variables.md)
- [How to set up a configuration for multiple users/machines?](faq/multiple-users-machines.md)
- [Why do I get an error message about `ca.desrt.dconf` or `dconf.service`?](faq/ca-desrt-dconf.md)
- [How do I install packages from Nixpkgs unstable?](faq/unstable.md)
- [How do I change the package used by a module?](faq/change-package-module.md)
- [Options](options.md)
@HOME_MANAGER_OPTIONS@
@NIXOS_OPTIONS@
@NIX_DARWIN_OPTIONS@
- [Release Notes](release-notes/release-notes.md)
- [Release 26.11](release-notes/rl-2611.md)
- [Release 26.05](release-notes/rl-2605.md)
- [Release 25.11](release-notes/rl-2511.md)
- [Release 25.05](release-notes/rl-2505.md)
- [Release 24.11](release-notes/rl-2411.md)
- [Release 24.05](release-notes/rl-2405.md)
- [Release 23.11](release-notes/rl-2311.md)
- [Release 23.05](release-notes/rl-2305.md)
- [Release 22.11](release-notes/rl-2211.md)
- [Release 22.05](release-notes/rl-2205.md)
- [Release 21.11](release-notes/rl-2111.md)
- [Release 21.05](release-notes/rl-2105.md)
- [Release 20.09](release-notes/rl-2009.md)
- [Release 20.03](release-notes/rl-2003.md)
- [Release 19.09](release-notes/rl-1909.md)
- [Release 19.03](release-notes/rl-1903.md)
- [Release 18.09](release-notes/rl-1809.md)
+11
View File
@@ -0,0 +1,11 @@
[book]
title = "Home Manager Manual"
language = "en"
src = "."
[output.html]
git-repository-url = "https://github.com/nix-community/home-manager"
[output.html.fold]
enable = true
level = 0
+28
View File
@@ -0,0 +1,28 @@
# Contributing {#ch-contributing}
Contributions to Home Manager are very welcome. To make the process as
smooth as possible for both you and the Home Manager maintainers we
provide some guidelines that we ask you to follow. See [Getting
started](contributing/getting-started.md#sec-contrib-getting-started) for information on how to set up
a suitable development environment and [Guidelines](contributing/guidelines.md#sec-guidelines) for
the actual guidelines.
This text is mainly directed at those who would like to make code
contributions to Home Manager. If you just want to report a bug then
first look among the already [open
issues](https://github.com/nix-community/home-manager/issues), if you
find one matching yours then feel free to comment on it to add any
additional information you may have. If no matching issue exists then go
to the [new
issue](https://github.com/nix-community/home-manager/issues/new) page
and write a description of your problem. Include as much information as
you can, ideally also include relevant excerpts from your Home Manager
configuration.
```{=include=} sections
contributing/getting-started.md
contributing/guidelines.md
contributing/release-notes.md
contributing/news.md
contributing/tests.md
```
@@ -0,0 +1,43 @@
# Getting started {#sec-contrib-getting-started}
If you have not previously forked Home Manager then you need to do that
first. Have a look at GitHub's [Fork a
repo](https://help.github.com/articles/fork-a-repo/) for instructions on
how to do this.
Once you have a fork of Home Manager you should create a branch starting
at the most recent `master` branch. Give your branch a reasonably
descriptive name. Commit your changes to this branch and when you are
happy with the result and it fulfills [Guidelines](guidelines.md#sec-guidelines) then
push the branch to GitHub and [create a pull
request](https://help.github.com/articles/creating-a-pull-request/).
Assuming your clone is at `$HOME/devel/home-manager` then you can make
the `home-manager` command use it by either
1. overriding the default path by using the `-I` command line option:
``` shell
$ home-manager -I home-manager=$HOME/devel/home-manager
```
or, if using [flakes](../nix-flakes/standalone.md#sec-flakes-standalone):
``` shell
$ home-manager --override-input home-manager ~/devel/home-manager
```
or
2. changing the default path by ensuring your configuration includes
``` nix
programs.home-manager.enable = true;
programs.home-manager.path = "$HOME/devel/home-manager";
```
and running `home-manager switch` to activate the change.
Afterwards, `home-manager build` and `home-manager switch` will use
your cloned repository.
The first option is good if you only temporarily want to use your clone.
+292
View File
@@ -0,0 +1,292 @@
# Guidelines {#sec-guidelines}
If your contribution satisfy the following rules then there is a good
chance it will be merged without too much trouble. The rules are
enforced by the Home Manager maintainers and to a lesser extent the Home
Manager CI system.
If you are uncertain how these rules affect the change you would like to
make then feel free to start a discussion in the
[#home-manager](https://webchat.oftc.net/?channels=home-manager) IRC
channel, ideally before you start developing.
## Maintain backward compatibility {#sec-guidelines-back-compat}
Your contribution should not cause another user's existing configuration
to break unless there is a very good reason and the change should be
announced to the user through an
[assertion](https://nixos.org/manual/nixos/stable/index.html#sec-assertions)
or similar.
Remember that Home Manager is used in many different environments and
you should consider how your change may effect others. For example,
- Does your change work for people that do not use NixOS? Consider
other GNU/Linux distributions and macOS.
- Does your change work for people whose configuration is built on one
system and deployed on another system?
## Keep forward compatibility in mind {#sec-guidelines-forward-compat}
The master branch of Home Manager tracks the unstable channel of
Nixpkgs, which may update package versions at any time. It is therefore
important to consider how a package update may affect your code and try
to reduce the risk of breakage.
The most effective way to reduce this risk is to follow the advice in
[Add only valuable options](#sec-guidelines-valuable-options).
## Add only valuable options {#sec-guidelines-valuable-options}
When creating a new module it is tempting to include every option
supported by the software. This is *strongly* discouraged. Providing
many options increases maintenance burden and risk of breakage
considerably. This is why only the most [important software
options](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md#valuable-options)
should be modeled explicitly. Less important options should be
expressible through an `extraConfig` escape hatch.
A good rule of thumb for the first implementation of a module is to only
add explicit options for those settings that absolutely must be set for
the software to function correctly. It follows that a module for
software that provides sensible default values for all settings would
require no explicit options at all.
If the software uses a structured configuration format like a JSON,
YAML, INI, TOML, or even a plain list of key/value pairs then consider
using a `settings` option as described in [Nix RFC
42](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md).
These guidelines describe the minimum option design requirements. Before
submitting a module, compare it against the upstream documentation or
source code and verify that the generated files, services, environment
variables, and command line arguments all match the upstream behavior
you intend to expose.
If a module installs a package, try to make the package option nullable,
for example
``` nix
package = lib.mkPackageOption pkgs "xdg-terminal-exec" { nullable = true; };
```
This lets users keep installation outside Home Manager, for example via
`apt` or because the program is built into macOS, while still using the
module for configuration. Keeping the package non-nullable is fine when
the enabled behavior structurally requires the executable or when
package-less support would make the module significantly more complex.
Avoid generating files for empty settings, null packages, or optional
features that are not configured.
If upstream does not use XDG paths by default but supports changing the
configuration location with an environment variable, for example
`FOO_HOME`, expose a `configDir` option and use it to respect
`home.preferXdgDirectories`.
## Add relevant tests {#sec-guidelines-add-tests}
If at all possible, make sure to add new tests and expand existing tests
so that your change will keep working in the future. See
[Tests](tests.md#sec-tests) for more information about the Home Manager test
suite.
All contributed code *must* pass the test suite.
## Add relevant documentation {#sec-guidelines-module-maintainer}
Many code changes require changing the documentation as well. The
documentation is written in
[Nixpkgs-flavoured Markdown](https://nixos.org/manual/nixpkgs/unstable/#sec-contributing-markup).
All text is hosted in Home Manager's Git repository.
The HTML version of the manual containing both the module option
descriptions and the documentation of Home Manager can be generated and
opened by typing the following in a shell within a clone of the Home
Manager Git repository:
``` shell
$ nix-build -A docs.html
$ xdg-open ./result/share/doc/home-manager/index.html
```
When you have made changes to a module, it is a good idea to check that
the man page version of the module options looks good:
``` shell
$ nix-build -A docs.manPages
$ man ./result/share/man/man5/home-configuration.nix.5
```
## Module Auto-importing {#sec-module-auto-importing}
Home Manager automatically imports all modules from the `modules/programs/` and
`modules/services/` directories. This auto-importing behavior follows these
rules:
- **Nix files**: All `.nix` files in these directories are automatically
imported
- **Directories**: All subdirectories are automatically imported (typically
containing a `default.nix` file)
- **Exclusions**: Files and directories starting with an underscore (`_`) are
excluded from auto-importing
This allows for flexible module organization:
```
modules/programs/
├── git.nix # Single-file module (imported)
├── firefox/ # Multi-file module (imported)
│ ├── default.nix
│ └── addons.nix
├── _experimental.nix # Excluded (starts with _)
└── _wip/ # Excluded directory (starts with _)
└── newfeature.nix
```
When adding a new module, simply place it in the appropriate directory
(`programs/` for user programs, `services/` for user services) and it will be
automatically discovered and included in the Home Manager module system.
## Add yourself as a module maintainer {#_add_yourself_as_a_module_maintainer}
Every new module *must* include a named maintainer using the
`meta.maintainers` attribute. If you are a user of a module that
currently lacks a maintainer then please consider adopting it.
If you are present in the nixpkgs maintainer list then you can use that
entry. If you are not then you can add yourself to
`modules/lib/maintainers.nix` in the Home Manager project.
As a maintainer you are expected to respond to issues and
pull-requests associated with your module.
Maintainers are encouraged to join the IRC or Matrix channel and
participate when they have opportunity.
## Format your code {#sec-guidelines-code-style}
Make sure your code is formatted as described in [Code
Style](#sec-code-style). To maintain consistency throughout the project
you are encouraged to browse through existing code and adopt its style
also in new code.
## Format your commit messages {#sec-guidelines-commit-message-style}
Similar to [Format your code](#sec-guidelines-code-style) we encourage a
consistent commit message format as described in
[Commits](#sec-commit-style).
## Format your news entries {#sec-guidelines-news-style}
If your contribution includes a change that should be communicated to
users of Home Manager then you can add a news entry. The entry must be
formatted as described in [News](news.md#sec-news).
When new modules are added a news entry should be included.
News entries and release notes serve different purposes. Release notes
should be updated separately when a change affects users migrating
between stable releases, such as state version default changes, required
migration steps, or broad behavior changes. See
[Release Notes](release-notes.md#sec-contributing-release-notes) and [News](news.md#sec-news)
for more details.
## Use conditional modules and news {#sec-guidelines-conditional-modules}
Home Manager includes a number of modules that are only usable on some
of the supported platforms. The most common example of platform specific
modules are those that define systemd user services, which only works on
Linux systems.
If you add a module that is platform specific then make sure the module
guards platform-specific configuration with an appropriate condition, for
example `pkgs.stdenv.hostPlatform.isLinux` or
`pkgs.stdenv.hostPlatform.isDarwin`. Modules in `modules/programs/` and
`modules/services/` are auto-imported, so the platform condition should live
in the module behavior and in any platform-specific tests rather than in a
separate module discovery call.
Similarly, if you are adding a news entry then it should be shown only
to users that may find it relevant, see [News](news.md#sec-news) for a
description of conditional news.
## Mind the license {#sec-guidelines-licensing}
The Home Manager project is covered by the MIT license and we can only
accept contributions that fall under this license, or are licensed in a
compatible way. When you contribute self written code and documentation
it is assumed that you are doing so under the MIT license.
A potential gotcha with respect to licensing are option descriptions.
Often it is convenient to copy from the upstream software documentation.
When this is done it is important to verify that the license of the
upstream documentation allows redistribution under the terms of the MIT
license.
## Commits {#sec-commit-style}
The commits in your pull request should be reasonably self-contained,
that is, each commit should make sense in isolation. In particular, you
will be asked to amend any commit that introduces syntax errors or
similar problems even if they are fixed in a later commit.
Keep commits atomic and separated by concern. For example, a new
maintainer entry should be a separate first commit, and a shared module
should be committed separately from integrations in existing modules.
Pull requests should not include merge commits or fixup commits.
The commit messages should follow the [seven
rules](https://chris.beams.io/posts/git-commit/#seven-rules), except for
\"Capitalize the subject line\". We also ask you to include the affected
code component or module in the first line. That is, a commit message
should follow the template
{component}: {description}
{long description}
where `{component}` refers to the code component (or module) your change
affects, `{description}` is a very brief description of your change, and
`{long description}` is an optional clarifying description. As a rare
exception, if there is no clear component, or your change affects many
components, then the `{component}` part is optional. See
[example_title](#ex-commit-message) for a commit message that fulfills
these requirements.
## Example commit {#ex-commit-message}
The commit
[69f8e47e9e74c8d3d060ca22e18246b7f7d988ef](https://github.com/nix-community/home-manager/commit/69f8e47e9e74c8d3d060ca22e18246b7f7d988ef)
contains the commit message
```
starship: allow running in Emacs if vterm is used
The vterm buffer is backed by libvterm and can handle Starship prompts
without issues.
```
which ticks all the boxes necessary to be accepted in Home Manager.
Finally, when adding a new module, say `programs/foo.nix`, we use the
fixed commit format `foo: add module`. You can, of course, still include
a long description if you wish.
## Code Style {#sec-code-style}
The code in Home Manager is formatted by the [treefmt](https://treefmt.com) tool
and the formatting is checked in the pull request tests. Run `nix fmt` or
`treefmt` (with required formatters which can be found in `treefmt.toml` in your
`$PATH`) inside the project repository before submitting your pull request.
Keep lines at a reasonable width, ideally 80 characters or less. This
also applies to string literals.
We prefer `lowerCamelCase` for variable and attribute names with the
accepted exception of variables directly referencing packages in Nixpkgs
which use a hyphenated style. For example, the Home Manager option
`services.gpg-agent.enableSshSupport` references the `gpg-agent` package
in Nixpkgs.
+81
View File
@@ -0,0 +1,81 @@
# News {#sec-news}
Home Manager includes a system for presenting news to the user. When
making a change you, therefore, have the option to also include an
associated news entry. In general, a news entry should only be added for
truly noteworthy news. For example, a bug fix or new option does
generally not need a news entry.
Release notes and news entries serve different purposes. A news entry is
shown during Home Manager activation and is useful for day-to-day
communication about noteworthy changes, such as a new module, a new
feature, or a specific deprecation. Release notes are read from the
website documentation and should summarize what users need to know before
or during a stable-release upgrade. See
[Release Notes](release-notes.md#sec-contributing-release-notes) for guidance on changes
that affect stable-release upgrades.
If you do have a change worthy of a news entry then please add one in
[`news`](https://github.com/nix-community/home-manager/blob/master/modules/misc/news)
but you should follow some basic guidelines:
- Use the included news entry generator to create a news entry file:
``` shell
$ nix run .#create-news-entry
```
Alternatively, you can directly use the script:
``` shell
$ nix-shell -A dev --run modules/misc/news/create-news-entry.sh
```
This will create a new file inside the `modules/misc/news` directory
with some placeholder information that you can edit.
- The entry condition should be as specific as possible for changes
affecting existing functionality. For example, if you are changing
or deprecating a specific option then you could restrict the news to
those users who actually use this option. Prefer a targeted
condition over skipping useful news only to avoid notifying
unaffected users.
- Wrap the news message so that it will fit in the typical terminal,
that is, at most 80 characters wide. Ideally a bit less.
- Unlike commit messages, news will be read without any connection to
the Home Manager source code. It is therefore important to make the
message understandable in isolation and to those who do not have
knowledge of the Home Manager internals. To this end it should be
written in more descriptive, prose like way.
- If you refer to an option then write its full attribute path. That
is, instead of writing
The option 'foo' has been deprecated, please use 'bar' instead.
it should read
The option 'services.myservice.foo' has been deprecated, please
use 'services.myservice.bar' instead.
- A new module, say `foo.nix`, should always include a news entry that
has a message along the lines of
A new module is available: 'services.foo'.
Since this news announces newly available functionality, its
condition should not require `config.services.foo.enable`; otherwise
users who may want the new module will not see the news.
If the module is platform specific, e.g., a service module using
systemd, then a condition like
``` nix
condition = hostPlatform.isLinux;
```
should be added to avoid showing the news on unsupported platforms.
Use the `create-news-entry` generator described above to scaffold
this entry as part of your contribution.
+24
View File
@@ -0,0 +1,24 @@
# Release Notes {#sec-contributing-release-notes}
Home Manager release notes are published as part of the website documentation in
`docs/release-notes/rl-*.md`. They are intended for users migrating from one
stable release to another.
A change should be mentioned in the release notes when it affects migration
between stable releases. This includes changes that require user action or
awareness during an upgrade, such as:
- breaking changes;
- default changes guarded by `home.stateVersion`;
- required migration steps;
- broad behavior changes across platform or integration boundaries;
- compatibility changes that can affect existing configurations.
Do not use the presence or absence of a news entry to decide whether a change
belongs in the release notes. A change can require a news entry, a release note,
both, or neither.
When preparing a release, review the commits since the previous stable release
and update the upcoming release note file with the migration impact. Prefer
concise user-facing descriptions that name the affected option paths and explain
required action.
+252
View File
@@ -0,0 +1,252 @@
# Tests {#sec-tests}
Home Manager includes a basic test suite and it is highly recommended to
include at least one test when adding a module. Tests are typically in
the form of \"golden tests\" where, for example, a generated
configuration file is compared to a known correct file.
It is relatively easy to create tests by modeling the existing tests,
found in the `tests` project directory.
## Writing Basic Tests {#sec-tests-basic}
Home Manager tests use the **NMT** framework, which provides
a set of assertion functions to verify that modules generate the expected files
and configurations. Tests are written as Nix expressions that define both the
Home Manager configuration and the test assertions.
### Test Structure {#sec-tests-structure}
A basic test file structure looks like:
```nix
{
# Home Manager configuration
programs.myprogram = {
enable = true;
settings = {
option = "value";
};
};
# NMT test script with assertions
nmt.script = ''
assertFileExists "home-files/.config/myprogram/config.toml"
assertFileContent "home-files/.config/myprogram/config.toml" ${./expected-config.toml}
'';
}
```
### Test Organization {#sec-tests-organization}
Tests are organized in the `tests` directory structure:
- `tests/modules/programs/myprogram/default.nix` - Lists all test cases for the module
- `tests/modules/programs/myprogram/basic-configuration.nix` - A basic test case
- `tests/modules/programs/myprogram/expected-config.toml` - Expected output file
The `default.nix` file should list all test cases:
```nix
{
myprogram-basic-configuration = ./basic-configuration.nix;
myprogram-empty-settings = ./empty-settings.nix;
}
```
Prefer keeping related assertions in as few test files as practical.
Exercising several cases in one evaluation keeps the test suite cheaper
to evaluate and reduces maintenance burden. Split cases into separate
files when they need incompatible module configuration, platform
conditions, expected assertion failures, or otherwise cannot share one
evaluation.
### Common NMT Assertions {#sec-tests-assertions}
NMT provides several assertion functions:
- `assertFileExists "path"` - Verify a file was created
- `assertPathNotExists "path"` - Verify a file was NOT created
- `assertFileContent "path" expected-file` - Compare file contents
- `assertFileRegex "path" "regex"` - Check file matches regex
For a full reference to the functions available in test scripts, you can look at NMT's
[bash-lib](https://git.sr.ht/~rycee/nmt/tree/master/item/bash-lib).
### Practical Examples {#sec-tests-examples}
Here are some real-world examples of common test patterns:
**Testing that a configuration file is generated:**
```nix
{
programs.alacritty = {
enable = true;
settings.font.size = 12;
};
nmt.script = ''
assertFileExists "home-files/.config/alacritty/alacritty.yml"
assertFileContains "home-files/.config/alacritty/alacritty.yml" "size: 12"
'';
}
```
**Testing that no files are created when disabled:**
```nix
{
programs.alacritty.enable = false;
nmt.script = ''
assertPathNotExists "home-files/.config/alacritty"
'';
}
```
**Testing exact file content against expected output:**
```nix
{
programs.fastfetch = {
enable = true;
settings.display.color = "blue";
};
nmt.script =
let
configFile = "home-files/.config/fastfetch/config.jsonc";
in
''
assertFileExists "${configFile}"
assertFileContent "${configFile}" ${./expected-config.jsonc}
'';
}
```
**Testing multiple conditions in one test:**
```nix
{
programs.myprogram = {
enable = true;
configFile = "custom.conf";
extraConfig = "debug = true";
};
nmt.script = ''
assertFileExists "home-files/.config/myprogram/custom.conf"
assertFileRegex "home-files/.config/myprogram/custom.conf" "debug = true"
assertFileRegex "home-files/.config/myprogram/custom.conf" "^# Generated by Home Manager"
'';
}
```
### Platform-Specific Tests {#sec-tests-platform-specific}
When a module is platform-specific (Linux-only or Darwin-only), the test's `default.nix`
file should use `lib.optionalAttrs` to conditionally expose tests based on the platform.
This prevents evaluation errors on unsupported platforms during the test suite runs.
**Linux-only module tests:**
```nix
{ lib, pkgs, ... }:
lib.optionalAttrs pkgs.stdenv.hostPlatform.isLinux {
rofi-valid-config = ./valid-config.nix;
rofi-custom-theme = ./custom-theme.nix;
}
```
**Darwin-only module tests:**
```nix
{ lib, pkgs, ... }:
lib.optionalAttrs pkgs.stdenv.hostPlatform.isDarwin {
sketchybar-basic = ./basic-configuration.nix;
sketchybar-lua-config = ./lua-config.nix;
}
```
For cross-platform modules that have packages which need to be stubbed on Darwin,
add the package names to `tests/darwinScrublist.nix` to prevent build failures
during cross-platform test runs.
On Linux, packages are automatically scrubbed by the test infrastructure,
so tests should normally use the module's default package. Use
`test.stubs` or `config.lib.test.mkStubPackage` only when the automatic
scrubbing does not model the behavior that the test needs, such as a
package with additional files or a non-default executable layout.
## Using the tests command {#sec-tests-command}
Home Manager provides a convenient `tests` command for discovering and running tests:
``` shell
# List all available tests
$ nix run .#tests -- -l
# List tests matching a pattern
$ nix run .#tests -- -l alacritty
# Run all tests matching a pattern
$ nix run .#tests -- alacritty
# Run a specific test
$ nix run .#tests -- test-alacritty-empty-settings
# List integration tests
$ nix run .#tests -- -t -l
# Run all integration tests
$ nix run .#tests -- -t integration-test-
# Interactive test selection (requires fzf)
$ nix run .#tests -- -i
# Pass additional nix build flags
$ nix run .#tests -- alacritty -- --verbose
```
Integration tests are only exposed on Linux. On other platforms, integration
test discovery may report no matching tests.
## Manual test commands {#sec-tests-manual}
For advanced usage or CI environments, you can also run tests manually using nix build commands.
The full Home Manager test suite can be run by executing
``` shell
$ nix-build --pure --option allow-import-from-derivation false tests -A build.all
```
in the project root. List all test cases through
``` shell
$ nix run .#tests -- -l
```
and run an individual test, for example `alacritty-empty-settings`,
through
``` shell
$ nix-build --pure tests --option allow-import-from-derivation false -A build.alacritty-empty-settings
```
However, those invocations will impurely source the system's Nixpkgs,
and may cause failures. To run against the Nixpkgs from the `flake.lock` file,
use instead e.g.
``` shell
$ nix build .#test-all
```
or
``` shell
$ nix build .#test-alacritty-empty-settings
```
Some tests may be marked with `enableLegacyIfd`, those may be run by run with e.g.
``` shell
$ nix-build --pure tests --arg enableLegacyIfd true -A build.mytest
```
+10
View File
@@ -0,0 +1,10 @@
# Frequently Asked Questions (FAQ) {#ch-faq}
```{=include=} sections
faq/collision.md
faq/session-variables.md
faq/multiple-users-machines.md
faq/ca-desrt-dconf.md
faq/unstable.md
faq/change-package-module.md
```
+19
View File
@@ -0,0 +1,19 @@
# Why do I get an error message about `ca.desrt.dconf` or `dconf.service`? {#_why_do_i_get_an_error_message_about_literal_ca_desrt_dconf_literal_or_literal_dconf_service_literal}
You are most likely trying to configure something that uses dconf but
the DBus session is not aware of the dconf service. The full error you
might get is
error: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files
or
error: GDBus.Error:org.freedesktop.systemd1.NoSuchUnit: Unit dconf.service not found.
The solution on NixOS is to add
``` nix
programs.dconf.enable = true;
```
to your system configuration.
+117
View File
@@ -0,0 +1,117 @@
# How do I change the package used by a module? {#_how_do_i_change_the_package_used_by_a_module}
By default Home Manager will install the package provided by your chosen
`nixpkgs` channel but occasionally you might end up needing to change
this package. This can typically be done in two ways.
1. If the module provides a `package` option, such as
`programs.beets.package`, then this is the recommended way to
perform the change. For example,
``` nix
programs.beets.package = pkgs.beets.override { pluginOverrides = { beatport.enable = false; }; };
```
See [Nix pill 17](https://nixos.org/guides/nix-pills/nixpkgs-overriding-packages.html)
for more information on package overrides. Alternatively, if you want
to use the `beets` package from Nixpkgs unstable, then a configuration like
``` nix
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
programs.beets.package = pkgsUnstable.beets;
# …
}
```
should work OK. With flakes, pass the unstable package set as
described in
[How do I install packages from Nixpkgs unstable?](unstable.md#_how_do_i_install_packages_from_nixpkgs_unstable)
and then use the extra module argument:
``` nix
{ pkgsUnstable, ... }:
{
programs.beets.package = pkgsUnstable.beets;
# …
}
```
2. If no `package` option is available then you can typically change
the relevant package using an
[overlay](https://nixos.org/nixpkgs/manual/#chap-overlays).
For example, if you want to use the `programs.skim` module but use
the `skim` package from Nixpkgs unstable, then a configuration like
``` nix
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
programs.skim.enable = true;
nixpkgs.overlays = [
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
# …
}
```
should work OK.
The same Home Manager overlay works in a flake-based standalone
configuration if `pkgsUnstable` is passed to the Home Manager
module:
``` nix
{ pkgsUnstable, ... }:
{
programs.skim.enable = true;
nixpkgs.overlays = [
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
# …
}
```
This also works when Home Manager is used as a NixOS or nix-darwin
module without `home-manager.useGlobalPkgs = true`. If
`home-manager.useGlobalPkgs = true` is enabled, Home Manager uses
the system package set and the `nixpkgs.*` options inside Home
Manager are disabled. In that case, put the overlay in the system
configuration instead, for example:
``` nix
{ pkgsUnstable, ... }:
{
nixpkgs.overlays = [
(_final: _prev: {
skim = pkgsUnstable.skim;
})
];
}
```
In a flake-based NixOS or nix-darwin configuration, pass
`pkgsUnstable` to `nixosSystem` or `darwinSystem` with
`specialArgs`.
+47
View File
@@ -0,0 +1,47 @@
# Why is there a collision error when switching generation? {#_why_is_there_a_collision_error_when_switching_generation}
Home Manager currently installs packages into the user environment,
precisely as if the packages were installed through `nix-env --install`.
This means that you will get a collision error if your Home Manager
configuration attempts to install a package that you already have
installed manually, that is, packages that shows up when you run
`nix-env --query`.
For example, imagine you have the `hello` package installed in your
environment
``` shell
$ nix-env --query
hello-2.10
```
and your Home Manager configuration contains
``` nix
home.packages = [ pkgs.hello ];
```
Then attempting to switch to this configuration will result in an error
similar to
``` shell
$ home-manager switch
these derivations will be built:
/nix/store/xg69wsnd1rp8xgs9qfsjal017nf0ldhm-home-manager-path.drv
[…]
Activating installPackages
replacing old home-manager-path
installing home-manager-path
building path(s) /nix/store/b5c0asjz9f06l52l9812w6k39ifr49jj-user-environment
Wide character in die at /nix/store/64jc9gd2rkbgdb4yjx3nrgc91bpjj5ky-buildenv.pl line 79.
collision between /nix/store/fmwa4axzghz11cnln5absh31nbhs9lq1-home-manager-path/bin/hello and /nix/store/c2wyl8b9p4afivpcz8jplc9kis8rj36d-hello-2.10/bin/hello; use nix-env --set-flag priority NUMBER PKGNAME to change the priority of one of the conflicting packages
builder for /nix/store/b37x3s7pzxbasfqhaca5dqbf3pjjw0ip-user-environment.drv failed with exit code 2
error: build of /nix/store/b37x3s7pzxbasfqhaca5dqbf3pjjw0ip-user-environment.drv failed
```
The solution is typically to uninstall the package from the environment
using `nix-env --uninstall` and reattempt the Home Manager generation
switch.
You could also opt to uninstall *all* of the packages from your profile
with `nix-env --uninstall '*'`.
@@ -0,0 +1,39 @@
# How to set up a configuration for multiple users/machines? {#_how_to_set_up_a_configuration_for_multiple_users_machines}
A typical way to prepare a repository of configurations for multiple
logins and machines is to prepare one \"top-level\" file for each unique
combination.
For example, if you have two machines, called \"kronos\" and \"rhea\" on
which you want to configure your user \"jane\" then you could create the
files
- `kronos-jane.nix`,
- `rhea-jane.nix`, and
- `common.nix`
in your repository. On the kronos and rhea machines you can then make
`~jane/.config/home-manager/home.nix` be a symbolic link to the
corresponding file in your configuration repository.
The `kronos-jane.nix` and `rhea-jane.nix` files follow the format
``` nix
{ ... }:
{
imports = [ ./common.nix ];
# Various options that are specific for this machine/user.
}
```
while the `common.nix` file contains configuration shared across the two
logins. Of course, instead of just a single `common.nix` file you can
have multiple ones, even one per program or service.
You can get some inspiration from the [Post your home-manager home.nix
file!](https://www.reddit.com/r/NixOS/comments/9bb9h9/post_your_homemanager_homenix_file/)
Reddit thread.
+27
View File
@@ -0,0 +1,27 @@
# Why are the session variables not set? {#_why_are_the_session_variables_not_set}
Home Manager is only able to set session variables automatically if it
manages your Bash, Z shell, or fish shell configuration. To enable such
management you use [programs.bash.enable](#opt-programs.bash.enable),
[programs.zsh.enable](#opt-programs.zsh.enable), or [programs.fish.enable](#opt-programs.fish.enable).
If you don't want to let Home Manager manage your shell then you will
have to manually source the
`~/.nix-profile/etc/profile.d/hm-session-vars.sh` file in an appropriate
way. In Bash and Z shell this can be done by adding
``` bash
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
```
to your `.profile` and `.zshrc` files, respectively. The
`hm-session-vars.sh` file should work in most Bourne-like shells. For
fish shell, it is possible to source it using [the foreign-env
plugin](https://github.com/oh-my-fish/plugin-foreign-env) or using the builtin
[babelfish](https://github.com/bouk/babelfish)-translated variables:
``` bash
fenv source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" > /dev/null
# or
source "$HOME/.nix-profile/etc/profile.d/hm-session-vars.fish"
```
+111
View File
@@ -0,0 +1,111 @@
# How do I install packages from Nixpkgs unstable? {#_how_do_i_install_packages_from_nixpkgs_unstable}
If you are using a stable version of Nixpkgs but would like to install
some particular packages from Nixpkgs unstable -- or some other channel
-- then you can import the unstable Nixpkgs and refer to its packages
within your configuration.
With channels, something like
``` nix
{ pkgs, config, ... }:
let
pkgsUnstable = import <nixpkgs-unstable> {};
in
{
home.packages = [
pkgsUnstable.foo
];
# …
}
```
should work provided you have a Nix channel called `nixpkgs-unstable`.
You can add the `nixpkgs-unstable` channel by running
``` shell
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable nixpkgs-unstable
$ nix-channel --update
```
With flakes, add another Nixpkgs input and pass its packages to your
Home Manager modules. For example, a standalone Home Manager flake can
define the following. Replace 25.11 with the release branch your
configuration follows.
``` nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager/release-25.11";
};
outputs =
{ nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
# Replace this with the system of your Home Manager configuration.
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
in
{
homeConfigurations.jdoe = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
extraSpecialArgs = { inherit pkgsUnstable; };
modules = [ ./home.nix ];
};
};
}
```
and then use the extra argument in `home.nix`:
``` nix
{ pkgsUnstable, ... }:
{
home.packages = [
pkgsUnstable.foo
];
}
```
When Home Manager is used as a NixOS or nix-darwin module, pass the
extra package set with `home-manager.extraSpecialArgs` in the system
configuration:
``` nix
outputs =
{ nixpkgs, nixpkgs-unstable, home-manager, ... }:
let
# Replace this with the system of your NixOS or nix-darwin configuration.
system = "x86_64-linux";
in
{
nixosConfigurations.hostname = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
home-manager.nixosModules.home-manager
({ config, ... }: {
home-manager.extraSpecialArgs = {
pkgsUnstable = import nixpkgs-unstable {
inherit system;
config = config.nixpkgs.config;
overlays = config.nixpkgs.overlays;
};
# If you use a stock Nixpkgs configuration, you can use:
# pkgsUnstable = nixpkgs-unstable.legacyPackages.${system};
};
})
];
};
};
```
The nix-darwin setup is the same pattern with
`darwin.lib.darwinSystem` and
`home-manager.darwinModules.home-manager`.
+35
View File
@@ -0,0 +1,35 @@
# Installing Home Manager {#ch-installation}
Home Manager can be used in three primary ways:
1. Using the standalone `home-manager` tool. For platforms other than
NixOS and Darwin, this is the only available choice. It is also
recommended for people on NixOS or Darwin that want to manage their
home directory independently of the system as a whole. See
[Standalone installation](installation/standalone.md#sec-install-standalone) for instructions
on how to perform this installation.
2. As a module within a NixOS system configuration. This allows the
user profiles to be built together with the system when running
`nixos-rebuild`. See [NixOS module](installation/nixos.md#sec-install-nixos-module) for a
description of this setup.
3. As a module within a
[nix-darwin](https://github.com/nix-darwin/nix-darwin/) system
configuration. This allows the user profiles to be built together
with the system when running `darwin-rebuild`. See [nix-darwin
module](installation/nix-darwin.md#sec-install-nix-darwin-module) for a description of this
setup.
:::{.note}
In this chapter we describe how to install Home Manager in the standard
way using channels. If you prefer to use [Nix
Flakes](https://wiki.nixos.org/wiki/Flakes) then please see the instructions
in [nix flakes](nix-flakes.md#ch-nix-flakes).
:::
```{=include=} sections
installation/standalone.md
installation/nixos.md
installation/nix-darwin.md
```
+128
View File
@@ -0,0 +1,128 @@
# nix-darwin module {#sec-install-nix-darwin-module}
Home Manager provides a module that allows you to prepare user
environments directly from the
[nix-darwin](https://github.com/nix-darwin/nix-darwin/) configuration file,
which often is more convenient than using the `home-manager` tool.
To make the nix-darwin module available for use you must `import` it
into your system configuration. This is most conveniently done by adding
a Home Manager channel. For example, if you are following Nixpkgs master
or an unstable channel, you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ nix-channel --update
```
and if you follow a Nixpkgs version 26.05 channel, you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ nix-channel --update
```
It is then possible to add
``` nix
imports = [ <home-manager/nix-darwin> ];
```
to your nix-darwin `configuration.nix` file, which will introduce a
`home-manager.users` option whose type is an attribute set that maps
user names to Home Manager configurations.
For example, a nix-darwin configuration may include the lines
``` nix
users.users.eve = {
name = "eve";
home = "/Users/eve";
};
home-manager.users.eve = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "26.05";
};
```
and after a `darwin-rebuild switch` the user eve's environment should
include a basic Bash configuration and the packages atool and httpie.
Home Manager activation runs as part of nix-darwin activation for each
configured user.
If you do not plan on having Home Manager manage your shell
configuration then you must add either
``` bash
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
```
or
``` bash
. "/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh"
```
to your shell configuration, depending on whether
[home-manager.useUserPackages](#nix-darwin-opt-home-manager.useUserPackages) is enabled. This
file can be sourced directly by POSIX.2-like shells such as
[Bash](https://www.gnu.org/software/bash/) or [Z
shell](http://zsh.sourceforge.net/). [Fish](https://fishshell.com) users
can use utilities such as
[foreign-env](https://github.com/oh-my-fish/plugin-foreign-env) or
[babelfish](https://github.com/bouk/babelfish).
:::{.note}
By default user packages will not be ignored in favor of
`environment.systemPackages`, but they will be installed to
`/etc/profiles/per-user/$USERNAME` if
``` nix
home-manager.useUserPackages = true;
```
is added to the nix-darwin configuration. This option may become the
default value in the future.
:::
:::{.note}
By default, Home Manager uses a private `pkgs` instance that is
configured via the `home-manager.users.<name>.nixpkgs` options. To
instead use the global `pkgs` that is configured via the system level
`nixpkgs` options, set
``` nix
home-manager.useGlobalPkgs = true;
```
This saves an extra Nixpkgs evaluation, adds consistency, and removes
the dependency on `NIX_PATH`, which is otherwise used for importing
Nixpkgs.
:::
:::{.note}
Home Manager passes extra module arguments to each
`home-manager.users.<name>` module:
``` nix
{ lib, pkgs, osConfig, darwinConfig, osClass, modulesPath, ... }:
```
Here `osConfig` contains the system's nix-darwin configuration and
`darwinConfig` is a Darwin-specific alias for the same value. The `lib`
argument is Home Manager's extended library. You can pass additional module
arguments with `home-manager.extraSpecialArgs`.
:::
:::{.note}
Use `home-manager.sharedModules` to add Home Manager modules to every user
declared under `home-manager.users`.
:::
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+175
View File
@@ -0,0 +1,175 @@
# NixOS module {#sec-install-nixos-module}
Home Manager provides a NixOS module that allows you to prepare user
environments directly from the system configuration file, which often is
more convenient than using the `home-manager` tool. It also opens up
additional possibilities, for example, to automatically configure user
environments in NixOS declarative containers or on systems deployed
through NixOps.
To make the NixOS module available for use you must `import` it into
your system configuration. This is most conveniently done by adding a
Home Manager channel to the root user. For example, if you are following
Nixpkgs master or an unstable channel, you can run
``` shell
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ sudo nix-channel --update
```
and if you follow a Nixpkgs version 26.05 channel, you can run
``` shell
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ sudo nix-channel --update
```
It is then possible to add
``` nix
imports = [ <home-manager/nixos> ];
```
to your system `configuration.nix` file, which will introduce a new
NixOS option called `home-manager.users` whose type is an attribute set
that maps user names to Home Manager configurations.
Alternatively, home-manager installation can be done declaratively through configuration.nix using the following syntax:
```nix
{ config, pkgs, lib, ... }:
let
home-manager = builtins.fetchTarball https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz;
in
{
imports =
[
(import "${home-manager}/nixos")
];
users.users.eve.isNormalUser = true;
home-manager.users.eve = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
# The state version is required and should stay at the version you
# originally installed.
home.stateVersion = "26.05";
};
}
```
For example, a NixOS configuration may include the lines
``` nix
users.users.eve.isNormalUser = true;
home-manager.users.eve = { pkgs, ... }: {
home.packages = [ pkgs.atool pkgs.httpie ];
programs.bash.enable = true;
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "26.05"; # Please read the comment before changing.
};
```
and after a `sudo nixos-rebuild switch` the user eve's environment
should include a basic Bash configuration and the packages atool and
httpie.
:::{.note}
If `nixos-rebuild switch` does not result in the environment you expect,
then the service to inspect depends on the activation mode.
By default, Home Manager activates each configured user during boot and
system rebuilds through a NixOS system service:
``` shell
$ systemctl status "home-manager-$USER.service"
```
If `home-manager.startAsUserService = true` is set, Home Manager instead
activates through the user's systemd service:
``` shell
$ systemctl --user status home-manager.service
```
:::
If you do not plan on having Home Manager manage your shell
configuration then you must add either
``` bash
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
```
or
``` bash
. "/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh"
```
to your shell configuration, depending on whether
[home-manager.useUserPackages](#nixos-opt-home-manager.useUserPackages) is enabled. This file can
be sourced directly by POSIX.2-like shells such as
[Bash](https://www.gnu.org/software/bash/) or [Z
shell](http://zsh.sourceforge.net/). [Fish](https://fishshell.com) users
can use utilities such as
[foreign-env](https://github.com/oh-my-fish/plugin-foreign-env) or
[babelfish](https://github.com/bouk/babelfish).
:::{.note}
By default packages will be installed to `$HOME/.nix-profile` but they
can be installed to `/etc/profiles` if
``` nix
home-manager.useUserPackages = true;
```
is added to the system configuration. This is necessary if, for example,
you wish to use `nixos-rebuild build-vm`. This option may become the
default value in the future.
:::
:::{.note}
By default, Home Manager uses a private `pkgs` instance that is
configured via the `home-manager.users.<name>.nixpkgs` options. To
instead use the global `pkgs` that is configured via the system level
`nixpkgs` options, set
``` nix
home-manager.useGlobalPkgs = true;
```
This saves an extra Nixpkgs evaluation, adds consistency, and removes
the dependency on `NIX_PATH`, which is otherwise used for importing
Nixpkgs.
:::
:::{.note}
Home Manager passes extra module arguments to each
`home-manager.users.<name>` module:
``` nix
{ lib, pkgs, osConfig, nixosConfig, osClass, modulesPath, ... }:
```
Here `osConfig` contains the system's NixOS configuration and `nixosConfig`
is a NixOS-specific alias for the same value. The `lib` argument is Home
Manager's extended library. You can pass additional module arguments with
`home-manager.extraSpecialArgs`.
:::
:::{.note}
Use `home-manager.sharedModules` to add Home Manager modules to every user
declared under `home-manager.users`.
:::
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+75
View File
@@ -0,0 +1,75 @@
# Standalone installation {#sec-install-standalone}
1. Make sure you have a working Nix installation. Specifically, make
sure that your user is able to build and install Nix packages. For
example, you should be able to successfully run a command like
`nix-instantiate '<nixpkgs>' -A hello` without having to switch to
the root user. For a multi-user install of Nix this means that your
user must be covered by the
[`allowed-users`](https://nixos.org/nix/manual/#conf-allowed-users)
Nix option. On NixOS you can control this option using the
[`nix.settings.allowed-users`](https://nixos.org/manual/nixos/stable/options.html#opt-nix.settings.allowed-users)
system option.
2. Add the appropriate Home Manager channel. If you are following
Nixpkgs master or an unstable channel you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/master.tar.gz home-manager
$ nix-channel --update
```
and if you follow a Nixpkgs version 26.05 channel you can run
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-26.05.tar.gz home-manager
$ nix-channel --update
```
3. Run the Home Manager installation command and create the first Home
Manager generation:
``` shell
$ nix-shell '<home-manager>' -A install
```
Once finished, Home Manager should be active and available in your
user environment.
4. If you do not plan on having Home Manager manage your shell
configuration then you must source the
``` bash
$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh
```
file in your shell configuration. Alternatively source
``` bash
/etc/profiles/per-user/$USER/etc/profile.d/hm-session-vars.sh
```
when managing home configuration together with system configuration.
This file can be sourced directly by POSIX.2-like shells such as
[Bash](https://www.gnu.org/software/bash/) or [Z
shell](http://zsh.sourceforge.net/). [Fish](https://fishshell.com)
users can use utilities such as
[foreign-env](https://github.com/oh-my-fish/plugin-foreign-env) or
[babelfish](https://github.com/bouk/babelfish).
For example, if you use Bash then add
``` bash
. "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh"
```
to your `~/.profile` file.
If instead of using channels you want to run Home Manager from a Git
checkout of the repository then you can use the
[home-manager.path](#opt-programs.home-manager.path) option to specify the absolute
path to the repository.
Once installed you can see [Using Home Manager](../usage.md#ch-usage) for a more detailed
description of Home Manager and how to use it.
+11
View File
@@ -0,0 +1,11 @@
# Home Manager Internals {#ch-internals}
This chapter collects some documentation about the internal workings
of Home Manager. The information here is mostly aimed to developers of
Home Manager and those who do non-trivial integration with Home
Manager.
```{=include=} sections
internals/activation.md
```
+40
View File
@@ -0,0 +1,40 @@
# Activation {#sec-internals-activation}
Activating a Home Manager configuration ensures that the built
configuration is introduced into the user's environment. The
activation is performed by a suitably named script
{command}`activate`. This script is generated as part of the
configuration build and is placed in the root of the build output.
The activation script is implemented in the Bash language and consists
of initialization code followed by a number of _activation script
blocks_. These blocks are specified using the
[home.activation](#opt-home.activation) option. The blocks may have
dependencies among themselves and the generated activation script will
contain the blocks serialized such that the dependencies are
satisfied. A dependency cycle causes a failure when the configuration
is built.
Historically, the activation script has been responsible for creating
a new generation of the `home-manager` Nix profile. The more modern
way, however, is to let the _activation driver_ that is, the
software calling the activation script manage the profile. Indeed,
in some cases we may not have a `home-manager` profile at all! This is
the case when Home Manager is used as a NixOS or nix-darwin module, in
these cases the system profile will contain references to the
corresponding Home Manager configurations.
Note, to maintain backwards compatibility, the old activation script
behavior is still the default. To choose the new mode of operation you
have to call the activation script with the command line option
`--driver-version 1`. The old behavior is available using
`--driver-version 0`, or simply omit it entirely.
Unfortunately, driver software need to support both modes of operation
for the time being since a user may wish to activate an old generation
that contains an activation script that does not support
`--driver-version`. To determine whether support is available, check
the {file}`gen-version` file in the configuration build output root.
If the file is missing then the activation script does not support
`--driver-version`. If the file exists and contains the integer 1 or
higher, then `--driver-version 1` is supported.
+32
View File
@@ -0,0 +1,32 @@
# Introduction to Home Manager {#ch-introduction}
Home Manager is a [Nix](https://nix.dev/)-powered tool for reproducible management of the contents of users' home directories.
This includes programs, configuration files, environment variables and, well… arbitrary files.
The following example snippet of Nix code:
```nix
programs.git = {
enable = true;
userEmail = "joe@example.org";
userName = "joe";
};
```
would make available to a user the `git` executable and man pages and a configuration file `~/.config/git/config`:
```ini
[user]
email = "joe@example.org"
name = "joe"
```
Since Home Manager is implemented in Nix, it provides several benefits:
- Contents are reproducible — a home will be the exact same every time it is built, unless of course, an intentional change is made.
This also means you can have the exact same home on different hosts.
- Significantly faster and more powerful than various backup strategies.
- Unlike "dotfiles" repositories, Home Manager supports specifying programs, as well as their configurations.
- Supported by <http://cache.nixos.org/>, so that you don't have to build from source.
- If you do want to build some programs from source, there is hardly a tool more useful than Nix for that, and the build instructions can be neatly integrated in your Home Manager usage.
- Infinitely composable, so that values in different configuration files and build instructions can share a source of truth.
- Connects you with the [most extensive](https://repology.org/repositories/statistics/total) and [most up-to-date](https://repology.org/repositories/statistics/newest) software package repository on earth, [Nixpkgs](https://github.com/NixOS/nixpkgs).
+32
View File
@@ -0,0 +1,32 @@
{
"gnunet.conf(5)": "https://docs.gnunet.org/users/configuration.html",
"mpd(1)": "https://mpd.readthedocs.io/en/latest/mpd.1.html",
"mpd.conf(5)": "https://mpd.readthedocs.io/en/latest/mpd.conf.5.html",
"nix.conf(5)": "https://nixos.org/manual/nix/stable/command-ref/conf-file.html",
"journald.conf(5)": "https://www.freedesktop.org/software/systemd/man/journald.conf.html",
"logind.conf(5)": "https://www.freedesktop.org/software/systemd/man/logind.conf.html",
"networkd.conf(5)": "https://www.freedesktop.org/software/systemd/man/networkd.conf.html",
"systemd.automount(5)": "https://www.freedesktop.org/software/systemd/man/systemd.automount.html",
"systemd.exec(5)": "https://www.freedesktop.org/software/systemd/man/systemd.exec.html",
"systemd.link(5)": "https://www.freedesktop.org/software/systemd/man/systemd.link.html",
"systemd.mount(5)": "https://www.freedesktop.org/software/systemd/man/systemd.mount.html",
"systemd.netdev(5)": "https://www.freedesktop.org/software/systemd/man/systemd.netdev.html",
"systemd.network(5)": "https://www.freedesktop.org/software/systemd/man/systemd.network.html",
"systemd.nspawn(5)": "https://www.freedesktop.org/software/systemd/man/systemd.nspawn.html",
"systemd.path(5)": "https://www.freedesktop.org/software/systemd/man/systemd.path.html",
"systemd.resource-control(5)": "https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html",
"systemd.scope(5)": "https://www.freedesktop.org/software/systemd/man/systemd.scope.html",
"systemd.service(5)": "https://www.freedesktop.org/software/systemd/man/systemd.service.html",
"systemd.slice(5)": "https://www.freedesktop.org/software/systemd/man/systemd.slice.html",
"systemd.socket(5)": "https://www.freedesktop.org/software/systemd/man/systemd.socket.html",
"systemd.timer(5)": "https://www.freedesktop.org/software/systemd/man/systemd.timer.html",
"systemd.unit(5)": "https://www.freedesktop.org/software/systemd/man/systemd.unit.html",
"systemd-system.conf(5)": "https://www.freedesktop.org/software/systemd/man/systemd-system.conf.html",
"systemd-user.conf(5)": "https://www.freedesktop.org/software/systemd/man/systemd-user.conf.html",
"timesyncd.conf(5)": "https://www.freedesktop.org/software/systemd/man/timesyncd.conf.html",
"tmpfiles.d(5)": "https://www.freedesktop.org/software/systemd/man/tmpfiles.d.html",
"systemd.time(7)": "https://www.freedesktop.org/software/systemd/man/systemd.time.html",
"systemd-fstab-generator(8)": "https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html",
"systemd-networkd-wait-online.service(8)": "https://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html"
}
+35
View File
@@ -0,0 +1,35 @@
# Home Manager Manual {#home-manager-manual}
## Version 26.11 (unstable)
```{=include=} preface
preface.md
```
```{=include=} parts
introduction.md
installation.md
usage.md
nix-flakes.md
writing-modules.md
contributing.md
internals.md
3rd-party.md
faq.md
```
```{=include=} appendix html:into-file=//options.xhtml
options.md
```
```{=include=} appendix html:into-file=//nixos-options.xhtml
nixos-options.md
```
```{=include=} appendix html:into-file=//nix-darwin-options.xhtml
nix-darwin-options.md
```
```{=include=} appendix html:into-file=//release-notes.xhtml
release-notes/release-notes.md
```
+7
View File
@@ -0,0 +1,7 @@
# nix-darwin Configuration Options {#ch-nix-darwin-options}
```{=include=} options
id-prefix: nix-darwin-opt-
list-id: nix-darwin-options
source: @OPTIONS_JSON@
```
+56
View File
@@ -0,0 +1,56 @@
# Nix Flakes {#ch-nix-flakes}
Home Manager is compatible with [Nix
Flakes](https://wiki.nixos.org/wiki/Flakes). But please be aware that this
support is still experimental and may change in backwards
incompatible ways.
Just like in the standard installation you can use the Home Manager
flake in three ways:
1. Using the standalone `home-manager` tool. For platforms other than
NixOS and Darwin, this is the only available choice. It is also
recommended for people on NixOS or Darwin that want to manage their
home directory independently of the system as a whole. See
[Standalone setup](nix-flakes/standalone.md#sec-flakes-standalone) for instructions on how
to perform this installation.
2. As a module within a NixOS system configuration. This allows the
user profiles to be built together with the system when running
`nixos-rebuild`. See [NixOS module](nix-flakes/nixos.md#sec-flakes-nixos-module) for a
description of this setup.
3. As a module within a [nix-darwin](https://github.com/nix-darwin/nix-darwin/)
system configuration. This allows the user profiles to be built
together with the system when running `darwin-rebuild`. See
[nix-darwin module](nix-flakes/nix-darwin.md#sec-flakes-nix-darwin-module) for a
description of this setup.
Advanced users may want Home Manager's `nixpkgs` input to follow the
same Nixpkgs input as the rest of their flake. This avoids a second
Nixpkgs input and makes Home Manager use the same pinned Nixpkgs source
revision as the rest of the configuration:
``` nix
home-manager.inputs.nixpkgs.follows = "nixpkgs";
```
This removes the compatibility assumption between Home Manager and the
Nixpkgs revision in Home Manager's own lock file, so use it carefully,
especially when tracking unstable branches.
This does not by itself make Home Manager use the same `pkgs` value as
your NixOS or nix-darwin system. In NixOS and nix-darwin module setups,
`home-manager.useGlobalPkgs = true` controls that behavior by making
Home Manager modules receive the system `pkgs` value. When
`home-manager.useGlobalPkgs` is enabled, configure Nixpkgs overlays and
configuration at the system level instead of through Home Manager
`nixpkgs.*` options.
```{=include=} sections
nix-flakes/prerequisites.md
nix-flakes/standalone.md
nix-flakes/nixos.md
nix-flakes/nix-darwin.md
nix-flakes/flake-parts.md
```
+63
View File
@@ -0,0 +1,63 @@
# flake-parts module {#sec-flakes-flake-parts-module}
When using [flake-parts](https://flake.parts) you may wish to import Home
Manager's flake module, `flakeModules.home-manager`.
```nix
{
description = "flake-parts configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
flake-parts.url = "github:hercules-ci/flake-parts";
};
outputs = inputs@{
flake-parts,
home-manager,
nixpkgs,
...
}:
flake-parts.lib.mkFlake { inherit inputs; } {
imports = [
# Import home-manager's flake module
inputs.home-manager.flakeModules.home-manager
];
flake = {
# Reusable Home Manager module.
homeModules.bash= { pkgs, ... }: {
programs.bash = {
enable = true;
shellAliases = {
ll = "ls -l";
};
};
home.packages = [ pkgs.hello ];
};
# Concrete Home Manager configuration.
homeConfigurations.alice = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { system = "x86_64-linux"; };
modules = [
inputs.self.homeModules.bash
{
home.username = "alice";
home.homeDirectory = "/home/alice";
home.stateVersion = "25.11";
}
];
};
};
# See flake.parts for more features, such as `perSystem`
};
}
```
The flake module defines the `flake.homeModules` and `flake.homeConfigurations`
options, allowing them to be properly merged if they are defined in multiple
modules.
If you are only defining `homeModules` and/or `homeConfigurations` once in a
single module, flake-parts should work fine without importing
`flakeModules.home-manager`.
+59
View File
@@ -0,0 +1,59 @@
# nix-darwin module {#sec-flakes-nix-darwin-module}
The flake-based setup of the Home Manager nix-darwin module is similar
to that of NixOS. The `flake.nix` would be:
``` nix
{
description = "Darwin configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
darwin.url = "github:nix-darwin/nix-darwin";
darwin.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
};
outputs = inputs@{ nixpkgs, home-manager, darwin, ... }: {
darwinConfigurations = {
hostname = darwin.lib.darwinSystem {
system = "x86_64-darwin";
modules = [
./configuration.nix
home-manager.darwinModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.jdoe = ./home.nix;
}
];
};
};
};
}
```
Use `home-manager.extraSpecialArgs` to pass arguments from your flake to
`home.nix` and any imported Home Manager modules. For example, the
configuration above makes the complete `inputs` attrset available to modules,
so they can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer
`home-manager.extraSpecialArgs`.
Use `home-manager.sharedModules` for Home Manager modules or settings that
should be imported by every user declared in `home-manager.users`.
The Home Manager configuration is also rebuilt with the nix-darwin
generations. The rebuild command here may be
`darwin-rebuild switch --flake ~/.config/darwin`.
You can use the above `flake.nix` as a template in `~/.config/darwin` by
``` shell
$ nix flake new ~/.config/darwin -t github:nix-community/home-manager#nix-darwin
```
+61
View File
@@ -0,0 +1,61 @@
# NixOS module {#sec-flakes-nixos-module}
To use Home Manager as a NixOS module, a bare-minimum `flake.nix` would
be as follows:
``` nix
{
description = "NixOS configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
};
outputs = inputs@{ nixpkgs, home-manager, ... }: {
nixosConfigurations = {
hostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.jdoe = ./home.nix;
}
];
};
};
};
}
```
Use `home-manager.extraSpecialArgs` to pass arguments from your flake to
`home.nix` and any imported Home Manager modules. For example, the
configuration above makes the complete `inputs` attrset available to modules,
so they can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer
`home-manager.extraSpecialArgs`.
Use `home-manager.sharedModules` for Home Manager modules or settings that
should be imported by every user declared in `home-manager.users`.
The Home Manager configuration is then part of the NixOS configuration
and is automatically rebuilt with the system when using the appropriate
command for the system, such as
``` shell
$ nixos-rebuild switch --flake /etc/nixos
```
You can use the above `flake.nix` as a template in `/etc/nixos` by
``` shell
$ nix flake new /etc/nixos -t github:nix-community/home-manager#nixos
```
+37
View File
@@ -0,0 +1,37 @@
# Prerequisites {#sec-flakes-prerequisites}
- Install Nix 2.4 or later, or have it in `nix-shell`.
- Enable experimental features `nix-command` and `flakes`.
- When using NixOS, add the following to your `configuration.nix`
and rebuild your system.
``` nix
nix.settings.experimental-features = "nix-command flakes";
```
- If you are not using NixOS, add the following to `nix.conf`
(located at `~/.config/nix/` or `/etc/nix/nix.conf`).
``` bash
experimental-features = nix-command flakes
```
You may need to restart the Nix daemon with, for example,
`sudo systemctl restart nix-daemon.service`.
- Alternatively, you can enable flakes on a per-command basis with
the following additional flags to `nix` and `home-manager`:
``` shell
$ nix --extra-experimental-features "nix-command flakes" <sub-commands>
$ home-manager --extra-experimental-features "nix-command flakes" <sub-commands>
```
- Prepare your Home Manager configuration (`home.nix`).
Unlike the channel-based setup, `home.nix` will be evaluated when
the flake is built, so it must be present before bootstrap of Home
Manager from the flake. See [Configuration Example](../usage/configuration.md#sec-usage-configuration) for
introduction about writing a Home Manager configuration.
+90
View File
@@ -0,0 +1,90 @@
# Standalone setup {#sec-flakes-standalone}
To prepare an initial Home Manager configuration for your logged in
user, you can run the Home Manager `init` command directly from its
flake.
For example, if you are using the unstable version of Nixpkgs or NixOS,
then to generate and activate a basic configuration run the command
``` shell
$ nix run home-manager/master -- init --switch
```
For Nixpkgs or NixOS version 26.05 run
``` shell
$ nix run home-manager/release-26.05 -- init --switch
```
This will generate a `flake.nix` and a `home.nix` file in
`~/.config/home-manager`, creating the directory if it does not exist.
If you need to pass additional values from your flake to `home.nix` or any
imported Home Manager modules, use `extraSpecialArgs` in the call to
`home-manager.lib.homeManagerConfiguration`:
``` nix
{
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
home-manager.url = "github:nix-community/home-manager";
};
outputs = inputs@{ nixpkgs, home-manager, ... }: {
homeConfigurations.jdoe = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
extraSpecialArgs = { inherit inputs; };
modules = [ ./home.nix ];
};
};
}
```
Any attribute in `extraSpecialArgs` becomes a module argument, so `home.nix`
or imported modules can declare arguments such as `{ inputs, ... }:`.
The lower-level mechanism behind this is `_module.args`. Set
`_module.args.<name>` from inside a module only when you need to provide a
module argument from within the module graph itself. For values that originate
outside the module graph, such as flake inputs, prefer `extraSpecialArgs`.
If you omit the `--switch` option then the activation will not happen.
This is useful if you want to inspect and edit the configuration before
activating it.
``` shell
$ nix run home-manager/$branch -- init
$ # Edit files in ~/.config/home-manager
$ nix run home-manager/$branch -- init --switch
```
Where `$branch` is one of `master` or `release-26.05`.
After the initial activation has completed successfully then building
and activating your flake-based configuration is as simple as
``` shell
$ home-manager switch
```
It is possible to override the default configuration directory, if you
want. For example,
``` shell
$ nix run home-manager/$branch -- init --switch ~/hmconf
$ # And after the initial activation.
$ home-manager switch --flake ~/hmconf
```
::: {.note}
The flake inputs are not automatically updated by Home Manager. Update
the lock file with `nix flake update` before switching if you want to
use newer input revisions.
If you only want to update specific flake inputs, name them explicitly,
for example `nix flake update nixpkgs home-manager`.
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
:::
+7
View File
@@ -0,0 +1,7 @@
# NixOS Configuration Options {#ch-nixos-options}
```{=include=} options
id-prefix: nixos-opt-
list-id: nixos-options
source: @OPTIONS_JSON@
```
+7
View File
@@ -0,0 +1,7 @@
# Home Manager Configuration Options {#ch-options}
```{=include=} options
id-prefix: opt-
list-id: home-manager-options
source: @OPTIONS_JSON@
```
+20
View File
@@ -0,0 +1,20 @@
# Preface {#preface}
This manual will eventually describe how to install, use, and extend Home
Manager.
If you encounter problems then please reach out on the IRC channel
[#home-manager](https://webchat.oftc.net/?channels=home-manager)
hosted by [OFTC](https://oftc.net/).
There is also a [Matrix room](https://matrix.to/#/%23hm:rycee.net),
which is bridged to the IRC channel.
If your problem is caused by a bug in Home Manager then it should
be reported on the
[Home Manager issue tracker](https://github.com/nix-community/home-manager/issues).
:::{.note}
Commands prefixed with `$ sudo` have to be run as root, either
requiring to login as root user or temporarily switching to it using
`sudo` for example.
:::
+66
View File
@@ -0,0 +1,66 @@
# Using Home Manager {#ch-usage}
Your use of Home Manager is centered around the configuration file,
which is typically found at `~/.config/home-manager/home.nix` in the
standard installation or `~/.config/home-manager/flake.nix` in a Nix
flake based installation.
::: {.note}
The default configuration used to be placed in `~/.config/nixpkgs`¸ so
you may see references to that elsewhere. The old directory still works
but Home Manager will print a warning message when used.
:::
This configuration file can be *built* and *activated*.
Building a configuration produces a directory in the Nix store that
contains all files and programs that should be available in your home
directory and Nix user profile, respectively. The build step also checks
that the configuration is valid and it will fail with an error if you,
for example, assign a value to an option that does not exist or assign a
value of the wrong type. Some modules also have custom assertions that
perform more detailed, module specific, checks.
Concretely, if your configuration contains
``` nix
programs.emacs.enable = "yes";
```
then building it, for example using `home-manager build`, will result in
an error message saying something like
```console
$ home-manager build
error: A definition for option `programs.emacs.enable' is not of type `boolean'. Definition values:
- In `/home/jdoe/.config/home-manager/home.nix': "yes"
(use '--show-trace' to show detailed location information)
```
The message indicates that you must provide a Boolean value for this
option, that is, either `true` or `false`. The documentation of each
option will state the expected type, for
[programs.emacs.enable](#opt-programs.emacs.enable) you will see "Type: boolean". You
there also find information about the default value and a description of
the option. You can find the complete option documentation in
[Home Manager Configuration Options](options.md#ch-options) or directly in the terminal by running
``` shell
man home-configuration.nix
```
Once a configuration is successfully built, it can be activated. The
activation performs the steps necessary to make the files, programs, and
services available in your user environment. The `home-manager switch`
command performs a combined build and activation.
```{=include=} sections
usage/configuration.md
usage/rollbacks.md
usage/dotfiles.md
usage/graphical.md
usage/gpu-non-nixos.md
usage/modular-services.md
usage/updating.md
usage/upgrading.md
```
+112
View File
@@ -0,0 +1,112 @@
# Configuration Example {#sec-usage-configuration}
A fresh install of Home Manager will generate a minimal
`~/.config/home-manager/home.nix` file containing something like
``` nix
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "jdoe";
home.homeDirectory = "/home/jdoe";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "26.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}
```
You can use this as a base for your further configurations.
::: {.note}
If you are not very familiar with the Nix language and NixOS modules
then it is encouraged to start with small and simple changes. As you
learn you can gradually grow the configuration with confidence.
:::
As an example, let us expand the initial configuration file to also
install the htop and fortune packages, install Emacs with a few extra
packages available, and enable the user gpg-agent service.
To satisfy the above setup we should elaborate the `home.nix` file as
follows:
``` nix
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "jdoe";
home.homeDirectory = "/home/jdoe";
# Packages that should be installed to the user profile.
home.packages = [
pkgs.htop
pkgs.fortune
];
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "26.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
programs.emacs = {
enable = true;
extraPackages = epkgs: [
epkgs.nix-mode
epkgs.magit
];
};
services.gpg-agent = {
enable = true;
defaultCacheTtl = 1800;
enableSshSupport = true;
};
}
```
- Nixpkgs packages can be installed to the user profile using
[home.packages](#opt-home.packages).
- The option names of a program module typically start with
`programs.<package name>`.
- Similarly, for a service module, the names start with
`services.<package name>`. Note in some cases a package has both
programs *and* service options -- Emacs is such an example.
To activate this configuration you can run
``` shell
home-manager switch
```
or if you are not feeling so lucky,
``` shell
home-manager build
```
which will create a `result` link to a directory containing an
activation script and the generated home directory files.
+169
View File
@@ -0,0 +1,169 @@
# Keeping your \~ safe from harm {#sec-usage-dotfiles}
To configure programs and services Home Manager must write various
things to your home directory. To prevent overwriting any existing files
when switching to a new generation, Home Manager will attempt to detect
collisions between existing files and generated files. If any such
collision is detected the activation will terminate before changing
anything on your computer.
For example, suppose you have a wonderful, painstakingly created
`~/.config/git/config` and add
``` nix
{
# …
programs.git = {
enable = true;
userName = "Jane Doe";
userEmail = "jane.doe@example.org";
};
# …
}
```
to your configuration. Attempting to switch to the generation will then
result in
``` shell
$ home-manager switch
Activating checkLinkTargets
Existing file '/home/jdoe/.config/git/config' is in the way
Please move the above files and try again
```
This error is about a file that Home Manager wants to manage as a
symbolic link in your home directory. It is separate from package
profile collisions, which usually mention `installPackages` or a
`collision between .../bin/...` path. For package collisions, see
[Why is there a collision error when switching generation?](../faq/collision.md#_why_is_there_a_collision_error_when_switching_generation).
## Resolving file collisions {#sec-usage-dotfiles-collisions}
The safest resolution is to inspect the existing path, move any
settings you want Home Manager to manage into your configuration, and
remove or move the unmanaged file before switching again.
For a standalone Home Manager installation, you can ask Home Manager to
move unmanaged non-symlink paths out of the way during activation:
``` shell
home-manager switch -b backup
```
With the command above, a colliding `~/.config/git/config` is moved to
`~/.config/git/config.backup` before Home Manager links the managed
file. If the backup path already exists then activation still aborts, so
choose an extension whose backup path does not already exist.
Standalone activation can also run a custom command for each collision:
``` shell
home-manager switch -B trash-put
```
The command receives the colliding path as an argument and must move or
remove that path. If both `-B` and `-b` are set, the custom command takes
precedence; the command may still use the
`HOME_MANAGER_BACKUP_EXT` environment variable set by `-b`.
When Home Manager is used as a NixOS or nix-darwin module, configure the
corresponding module options instead of passing standalone command line
flags:
``` nix
{
home-manager.backupFileExtension = "backup";
}
```
or
``` nix
{
home-manager.backupCommand = "${pkgs.trash-cli}/bin/trash-put";
}
```
If both {option}`home-manager.backupCommand` and
{option}`home-manager.backupFileExtension` are set, the command takes
precedence. The extension is still exported to the command as
`HOME_MANAGER_BACKUP_EXT`, so the command can use it when implementing
its own backup naming. With
{option}`home-manager.backupFileExtension`, Home Manager refuses to
replace an existing backup path unless
{option}`home-manager.overwriteBackup` is enabled:
``` nix
{
home-manager.backupFileExtension = "backup";
home-manager.overwriteBackup = true;
}
```
::: {.warning}
{option}`home-manager.overwriteBackup` allows activation to clobber
existing backup files. Only enable it when those backup paths are
disposable.
:::
For individual files, many file options also support `force = true`:
``` nix
{
home.file.".config/example" = {
source = ./example;
force = true;
};
}
```
This skips the collision check for the affected target and lets Home
Manager replace the existing file or link. Use it sparingly; it can
silently delete local changes.
Backup commands and backup extensions are intended for unmanaged
non-symlink paths. If the colliding target is an unmanaged symbolic
link, move it manually or use `force = true` after checking that the
link target is safe to replace.
## Advanced file behavior {#sec-usage-dotfiles-advanced}
The notes below apply to {option}`home.file` and to options based on the
same file type, such as {option}`xdg.configFile`.
When a file source is a directory, {option}`home.file.<name>.recursive`
changes how the directory is linked. With the default `recursive =
false`, the target is one symbolic link to the source directory. With
`recursive = true`, Home Manager creates a matching directory tree and
links each leaf file into it.
Recursive directory linking has special overlap behavior. A direct
duplicate target, such as two managed files both targeting `foo`, is an
error. If a recursively linked directory provides `foo/bar` and another
managed file also targets `foo/bar`, Home Manager keeps the recursive
file by default and ignores the overlapping regular file.
The {option}`home.file.<name>.onChange` hook runs after the new files
are linked. For recursive file entries, the hook is always run, so it
should be written to be safe even when no leaf file actually changed.
Normally a path assigned to {option}`home.file.<name>.source` is copied
or linked through the Nix store. To make Home Manager create a link to a
live path outside the store, use
`config.lib.file.mkOutOfStoreSymlink`:
``` nix
{ config, ... }:
{
home.file.".config/example".source =
config.lib.file.mkOutOfStoreSymlink ./example;
}
```
This is useful when the target should follow changes to a mutable file
or directory outside the store.
+203
View File
@@ -0,0 +1,203 @@
# GPU on non-NixOS systems {#sec-usage-gpu-non-nixos}
To access the GPU, programs need access to OpenGL and Vulkan libraries. While
this works transparently on NixOS, it does not on other Linux systems. There are
two options:
1. Recommended: modify the host system slightly so that the graphics libraries
can be found where programs from Nixpkgs can find them.
2. Wrap programs from Nixpkgs in an environment which tells them where to find
graphics libraries.
The first option is very clean because the needed modifications to the host OS
are small. However, it does require root/sudo access to the system, which may
not be available. The second approach avoids that. However, it injects libraries
from Nixpkgs into the environment of wrapped programs, which can make it
impossible to launch programs of the host OS from wrapped programs.
## When sudo is available: fixing the host OS {#sec-usage-gpu-sudo}
The {option}`targets.genericLinux.gpu` module is automatically enabled whenever
the option {option}`targets.genericLinux.enable` is set (unless
[NixGL](#sec-usage-gpu-nosudo) is used instead), which is recommended for
non-NixOS Linux distributions in any case. The module can also be explicitly
enabled by setting {option}`targets.genericLinux.gpu.enable`.
This module builds a directory containing GPU libraries. When activating the
home configuration by `home-manager switch`, the host system is examined: for
compatibility with NixOS, these libraries need to be placed in
`/run/opengl-driver`. If this directory does not exist, or contains a different
set of libraries, the activation script will print a warning such as
```text
Activating checkExistingGpuDrivers
GPU drivers require an update, run
sudo /nix/store/HASH-non-nixos-gpu/bin/non-nixos-gpu-setup
```
Because the `/run` directory is volatile and disappears on reboot, libraries
cannot be simply copied or linked there. The `non-nixos-gpu-setup` script
installs a
[`tmpfiles.d`](https://www.freedesktop.org/software/systemd/man/latest/tmpfiles.d.html)
config which ensures that the drivers are linked to `/run/opengl-driver` on
boot. Home Manager will always check and warn you when this setup needs to be
refreshed.
If you ever wish to uninstall these drivers, all you need to do is
```sh
sudo rm /run/opengl-driver
sudo rm /etc/tmpfiles.d/non-nixos-gpu.conf
```
### GPU offloading {#sec-usage-gpu-offloading}
You can use the {option}`targets.genericLinux.nixGL.prime.installScript` option.
It installs the `prime-offload` script which is configured through options under
{option}`targets.genericLinux.nixGL.prime`. This functionality is independent
from the rest of NixGL and can be used when
{option}`targets.genericLinux.nixGL.packages` is left `null`, which it should be
when using drivers from `/run/opengl-driver`.
### Nvidia drivers {#sec-usage-gpu-nvidia}
If you need to include the proprietary Nvidia drivers, the process is a bit more
involved. You need to:
1. Determine the exact version used by the host system. Example: `550.163.01`
1. Fetch that version of the drivers from Nvidia and calculate their hash.
Example:
```sh
nix store prefetch-file \
https://download.nvidia.com/XFree86/Linux-x86_64/550.163.01/NVIDIA-Linux-x86_64-550.163.01.run
```
Attention: the version and architecture are present twice. If you are on an
ARM system, replace `x86_64` with `aarch64`.
1. Put this information into your home configuration. Example:
```nix
targets.genericLinux.gpu.nvidia = {
enable = true;
version = "550.163.01";
sha256 = "sha256-74FJ9bNFlUYBRen7+C08ku5Gc1uFYGeqlIh7l1yrmi4=";
};
```
::: {.warning}
The Nvidia driver version **must** match the host system. This means that you
must pay attention when upgrading the system and update the home configuration
as well.
:::
## No root access: wrapping programs {#sec-usage-gpu-nosudo}
The wrapping approach is facilitated by
[NixGL](https://github.com/nix-community/nixGL), which can be integrated into
Home Manager.
::: {.warning}
This approach can cause issues when a wrapped program from Nixpkgs executes a
program from the host. For example, Firefox from Nixpkgs must be wrapped by
NixGL in order for graphical acceleration to work. If you then download a PDF
file and open it in a PDF viewer that is not installed from Nixpkgs but is
provided by the host distribution, there may be issues. Because Firefox's
environment injects libraries from NixGL, they are inherited by the PDF viewer,
and unless they are the same or compatible version as the libraries on the host,
the viewer will not work. This problem manifests more often with Vulkan because
it needs a larger set of injected libraries than OpenGL.
The problem typically manifests with errors similar to
```text
/nix/store/HASH-gcc-12.3.0-lib/lib/libstdc++.so.6: version `GLIBCXX_3.4.31' not found
```
:::
To enable the integration, import NixGL into your home configuration, either as
a channel, or as a flake input passed via `extraSpecialArgs`. Then, set the
`targets.genericLinux.nixGL.packages` option to the package set provided by
NixGL.
Once integration is enabled, it can be used in two ways: as Nix functions for
wrapping programs installed via Home Manager, and as shell commands for running
programs installed by other means (such as `nix shell`). In either case, there
are several wrappers available. They can be broadly categorized
- by vendor: as Mesa (for Free drivers of all vendors) and Nvidia (for
Nvidia-specific proprietary drivers).
- by GPU selection: as primary and secondary (offloading).
For example, the `mesa` wrapper provides support for running programs on the
primary GPU for Intel, AMD and Nouveau drivers, while the `mesaPrime` wrapper
does the same for the secondary GPU.
**Note:** when using Nvidia wrappers together with flakes, your home
configuration will not be pure and needs to be built using `home-manager switch
--impure`. Otherwise, the build will fail, complaining about missing attribute
`currentTime`.
Wrapper functions are available under `config.lib.nixGL.wrappers`. However, it
can be more convenient to use the `config.lib.nixGL.wrap` alias, which can be
configured to use any of the wrappers. It is intended to provide a customization
point when the same home configuration is used across several machines with
different hardware. There is also the `config.lib.nixGL.wrapOffload` alias for
two-GPU systems.
Another convenience is that all wrapper functions are always available. However,
when `targets.genericLinux.nixGL.packages` option is unset, they are no-ops.
This allows them to be used even when the home configuration is used on NixOS
machines. The exception is the `prime-offload` script which ignores
`targets.genericLinux.nixGL.packages` and is installed into the environment
whenever `targets.genericLinux.nixGL.prime.installScript` is set. This script,
which can be used to start a program on a secondary GPU, does not depend on
NixGL and is useful on NixOS systems as well.
Below is an abbreviated example for an Optimus laptop that makes use of both
Mesa and Nvidia wrappers, where the latter is used in dGPU offloading mode. It
demonstrates how to wrap `mpv` to run on the integrated Intel GPU, wrap FreeCAD
to run on the Nvidia dGPU, and how to install the wrapper scripts. It also wraps
Xonotic to run on the dGPU, but uses the wrapper function directly for
demonstration purposes.
```nix
{ config, lib, pkgs, nixgl, ... }:
{
targets.genericLinux.nixGL = {
packages = nixgl.packages;
defaultWrapper = "mesa";
offloadWrapper = "nvidiaPrime";
installScripts = [ "mesa" "nvidiaPrime" ];
};
programs.mpv = {
enable = true;
package = config.lib.nixGL.wrap pkgs.mpv;
};
home.packages = [
(config.lib.nixGL.wrapOffload pkgs.freecad)
(config.lib.nixGL.wrappers.nvidiaPrime pkgs.xonotic)
];
}
```
The above example assumes a flake-based setup where `nixgl` was passed from the
flake. When using channels, the example would instead begin with
```nix
{ config, lib, pkgs, ... }:
{
targets.genericLinux.nixGL.packages = import <nixgl> { inherit pkgs; };
# The rest is the same as above
...
```
+32
View File
@@ -0,0 +1,32 @@
# Graphical services {#sec-usage-graphical}
Home Manager includes a number of services intended to run in a
graphical session, for example `xscreensaver` and `dunst`.
Unfortunately, such services will not be started automatically unless
you let Home Manager start your X session. That is, you have something
like
``` nix
{
# …
services.xserver.enable = true;
# …
}
```
in your system configuration and
``` nix
{
# …
xsession.enable = true;
xsession.windowManager.command = "…";
# …
}
```
in your Home Manager configuration.
+119
View File
@@ -0,0 +1,119 @@
# Modular Services {#sec-usage-modular-services}
Home Manager supports nixpkgs
[modular services](https://nixos.org/manual/nixos/unstable/#modular-services)
under [](#opt-home.services). This is the Home Manager analog to the
NixOS `system.services` namespace: each entry is an abstract service
sourced from `<nixpkgs/lib/services/lib.nix>` with the upstream portable
systemd module loaded into it, so service modules shipped with packages
(e.g. `pkgs.<name>.passthru.services.default`) drop in unchanged --
the same module evaluates on NixOS and on Home Manager.
A minimal example -- run mpd as a user service:
```nix
{ pkgs, ... }: {
home.services.mpd = {
process.argv = [ "${pkgs.mpd}/bin/mpd" "--no-daemon" ];
};
}
```
This produces `~/.config/systemd/user/mpd.service` with `ExecStart` set
to the mpd binary and `WantedBy=default.target`.
Each service exposes the upstream NixOS-style schema: [`process.argv`],
`systemd.lib`, `systemd.mainExecStart`, `systemd.service`,
`systemd.services`, `systemd.sockets`. Lifted units are translated from
NixOS-style attrs (`wantedBy`, `serviceConfig`, `unitConfig`,
`environment`, ...) into the section-based INI shape
(`{ Unit; Service; Install; }`) that Home Manager's
[](#opt-systemd.user.services) consumes. Only common keys are mapped
explicitly; uncommon options remain reachable via `unitConfig`,
`serviceConfig`, or `socketConfig`.
Sub-services (nested `services.<sub>` inside another service) and their
units are dashed under the parent service name. The empty unit key
`""` denotes the service's *primary* unit (lifted to a unit named
after the service itself); [`process.argv`] becomes the default
`ExecStart` for that unit, which defaults to `WantedBy=default.target`.
## Reusing upstream package modules {#sec-usage-modular-services-upstream}
Modular services exposed by packages under
`pkgs.<name>.passthru.services.default` can be imported directly.
For example, `pkgs.php`'s [`php-fpm`]:
```nix
{ pkgs, ... }: {
home.services."php-fpm" = {
imports = [ pkgs.php.passthru.services.default ];
configData."php-fpm.conf".source = builtins.elemAt config.home.services.php-fpm.process.argv 2;
php-fpm.settings.mypool = {
listen = "127.0.0.1:9000";
# FIXME: required by upstream modular service, but ignored when run as user
"user" = "";
"pm" = "dynamic";
"pm.max_children" = 75;
"pm.min_spare_servers" = 5;
"pm.max_spare_servers" = 20;
};
};
}
```
Some packages ship modules written for system services that include
directives the user-session manager cannot honour (`DynamicUser`,
`AmbientCapabilities`, ...). The unit is still generated with those
directives -- user systemd silently ignores what it cannot apply.
`WantedBy=multi-user.target` is automatically normalized to
`WantedBy=default.target`. Other directives can be overridden per
service:
```nix
home.services."tunnel" = {
imports = [ pkgs.ghostunnel.passthru.services.default ];
# ...
systemd.services."tunnel".serviceConfig.DynamicUser = lib.mkForce false;
};
```
## Configuration data {#sec-usage-modular-services-configdata}
Each service can declare configuration files via `configData.<name>`.
These are materialized at `$XDG_CONFIG_HOME/home-services/<service>/<name>`
(mirroring how NixOS 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:
```nix
{ config, ... }:
{
home.services.demo = {
process.argv = [ "/bin/myapp" "--config" config.home.services.demo.configData."app.toml".path ];
configData."app.toml".text = ''
port = 1234
'';
};
}
```
The store paths of all enabled `configData` entries are automatically
added to the primary unit's `X-Reload-Triggers`, so `home-manager switch`
restarts the service whenever any of its configuration files change. To
reload instead of restart, override `X-SwitchMethod`:
```nix
home.services.demo.systemd.services."".unitConfig.X-SwitchMethod = "reload";
```
## Scope notes {#sec-usage-modular-services-scope}
Home Manager mirrors the surface of nixpkgs' portable systemd module:
services and sockets only. Other unit kinds Home Manager supports
natively under [](#opt-systemd.user.services) (timers, paths, mounts, ...)
are intentionally not modeled on `home.services` until upstream grows them,
to keep both surfaces aligned.
[`process.argv`]: https://nixos.org/manual/nixos/unstable/#service-opt-process.argv
[`php-fpm`]: https://nixos.org/manual/nixos/stable/options#opt-_imports_=___pkgs.php.services.default___
+45
View File
@@ -0,0 +1,45 @@
# Rollbacks {#sec-usage-rollbacks}
When you perform a `home-manager switch` and discover a problem then
it is possible to _roll back_ to the previous version of your
configuration using `home-manager switch --rollback`. This will turn
the previous configuration into the current configuration.
::: {.example #ex-rollback-scenario}
### Home Manager Rollback
Imagine you have just updated Nixpkgs and switched to a new Home
Manager configuration. You discover that a package update included in
your new configuration has a bug that was not present in the previous
configuration.
You can then run `home-manager switch --rollback` to recover your
previous configuration, which includes the working version of the
package.
To see what happened above we can observe the list of Home Manager
generations before and after the rollback:
``` shell
$ home-manager generations
2024-01-04 11:56 : id 765 -> /nix/store/kahm1rxk77mnvd2l8pfvd4jkkffk5ijk-home-manager-generation (current)
2024-01-03 10:29 : id 764 -> /nix/store/2wsmsliqr5yynqkdyjzb1y57pr5q2lsj-home-manager-generation
2024-01-01 12:21 : id 763 -> /nix/store/mv960kl9chn2lal5q8lnqdp1ygxngcd1-home-manager-generation
2023-12-29 21:03 : id 762 -> /nix/store/6c0k1r03fxckql4vgqcn9ccb616ynb94-home-manager-generation
2023-12-25 18:51 : id 761 -> /nix/store/czc5y6vi1rvnkfv83cs3rn84jarcgsgh-home-manager-generation
$ home-manager switch --rollback
Starting home manager activation
$ home-manager generations
2024-01-04 11:56 : id 765 -> /nix/store/kahm1rxk77mnvd2l8pfvd4jkkffk5ijk-home-manager-generation
2024-01-03 10:29 : id 764 -> /nix/store/2wsmsliqr5yynqkdyjzb1y57pr5q2lsj-home-manager-generation (current)
2024-01-01 12:21 : id 763 -> /nix/store/mv960kl9chn2lal5q8lnqdp1ygxngcd1-home-manager-generation
2023-12-29 21:03 : id 762 -> /nix/store/6c0k1r03fxckql4vgqcn9ccb616ynb94-home-manager-generation
2023-12-25 18:51 : id 761 -> /nix/store/czc5y6vi1rvnkfv83cs3rn84jarcgsgh-home-manager-generation
```
:::
+84
View File
@@ -0,0 +1,84 @@
# Updating {#sec-updating}
Updating means moving to a newer revision of the Home Manager branch
that your configuration already follows. For example, a configuration
using `release-25.11` can update to a newer revision of `release-25.11`
without changing release branches.
If you want to move from one release branch to another, such as
`release-25.05` to `release-25.11`, or between a release branch and
`master`, see
[Upgrading to a new Home Manager release](upgrading.md#sec-upgrade-release).
## Flake-Based Configurations {#sec-updating-flakes}
Flake inputs are pinned in `flake.lock`, and Home Manager will keep using
the pinned revisions until you update that lock file.
To update all inputs in the flake:
``` shell
$ nix flake update
```
To update only specific inputs, name them explicitly:
``` shell
$ nix flake update home-manager nixpkgs
```
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
After updating the lock file, rebuild with the command for your
installation method.
For a standalone Home Manager flake:
``` shell
$ home-manager switch --flake .
```
For Home Manager as a NixOS module:
``` shell
$ sudo nixos-rebuild switch --flake .
```
For Home Manager as a nix-darwin module:
``` shell
$ darwin-rebuild switch --flake .
```
## Channel-Based Configurations {#sec-updating-channels}
Channels are mutable references outside the Home Manager configuration
itself. Updating a channel moves it to a newer revision of the same
channel or branch.
For a standalone Home Manager channel installation, update the user's
channels and then switch:
``` shell
$ nix-channel --update
unpacking channels...
$ home-manager switch
```
For Home Manager as a NixOS module, update the root user's Home Manager
channel and rebuild the system:
``` shell
$ sudo nix-channel --update home-manager
$ sudo nixos-rebuild switch
```
For Home Manager as a nix-darwin module, update the Home Manager channel
used by your nix-darwin configuration and rebuild the system:
``` shell
$ nix-channel --update home-manager
$ darwin-rebuild switch
```
+202
View File
@@ -0,0 +1,202 @@
# Upgrading to a new Home Manager release {#sec-upgrade-release}
## Overview {#sec-upgrade-release-overview}
When moving your configuration to a new Nixpkgs release branch, you
should also move Home Manager to the matching release branch. On NixOS
this usually means upgrading Home Manager together with NixOS. On
standalone and nix-darwin installations, match Home Manager to the
Nixpkgs branch used by your configuration. The examples below use 25.11;
replace this with the release branch you are upgrading to.
If your configuration follows `nixos-unstable` or `nixpkgs-unstable`,
use Home Manager's `master` branch.
## Understanding Home Manager Versioning {#sec-upgrade-release-understanding-versioning}
Home Manager follows NixOS release cycles and provides corresponding branches:
- **release-\<version\>**: Stable branch for the matching NixOS or
Nixpkgs release, such as `release-25.11`.
- **master**: Development branch (tracks nixpkgs-unstable)
:::{.note}
Use the Home Manager branch that matches the Nixpkgs branch used to
evaluate your Home Manager configuration. For stable NixOS
configurations, this is normally the same as your NixOS version.
:::
## Flake-Based Installation {#sec-upgrade-release-understanding-flake}
If you are using Home Manager with Nix flakes, update your `nixpkgs` and
`home-manager` inputs together:
```nix
{
description = "Home Manager configuration";
inputs = {
# Match the Nixpkgs branch to the release you are using.
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
home-manager = {
# Match the Home Manager branch to the Nixpkgs branch above.
url = "github:nix-community/home-manager/release-25.11";
};
};
outputs = { nixpkgs, home-manager, ... }: {
homeConfigurations."yourusername" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [ ./home.nix ];
};
};
}
```
For `nixos-unstable` or `nixpkgs-unstable`, use the `master` branch
instead:
```nix
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
home-manager = {
url = "github:nix-community/home-manager";
};
};
}
```
Then update the lock file and rebuild using the command for your
installation method.
For a standalone Home Manager flake:
``` shell
$ nix flake update
$ home-manager switch --flake .
```
For Home Manager as a NixOS module:
``` shell
$ nix flake update
$ sudo nixos-rebuild switch --flake .
```
For Home Manager as a nix-darwin module:
``` shell
$ nix flake update
$ darwin-rebuild switch --flake .
```
These commands assume that your current directory is the flake. If not,
pass the flake path or URI with `--flake <flake-uri>`.
## Channel-Based Installation {#sec-upgrade-release-understanding-channel}
For a standalone channel-based installation, first verify your current
Home Manager channel:
``` shell
$ nix-channel --list
```
The entry identifies the Home Manager branch currently in use. For
example:
```
home-manager https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz
```
Update the Home Manager channel to the branch matching your Nixpkgs
release, then switch:
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --update
$ home-manager switch
```
When Home Manager is installed as a NixOS module with channels, update
the root user's Home Manager channel and rebuild the system:
``` shell
$ sudo nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ sudo nix-channel --update
$ sudo nixos-rebuild switch
```
When Home Manager is installed as a nix-darwin module with channels,
update the Home Manager channel used by your nix-darwin configuration
and rebuild the system:
``` shell
$ nix-channel --add https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz home-manager
$ nix-channel --update
$ darwin-rebuild switch
```
## State Version Management {#sec-upgrade-release-state-version}
:::{.warning}
Careful updating your `home.stateVersion` when upgrading Home Manager.
:::
The `stateVersion` should remain set to the Home Manager release you
first used for this home configuration.
```nix
{
# Example: if this home configuration was first created on 24.11.
home.stateVersion = "24.11";
}
```
**Why?** The `stateVersion` ensures backward compatibility and
prevents breaking changes from affecting your existing configuration.
**Remember:** Channel or flake input version is not the same as state
version. Update Home Manager, keep `home.stateVersion` unchanged, and
only change it after reading the release notes and migrating any
affected configuration.
## Troubleshooting {#sec-upgrade-release-state-troubleshooting}
### Common Issues {#sec-upgrade-release-state-troubleshooting-common-issues}
Check the [Home Manager Release Notes](../release-notes/release-notes.md#ch-release-notes) for breaking changes.
1. **Version Mismatch Warning**: If you see warnings about version
mismatches, ensure your Home Manager branch matches the Nixpkgs
branch used by your configuration. For NixOS stable releases, this
usually means matching your NixOS version.
1. **Module Changes**: Modules are constantly being updated with new
features to keep up with changes in upstream packaging or to fix
bugs and add features. If you have an unexpected change, check if
there was something noted in the release notes or news entries.
1. **Channel Not Found**: If `nix-channel --list` shows no channels,
you might be using a different installation method, such as flakes,
or Home Manager may be imported through your system configuration.
### Verification {#sec-upgrade-release-state-troubleshooting-verification}
After upgrading, verify the installation:
``` shell
$ home-manager --version
```
This should show the Home Manager version or indicate that it is using
the expected release branch.
## Additional Resources {#sec-upgrade-release-resources}
- [NixOS Stable Release Notes](https://nixos.org/manual/nixos/stable/release-notes)
- [Home Manager Release Notes](../release-notes/release-notes.md#ch-release-notes)
+13
View File
@@ -0,0 +1,13 @@
# Writing Home Manager Modules {#ch-writing-modules}
The module system in Home Manager is based entirely on the NixOS module
system so we will here only highlight aspects that are specific for Home
Manager. For information about the module system as such please refer to
the [Writing NixOS
Modules](https://nixos.org/nixos/manual/index.html#sec-writing-modules)
chapter of the NixOS manual.
```{=include=} sections
writing-modules/types.md
```
+368
View File
@@ -0,0 +1,368 @@
# Option Types {#sec-option-types}
Overall the basic option types are the same in Home Manager as NixOS. A
few Home Manager options, however, make use of custom types that are
worth describing in more detail. These are the option types `dagOf` and
`gvariant` that are used, for example, by
[programs.ssh.settings](#opt-programs.ssh.settings) and [dconf.settings](#opt-dconf.settings).
[]{#sec-option-types-dag}`hm.types.dagOf`
: Options of this type have attribute sets as values where each member
is a node in a [directed acyclic
graph](https://en.wikipedia.org/w/index.php?title=Directed_acyclic_graph&oldid=939656095)
(DAG). This allows the attribute set entries to express dependency
relations among themselves. This can, for example, be used to
control the order of match blocks in a OpenSSH client configuration
or the order of activation script blocks in
[home.activation](#opt-home.activation).
A number of functions are provided to create DAG nodes. The
functions are shown below with examples using an option `foo.bar` of
type `hm.types.dagOf types.int`.
[]{#sec-option-types-dag-entryAnywhere}`hm.dag.entryAnywhere (value: T) : DagEntry<T>`
: Indicates that `value` can be placed anywhere within the DAG.
This is also the default for plain attribute set entries, that
is
``` nix
foo.bar = {
a = hm.dag.entryAnywhere 0;
}
```
and
``` nix
foo.bar = {
a = 0;
}
```
are equivalent.
[]{#sec-option-types-dag-entryAfter}`hm.dag.entryAfter (afters: list string) (value: T) : DagEntry<T>`
: Indicates that `value` must be placed *after* each of the
attribute names in the given list. For example
``` nix
foo.bar = {
a = 0;
b = hm.dag.entryAfter [ "a" ] 1;
}
```
would place `b` after `a` in the graph.
[]{#sec-option-types-dag-entryBefore}`hm.dag.entryBefore (befores: list string) (value: T) : DagEntry<T>`
: Indicates that `value` must be placed *before* each of the
attribute names in the given list. For example
``` nix
foo.bar = {
b = hm.dag.entryBefore [ "a" ] 1;
a = 0;
}
```
would place `b` before `a` in the graph.
[]{#sec-option-types-dag-entryBetween}`hm.dag.entryBetween (befores: list string) (afters: list string) (value: T) : DagEntry<T>`
: Indicates that `value` must be placed *before* the attribute
names in the first list and *after* the attribute names in the
second list. For example
``` nix
foo.bar = {
a = 0;
c = hm.dag.entryBetween [ "b" ] [ "a" ] 2;
b = 1;
}
```
would place `c` before `b` and after `a` in the graph.
There are also a set of functions that generate a DAG from a list.
These are convenient when you just want to have a linear list of DAG
entries, without having to manually enter the relationship between
each entry. Each of these functions take a `tag` as argument and the
DAG entries will be named `${tag}-${index}`.
[]{#sec-option-types-dag-entriesAnywhere}`hm.dag.entriesAnywhere (tag: string) (values: [T]) : Dag<T>`
: Creates a DAG with the given values with each entry labeled
using the given tag. For example
``` nix
foo.bar = hm.dag.entriesAnywhere "a" [ 0 1 ];
```
is equivalent to
``` nix
foo.bar = {
a-0 = 0;
a-1 = hm.dag.entryAfter [ "a-0" ] 1;
}
```
[]{#sec-option-types-dag-entriesAfter}`hm.dag.entriesAfter (tag: string) (afters: list string) (values: [T]) : Dag<T>`
: Creates a DAG with the given values with each entry labeled
using the given tag. The list of values are placed are placed
*after* each of the attribute names in `afters`. For example
``` nix
foo.bar =
{ b = 0; }
// hm.dag.entriesAfter "a" [ "b" ] [ 1 2 ];
```
is equivalent to
``` nix
foo.bar = {
b = 0;
a-0 = hm.dag.entryAfter [ "b" ] 1;
a-1 = hm.dag.entryAfter [ "a-0" ] 2;
}
```
[]{#sec-option-types-dag-entriesBefore}`hm.dag.entriesBefore (tag: string) (befores: list string) (values: [T]) : Dag<T>`
: Creates a DAG with the given values with each entry labeled
using the given tag. The list of values are placed *before* each
of the attribute names in `befores`. For example
``` nix
foo.bar =
{ b = 0; }
// hm.dag.entriesBefore "a" [ "b" ] [ 1 2 ];
```
is equivalent to
``` nix
foo.bar = {
b = 0;
a-0 = 1;
a-1 = hm.dag.entryBetween [ "b" ] [ "a-0" ] 2;
}
```
[]{#sec-option-types-dag-entriesBetween}`hm.dag.entriesBetween (tag: string) (befores: list string) (afters: list string) (values: [T]) : Dag<T>`
: Creates a DAG with the given values with each entry labeled
using the given tag. The list of values are placed *before* each
of the attribute names in `befores` and *after* each of the
attribute names in `afters`. For example
``` nix
foo.bar =
{ b = 0; c = 3; }
// hm.dag.entriesBetween "a" [ "b" ] [ "c" ] [ 1 2 ];
```
is equivalent to
``` nix
foo.bar = {
b = 0;
c = 3;
a-0 = hm.dag.entryAfter [ "c" ] 1;
a-1 = hm.dag.entryBetween [ "b" ] [ "a-0" ] 2;
}
```
[]{#sec-option-types-gvariant}`hm.types.gvariant`
: This type is useful for options representing
[GVariant](https://docs.gtk.org/glib/struct.Variant.html#description)
values. The type accepts all primitive GVariant types as well as
arrays, tuples, "maybe" types, and dictionaries.
Some Nix values are automatically coerced to matching GVariant value
but the GVariant model is richer so you may need to use one of the
provided constructor functions. Examples assume an option `foo.bar`
of type `hm.types.gvariant`.
[]{#sec-option-types-gvariant-mkBoolean}`hm.gvariant.mkBoolean (v: bool)`
: Takes a Nix value `v` to a GVariant `boolean` value (GVariant
format string `b`). Note, Nix booleans are automatically coerced
using this function. That is,
``` nix
foo.bar = hm.gvariant.mkBoolean true;
```
is equivalent to
``` nix
foo.bar = true;
```
[]{#sec-option-types-gvariant-mkString}`hm.gvariant.mkString (v: string)`
: Takes a Nix value `v` to a GVariant `string` value (GVariant
format string `s`). Note, Nix strings are automatically coerced
using this function. That is,
``` nix
foo.bar = hm.gvariant.mkString "a string";
```
is equivalent to
``` nix
foo.bar = "a string";
```
[]{#sec-option-types-gvariant-mkObjectpath}`hm.gvariant.mkObjectpath (v: string)`
: Takes a Nix value `v` to a GVariant `objectpath` value (GVariant
format string `o`).
[]{#sec-option-types-gvariant-mkUchar}`hm.gvariant.mkUchar (v: string)`
: Takes a Nix value `v` to a GVariant `uchar` value (GVariant
format string `y`).
[]{#sec-option-types-gvariant-mkInt16}`hm.gvariant.mkInt16 (v: int)`
: Takes a Nix value `v` to a GVariant `int16` value (GVariant
format string `n`).
[]{#sec-option-types-gvariant-mkUint16}`hm.gvariant.mkUint16 (v: int)`
: Takes a Nix value `v` to a GVariant `uint16` value (GVariant
format string `q`).
[]{#sec-option-types-gvariant-mkInt32}`hm.gvariant.mkInt32 (v: int)`
: Takes a Nix value `v` to a GVariant `int32` value (GVariant
format string `i`). Note, Nix integers are automatically coerced
using this function. That is,
``` nix
foo.bar = hm.gvariant.mkInt32 7;
```
is equivalent to
``` nix
foo.bar = 7;
```
[]{#sec-option-types-gvariant-mkUint32}`hm.gvariant.mkUint32 (v: int)`
: Takes a Nix value `v` to a GVariant `uint32` value (GVariant
format string `u`).
[]{#sec-option-types-gvariant-mkInt64}`hm.gvariant.mkInt64 (v: int)`
: Takes a Nix value `v` to a GVariant `int64` value (GVariant
format string `x`).
[]{#sec-option-types-gvariant-mkUint64}`hm.gvariant.mkUint64 (v: int)`
: Takes a Nix value `v` to a GVariant `uint64` value (GVariant
format string `t`).
[]{#sec-option-types-gvariant-mkDouble}`hm.gvariant.mkDouble (v: double)`
: Takes a Nix value `v` to a GVariant `double` value (GVariant
format string `d`). Note, Nix floats are automatically coerced
using this function. That is,
``` nix
foo.bar = hm.gvariant.mkDouble 3.14;
```
is equivalent to
``` nix
foo.bar = 3.14;
```
[]{#sec-option-types-gvariant-mkArray}`hm.gvariant.mkArray type elements`
: Builds a GVariant array containing the given list of elements,
where each element is a GVariant value of the given type
(GVariant format string `a${type}`). The `type` value can be
constructed using
- `hm.gvariant.type.string` (GVariant format string `s`)
- `hm.gvariant.type.boolean` (GVariant format string `b`)
- `hm.gvariant.type.uchar` (GVariant format string `y`)
- `hm.gvariant.type.int16` (GVariant format string `n`)
- `hm.gvariant.type.uint16` (GVariant format string `q`)
- `hm.gvariant.type.int32` (GVariant format string `i`)
- `hm.gvariant.type.uint32` (GVariant format string `u`)
- `hm.gvariant.type.int64` (GVariant format string `x`)
- `hm.gvariant.type.uint64` (GVariant format string `t`)
- `hm.gvariant.type.double` (GVariant format string `d`)
- `hm.gvariant.type.variant` (GVariant format string `v`)
- `hm.gvariant.type.arrayOf type` (GVariant format string
`a${type}`)
- `hm.gvariant.type.maybeOf type` (GVariant format string
`m${type}`)
- `hm.gvariant.type.tupleOf types` (GVariant format string
`(${lib.concatStrings types})`)
- `hm.gvariant.type.dictionaryEntryOf [keyType valueType]`
(GVariant format string `{${keyType}${valueType}}`)
where `type` and `types` are themselves a type and list of
types, respectively.
[]{#sec-option-types-gvariant-mkEmptyArray}`hm.gvariant.mkEmptyArray type`
: An alias of
[`hm.gvariant.mkArray type []`](#sec-option-types-gvariant-mkArray).
[]{#sec-option-types-gvariant-mkNothing}`hm.gvariant.mkNothing type`
: Builds a GVariant maybe value (GVariant format string
`m${type}`) whose (non-existent) element is of the given type.
The `type` value is constructed as described for the
[`mkArray`](#sec-option-types-gvariant-mkArray) function above.
[]{#sec-option-types-gvariant-mkJust}`hm.gvariant.mkJust element`
: Builds a GVariant maybe value (GVariant format string
`m${element.type}`) containing the given GVariant element.
[]{#sec-option-types-gvariant-mkTuple}`hm.gvariant.mkTuple elements`
: Builds a GVariant tuple containing the given list of elements,
where each element is a GVariant value.
[]{#sec-option-types-gvariant-mkVariant}`hm.gvariant.mkVariant element`
: Builds a GVariant variant (GVariant format string `v`) which
contains the value of a GVariant element.
[]{#sec-option-types-gvariant-mkDictionaryEntry}`hm.gvariant.mkDictionaryEntry [key value]`
: Builds a GVariant dictionary entry containing the given list of
elements (GVariant format string `{${key.type}${value.type}}`),
where each element is a GVariant value.
+231
View File
@@ -0,0 +1,231 @@
#!/usr/bin/env python3
from __future__ import annotations
import argparse
import html
import re
import shutil
import sys
from pathlib import Path
SIMPLE_ROLES = (
"command",
"component",
"description",
"file",
"index",
"system",
"type",
)
HEADING_ANCHOR = re.compile(r"^(#{1,6}\s+)(.*)\s+\{#([^}]+)\}\s*$")
INLINE_ANCHOR = re.compile(r"\[\]\{#([^}]+)\}")
OPTION_ROLE = re.compile(r"(?<![$`])\{option\}`([^`]*)`")
SIMPLE_ROLE = re.compile(r"(?<![$`])\{(" + "|".join(SIMPLE_ROLES) + r")\}`([^`]*)`")
OPTION_LINK = re.compile(
r"\[(?P<label>[^\]]*)\]\(#(?P<anchor>(?:opt|nixos-opt|nix-darwin-opt)-[^)]+)\)"
)
LEFTOVER_ROLE = re.compile(
r"(?<![$`])\{(" + "|".join(("option", *SIMPLE_ROLES)) + r")\}`[^`]*`"
)
FENCE = re.compile(r"^\s*(`{3,})(.*)$")
FENCE_CLOSE = re.compile(r"^\s*`{3,}\s*$")
ADMONITION_OPEN = re.compile(r"^\s*:::\s*\{\.(note|warning|example)\}\s*$")
ADMONITION_CLOSE = re.compile(r"^\s*:::\s*$")
DEEP_SPLIT_NAMESPACES = {"programs", "services"}
def option_target(anchor: str, current_file: Path, base_depth: int) -> str:
if anchor.startswith("nix-darwin-opt-"):
option = anchor.removeprefix("nix-darwin-opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"nix-darwin-opt-{option}"
base = "options/nix-darwin"
elif anchor.startswith("nixos-opt-"):
option = anchor.removeprefix("nixos-opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"nixos-opt-{option}"
base = "options/nixos"
else:
option = anchor.removeprefix("opt-")
option = option.replace("<", "_").replace(">", "_")
anchor = f"opt-{option}"
base = "options/home-manager"
page_parts = option_page_parts(option)
prefix = "../" * (base_depth + len(current_file.parent.parts))
return f"{prefix}{base}/{'/'.join(page_parts)}.md#{anchor}"
def option_page_parts(option_name: str) -> list[str]:
parts = option_name.split(".")
namespace = parts[0]
if namespace in DEEP_SPLIT_NAMESPACES and len(parts) > 1:
return parts[:2]
return [namespace]
def option_label(anchor: str) -> str:
if anchor.startswith("nix-darwin-opt-"):
return anchor.removeprefix("nix-darwin-opt-")
if anchor.startswith("nixos-opt-"):
return anchor.removeprefix("nixos-opt-")
return anchor.removeprefix("opt-")
def markdown_label(value: str) -> str:
return value.replace("<", "&lt;").replace(">", "&gt;")
def convert_inline(line: str, current_file: Path, base_depth: int) -> str:
line = line.replace("index.xhtml", "index.html")
line = INLINE_ANCHOR.sub(
lambda match: f'<a id="{html.escape(match.group(1), quote=True)}"></a>',
line,
)
line = OPTION_ROLE.sub(
lambda match: (
f"[{markdown_label(match.group(1))}]"
f"({option_target(f'opt-{match.group(1)}', current_file, base_depth)})"
),
line,
)
line = OPTION_LINK.sub(
lambda match: (
f"[{markdown_label(match.group('label') or option_label(match.group('anchor')))}]"
f"({option_target(match.group('anchor'), current_file, base_depth)})"
),
line,
)
return SIMPLE_ROLE.sub(lambda match: f"`{match.group(2)}`", line)
def convert_heading(line: str, current_file: Path, base_depth: int) -> str:
match = HEADING_ANCHOR.match(line)
if match is None:
return convert_inline(line, current_file, base_depth)
prefix, title, anchor = match.groups()
return (
f'<a id="{html.escape(anchor, quote=True)}"></a>\n'
f"{prefix}{convert_inline(title, current_file, base_depth)}"
)
def is_include_fence(line: str) -> tuple[bool, str]:
match = FENCE.match(line)
if match is None:
return False, ""
info = match.group(2).strip()
return info.startswith(("{=include=}", "include")), match.group(1)
def convert_markdown(
text: str,
source: Path,
current_file: Path,
base_depth: int,
) -> str:
output: list[str] = []
in_code_fence = False
code_fence = ""
in_include = False
include_fence = ""
in_admonition = False
for raw_line in text.splitlines(keepends=True):
line = raw_line[:-1] if raw_line.endswith("\n") else raw_line
newline = "\n" if raw_line.endswith("\n") else ""
if in_include:
if FENCE_CLOSE.match(line) and len(line.strip()) >= len(include_fence):
in_include = False
include_fence = ""
continue
if in_code_fence:
output.append(raw_line)
if FENCE_CLOSE.match(line) and len(line.strip()) >= len(code_fence):
in_code_fence = False
code_fence = ""
continue
include, fence = is_include_fence(line)
if include:
in_include = True
include_fence = fence
continue
fence_match = FENCE.match(line)
if fence_match is not None:
in_code_fence = True
code_fence = fence_match.group(1)
output.append(raw_line)
continue
if in_admonition:
if ADMONITION_CLOSE.match(line):
in_admonition = False
continue
converted = convert_inline(line, current_file, base_depth)
output.append(f"> {converted}{newline}" if converted else ">\n")
continue
admonition = ADMONITION_OPEN.match(line)
if admonition is not None:
in_admonition = True
output.append(f"> **{admonition.group(1).title()}**\n")
continue
output.append(convert_heading(line, current_file, base_depth) + newline)
if in_include:
raise ValueError(f"{source}: unterminated include block")
converted = "".join(output)
if LEFTOVER_ROLE.search(converted):
raise ValueError(f"{source}: unconverted NixOS-render-docs role remains")
if "```{=include=}" in converted:
raise ValueError(f"{source}: unconverted include block remains")
return converted
def convert_tree(source: Path, destination: Path, base_depth: int) -> None:
for path in source.rglob("*"):
if not path.is_file():
continue
target = destination / path.relative_to(source)
target.parent.mkdir(parents=True, exist_ok=True)
if path.suffix == ".md":
text = path.read_text(encoding="utf-8")
target.write_text(
convert_markdown(text, path, path.relative_to(source), base_depth),
encoding="utf-8",
)
else:
shutil.copy2(path, target)
def main() -> int:
parser = argparse.ArgumentParser()
parser.add_argument("--base-depth", type=int, default=0)
parser.add_argument("source", type=Path)
parser.add_argument("destination", type=Path)
args = parser.parse_args()
if not args.source.is_dir():
print(f"missing source directory: {args.source}", file=sys.stderr)
return 1
args.destination.mkdir(parents=True, exist_ok=True)
convert_tree(args.source, args.destination, args.base_depth)
return 0
if __name__ == "__main__":
raise SystemExit(main())
+132
View File
@@ -0,0 +1,132 @@
#!/usr/bin/env python3
import html
import json
import re
import sys
from pathlib import Path
ANCHOR = re.compile(r'<a id="([^"]+)"></a>')
SPECIAL_PAGES = {
Path("manual.md"): "index.html",
Path("preface.md"): "index.html",
Path("options.md"): "options/home-manager/index.html",
Path("nixos-options.md"): "options/nixos/index.html",
Path("nix-darwin-options.md"): "options/nix-darwin/index.html",
}
OPTION_PREFIXES = {
"opt-": "options/home-manager",
"nixos-opt-": "options/nixos",
"nix-darwin-opt-": "options/nix-darwin",
}
ROUTER = """
(function () {
var h = location.hash || "", a = h.slice(1), t = __DEFAULT__;
var m = __ANCHORS__, p = __PREFIXES__;
function o(a) {
for (var k in p) {
if (a.indexOf(k) !== 0) continue;
var s = a.slice(k.length).replace(/[<>]/g, "_").split("."), q = s[0];
if ((q === "programs" || q === "services") && s.length > 1) q += "/" + s[1];
return p[k] + "/" + q + ".html";
}
return null;
}
if (a) t = Object.prototype.hasOwnProperty.call(m, a) ? m[a] : o(a) || t;
if (t === null) return;
var n = t + (location.search || "") + h;
var c = location.pathname.split("/").pop() + location.search + h;
if (n !== c) location.replace(n);
}());
""".strip()
def page_for(source, path):
relative = path.relative_to(source)
return SPECIAL_PAGES.get(relative, relative.with_suffix(".html").as_posix())
def anchors_for(source, roots):
anchors = {}
for root in roots:
files = [root] if root.is_file() else sorted(root.rglob("*.md"))
for path in files:
page = page_for(source, path)
for anchor in ANCHOR.findall(path.read_text(encoding="utf-8")):
anchors.setdefault(anchor, page)
return anchors
def script(default, anchors):
js = (
ROUTER.replace("__DEFAULT__", json.dumps(default))
.replace(
"__ANCHORS__", json.dumps(anchors, sort_keys=True, separators=(",", ":"))
)
.replace("__PREFIXES__", json.dumps(OPTION_PREFIXES, separators=(",", ":")))
)
return "\n".join(
[
" <script>",
" //<![CDATA[",
*[f" {line}" for line in js.splitlines()],
" //]]>",
" </script>",
]
)
def write_redirect(output, name, destination, anchors=None):
escaped = html.escape(destination, quote=True)
(output / name).write_text(
f"""<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta charset="utf-8" />
{script(destination, anchors or {})}
<meta http-equiv="refresh" content="0; url={escaped}" />
<link rel="canonical" href="{escaped}" />
<title>Redirecting...</title>
</head>
<body>
<p>Redirecting to <a href="{escaped}">{escaped}</a>.</p>
</body>
</html>
""",
encoding="utf-8",
)
def inject_root_router(output, anchors):
index = output / "index.html"
text = index.read_text(encoding="utf-8")
index.write_text(text.replace("<head>", f"<head>\n{script(None, anchors)}", 1))
def main():
source, output = map(Path, sys.argv[1:])
manual_roots = [
path
for path in source.iterdir()
if path.name != "options" and (path.is_dir() or path.suffix == ".md")
]
manual_anchors = anchors_for(source, manual_roots)
release_anchors = anchors_for(source, [source / "release-notes"])
inject_root_router(output, manual_anchors)
for name, destination, anchors in [
("index.xhtml", "index.html", manual_anchors),
("options.html", "options/home-manager/index.html", {}),
("options.xhtml", "options/home-manager/index.html", {}),
("nixos-options.xhtml", "options/nixos/index.html", {}),
("nix-darwin-options.xhtml", "options/nix-darwin/index.html", {}),
("release-notes.xhtml", "release-notes/release-notes.html", release_anchors),
]:
write_redirect(output, name, destination, anchors)
if __name__ == "__main__":
main()
+23
View File
@@ -0,0 +1,23 @@
{
pkgs,
optionDocs,
manpageUrls,
revision,
}:
pkgs.runCommand "home-manager-mdbook-options"
{
nativeBuildInputs = [
pkgs.buildPackages.nixos-render-docs
pkgs.buildPackages.python3
];
optionDocsJson = builtins.toJSON optionDocs;
passAsFile = [ "optionDocsJson" ];
}
''
python3 ${./render-options.py} \
"$optionDocsJsonPath" \
${manpageUrls} \
${revision} \
"$out"
''

Some files were not shown because too many files have changed in this diff Show More