Add programs.astroid.settings for native JSON configuration and
generate the configuration file from it.
The extraConfig and externalEditor options become deprecated aliases
into settings. Home Manager no longer writes its bundled template;
Astroid's built-in defaults match it except editor.markdown_processor.
Astroid accounts still supply account settings, the notmuch path, and
the GPG path as per-key defaults. Empty settings write no file.
externalEditor now merges at ordinary priority instead of replacing
the editor keys, and priorities on extraConfig sections apply to the
section as a unit. The release notes describe both changes.
Add programs.notmuch.settings for native INI configuration with list
values, and generate the configuration file from it.
The new.ignore, new.tags, maildir.synchronizeFlags, search.excludeTags,
and extraConfig options become deprecated aliases into settings.
Settings carry no static defaults: new.tags, new.ignore, and
maildir.synchronize_flags fall back to notmuch's identical defaults.
State versions before 26.11 keep search.exclude_tags = deleted;spam and
write database.path even without email accounts. Enabled email
accounts supply database.path, and notmuch-enabled accounts the user
identity. Null values and empty sections are omitted so a derived
value can be removed.
extraConfig no longer overwrites modeled values unconditionally: forced
definitions win and ordinary collisions fail. The release notes
describe the migration.
Mbsync, lieer, and mujmap now write settings.new.ignore directly, so
they do not trigger deprecation warnings.
Add programs.borgmatic.backups.<name>.settings for native borgmatic
YAML and generate each backup file from it.
The location, storage, retention, and consistency options and the
section extraConfig options become deprecated aliases into settings.
Warnings name the affected backup. Legacy configurations without
overlapping keys produce the same YAML, and Home Manager symlink
exclusions still append to exclude_from.
Drop the assertions that rejected backups setting both or neither of
sourceDirectories and patterns, so native source patterns and
database-only backups work.
Fixes#8000
The `mpd-mpris` module used different names for the options than
`mpd-mpris` itself, causing some confusion.
Additionally, this makes some more improvements in the module, largely
based on the upstream module [^1], which includes:
- Removing the `services.mpd-mpris.mpd` namespace, it did not serve any
purpose. This also got rid of the `services.mpd-mpris.mpd.useLocal`
option, just don't configure `host` to connect to the local instance.
- Removing the `password` option, it should have never gotten into this
module because it will write the password to the world readable nix
store. A new `password-file` option was added to replace it.
- Moving the settings to a new freeform submodule under the key
`services.mpd-mpris.settings`.
- Replacing the `renderCmd` function with a use of `lib.cli.toCommandLine`.
While I diverged quite a bit from the upstream module, much credit for
these changes goes to @natsukagami!
[^1] 90c4264e58/nix/module.nix
Fixes an issue introduced in [1] where gtk4 apps would print the
following warning:
> Error setting gtk-interface-color-scheme in
> /home/mithic/.config/gtk-4.0/settings.ini: Key file contains key
> “gtk-interface-color-scheme” which has a value that cannot be
> interpreted.
The value should be set to the nickname ("light" or "dark" in this
case), rather than the actual numerical value of the enum. This lookup
happens at [2].
These nicknames appear to be undocumented and automatically generated at
compile time, but in general they appear to follow the pattern where an
enum value FOO_BAR_BAZ_QUUX of the enum FOO_BAR has nickname "baz-quux".
Regardless, they can be looked up in the generated file
gtktypebuiltins.c (it unfortunately appears that nix only keeps
gtktypebuiltins.h, which does not contain the nicknames).
[1] https://github.com/nix-community/home-manager/pull/7763
[2] https://gitlab.gnome.org/GNOME/gtk/-/blob/4.22.4/gtk/gtksettings.c#L1863
Expose native filter, retriever, and destination configuration while
retaining account defaults and legacy boolean aliases. Preserve tuple
rendering and allow complete native retriever configuration without an
IMAP account block.
Generate managed JSON from canonical settings while preserving legacy editor and sync conversions. Use the shared overlay helper for extraConfig priorities and effective-key detection.
Keep activation-time merging into the writable application file, including unmanaged settings and historical null and empty-string filtering.
Adds programs.yopass for managing the yopass CLI configuration file
(~/.config/yopass/defaults.yml), with an NMT test verifying the
generated settings.
Assisted-by: Claude Fable 5
Expose cover matching and notification settings without duplicating the
upstream schema. Preserve legacy options and MPD integration through
per-key migration helpers and retain path-valued music directories.
Generate grobi.conf from unrestricted JSON settings so root fields such as on_failure and nested rule values are configurable.
Migrate rules and executeAfter through the ordered settings rename helper, retaining historical empty defaults, alias reads, priorities, and list ordering.
Leave native defaults to Rofi instead of injecting location and offset
values. Preserve explicit legacy settings and theme selection, and omit
configuration files when no effective settings or theme are supplied.
Generate the Rasi configuration block from merged native settings. Preserve legacy option conversions, overlay precedence, numeric defaults, and theme ordering.
Use the shared settings overlay helper for extraConfig forwarding and key detection. Keep package integration and the existing serializer unchanged.
The old cloud-only mappings cannot express root-level cache and client
settings. Expose complete YAML documents while preserving existing
configurations through standard rename aliases.
b4 (https://b4.docs.kernel.org) is a tool for kernel-style patch and
email review workflows on lore.kernel.org. The module installs b4 and
writes its configuration to git-config's [b4] section -- b4 has no
config file of its own -- defaulting to a recommended Claude Code
review-agent wiring.
The review-editor highlighting and agent-reviewer prompt b4 ships under
misc/ are missing from its PyPI sdist; the module pulls them from the
nixpkgs packages added in NixOS/nixpkgs#543347 rather than fetching the
b4 repository itself.
Assisted-By: Claude Opus 4.8 (1M context)
Use native INI settings instead of a copied option schema, retaining
legacy conversions, default behavior, and font-package installation.
Preserve extraConfig's final override while users migrate to settings.
Replace the native option schema with generator-backed INI settings
and standard rename aliases to reduce module maintenance. Retain
historical defaults only for legacy options at option-default priority,
so ordinary settings assignments override them during migration.
Cover legacy reads, priorities, conditions, and settings-only behavior.
Expose qcal's JSON configuration through programs.qcal.settings and
per-calendar entries through accounts.calendar.accounts.<name>.qcal.settings.
Generated Calendars entries and the account remote projections use
mkDefault so users can override or extend them. timezone and
defaultNumDays become renamed aliases of the settings keys.
Allow native tool types, properties, and aliases that the structured
options cannot express. Append ordered CFG declarations after generated
tools so users can extend their configuration without replacing it.
Preserve generated output when extraConfig is empty.