3124 Commits
Author SHA1 Message Date
erics118 095fef2f26 zsh: skip mkdir history directory when it exists
Every interactive shell ran `mkdir -p "$(dirname "$HISTFILE")"`, which
forks twice, even though the directory almost always exists. It costs
~10ms on macOS 27.

We now test if the directory exists first and use zsh's `:h` modifier
instead of dirname, so the most of the time no processes are started.
The directory is still created when missing.
2026-10-28 08:13:25 -05:00
Yaoheng He(Luke)andAustin Horstman 39ca1b1a49 go-musicfox: Add additonal description about theme
Co-authored-by: Austin Horstman <khaneliman12@gmail.com>
2026-10-26 11:51:08 -05:00
awa2333 d18437ca14 add module: go-musicfox 2026-10-26 11:51:08 -05:00
user fb8d92387c radare2: add module 2026-10-26 11:40:58 -05:00
djl b256132d11 neomutt: add description to macros
Macros can now set an optional `description`, written as the final
argument of the `macro` command so it shows in the help screen.
Macros without a description generate the same output as before.
2026-10-26 10:41:02 -05:00
kenny-ish c842992fda man: create cache output directory before mandb
mandb may exit successfully without creating output when no manual pages
are available. Create the output directory before invoking it so the
man-cache derivation always has its declared output.

Add a regression test for an empty manual page set.

Fixes #9962
2026-10-26 10:36:07 -05:00
Austin Horstman c216bf5a1f atuin: restart launchd daemon when managed config changes
Track the final enabled configuration source at the path Atuin reads so daemon settings that require a restart take effect. Respect file replacements and omit dependencies for themes, disabled files, and retargeted configuration without changing systemd behavior.
2026-10-24 21:54:26 -05:00
Austin Horstman a7b9fd5a53 pi-coding-agent: add opt-in mutable settings
Keep settings writable while applying declared values. Match packages by
native npm, Git and lexical local-path identities so declarations
replace equivalent saved entries without reordering unrelated packages.
2026-10-24 21:53:25 -05:00
joshcaz 5d5f3e51a3 sesh: allow configuring an externally installed package 2026-10-24 00:05:51 -05:00
XYenon ec8e95696d fresh-editor: add opt-in mutable settings 2026-10-24 00:05:23 -05:00
Rimapus 6d9655f764 opencode: support OpenCode 2 cli settings
Add programs.opencode.cli for OpenCode 2's global cli.json, while
retaining programs.opencode.tui for OpenCode 1.

Support mutable CLI configuration through OPENCODE_CLI_CONFIG_CONTENT,
leaving cli.json writable by OpenCode. Add validation against the
configured package's CLI schema and warn when CLI or TUI settings do
not match the package version.
2026-10-23 11:35:25 -05:00
Adam Curtis 0cf43f3999 t3code: fix settings examples
T3 Code 0.0.40 renamed enableAssistantStreaming to
enableLegacyTokenStreaming and drops the old key when reading
settings.json, so the userSettings example now sets
enableProviderUpdateChecks instead.

The desktop app writes client-settings.json without the legacy
{ settings = ...; } wrapper. It still reads a wrapped file, but then
ignores every top-level key, so with mutableClientSettings a wrapped
declaration hides the app's own changes. Write the clientSettings
example without the wrapper.
2026-10-23 10:26:28 -05:00
Adam Curtis 1a0da1659c codex: use the built-in ollama provider in settings example
Codex refuses to load a config that redefines a built-in provider, and
ollama is one. Replace the custom provider config with the built-in
ollama provider.
2026-10-23 10:26:28 -05:00
Adam Curtis 04d2af3ff1 alistral: use current fields in settings example
Alistral 0.6.9 has no listenbrainz_url field and ignores it; the
ListenBrainz server is set with listenbrainz_domain. musicbrainz_url is
deprecated in favour of musicbrainz_server.
2026-10-23 10:26:28 -05:00
Adam Curtis 467fa4595e algia: fix relay URL in settings example
The example's relay key read "wss =//relay-jp.nostr.wirednet.jp" instead
of the relay's URL.
2026-10-23 10:26:28 -05:00
Adam Curtis 5f16b6f23c codex: fix MCP transport changes with mutable settings
With mutableSettings, config.toml is merged recursively, so switching a
declared MCP server from command to url kept command and args next to
the new url, and switching back kept url and the HTTP options. Codex
refuses such a server and does not start: "failed to load bootstrap
configuration … url is not supported for stdio in
`
mcp_servers.<name>`".

When a declared server sets url or command, remove the keys that only
the other transport accepts. Keys both transports share, and those
Codex adds, such as tool approvals, are kept.
2026-10-23 10:17:04 -05:00
Adam Curtis fdb7862b3d readest: note null package where Readest is unavailable
nixpkgs only builds Readest for Linux, so on Darwin the module needs
package = null to evaluate. Say so in the package option, as
programs.ghostty does.
2026-10-23 09:51:39 -05:00
Adam Curtis fed1640a82 readest: fix settings file path on Darwin
Readest keeps settings.json in Tauri's app config directory, which on
Darwin is ~/Library/Application Support/com.bilingify.readest rather
than $XDG_CONFIG_HOME/com.bilingify.readest. The module wrote to the
latter, so declared settings had no effect on Darwin.
2026-10-23 09:51:39 -05:00
Adam Curtis 752e986f56 tmux: add kallisti-dev as maintainer 2026-10-23 09:47:43 -05:00
Adam Curtis 8642e391db starship: add kallisti-dev as maintainer 2026-10-23 09:47:43 -05:00
Adam Curtis b3bc39d343 readline: add kallisti-dev as maintainer 2026-10-23 09:47:43 -05:00
Lisa Scheers 6750249c69 nushell: load session environment at runtime
Source the OS and Home Manager POSIX environment scripts when Nushell
starts so runtime HOME and USER expansions and profile paths match managed
POSIX shells.
2026-10-22 16:05:41 -05:00
JonoandClaude Opus 5.5 2f5ab4a8fe t3code: add server service
Add programs.t3code.server to run the headless server as a user service
with systemd on Linux and launchd on Darwin. Support extra arguments
and an optional environment file for runtime secrets.

Add tests for generated service files and launchd environment loading.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 16:04:44 -05:00
Nikita Pedorich 975cea5f20 tealdeer: fix Darwin config directory
Tealdeer starting from version 1.9.0 respects
the XDG directories spec on Darwin and uses `~/.config`
instead of `~/Library/Application Support` to read the config file.
2026-10-21 11:40:29 -05:00
Austin Horstman dda0142d44 fzf: source packaged shell integrations
Use the shell scripts shipped by the configured package instead of
starting fzf to print them. This removes the target executable invocation
from Nushell integration builds and startup generation in other shells.

Preserve legacy fish binding setup and optional completion files, and
document the package script layout required by shell integration.
2026-10-19 21:56:49 -05:00
Drew Davis 6dfd606ede claude-code: respect preferXdgDirectories 2026-10-19 21:12:05 -05:00
RockWolf b74e23e34d prismlauncher: fix extraPackages 2026-10-19 14:33:13 -05:00
Austin Horstman ccae718610 k9s: correct removed skin option migration path
The former skin alias generated skins/skin.yaml. Point users to the matching skins.skin entry so migrating preserves the filename and configuration structure.
2026-10-15 16:12:44 -05:00
Austin Horstman 0683b2ac67 go: remove deprecated environment option aliases
Since 25.11, `programs.go.goPath`, `extraGoPaths`, `goBin`, and
`goPrivate` have been converted to `programs.go.env` variables. Remove
the conversions ahead of the 26.11 release; set `GOPATH`, `GOBIN`, and
`GOPRIVATE` under `programs.go.env` instead.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 7a5b7a8042 k9s: remove deprecated option aliases and nested key warnings
`programs.k9s.skin` was renamed to `programs.k9s.skins` in 24.05, and
`hotkey` and `plugin` became `hotKeys` and `plugins` in 25.11. Since
25.11 the module also writes `aliases`, `plugins`, and `views` under
their top-level YAML keys, and warned about the old nested `alias`,
`plugin`, and `k9s.views` keys.

Remove the aliases and those warnings ahead of the 26.11 release.
Configurations that still nest these keys already produced nested YAML;
they now do so without a warning.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 66eea21b09 mcfly: remove deprecated enableFuzzySearch option
`programs.mcfly.enableFuzzySearch` was replaced by
`programs.mcfly.fuzzySearchFactor` and has been converted with a warning
since at least 22.11. Remove the conversion ahead of the 26.11 release;
set `fuzzySearchFactor` directly.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 4aacdb3333 broot: remove deprecated modal, verbs, and skin aliases
`programs.broot.modal`, `programs.broot.verbs`, and
`programs.broot.skin` have been aliases for the matching
`programs.broot.settings` fields since at least 22.11. Remove them ahead
of the 26.11 release.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 2bf3c81aa2 bat: remove deprecated string themes and syntaxes
Entries in `programs.bat.themes` and `programs.bat.syntaxes` given as
file contents in a string have been deprecated in favor of `{ src; file;
}` attribute sets since 23.11. Accept only the attribute set form ahead
of the 26.11 release.
2026-10-15 16:12:44 -05:00
Austin Horstman 35540d2da2 eza: remove deprecated exa aliases and Boolean icons
The `programs.exa` aliases for `programs.eza` date to 23.11, and Boolean
`programs.eza.icons` values have been deprecated since 24.11. Remove
both ahead of the 26.11 release; set `icons` to `"auto"`, `"always"`,
`"never"`, or `null`.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 741bcfb609 less: remove deprecated keys alias
`programs.less.keys` has been an alias for `programs.less.config` since
25.11. Remove it ahead of the 26.11 release.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 11ce008f4b kitty: remove deprecated theme option
`programs.kitty.theme` was replaced by `programs.kitty.themeFile` in
24.11 and has been converted with a warning since. Remove the conversion
ahead of the 26.11 release.

The 2024 news entry about that change read `programs.kitty.theme` in its
condition, which would now fail to evaluate whenever news is generated,
so retire that entry's condition.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 244f9dc864 keychain: remove deprecated agents and inheritType options
Upstream keychain 2.9.0 dropped `--agents` and `--inherit`, and Home
Manager has warned about `programs.keychain.agents` and
`programs.keychain.inheritType` since 25.11. Remove both options ahead
of the 26.11 release; removed-option errors explain that the flags are
gone.
2026-10-15 16:12:44 -05:00
Austin Horstman b3c5197b68 ssh: remove deprecated top-level option aliases
The top-level `programs.ssh` options such as `forwardAgent`,
`serverAliveInterval`, and `controlPath` were deprecated in 25.11.
Remove their aliases ahead of the 26.11 release; set the native
directives under `programs.ssh.settings."*"` instead.

The `enableDefaultConfig` default and the newer `matchBlocks`
compatibility are unchanged.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 0d44b369da direnv: remove deprecated enableNixDirenvIntegration alias
`programs.direnv.enableNixDirenvIntegration` has been an alias for
`programs.direnv.nix-direnv.enable` since 21.11. Remove it ahead of the
26.11 release.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman d49ca696e7 bash: remove deprecated enableAutojump alias
`programs.bash.enableAutojump` has been an alias for
`programs.autojump.enable` since at least 20.09. Remove it ahead of the
26.11 release.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 16:12:44 -05:00
Austin Horstman 23a6f66d28 zsh: remove deprecated initialization options and relative paths
Remove the `enableSyntaxHighlighting` alias from 23.11, the
`enableAutosuggestions` alias from 24.05, the `zproof` alias, and the
`initExtra`, `initExtraFirst`, and `initExtraBeforeCompInit` options
deprecated in 25.05 in favor of `initContent`. Each now fails with a
removed-option error that names its replacement; for the init options,
that includes the `initContent` order to use.

Relative `dotDir` and `history.path` values, deprecated in 25.11, now
fail an assertion instead of being resolved against the home directory.
History paths may still contain shell variables, and neither assertion
applies while zsh is disabled.
2026-10-15 16:12:44 -05:00
Austin Horstman 54ad640b81 anki: remove deprecated sync.passwordFile alias
`programs.anki.sync.passwordFile` was renamed to `sync.keyFile` in 25.11
and now points at `programs.anki.profiles."User 1".sync.keyFile`. Remove
the alias ahead of the 26.11 release; the other `programs.anki.sync`
aliases, deprecated in 26.05, stay.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 12:34:25 -05:00
Austin Horstman a875cb4bdf ashell: require ashell 0.5.0 or later
ashell 0.5.0, released in June 2025, moved its configuration from YAML
to `ashell/config.toml`. Since 25.11 Home Manager has written YAML for
older packages and TOML for newer ones. Nixpkgs 25.11 already ships
0.6.0 and 26.05 ships 0.8.0, so drop the YAML path and, like the vicinae
module, fail an assertion when `programs.ashell.package` is older than
0.5.0.

`programs.ashell.settings` no longer accepts null. Only the YAML format
could serialize it; with TOML it already failed to build.

Replace the YAML test with one for the version assertion.
2026-10-15 12:34:25 -05:00
Austin Horstman aaa84655c1 ashell: remove camelCase settings migration
ashell 0.5.0 switched its TOML configuration to snake_case keys, and
since 25.11 Home Manager has converted camelCase keys in
`programs.ashell.settings` for TOML configurations, with a warning.
Remove the conversion ahead of the 26.11 release; camelCase keys are
now written as given.

Drop the test that only exercised the conversion.
2026-10-15 12:34:25 -05:00
Austin Horstman 8c07d6fea8 hyprpanel: remove deprecated theme name warning
Since 25.11, setting `programs.hyprpanel.settings.theme.name` has warned
that named themes are no longer loaded and that theme contents belong
directly under `programs.hyprpanel.settings.theme`. Remove the warning
ahead of the 26.11 release.
2026-10-15 12:34:25 -05:00
Austin Horstman 1070be56dc rtorrent: remove deprecated settings alias
`programs.rtorrent.settings` has been an alias for
`programs.rtorrent.extraConfig` since at least 22.11. Remove it ahead of
the 26.11 release.

Setting a removed option now fails with an error that explains what
to do instead.
2026-10-15 12:34:25 -05:00
Austin Horstman 7445b152a3 msmtp: remove deprecated extraConfig and extraAccounts options
`programs.msmtp.extraConfig` and `programs.msmtp.extraAccounts` were
deprecated in 25.11 in favor of `programs.msmtp.configContent`, ordered
with `lib.mkBefore` or `lib.mkAfter`. Remove them ahead of the 26.11
release; removed-option errors point to the replacement.
2026-10-15 12:34:25 -05:00
Austin Horstman 897987cab2 lieer: remove deprecated account option aliases
The `accounts.email.accounts.<name>.lieer` options
`dropNonExistingLabels`, `ignoreTagsRemote`, `ignoreTagsLocal`,
`timeout`, and `replaceSlashWithDot` have been aliases for the native
settings under `lieer.settings` since at least 21.11. Remove them ahead
of the 26.11 release.
2026-10-15 12:34:25 -05:00
Austin Horstman 5828a9e460 neomutt: remove deprecated string bind maps
`programs.neomutt.binds.*.map` and `programs.neomutt.macros.*.map` have
accepted a single menu string with a deprecation warning since 21.05.
Accept only lists of menus ahead of the 26.11 release, for example
`map = [ "index" ];`.
2026-10-15 12:34:25 -05:00
Austin Horstman 1eb0a91321 vim: remove deprecated string plugin names
Plugin names given as strings have been deprecated in favor of packages
since at least 19.09, with a warning and a lookup in `pkgs.vimPlugins`.
Remove the lookup and accept only packages ahead of the 26.11 release;
use values such as `pkgs.vimPlugins.vim-airline`.
2026-10-15 12:34:25 -05:00