- Add `services.kanshi.profiles.<name>.outputs.*.alias` to support new
alias directive from kanshi [1].
- Add an assertion to reject aliases not on global scope, which are
not allowed on kanshi [2].
- Add a new test to check alias rejection, `alias-assertion`.
- Add relevant coverage by modifying the existing "new-configuration"
test.
- Kanshi also doesn't allow wildcards on global scope [3], correct the
faulty test case.
[1]: 1ed86ce523
[2]: 1605f7c813/item/doc/kanshi.5.scd (L78)
[3]: 1605f7c813/item/doc/kanshi.5.scd (L80)
Add an option to programs.autorandr's configModule to allow arbitrary
extra config lines.
No option exists for adding arbitrary key/values to generated autorandr
profile config, as is common in other nix modules. This commit adds one.
The lastUserContextId value should match the highest context ID from
the containers set in a given profile. This update ensures that this
always is the case.
This way the end user can easily check whether the home-manager
configuration is part of the module or not. Example of use:
```nix
{ lib, nixosConfig, ... }:
let
mkIfNixos = lib.mkIf nixosConfig != null;
in
{
programs.foot.enable = mkIfNixos true;
}
```
This switches `systemd.user.startServices = true` to be the same as
`systemd.user.startServices = "sd-switch"`, previously it would use
the "legacy" method. It also introduces a warning that triggers if the
user explicitly have `systemd.user.startServices = "legacy"`.
See #5452
fastfetch: update example for JsonConfig settings
Using the present version of the example, trows an error:
JsonConfig Error: `display.binaryPrefix` has been renamed to
`display.size.binaryPrefix`. Sorry for another break change.
It occurs because of change in fastfetch 2.19 of JsonConfig - moving
`display.binaryPrefix` to `display.size.binaryPrefix`
To not confuse the users, this commit changes the example to fit
current standard
See <b3ac696312/CHANGELOG.md (L85)>
Adds support for Firefox forks by introducing methods that create
generic configs and options. Additional configs and options can be
added in separate modules.
The `pkgs.gnome.gnome-terminal` package was moved to
`pkgs.gnome-terminal`. The former is now a deprecated alias that
throws a warning whenever a configuration enabling the module is used:
```
The ‘gnome.gnome-terminal’ was moved to top-level. Please use
‘pkgs.gnome-terminal’ directly.
```
Related: https://github.com/NixOS/nixpkgs/pull/319659
Related: https://github.com/nix-community/home-manager/pull/5611
Should fix an issue where swayosd.service would stop without starting
again after restarting too quickly.
Triggered by ending a Hyprland session and logging in with tuigreet.
Related: https://github.com/nix-community/home-manager/pull/4316
Add an extra option,
accounts.contact.accounts.<name>.khard.defaultCollection
to hardcode a subdirectory for khard to function as intended. Khard
expects to be given a collection directory directly, from which there
can be multiple of in a vdir. This contrasts khal or vdirsyncer which
support recursive search.
Fixes#4531
Previously, type check of `programs.starship.settings` fails for some
valid settings, such as `c.commands = [["cc" "--version"]]`.
The commit fix the `type` argument passed to `mkOption`, so
`programs.starship.settings` can accept all valid values (of toml
type).
Sometimes services can fail. Failed services will generally not be
restarted by systemd. To start previously failed services we can
just reset their failed state before starting our session target.
GNOME and Plasma do the same thing.
See: https://github.com/alebastr/sway-systemd/pull/11
"lib.cartesianProductOfSets is a deprecated alias of lib.cartesianProduct."
Rename happened in nixpkgs commit `228621e42dc43f936b66e0ed042c90c511aa0535`.
rbw expects a protocol for its base_url setting[1]. Otherwise fails
with `rbw unlock: failed to parse base url: relative URL without a
base`.
[1] 741a72cf0d/README.md (configuration)
If the user has template services in their systemd configuration, these
can't be restarted, and will produces warnings during the activation
phase. Avoid those warnings by skipping any uninstantiated templates
when looking for services to start or stop.
After update to sd-switch 0.5.0, `home-manager switch` failed with the
following error message:
> Error: Error switching
>
> Caused by:
> 0: Failed to build switch plan
> 1: No such file or directory (os error 2)
This was caused by a non-existing target unit directory due to no user
services being managed by home-manager. This change makes sd-switch
run with pkgs.emptyDirectory as the target in such cases.
Closes: https://github.com/nix-community/home-manager/issues/5552
The program shell wrappers have been renamed from `ya` to `yy`
following the introduction of the new CLI tool named `ya`.
With this in mind, the `shellWrapperName` option has been introduced
to provide users with more flexibility in choosing the name they're
most accustomed to (ra, lf, ...).
Co-authored-by: XYenon <register@xyenon.bid>
Co-authored-by: 三咲雅 · Misaki Masa <sxyazi@gmail.com>
- Always append suffix `.yazi` to plugin's and flavor's attribute names.
- Warn if the attribute names already have the suffix.
- Assert that plugin's and flavor's values point to directories
containing an `init.lua` file.
- Append suffix `.yazi` to symlink targets of yazi plugins, if needed
- Improve some docs, especially links to upstream docs.
- Update tests to make use of this feature.
* nix: add options 'nixPath' and 'keepOldNixPath'
By default, the system value for $NIX_PATH is kept as a fallback.
To completely override the system value for $NIX_PATH:
nix.keepOldNixPath = false;
* nix: add more tests
* nix: add a declarative alternative to Nix channels
This adds a new option, 'nix.channels'. It's the Nix channels equivalent
of the 'nix.registry' option, and compatible with pre-Flake Nix tooling
including nix-env and nix-shell. Like 'nix.registry', this option is
useful for pinning Nix channels.
Channels defined in the new option can coexist with channels introduced
through the nix-channel command. If the same channel exists in both, the
one from Home Manager will be prioritized.
* nix: add news entry
* nix: make channels respect use-xdg-base-directories
* nix: remove 'with lib;'
---------
Co-authored-by: Michael Hoang <enzime@users.noreply.github.com>
Some prefer to handle modules-* imperatively for more flexibility, e.g.,
via waybar "includes" (https://github.com/Alexays/Waybar/wiki/Configuration).
Current HM defaults modules-* to `[]` instead of null for most other
settings, so they get written to ~/.config/waybar/config even though
no explicit configuration has been made.
And they take precedence over the imperative ones because of how
waybar's includes work:
====
Paths to additional configuration files.
Each file can contain a single object with any of the bar configuration options. In case of duplicate options, the first defined value takes precedence, i.e. including file -> first included file -> etc. Nested includes are permitted, but make sure to avoid circular imports.
For a multi-bar config, the include directive affects only current bar configuration object.
====
To avoid this kind of message:
swayidle[181123]: - [Line 1054] Unable to connect to the compositor. If your compositor is running, check or set the WAYLAND_DISPLAY environment variable.
The 24.05 update for KDE Connect moved the kdeconnectd binary from
`/libexec` to `/bin`, so this fix will check the version of the
package used and set the path accordingly.
`splitString "" "some string"` would throw exception `error: invalid
regular expression` on Darwin (or accurately, on Nix built against
libc++). Refer to https://github.com/NixOS/nix/issues/7208 for
details.
Before Nix handles that issue correctly, we should refrain from using
`splitString ""`, and luckliy `lib.stringAsChars` can do the same thing.
Using the option
wayland.windowManager.hyprland.systemd.enableXdgAutostart
users can now choose to start applications present in
`$XDG_CONFIG_HOME/autostart` when starting their sway session.
See 0144ac418e and
https://github.com/nix-community/home-manager/pull/3747
We currently have no way of specifying the sender's name inside the
From field, making a patch sent through `git send-email` appear as
coming from "xxx@domain.com".
In this commit we make this field follow the standard
realName <email>
format.
In the generated neomutt configuration, source the optional
`vim-keys.rc` before applying the `binds` configuration, to allow the
user to override keybindings from `vim-keys.rc`.
Adapt the test files to account for the empty space left by the unset
`vimKeys` option.
This enables a module system feature documented here:
https://nixos.org/manual/nixpkgs/stable/index.html#module-system-lib-evalModules-param-class
For example, it allows a mistake to be caught, which is loading a
NixOS module into home-manager. This only works when the offending
module declares what it's for with a `_class` attribute.
It is not expected that users declare the `_type`, because the payoff
is small. It is only expected to be set by generic code, such as
functions or libraries that help with the "publishing" of modules
(e.g. flake-parts, flake-utils).
The class feature has been available in the module system since
https://github.com/NixOS/nixpkgs/pull/197547, merged May 6, 2023. It
has been part of all releases since 23.05-beta. The last NixOS release
that did _not_ support it has been end-of-life for close to a year
now.
Example:
(lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.x86_64-linux;
modules = [{ _class = "nixos"; imports = [ ./foo.nix ]; }];
}).activation-script
Corresponding error:
error: The module <unknown-file> was imported into homeManager instead of nixos.
(`<unknown-file>` can be improved by also setting `_file`, if known; a
much older feature)
PR #5339
To configure zsh's autosuggest "highlight style" we use ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE but it's currently set to AUTOSUGGESTION_HIGHLIGHT_COLOR (via autosuggestion.highlight). This change was apparently made back in 2016 or earlier.