The `exec` command does not do any shell parsing and does not
understand the `&&` which is how the extraCommands are added after
dbus activation. There doesn't seem to be a reason for `exec` here
anyway so just remove it and allow shell parsing.
* imapnotify: enable STARTTLS if enabled in email account config
Since version 2.3.10 goimapnotify supports starttls. In version 2.3.11 a
typo in the settings was fixed, using tlsOptions.starttls to enable it.
This commit enables starttls in the goimapnotify config file if it is
enabled in the email account's imap settings.
* imapnotify: test generated config file
Compare the generated service config file with a manually verified
sample.
workspace 10 is part of upstream's default config, but was missing in home-manager.
The initial "sway: add module" PR (02d6040003) went through multiple iterations and had workspace 10 included for a brief moment.
Until the author removed it in a force-push commenting
> Have removed the last change which added bound ${modifer}+0 to workspace number 10 as this messed up workspace numbering in sway.
The reason might have been, that sway used to sort the workspaces in the order they appeared in the config.
Attribute sets in nix are sorted, but not "naturally sorted", meaning `bindsym Mod1+0 workspace number 10` comes before `bindsym Mod1+0 workspace number 1`.
It's unclear if that's what really happened. A workaround would have been to use `lib.lists.naturalSort` in `keybindingsStr`.
But I cannot reproduce this anymore in any way.
I assume this has been fixed many years ago by now.
upstream config: 020a572ed6/config.in (L113-L134)
This removes the services.keepassx module and all options related to it.
This is because KeePassX has been unmaintaned for a long time, and the
migration path to KeePassXC is not clear.
Note, this package probably hasn't worked for nearly a year since the
package was removed from Nixpkgs:
https://github.com/NixOS/nixpkgs/pull/216748Closes#4949
Signed-off-by: Sumner Evans <me@sumnerevans.com>
The previous syntax (`plugin:name { ...settings}`) is not working with
more than one plugin. There is no documentation for this, just the
source code [1].
With this update the plugins paths aren't generated together with the
full config (so the "plugin" field is not "important" anymore) and the
plugins settings are generated like the other fields.
[1] 4d403dac32/src/config/ConfigManager.cpp (L1574)
The plugin setting in the Hyprland config is used both for defining
plugin paths and configuring the plugins. This fix removes the
silent override of the plugins settings converting them to the
`plugin:<name> { ...settings }` syntax.
DBus activated services such as mako use the XCURSOR_THEME and
XCURSOR_SIZE environment variables to decide how to show the cursor,
so without these, the cursor may not match the rest of the desktop
when hovering over (in this example) mako notification surfaces.
Osmscout-server includes a setting in its UI to create a systemd user
service and socket to run the server on demand. This does not function
correctly on NixOS, for two reasons:
1. It assumes that the binary path is stable (e.g.
/usr/bin/osmscout-server), which is not the case on NixOS.
2. It auto-detects the unwrapped binary path, which doesn't work.
This module allows the user to access the same functionality on NixOS.
The service was never marked with a failed state with the previous
approach, which could lead broken synchronisation pair states to go
undetected.
The module now uses a timer instead of unlimited restarts, which does
not have this issue.
When using the previous approach I've always gotten errors that I can't
reload config on the .lock file that exists in /tmp when you run a
standard configured hyprland.
This commit improves this by using hyprctl to find instances to reload
instead.
We can remove the HYPRLAND_INSTANCE_SIGNATURE bogus assignment once
https://github.com/hyprwm/Hyprland/issues/4088 is resolved.
Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
Add the option sourceFirst to the hyprland module. When this option is
enabled source entries will be put near the top of the file, so that
the variables declared in other files can be used by the other
configuration entries.
Add "source" to the list of important prefixes when the former option
is enabled.
Resolves#4729
Occasionally, swayidle crashes with a failure to connect to the
Wayland session. Ideally, swayidle should automatically restart
instead of leaving the system in a vulnerable state.
When a process inside the sxhkd scope is OOM killed, if the OOM policy
is set to `stop` then the sxhkd scope itself will exit, terminating
every process launched from the keyboard.
This is undesirable, set it to `continue` instead to keep other
processes running.
For devices with more than one battery, cbatticon allows to set the
battery ID as optional positional argument. If this argument is not
given, it default to the first battery it would list with `cbatticon
-p`. This commit adds support for the batteryId option to the cbatticon
module.
Allows users to customize which environment variables to import in DBus
and SystemD user environments, and to specify which commands will be run
after the environment activation.
Fixesnix-community/home-manager#4488
The default config for sway generates a bar block with tray_output primary. But wayland (or sway, take your pick?) has no concept of a primary display so this just results in no tray anywhere.
A better default is "*" which puts the tray on every monitor, since sway can do so without issue.
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
Remove xwayland.hidpi option, since we're dropping HiDPI XWayland
patches support, opting to use the builtin xwayland:force_zero_scaling
option instead. It is described in more detail in
https://wiki.hyprland.org/ Configuring/XWayland.
- On darwin, creates a launch agent to run git-sync on an interval and
when the `path` changes.
- The `uri` option is not used on Darwin. The auto-creation of the
local git directory from the `uri` is a feature of the
git-sync-on-inotify [1] wrapper (which won't work on Darwin afaik)
and not `git-sync` itself.
[1] https://github.com/simonthum/git-sync/blob/master/contrib/git-sync-on-inotify
* hyprland: prioritize variables and beziers
The `settings` key now handles `$variables` and `bezier`s differently,
putting them at the top of the file.
Also, proper indentation has been implemented.
* Update modules/services/window-managers/hyprland.nix
Co-authored-by: Naïm Favier <n@monade.li>
* hyprland: add animations & beziers test
---------
Co-authored-by: Naïm Favier <n@monade.li>
These (and the `*MD` functions apart from `literalMD`) are now no-ops
in nixpkgs and serve no purpose other than to add additional noise and
potentially mislead people into thinking unmarked DocBook documentation
will still be accepted.
Note that if backporting changes including documentation to 23.05,
the `mdDoc` calls will need to be re-added.
To reproduce this commit, run:
$ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
nix shell nixpkgs#coreutils \
-c find . -name '*.nix' \
-exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
--strip {} +
$ ./format
This process was automated by [my fork of `nix-doc-munge`]. All
conversions were automatically checked to produce the same DocBook
result when converted back, modulo minor typographical/formatting
differences on the acceptable-to-desirable spectrum.
To reproduce this commit, run:
$ NIX_PATH=nixpkgs=flake:nixpkgs/e7e69199f0372364a6106a1e735f68604f4c5a25 \
nix shell nixpkgs#coreutils \
-c find . -name '*.nix' \
-exec nix run -- github:emilazy/nix-doc-munge/98dadf1f77351c2ba5dcb709a2a171d655f15099 \
{} +
$ ./format
[my fork of `nix-doc-munge`]: https://github.com/emilazy/nix-doc-munge/tree/home-manager
The NixOS variant of Markdown doesn't make a distinction between
`<code>` and `<literal>` or `<quote>` and... quotes, and doesn't
support `<parameter>` or `<replaceable>`. These are infrequently used
(apart from `<code>`) and don't add much, so just convert them to
simpler forms to allow the options containing them to be converted
to Markdown automatically.
A few minor syntactic adjustments were also made to make
`nix-doc-munge`'s job easier.
The Markdown options processor cannot handle rendering tables
to DocBook. This could be fixed, but as we won't be using the
DocBook output for long I just removed them for now in the interest
of expediency; they were all well-suited to being description lists
showing option types anyway, apart from one awkward case in the form
of trayer, which also had ad-hoc syntax for enumerating acceptable
values in the documentation. Since the types aren't actually used for
option processing anyway, I changed them to use `enum` and similar to
give a single description of the acceptable values without a big table.
`nix-doc-munge` can't handle these, which is understandable as I can
barely handle them either. There are a few infelicities here: the
current processor can't handle multiple terms to one description in
a description list so they get comma-separated in one case, and one
case that should ideally render as a `<figure>` with a `<figcaption>`
in HTML is reduced to a paragraph with some `<strong>` text. (Which, in
fairness, is how it rendered in practice with the DocBook anyway.) The
docs generator has since been updated to handle figures, but we can't
use it until moving off DocBook output.
These files all have options that trip up the `nix-doc-munge`
conversion tool for one reason or another (syntax that clashes with
Markdown, options that were already using Markdown syntax despite not
being marked that way, output that differs slightly after conversion,
syntax too elaborate to convert with some cheap regular expressions,
...). Translate them manually and do a little copyediting to options
in the vicinity while we're at it.
Prior to this change, it was impossible to nest attrsets in
accounts.email.accounts.<name>.imapnotify.extraConfig. However,
goimapnotify's configuration is JSON-based, and the recommended
configuration has:
```
"tlsOptions": {
"rejectUnauthorized": true
},
```
This change changes the type from an attrset of str/int/bool to the
JSON type provided by nixpkg's `pkgs.formats.json`.
As pointed out in #3291, using the XDG symlink means the agent/unit
files don’t change when the contents of the config changes, and so the
service will not be restarted.
Unison supports the same option to be given several times as a command
line argument (e.g. unison -path xxx -path yyy).
This commit adds Home Manager support for this by allowing a list of
strings to be given to services.unison.pairs.<name>.commandOptions values.
# Veuillez saisir le message de validation pour vos modifications. Les lignes
* imapnotify: expose package (and exe) options
There are multiple packages that provide an imapnotify interface. Those
packages have differently named executables. This can now be customized.
This change also means test configurations can use stub packages.
* imapnotify: use/create config in configHome
Exposing the configuration file makes testing imapnotify configurations much
easier. It also allows for golden tests in home-manager.
* imapnotify: extend with launchd agent
Now that home-manager supports launchd agents, the imapnotify service
can be configured (and enabled) for darwin. The configuration matches
that of the linux/systemd version. In particular, by not setting a
`UserName`, this runs as the user whose configuration includes the
module.
Due to the launchd `Program` implementation (it must take an absolute
path) it is not possible to use that for the program and stub the path
in tests. Instead, this uses `ProgramArguments` for the program name.
The `ThrottleInterval` is equivalent to `RestartSec`. `KeepAlive` is
equivalent to `Restart`.
The `ExitTimeOut` default is 20 seconds, but goimapnotify should not
time out — this is achieved by setting the `ExitTimeout` to 0.
* imapnotify: add launchd plist test
This only tests the generated plist (which is new), not the original
systemd implementation, nor the json config file.
(Note the lack of a newline at the end of the plist file.)
PR #3747 renamed the option wayland.windowManager.sway.systemdIntegration
to wayland.windowManager.sway.systemd.enable.
This commit simply updates documentation to reference the new format.
* Add infrastructure for contacts and calendars
This also adds the modules
- programs.vdirsyncer,
- programs.khal, and
- services.vdirsyncer
that integrate with the new infrastructure.
Co-authored-by: Andrew Scott <3648487+ayyjayess@users.noreply.github.com>
Co-authored-by: Sebastian Zivota <sebastian.zivota@mailbox.org>
wip
* vdirsyncer: allow option userName, disallow userNameCommand
1. account option `userName` is now allowed by `programs.vdirsyncer`
2. The commented out account option `userNameCommand` was required to be set
by `programs.vdirsyncer` (e.g. as `null`).
It is now disallowed (commented out) by vdirsyncer.
* khal: added options 'color' and 'priority'
* Apply nixfmt
---------
Co-authored-by: Sebastian Zivota <sebastian.zivota@mailbox.org>
Co-authored-by: Johannes Rosenberger <johannes.rosenberger@jorsn.eu>
Co-authored-by: Johannes Rosenberger <johannes@jorsn.eu>
Co-authored-by: Robert Helgesson <robert@rycee.net>
* sway: add support for XDG autostart using systemd
Using the option wayland.windowManager.sway.systemd.xdgAutostart, users
can now choose to start applications present in
$XDG_CONFIG_HOME/autostart when starting their sway session.
This change also renames wayland.windowManager.sway.systemdIntegration
to wayland.windowManager.sway.systemd.enable;
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
* sway: add Scrumplex to maintainers
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
---------
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
* Fix espanso module to work with 2.x version
* espanso: fix espanso module
This module is currently broken. It does not create `config` and `match` folders which are required by espanso 2.x version.
This PR fixed this issue and support creating multiple files under `config` and
`match` folder.
* Espanso: fix espanso module
This module is currently broken. It does not create `config` and `match` folders which are required by espanso 2.x version.
This PR fixed this issue and support creating multiple files under `config` and `match` folder.
Add descriptions
* Add versionAtLeast and mkRemovedOptionModule
* Correct maintainers list
* remove config key from example
* format basic-configuration.nix
* Update modules/services/espanso.nix
Co-authored-by: Naïm Favier <n@monade.li>
* fix maintainers list
---------
Co-authored-by: Naïm Favier <n@monade.li>
* pass-secret-service: Add dbus file, assert
Add the dbus service file in the package folder to XDG_DATA_HOME, as
well as adding an assertion to ensure both it and `gnome-keyring` aren't
enabled at the same time.
* pass-secret-service: Add self to CODEOWNERS
* pass-secret-service: Call out conflicting module(s)
* pass-secret-service: Revert `storePath` change
Signed-off-by: Cynthia Fox <cyntheticfox@gh0st.sh>
* pass-secret-service: Add password-store module default changes info
* pass-secret-service: Fix default info, modularize conflict checks
Signed-off-by: Cynthia Fox <cyntheticfox@gh0st.sh>
* Revert "pass-secret-service: Fix default info, modularize conflict checks"
This reverts commit 851df4fe49.
* pass-secret-service: Fix default info
Signed-off-by: Cynthia Fox <cyntheticfox@gh0st.sh>
* pass-secret-service: Indent `storePath` description
---------
Signed-off-by: Cynthia Fox <cyntheticfox@gh0st.sh>
Without this, even if you configure a preference for Electron apps to
use Ozone by setting `NIXOS_OZONE_WL=1`, GUI apps launched through
systemd user services use XWayland, since the variable is not set in
their environment.
This fixes that issue by importing it, like we do other variables.
The previous implementation tried to rename the tag named "default" to
the first tag in `cfg.tags`. This was a wrong approach because if a
tag with the same name already existed, the renaming failed and the
default tag would continue to exist.
The looking up of the default tag also contained a bug because it
should have used `by-name` in the path.
Before this change, the default config provided by this module wrote
an empty file to `$HOME/.config/avizo/config.ini`, which caused a
bunch of errors, as Avizo tries to read a 'group' from the ini file,
which fails.
This commit also adds associated test cases.
PR #3871
This reflects a systemd service sample file change made in borgmatic
1.7.6, commit 2e9f70d49647d47fb4ca05f428c592b0e4319544:
When backing up a machine with a monitor using logind to control
idle timeout and things like DPMS, borgmatic can block the screen
from turning on/off with systemd-inhibit. This is because by
default systemd-inhibit will block
"idle:sleep:shutdown". Borgmatic does not need to care about idle,
only about suspend and shutdown. So, add an explicit `--what` flag
for what borgmatic should inhibit.
For more information see systemd-inhibit(1).
Allow setting the application package and storePath used by the
config. Since the `programs.password-store` Home Manager module sets
config values via global environment variables, the default behavior
of the module should continue to behave as before for the user.
Additionally,
- Adds a few tests.
- Use "escapeShellArg" function call to the path parameter call to
ensure paths with spaces work.
- Allow not setting storePath, which will cause `pass_secret_service`
to default to using `~/.password-store`.
- If `pass-secret-service` is enabled, set its store path to default
to the one defined in our password-store environment settings.
- Add myself (houstdav000) as maintainer.
The default value for `xsession.windowManager.herbstluftwm.tags` is an
empty list, but the config file uses `builtins.head` on it, which causes
an error upon evaluation. With this change the tags configuration is
skipped if the list is empty.
The old trigger would actually never cause a restart since the path
doesn't change. With this change the trigger is now using the actual
configuration path in the Nix store, which depends on the content.
`--experimental-backends` flag was removed in the recent released picom
v10. Using it now will result in the program exiting.
v10 also introduces its counter-part, `--legacy-backends`. However this
will be removed soon. Instead of adding this as an separate option, add
`extraArgs` option so for those that they want they can pass it manuall.
It is also more future proof.
- The `XDG_SESSION_TYPE` environment variable is used by some applications and frameworks to
detect wayland sessions (i.e qt5/6, electron/chromium). It is set by wlroots since version 0.13.0 [1].
- Propagating `XDG_SESSION_TYPE` to the systemd user environment is necessary when processes launched by
services (e.g emacs) need to inherit the environment variable.
[1] - 90c8452959