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.
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.
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.
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.
Clarify that this option only enables Thunderbird external GnuPG
integration and does not import or accept public keys in the Thunderbird
OpenPGP key manager.
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
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.
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.
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.
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`).
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
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.
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.
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.
Closesnix-community/home-manager#2918 for macOS.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
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.
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.