From c5c0459a60c1e64afc66c3b76434b88961d67abb Mon Sep 17 00:00:00 2001 From: Linus Heckemann Date: Thu, 23 Mar 2017 20:06:52 +0000 Subject: [PATCH 1/2] xserver: check that selected layout exists Fixes #5638 --- nixos/modules/services/x11/xserver.nix | 29 ++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 8438e6dcc702..2e2d567a060b 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -578,6 +578,35 @@ in services.xserver.xkbDir = mkDefault "${pkgs.xkeyboard_config}/etc/X11/xkb"; + system.extraDependencies = [ + (pkgs.runCommand "xkb-layouts-exist" { + layouts=cfg.layout; + } '' + missing=() + while read -d , layout + do + [[ -f "${cfg.xkbDir}/symbols/$layout" ]] || missing+=($layout) + done <<< "$layouts," + if [[ ''${#missing[@]} -eq 0 ]] + then + touch $out + exit 0 + fi + + cat >&2 < Date: Thu, 23 Mar 2017 21:14:28 +0000 Subject: [PATCH 2/2] Document possibility of multiple keyboard layouts In services.xserver.layout --- nixos/modules/services/x11/xserver.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 2e2d567a060b..262115b39e79 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -258,7 +258,7 @@ in type = types.str; default = "us"; description = '' - Keyboard layout. + Keyboard layout, or multiple keyboard layouts separated by commas. ''; };