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.
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.
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
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.
Update mako module to pass lib.hm.strings.toKebabCase to the
mkSettingsRenamedOptionModules
function, which ensures option names are properly converted to
kebab-case format.
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.
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.
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.
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`.
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.
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.