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>
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>
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
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
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.
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>
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>
Needs to handle different lua versions better. Determine lua version for
which luaPackages set to reference
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
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.
Recently changed location where codex looks for skills. Version gate
where we install the skills.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Add shell integration that functions similar to lazygit for navigating
to directory of the chosen worktree.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>