Commit graph

928 commits

Author SHA1 Message Date
Austin Horstman
a3f4b998ec wpaperd: handle empty settings properly
Currently we create a systemd unit that will throw an error when
settings aren't configured because we try to link to a file that wont be
created with empty config.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-11 15:26:17 -05:00
1444
e90b28967c
wayfire: allow path in settings (#7427) 2025-07-11 10:15:54 -05:00
Yiheng He
ce15001862
cliphist: use lib.getExe (#7431) 2025-07-11 10:15:37 -05:00
Aguirre Matteo
d81cb050f5
hyprshell: add module (#7409) 2025-07-10 14:23:15 -05:00
Austin Horstman
9d21f9985e
i3-sway/lib: modifier accepts any string (#7398)
Currently, we aggressively limit what modifier can be used in the module
system that blocks valid configurations. Allow any strings to unblock
these configs. But, could be refactored further to support list of
modifiers and automatically convert to a config string.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-06 12:42:26 -05:00
Austin Horstman
b8bb556ce5 maintainers: remove duplicate HM entries
We can remove duplicate entries and redirect to the nixpkgs entry.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Austin Horstman
31242bdf8f polybar: fix meta.maintainer position
We generate the maintainer list from `meta.maintainers` and need the
attribute to be available on eval of all modules. It was set in the
`config` option which would only be evaluated when a module was enabled.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-07-04 09:20:48 -05:00
Terje Larsen
83f978812c
podman: support mounts configuration (#7377) 2025-07-03 19:34:57 -05:00
Lucas Servén Marín
1fa73bb2cc
fix(service/gpg-agent): allow SSH ForwardAgent compatibility (#7355)
https://github.com/nix-community/home-manager/pull/7117#issuecomment-3018582819
noted that #7117 broke compatibility with forwarding ssh-agents using
`ssh -A`/`ForwardAgent`. In order to continue supporting the fix for
the issue raised in #5997 and address the compatibility problem
mentioned by @euank, this commit introduces the solution described in
https://github.com/nix-community/home-manager/pull/7117#issuecomment-3025001779.

The code now checks the following:
1. is this shell part of an SSH connection and is `SSH_AUTH_SOCK` set?
   if so, assume the socket variable was set by sshd to point at a
   forwarded socket; bail out to skip setting `SSH_AUTH_SOCK".
1. is the current process a child of `gpg-agent --daemon`? if so, then
   bail out to skip setting `SSH_AUTH_SOCK`.
1. if we got this far, then set `SSH_AUTH_SOCK`.

I've tested this fix locally and can confirm that both #5997 as well as
the regression are fixed.

Signed-off-by: squat <lserven@gmail.com>
2025-07-03 08:24:16 -05:00
Maximilian Dietrich
3faf4a1507
syncthing: add guiAddress to configuration (#7281)
We have a configuration option services.syncthing.guiAddress which is an explicit option because we need it in the syncthing-init service, but why not also set it in the actual syncthing config as well as (or instead of?) the current CLI override? This way other software that parses the config file / REST API like syncthingtray just works with it instead of erroring out and unexpectedly requesting user interaction.

I guess we could actually also scrap the explicit services.syncthing.guiAddress option in favor of the syncthing-native services.syncthing.settings.gui.address because these two (valid!) options conflict otherwise.

Also, a next PR (or addition to this one) could be to make sure the syncthing-init service treats services.syncthing.settings.gui differently by not PUTting but PATCHing the configuration as PUTting triggers an API key regeneration, again breaking REST API access for other tools.
2025-06-29 18:11:18 -05:00
winston
a4f9ab0005
sway: add wayland.windowManager.sway.systemd.dbusImplementation (#7271)
Allows the user to choose the dbus implementation for the environment
import.

See https://github.com/swaywm/sway/wiki#systemd-and-dbus-activation-environments
2025-06-29 18:09:58 -05:00
awwpotato
76d0c31fce
formatter: add deadnix (#7331) 2025-06-28 16:28:39 -05:00
Lucas Servén Marín
da077f20db
fix(service/gpg-agent): ensure SSH_AUTH_SOCK is set on Darwin (#7117)
This commit addresses https://github.com/nix-community/home-manager/issues/5997
At the root, the gpg-agent SSH integration is not working on Darwin
because shells are started with `SSH_AUTH_SOCK` already set to something
like `/private/tmp/com.apple.launchd.ozLmoURHDC/Listeners`, which
prevents the hook from setting the variable to the gpg-agent's socket.

This commit fixes the issue using a different mechanism to detect if the
current shell has already had the `SSH_AUTH_SOCK` variable set to the
gpg-agent's socket, namely by checking for `gnupg_SSH_AUTH_SOCK_by` as
documented in
https://www.gnupg.org/documentation/manuals/gnupg/Agent-Examples.html#Agent-Examples.

This is essentially a simplified version of
https://github.com/nix-community/home-manager/pull/5901 that does not
attempt to migrate gpg-agent over to launchd.

Signed-off-by: squat <lserven@gmail.com>
2025-06-28 12:30:46 -05:00
Matthias Beyer
080e8b48b0
mako: "settings" is an attrset, so use that as example too (#7330)
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
2025-06-26 16:36:45 -05:00
Austin Horstman
86402a17b6 treewide: flatten single file modules
Some files don't need nesting and can be root level again to reduce
conflicts with other PRs.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-23 16:20:26 -05:00
Johan Larsson
873c5b2dc5
way-displays: use mkOptionDefault in systemd.variables (#7306)
Closes #7296.
2025-06-23 13:50:37 -05:00
Austin Horstman
4fca600cb1 treewide: implement auto importing for modules
Reduce maintenance burden and increase efficiency by automatically
importing modules following a specific convention.

Co-authored-by: awwpotato <awwpotato@voidq.com>
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00
LesVu
6fa01d524b labwc: do not manage file when in default value(#7240) 2025-06-22 22:51:51 -05:00
LesVu
2fbd694fec labwc: Fix pipemenu(#7236) and icon in menu generation
Add the generation of icon and pipemenu
2025-06-22 22:51:51 -05:00
Austin Horstman
19530b8d3c network-manager-applet: maintainer midirhee12 -> midischwarz12
https: //github.com/NixOS/nixpkgs/pull/418190
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 12:47:26 -05:00
Florent Charpentier
8638426397
hyprland: update wiki domain name (#7293)
As I noticed in
<https://github.com/nix-community/home-manager/pull/7277#issuecomment-2985781610>,
it seems hyprland changed its domain name from `hyprland.org` to
`hypr.land`. (The old domain redirects to the new one)

These changes are made by the following:
find . \( -type d -name .git -prune \) -o -type f -print0 | xargs -0 sed -i 's/hyprland\.org/hypr.land/g'
2025-06-18 22:41:02 -05:00
Shahar "Dawn" Or
04672588c6
way-displays: support stateful configuration file (#7138)
This is good for when displays are not considered part of the home configuration and are instead considered ephemeral.
Great for laptops but I use it for my desktop as well.
2025-06-15 16:59:12 +02:00
Gliczy
18f3a0d21c
opensnitch-ui: add package option (#7260) 2025-06-12 20:50:43 -05:00
NukDokPlex
f23b0935a3
hypridle: add systemdTarget option (#7237) 2025-06-08 17:20:52 +02:00
Keenan Weaver
627157cceb ludusavi: modernize and clean-up 2025-06-07 23:55:54 -05:00
Keenan Weaver
bc0012d036 ludusavi: add frequency option 2025-06-07 23:55:54 -05:00
Keenan Weaver
515ab1da57 ludusavi: fix icon on notification 2025-06-07 23:55:54 -05:00
YTG1234
68cc9eeb38 jellyfin-mpv-shim: merge settings with existing config file
The Nix-defined settings take priority over the existing settings, but
any new keys added by the user are preserved.
2025-06-05 16:46:42 -05:00
YTG1234
7707ebb05c jellyfin-mpv-shim: make sure the config file is read properly
jellyfin-mpv-shim has a bug, that causes it to not be able to read the
configuration file if it's not writeable (even though it never writes
anything).

This commit works around that by storing the actual link to the Nix
store in a different file, and making a writable copy in `conf.json`.

Ideally, this should be fixed either with a patch in nixpkgs or (even
better) upstream.
2025-06-05 16:46:42 -05:00
Gergő Gutyina
bb846c031b
dwm-status: run with --quiet (#7144) 2025-06-03 07:58:09 -05:00
Austin Horstman
6861cfa165 mako: remove criteria
No longer serves a purpose, was short lived and most people are either
using `settings` or will use `extraConfig`

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-01 21:10:38 -05:00
Austin Horstman
654b686536 mako: add extraConfig back
Need ordered lines for some of mako config. Don't have time to update
generator to support it.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-01 21:10:38 -05:00
ckgxrg
214f9bd3a6
linux-wallpaperengine: fix evaluation error when passing null (#7161) 2025-05-30 10:26:35 -05:00
Nick Hassan
d800d198b8
podman: use quadlet source from file drv (#7102)
fixes potentially unwanted variable substitution
2025-05-30 10:25:03 -05:00
Lyndon Sanche
f5b12be834
polkit-gnome: Change After target (#7137)
Before this change, I was getting `cannot open display:` errors
2025-05-27 19:14:03 -05:00
repparw
ad22169efa
jellyfin-mpv-shim: add module (#7129)
Init of service jellyfin-mpv-shim, emulating plex-mpv-shim already provided.
2025-05-27 19:10:18 -05:00
Eldolfin
d23d20f55d
sway: add bindswitches option (#7095)
Adds the bindswitches option to the sway module.

Bindswitches allows you to run a sway command when a state changes (when a certain event occurs).
See https://github.com/swaywm/sway/wiki#clamshell-mode and sway(5) for more information

It was already possible to configure this through sway.extraConfig but I find this approach dirty as described by the Nix RFC 42, and there is currently no settings as it describes.
2025-05-25 21:46:49 -05:00
Sefa Eyeoglu
cf9ff6d993
wayvnc: init (#7123)
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
2025-05-24 18:38:54 -05:00
Austin Horstman
7419250703
treewide: convert package options to use mkPackageOption (#7116)
This commit converts `package = mkOption` declarations throughout the
codebase to use the more modern and consistent `lib.mkPackageOption`
function.

Key changes:
- Simple package options: `mkOption { type = types.package; default = pkgs.foo; }`
  becomes `lib.mkPackageOption pkgs "foo" { }`
- Package set options: Uses correct package set as first argument with
  `pkgsText` parameter (e.g., `lib.mkPackageOption pkgs.vimPlugins "plugin" { pkgsText = "pkgs.vimPlugins"; }`)
- Removes redundant descriptions that just restate the package name
- Preserves examples and extra context where meaningful
- Handles submodule plugin options properly with `null` defaults

This modernizes the option declarations and makes them more consistent
with current nixpkgs patterns while maintaining full backward compatibility.

Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-05-23 00:42:38 -05:00
Damien Cassou
2097441633 services.home-manager.autoExpire: add support for darwin 2025-05-20 08:10:57 -05:00
Damien Cassou
04ebd2c422 services.home-manager.autoExpire: extract cleanup script to new variable 2025-05-20 08:10:57 -05:00
Damien Cassou
382b34f656 services.home-manager.autoExpire: wrap systemd configuration within a isLinux condition 2025-05-20 08:10:57 -05:00
Damien Cassou
098e365dd8 borgmatic: add darwin-specific documentation to services.borgmatic.frequency 2025-05-15 15:16:49 -05:00
Damien Cassou
8ae36f8ea2 nix-gc: fix documentation 2025-05-15 15:16:49 -05:00
Rosario Pulella
c310818dca
mako: Fix missing dbus service file (#7065) 2025-05-15 13:28:43 -05:00
Damien Cassou
c09ccd7d39 services.borgmatic: add initial support for darwin 2025-05-15 13:07:13 -05:00
Damien Cassou
34d44d7f1b services.borgmatic: wrap systemd configuration within a isLinux condition 2025-05-15 13:07:13 -05:00
Damien Cassou
1c2fccef83 services.nix-gc: extract darwin agent interval code to new library file 2025-05-15 13:07:13 -05:00
Damien Cassou
3b930bb653 services.nix-gc: improve error message when nix.gc.frequency is invalid on darwin
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.
2025-05-15 13:07:13 -05:00
andre4ik3
02ea79853c
emacs: respect defaultEditor on Darwin (#7063)
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.
2025-05-14 22:27:36 -05:00