diff --git a/nixos/tests/keymap.nix b/nixos/tests/keymap.nix index 0bde21093b0..cc45824667e 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 { [ a, A, Greek_alpha ] }; + key { [ b, B, Greek_beta ] }; + key { [ g, G, Greek_gamma ] }; + key { [ d, D, Greek_delta ] }; + key { [ z, Z, Greek_zeta ] }; + }; + ''; + }; + }; } diff --git a/pkgs/servers/x11/xorg/overrides.nix b/pkgs/servers/x11/xorg/overrides.nix index 142163b2211..9010d63d5c6 100644 --- a/pkgs/servers/x11/xorg/overrides.nix +++ b/pkgs/servers/x11/xorg/overrides.nix @@ -579,28 +579,6 @@ self: super: ${optionalString (symbolsFile != null) "cp '${symbolsFile}' 'symbols/${name}'"} ${optionalString (typesFile != null) "cp '${typesFile}' 'types/${name}'"} - # patch makefiles - for type in compat geometry keycodes symbols types; do - if ! test -f "$type/${name}"; then - continue - fi - test "$type" = geometry && type_name=geom || type_name=$type - ${ed}/bin/ed -v $type/Makefile.am <