1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-08 19:46:05 +01:00

xsession: add option importedVariables

This option lists the environment variables to be imported into the
systemd user session.

Also add a basic test of the xsession module.
This commit is contained in:
Robert Helgesson 2019-06-23 14:06:29 +02:00
parent f83c49baa3
commit 95d55b8da1
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
8 changed files with 96 additions and 9 deletions

View file

@ -0,0 +1,16 @@
. "/test-home/.nix-profile/etc/profile.d/hm-session-vars.sh"
if [[ -e "$HOME/.profile" ]]; then
. "$HOME/.profile"
fi
# If there are any running services from a previous session.
# Need to run this in xprofile because the NixOS xsession
# script starts up graphical-session.target.
systemctl --user stop graphical-session.target graphical-session-pre.target
systemctl --user import-environment DBUS_SESSION_BUS_ADDRESS DISPLAY SSH_AUTH_SOCK XAUTHORITY XDG_DATA_DIRS XDG_RUNTIME_DIR XDG_SESSION_ID EXTRA_IMPORTED_VARIABLE
profile extra commands
export HM_XPROFILE_SOURCED=1

View file

@ -0,0 +1,18 @@
if [[ ! -v HM_XPROFILE_SOURCED ]]; then
. ~/.xprofile
fi
unset HM_XPROFILE_SOURCED
systemctl --user start hm-graphical-session.target
init extra commands
window manager command
systemctl --user stop graphical-session.target
systemctl --user stop graphical-session-pre.target
# Wait until the units actually stop.
while [[ -n "$(systemctl --user --no-legend --state=deactivating list-units)" ]]; do
sleep 0.5
done

View file

@ -0,0 +1,30 @@
{ config, lib, ... }:
with lib;
{
config = {
home.homeDirectory = "/test-home";
xsession = {
enable = true;
windowManager.command = "window manager command";
importedVariables = [ "EXTRA_IMPORTED_VARIABLE" ];
initExtra = "init extra commands";
profileExtra = "profile extra commands";
};
nmt.script = ''
assertFileExists home-files/.xprofile
assertFileContent \
home-files/.xprofile \
${./basic-xprofile-expected.txt}
assertFileExists home-files/.xsession
assertFileContent \
home-files/.xsession \
${./basic-xsession-expected.txt}
'';
};
}

View file

@ -0,0 +1,3 @@
{
xsession-basic = ./basic.nix;
}