about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorMichele Guerini Rocco <rnhmjoj@users.noreply.github.com>2023-07-19 08:13:13 +0200
committerGitHub <noreply@github.com>2023-07-19 08:13:13 +0200
commitdfcc258054145d563bae98ffd7f69cc9bb21c81e (patch)
treee282d53644cd6bb98b551dab612b847cdfbe85ab /nixos
parent93da236e055c2cde21d10226bdba6a510bec5f65 (diff)
parente4ab8a7d1e31616ba47f11265c03e4707299af24 (diff)
downloadnixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar.gz
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar.bz2
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar.lz
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar.xz
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.tar.zst
nixlib-dfcc258054145d563bae98ffd7f69cc9bb21c81e.zip
Merge pull request #244174 from rnhmjoj/pr-fix-extra-layouts
xorg.xkeyboardconfig_custom: update for 2.39
Diffstat (limited to 'nixos')
-rw-r--r--nixos/tests/keymap.nix37
1 files changed, 33 insertions, 4 deletions
diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix
index 0bde21093b0a..cc45824667ed 100644
--- a/nixos/tests/keymap.nix
+++ b/nixos/tests/keymap.nix
@@ -29,10 +29,10 @@ let
   mkKeyboardTest = layout: { extraConfig ? {}, tests }: with pkgs.lib; makeTest {
     name = "keymap-${layout}";
 
-    machine.console.keyMap = mkOverride 900 layout;
-    machine.services.xserver.desktopManager.xterm.enable = false;
-    machine.services.xserver.layout = mkOverride 900 layout;
-    machine.imports = [ ./common/x11.nix extraConfig ];
+    nodes.machine.console.keyMap = mkOverride 900 layout;
+    nodes.machine.services.xserver.desktopManager.xterm.enable = false;
+    nodes.machine.services.xserver.layout = mkOverride 900 layout;
+    nodes.machine.imports = [ ./common/x11.nix extraConfig ];
 
     testScript = ''
       import json
@@ -201,4 +201,33 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
     extraConfig.console.keyMap = "de";
     extraConfig.services.xserver.layout = "de";
   };
+
+  custom = {
+    tests = {
+      us.qwerty = [ "a" "b" "g" "d" "z" "shift-2" "shift-3" ];
+      us.expect = [ "a" "b" "g" "d" "z" "@" "#" ];
+      greek.qwerty = map (x: "alt_r-${x}")
+                     [ "a" "b" "g" "d" "z" ];
+      greek.expect = [ "α" "β" "γ" "δ" "ζ" ];
+    };
+
+    extraConfig.console.useXkbConfig = true;
+    extraConfig.services.xserver.layout = "us-greek";
+    extraConfig.services.xserver.extraLayouts.us-greek =
+      { description = "US layout with alt-gr greek";
+        languages   = [ "eng" ];
+        symbolsFile = pkgs.writeText "us-greek" ''
+          xkb_symbols "us-greek"
+          {
+            include "us(basic)"
+            include "level3(ralt_switch)"
+            key <LatA> { [ a, A, Greek_alpha ] };
+            key <LatB> { [ b, B, Greek_beta  ] };
+            key <LatG> { [ g, G, Greek_gamma ] };
+            key <LatD> { [ d, D, Greek_delta ] };
+            key <LatZ> { [ z, Z, Greek_zeta  ] };
+          };
+        '';
+      };
+  };
 }