Allow setting the keyboard layout from the config file

This commit is contained in:
Manuel Thalmann 2024-07-11 22:10:57 +02:00
parent 1f6fe9c181
commit ce1b743526
3 changed files with 18 additions and 8 deletions

View file

@ -23,6 +23,12 @@
description = "The console key map of the system.";
default = null;
};
keyboardLayout = mkOption {
type = types.nullOr types.str;
description = "The X11 keyboard layout of the system.";
default = null;
};
};
};
}

View file

@ -36,6 +36,7 @@
timeZone = "Europe/Zurich";
keyMap = "de_CH-latin1";
keyboardLayout = "ch";
i18n = {
localeSettings =

View file

@ -5,7 +5,6 @@ begin
source "$dir/../../Common/Scripts/hooks.fish"
set -q CONFIG_MODULE || set -l CONFIG_MODULE "$dir/config.nix"
set -q ARCH_X11_KEYMAP || set -l ARCH_X11_KEYMAP ch
set -l mountDir (getConfig valhalla.partition.rootDir)
@ -91,12 +90,16 @@ begin
USER_GROUPS="$USER_GROUPS" \
arch-chroot "$mountDir" bash "$tempDir/user.sh"
and set -l serviceName set-keymap.service
and set -l serviceFile "$mountDir/etc/systemd/system/$serviceName"
and cp "$dir/$serviceName" "$serviceFile"
and systemd-nspawn -D "$mountDir" systemctl enable "$serviceName"
and systemd-nspawn -bD "$mountDir" -E "ARCH_X11_KEYMAP=$ARCH_X11_KEYMAP"
and systemd-nspawn -D "$mountDir" systemctl disable "$serviceName"
and rm "$serviceFile"
and if set -l keyLayout (getConfig valhalla.keyboardLayout)
set -l serviceName set-keymap.service
and set -l serviceFile "$mountDir/etc/systemd/system/$serviceName"
and cp "$dir/$serviceName" "$serviceFile"
and systemd-nspawn -D "$mountDir" systemctl enable "$serviceName"
and systemd-nspawn -bD "$mountDir" -E "ARCH_X11_KEYMAP=$keyLayout"
and systemd-nspawn -D "$mountDir" systemctl disable "$serviceName"
and rm "$serviceFile"
else
true
end
end
end