This expands the Syncthing configuration to allow declarative
settings. Code mostly pulled from the Nixpkgs module.
Changes compared to the NixOS module are:
Removed the following options:
- user, group, systemService: Unnecessary since Syncthing always runs
as the user declaring the configuration.
- dataDir configDir, databaseDir: Pointed to ~/.local/state/syncthing,
the default Syncthing directory.
- openDefaultPorts: We don't have access to the system firewall.
Furthermore, multiple changes to systemd services were made to
maintain consistency with other Home Manager modules, sandboxing
options might need to be reviewed further.
Fixes#4049
Using a fixed application name in the salt for the search engine name
hash can break with minor branding changes. For example, LibreWolf 127
used the application name "LibreWolf", but in version 128 it is
"Firefox".
The proper name can be found in about:support -> Application Basics.
Because it doesn't have to be related to the product name visible in
most of the browser (for example in the window title and help menus),
we shouldn't rely on cfg.name for that.
The application name can be read from lib/*/application.ini and we can
use that if the browser was installed via Home Manager. If not, we can
fall back to cfg.name.
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