By adding `key`, this allows users to disable this shared module or they can choose to not disable this shared module (by filtering by key before disabling)
This means users can disable all shared modules if all modules are paths or attrsets with a key:
`configuration.nix`:
```nix
{ config, ... }:
{
home-manager.users.enzime = { ... }: {
disabledModules = config.home-manager.sharedModules;
};
}
```
Or disabling just this module specifically:
```nix
{ ... }:
{
home-manager.users.enzime = { ... }: {
disabledModules = [ { key = "home-manager#nixos-shared-module"; } ];
};
}
```
Or disabling all modules when you have modules you can't disable (like lambdas):
```nix
{ ... }:
{
home-manager.users.enzime = { ... }: {
disabledModules = lib.filter (v: lib.isString v || lib.isPath v || (lib.isAttrs v && v ? key)) config.home-manager.sharedModules;
};
}
```
https://nixos.org/manual/nixos/unstable/#sec-replace-modules
Currently, the home-manager systemd service will only get restarted when
the home-manager configuration changes. This can lead to issues in
users' home directories not getting corrected for a while.
$ rm ~/.zshrc
$ sudo nixos-rebuild switch
$ ls ~/.zshrc
ls: cannot access '/home/enzime/.zshrc': No such file or directory
systemd rejects the service unit due to whitespace in the environment
variable assignment, pointing to the repo path, being invalid for
systemd's unit format.
See https://github.com/nix-community/home-manager/issues/6023 for
details.
The git-sync variable should also be escaped due to similar issues
with e.g. local git urls.
This makes extraPackages the default, but they do not shadow the env
so you can still have packages (e.g. LSPs) with a different version
than the global one in you local env like nix's shells.
Adds a new Podman module for creating user containers and networks as
systemd services. These are installed to the user's
`$XDG_CONFIG/systemd/user` directory.
This facilitates a legitimate use-case for browserless systems. From the
README:
> On systems without a web browser, set the -device flag to authenticate
> on another device using [OAuth device flow]:
> ```ini
[credential]
helper = cache --timeout 7200 # two hours
helper = oauth -device
```
[OAuth device flow]: https://www.rfc-editor.org/rfc/rfc8628
Please note that, for the documentation about the man-page to be
accurate, https://github.com/NixOS/nixpkgs/pull/302922 must be merged.
Previously,
- `programs.yazi.enableNushellIntegration`,
- `programs.yazi.enableFishIntegration`, and
- `programs.yazi.enableZshIntegration`
were set to false by default. It seems more appropriate to enable
these integrations by default.
makeWrapper is more consistent with the rest of nixpkgs & home-manager,
so it should be a little more maintainable. It can also validate that
the wrapper command is executable at build time.
Some desktop files will refer to the absolute path of the original
derivation, which would bypass nixGL wrapping. So we need to replace the
path with the path to the wrapper derivation to ensure the wrapped
version is always launched.
When zoxide initializes after fzf it causes fzf " ** " trigger to not
work.
To fix the issue we needed to make zoxide initialize earlier than fzf
but after bash-completion.
PR #5955