diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix index d0672c792bf8..571f723a823f 100644 --- a/nixos/modules/config/console.nix +++ b/nixos/modules/config/console.nix @@ -9,7 +9,7 @@ let makeColor = i: lib.concatMapStringsSep "," (x: "0x" + lib.substring (2 * i) 2 x); - isUnicode = lib.hasSuffix "UTF-8" (lib.toUpper config.i18n.defaultLocale); + isUnicode = config.i18n.defaultCharset == "UTF-8" || cfg.useXkbConfig; optimizedKeymap = pkgs.runCommand "keymap" diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 512082e29494..6cd4ac9a4ecb 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -386,6 +386,7 @@ in collectd = runTest ./collectd.nix; commafeed = runTest ./commafeed.nix; connman = runTest ./connman.nix; + console-xkb-and-i18n = runTest ./console-xkb-and-i18n.nix; consul = runTest ./consul.nix; consul-template = runTest ./consul-template.nix; containers-bridge = runTest ./containers-bridge.nix; diff --git a/nixos/tests/console-xkb-and-i18n.nix b/nixos/tests/console-xkb-and-i18n.nix new file mode 100644 index 000000000000..757825a785af --- /dev/null +++ b/nixos/tests/console-xkb-and-i18n.nix @@ -0,0 +1,23 @@ +{ lib, ... }: +{ + name = "console-xkb-and-i18n"; + meta.maintainers = with lib.maintainers; [ doronbehar ]; + + nodes = { + # Nothing to run on this node. Only verify that this configuration doesn't + # produce the bugs described here: + # + # - https://github.com/NixOS/nixpkgs/issues/445666 + # - https://github.com/NixOS/nixpkgs/issues/411374 + # + x = { + i18n.defaultLocale = "eo"; + console.useXkbConfig = true; + services.xserver.xkb = { + layout = "us"; + variant = "colemak"; + }; + }; + }; + testScript = { nodes, ... }: ""; +}