diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 01bab8fccad..504a6b79d57 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -652,6 +652,10 @@ in inherit (cfg) layout xkbDir; } '' if sed -n -e ':i /^! \(layout\|variant\) *$/ { + # Loop through all of the layouts/variants until we hit another ! at + # the start of the line or the line is empty ('t' branches only if + # the last substitution was successful, so if the line is empty the + # substition will fail). :l; n; /^!/bi; s/^ *\([^ ]\+\).*/\1/p; tl }' "$xkbDir/rules/base.lst" | grep -qxF "$layout" then