`SSH_AUTH_SOCK` is exported in shells only, which systemd does not
inherit from. With this commit, it is also set in systemd such that
systemd-managed applications can access the SSH agent by declaring
dependencies onto 'sshAuthSock.systemd.socketProviderUnit'.
Closes#7971.
Insert the command-option terminator before values passed to kwriteconfig6 so negative numeric settings are not parsed as command flags.
This fixes KDE settings such as DimDisplayIdleTimeoutSec = -1, which previously produced an unknown-option error from kwriteconfig6.
Cover the regression in the existing qt-basic NMT test by checking the generated activation command includes the terminator before the negative value.
This reverts commit 9dc93220c1.
On one hand, conflicting definitions for `sshAuthSock.initialization.*`
were triggering before the assertion triggered, hereby making the
assertion redundant. On the other hand, the assertion prevents users
from running multiple agents side-by-side even after resolving the
definition conflict.
See https://github.com/nix-community/home-manager/pull/8533#issuecomment-4224165151.
Create the readonly autostart link even when no managed entries are
present, so the option behavior matches its documentation and stays
covered by a focused regression test.
`$SSH_AUTH_SOCK` must not be set unconditionally through
'home.sessionVariables' since its value needs to be preserved if it
stems from a forwarded SSH agent. Hence, this commit establishes a
centralized, internal 'ssh_auth_sock.initialization' option for setting
`$SSH_AUTH_SOCK`. It checks whether its value has to be preserved and
injects the initialization code into the proper
'programs.(bash|fish|nushell|zsh).*' options.
The gtk4 theme option still inherits from gtk.theme for users pinned
before 26.05, but that fallback was previously silent. Move the
default through the shared state-version helper so the compatibility
branch emits the standard deprecation warning and stays consistent
with other future cleanups.
Add a focused test that covers the legacy inheritance path alongside
the existing current-state-version test for the null default.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
Switch xdg.userDirs.setSessionVariables to the shared state-version default helper so older configurations get an explicit warning before the legacy default is removed.
Add focused tests for the legacy and current branches to verify that the session variable exports remain enabled before 26.05 and are disabled by default starting at 26.05.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
The use-xdg-base-directories Nix setting can be set globally in
/etc/nix/nix.conf, in which case Home Manager doesn't know about it.
Users could fix that by also setting it, redundantly, in `nix.settings`,
but then Nix issues a lot of spurious warnings about
use-xdg-base-directories being a restricted setting that untrusted users
can't pass on to the daemon.
As an alternative, users can now set `nix.assumeXdg`, which makes Home
Manager assume that use-xdg-base-directories is in effect without adding
it to the user's nix.conf file.
E.g., use `MISC` instead of `XDG_MISC_DIR`, the same way `xdg-user-dirs-update`
works.
This is conditionalized on 26.05, so in future `XDG_MISC_DIR` will be disallowed.
This option allows a user to inject default applications directly from
a list of specified packages. It was previously possible to do this,
but only through import from derivation.
We need to catch the news entry issues sooner. Right now we don't have
any testing around them.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
We can now customize a lot more in the gtk module. Test more scenarios
to ensure a user has more control over what gets generated.
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>