Merge pull request #259891 from l0b0/refactor/xkb-attrset
This commit is contained in:
commit
520e363e82
@ -45,8 +45,8 @@ services.xserver.displayManager.gdm.enable = true;
|
|||||||
You can set the keyboard layout (and optionally the layout variant):
|
You can set the keyboard layout (and optionally the layout variant):
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
services.xserver.layout = "de";
|
services.xserver.xkb.layout = "de";
|
||||||
services.xserver.xkbVariant = "neo";
|
services.xserver.xkb.variant = "neo";
|
||||||
```
|
```
|
||||||
|
|
||||||
The X server is started automatically at boot time. If you don't want
|
The X server is started automatically at boot time. If you don't want
|
||||||
@ -266,7 +266,7 @@ Once the configuration is applied, and you did a logout/login cycle, the
|
|||||||
layout should be ready to use. You can try it by e.g. running
|
layout should be ready to use. You can try it by e.g. running
|
||||||
`setxkbmap us-greek` and then type `<alt>+a` (it may not get applied in
|
`setxkbmap us-greek` and then type `<alt>+a` (it may not get applied in
|
||||||
your terminal straight away). To change the default, the usual
|
your terminal straight away). To change the default, the usual
|
||||||
`services.xserver.layout` option can still be used.
|
`services.xserver.xkb.layout` option can still be used.
|
||||||
|
|
||||||
A layout can have several other components besides `xkb_symbols`, for
|
A layout can have several other components besides `xkb_symbols`, for
|
||||||
example we will define new keycodes for some multimedia key and bind
|
example we will define new keycodes for some multimedia key and bind
|
||||||
|
@ -269,6 +269,8 @@
|
|||||||
order, or relying on `mkBefore` and `mkAfter`, but may impact users calling
|
order, or relying on `mkBefore` and `mkAfter`, but may impact users calling
|
||||||
`mkOrder n` with n ≤ 400.
|
`mkOrder n` with n ≤ 400.
|
||||||
|
|
||||||
|
- X keyboard extension (XKB) options have been reorganized into a single attribute set, `services.xserver.xkb`. Specifically, `services.xserver.layout` is now `services.xserver.xkb.layout`, `services.xserver.xkbModel` is now `services.xserver.xkb.model`, `services.xserver.xkbOptions` is now `services.xserver.xkb.options`, `services.xserver.xkbVariant` is now `services.xserver.xkb.variant`, and `services.xserver.xkbDir` is now `services.xserver.xkb.dir`.
|
||||||
|
|
||||||
- `networking.networkmanager.firewallBackend` was removed as NixOS is now using iptables-nftables-compat even when using iptables, therefore Networkmanager now uses the nftables backend unconditionally.
|
- `networking.networkmanager.firewallBackend` was removed as NixOS is now using iptables-nftables-compat even when using iptables, therefore Networkmanager now uses the nftables backend unconditionally.
|
||||||
|
|
||||||
- [`lib.lists.foldl'`](https://nixos.org/manual/nixpkgs/stable#function-library-lib.lists.foldl-prime) now always evaluates the initial accumulator argument first.
|
- [`lib.lists.foldl'`](https://nixos.org/manual/nixpkgs/stable#function-library-lib.lists.foldl-prime) now always evaluates the initial accumulator argument first.
|
||||||
@ -442,4 +444,3 @@ The module update takes care of the new config syntax and the data itself (user
|
|||||||
- The `electron` packages now places its application files in `$out/libexec/electron` instead of `$out/lib/electron`. Packages using electron-builder will fail to build and need to be adjusted by changing `lib` to `libexec`.
|
- The `electron` packages now places its application files in `$out/libexec/electron` instead of `$out/lib/electron`. Packages using electron-builder will fail to build and need to be adjusted by changing `lib` to `libexec`.
|
||||||
|
|
||||||
- `teleport` has been upgraded from major version 12 to major version 14. Please see upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/) and release notes for versions [13](https://goteleport.com/docs/changelog/#1300-050823) and [14](https://goteleport.com/docs/changelog/#1400-092023). Note that Teleport does not officially support upgrades across more than one major version at a time. If you're running Teleport server components, it is recommended to first upgrade to an intermediate 13.x version by setting `services.teleport.package = pkgs.teleport_13`. Afterwards, this option can be removed to upgrade to the default version (14).
|
- `teleport` has been upgraded from major version 12 to major version 14. Please see upstream [upgrade instructions](https://goteleport.com/docs/management/operations/upgrading/) and release notes for versions [13](https://goteleport.com/docs/changelog/#1300-050823) and [14](https://goteleport.com/docs/changelog/#1400-092023). Note that Teleport does not officially support upgrades across more than one major version at a time. If you're running Teleport server components, it is recommended to first upgrade to an intermediate 13.x version by setting `services.teleport.package = pkgs.teleport_13`. Afterwards, this option can be removed to upgrade to the default version (14).
|
||||||
|
|
||||||
|
@ -127,8 +127,8 @@ in
|
|||||||
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
|
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
|
||||||
"-I${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
|
"-I${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
|
||||||
} \
|
} \
|
||||||
-model '${xkbModel}' -layout '${layout}' \
|
-model '${xkb.model}' -layout '${xkb.layout}' \
|
||||||
-option '${xkbOptions}' -variant '${xkbVariant}' > "$out"
|
-option '${xkb.options}' -variant '${xkb.variant}' > "$out"
|
||||||
'');
|
'');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,15 +163,15 @@ in
|
|||||||
# console = {
|
# console = {
|
||||||
# font = "Lat2-Terminus16";
|
# font = "Lat2-Terminus16";
|
||||||
# keyMap = "us";
|
# keyMap = "us";
|
||||||
# useXkbConfig = true; # use xkbOptions in tty.
|
# useXkbConfig = true; # use xkb.options in tty.
|
||||||
# };
|
# };
|
||||||
|
|
||||||
$xserverConfig
|
$xserverConfig
|
||||||
|
|
||||||
$desktopConfiguration
|
$desktopConfiguration
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
# services.xserver.layout = "us";
|
# services.xserver.xkb.layout = "us";
|
||||||
# services.xserver.xkbOptions = "eurosign:e,caps:escape";
|
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
# services.printing.enable = true;
|
# services.printing.enable = true;
|
||||||
|
@ -90,7 +90,7 @@ in
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc."X11/xkb".source = xcfg.xkbDir;
|
environment.etc."X11/xkb".source = xcfg.xkb.dir;
|
||||||
|
|
||||||
fonts.packages = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ];
|
fonts.packages = [ pkgs.dejavu_fonts pkgs.ubuntu_font_family ];
|
||||||
|
|
||||||
|
@ -309,7 +309,7 @@ in
|
|||||||
"/share"
|
"/share"
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.etc."X11/xkb".source = xcfg.xkbDir;
|
environment.etc."X11/xkb".source = xcfg.xkb.dir;
|
||||||
|
|
||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
|
PLASMA_USE_QT_SCALING = mkIf cfg.useQtScaling "1";
|
||||||
|
@ -204,10 +204,10 @@ in
|
|||||||
left-handed = xcfg.libinput.mouse.leftHanded;
|
left-handed = xcfg.libinput.mouse.leftHanded;
|
||||||
};
|
};
|
||||||
keyboard = {
|
keyboard = {
|
||||||
keymap_model = xcfg.xkbModel;
|
keymap_model = xcfg.xkb.model;
|
||||||
keymap_layout = xcfg.layout;
|
keymap_layout = xcfg.xkb.layout;
|
||||||
keymap_variant = xcfg.xkbVariant;
|
keymap_variant = xcfg.xkb.variant;
|
||||||
keymap_options = xcfg.xkbOptions;
|
keymap_options = xcfg.xkb.options;
|
||||||
};
|
};
|
||||||
}; in "${pkgs.weston}/bin/weston --shell=fullscreen-shell.so -c ${westonIni}";
|
}; in "${pkgs.weston}/bin/weston --shell=fullscreen-shell.so -c ${westonIni}";
|
||||||
description = lib.mdDoc "Command used to start the selected compositor";
|
description = lib.mdDoc "Command used to start the selected compositor";
|
||||||
|
@ -121,11 +121,11 @@ in
|
|||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
# runtime override supported by multiple libraries e. g. libxkbcommon
|
# runtime override supported by multiple libraries e. g. libxkbcommon
|
||||||
# https://xkbcommon.org/doc/current/group__include-path.html
|
# https://xkbcommon.org/doc/current/group__include-path.html
|
||||||
XKB_CONFIG_ROOT = config.services.xserver.xkbDir;
|
XKB_CONFIG_ROOT = config.services.xserver.xkb.dir;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
xkbDir = "${xkb_patched}/etc/X11/xkb";
|
xkb.dir = "${xkb_patched}/etc/X11/xkb";
|
||||||
exportConfiguration = config.services.xserver.displayManager.startx.enable
|
exportConfiguration = config.services.xserver.displayManager.startx.enable
|
||||||
|| config.services.xserver.displayManager.sx.enable;
|
|| config.services.xserver.displayManager.sx.enable;
|
||||||
};
|
};
|
||||||
|
@ -175,6 +175,31 @@ in
|
|||||||
"Use services.xserver.fontPath instead of useXFS")
|
"Use services.xserver.fontPath instead of useXFS")
|
||||||
(mkRemovedOptionModule [ "services" "xserver" "useGlamor" ]
|
(mkRemovedOptionModule [ "services" "xserver" "useGlamor" ]
|
||||||
"Option services.xserver.useGlamor was removed because it is unnecessary. Drivers that uses Glamor will use it automatically.")
|
"Option services.xserver.useGlamor was removed because it is unnecessary. Drivers that uses Glamor will use it automatically.")
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "layout" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "layout" ];
|
||||||
|
})
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "xkbModel" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "model" ];
|
||||||
|
})
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "xkbOptions" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "options" ];
|
||||||
|
})
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "xkbVariant" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "variant" ];
|
||||||
|
})
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "xkbDir" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "dir" ];
|
||||||
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
@ -339,48 +364,55 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
layout = mkOption {
|
xkb = mkOption {
|
||||||
type = types.str;
|
description = "X keyboard extension (XKB) configuration";
|
||||||
default = "us";
|
type = types.submodule {
|
||||||
description = lib.mdDoc ''
|
options = {
|
||||||
Keyboard layout, or multiple keyboard layouts separated by commas.
|
layout = mkOption {
|
||||||
'';
|
type = types.str;
|
||||||
};
|
default = "us";
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
Keyboard layout, or multiple keyboard layouts separated by commas.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
xkbModel = mkOption {
|
model = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "pc104";
|
default = "pc104";
|
||||||
example = "presario";
|
example = "presario";
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Keyboard model.
|
Keyboard model.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
xkbOptions = mkOption {
|
options = mkOption {
|
||||||
type = types.commas;
|
type = types.commas;
|
||||||
default = "terminate:ctrl_alt_bksp";
|
default = "terminate:ctrl_alt_bksp";
|
||||||
example = "grp:caps_toggle,grp_led:scroll";
|
example = "grp:caps_toggle,grp_led:scroll";
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
X keyboard options; layout switching goes here.
|
X keyboard options; layout switching goes here.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
xkbVariant = mkOption {
|
variant = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "";
|
default = "";
|
||||||
example = "colemak";
|
example = "colemak";
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
X keyboard variant.
|
X keyboard variant.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
xkbDir = mkOption {
|
dir = mkOption {
|
||||||
type = types.path;
|
type = types.path;
|
||||||
default = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
default = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
||||||
defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"'';
|
defaultText = literalExpression ''"''${pkgs.xkeyboard_config}/etc/X11/xkb"'';
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Path used for -xkbdir xserver parameter.
|
Path used for -xkbdir xserver parameter.
|
||||||
'';
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkOption {
|
config = mkOption {
|
||||||
@ -667,7 +699,7 @@ in
|
|||||||
{
|
{
|
||||||
"X11/xorg.conf".source = "${configFile}";
|
"X11/xorg.conf".source = "${configFile}";
|
||||||
# -xkbdir command line option does not seems to be passed to xkbcomp.
|
# -xkbdir command line option does not seems to be passed to xkbcomp.
|
||||||
"X11/xkb".source = "${cfg.xkbDir}";
|
"X11/xkb".source = "${cfg.xkb.dir}";
|
||||||
})
|
})
|
||||||
# localectl looks into 00-keyboard.conf
|
# localectl looks into 00-keyboard.conf
|
||||||
//{
|
//{
|
||||||
@ -675,10 +707,10 @@ in
|
|||||||
Section "InputClass"
|
Section "InputClass"
|
||||||
Identifier "Keyboard catchall"
|
Identifier "Keyboard catchall"
|
||||||
MatchIsKeyboard "on"
|
MatchIsKeyboard "on"
|
||||||
Option "XkbModel" "${cfg.xkbModel}"
|
Option "XkbModel" "${cfg.xkb.model}"
|
||||||
Option "XkbLayout" "${cfg.layout}"
|
Option "XkbLayout" "${cfg.xkb.layout}"
|
||||||
Option "XkbOptions" "${cfg.xkbOptions}"
|
Option "XkbOptions" "${cfg.xkb.options}"
|
||||||
Option "XkbVariant" "${cfg.xkbVariant}"
|
Option "XkbVariant" "${cfg.xkb.variant}"
|
||||||
EndSection
|
EndSection
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
@ -759,7 +791,7 @@ in
|
|||||||
|
|
||||||
services.xserver.displayManager.xserverArgs =
|
services.xserver.displayManager.xserverArgs =
|
||||||
[ "-config ${configFile}"
|
[ "-config ${configFile}"
|
||||||
"-xkbdir" "${cfg.xkbDir}"
|
"-xkbdir" "${cfg.xkb.dir}"
|
||||||
] ++ optional (cfg.display != null) ":${toString cfg.display}"
|
] ++ optional (cfg.display != null) ":${toString cfg.display}"
|
||||||
++ optional (cfg.tty != null) "vt${toString cfg.tty}"
|
++ optional (cfg.tty != null) "vt${toString cfg.tty}"
|
||||||
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
|
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
|
||||||
@ -777,14 +809,14 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
system.checks = singleton (pkgs.runCommand "xkb-validated" {
|
system.checks = singleton (pkgs.runCommand "xkb-validated" {
|
||||||
inherit (cfg) xkbModel layout xkbVariant xkbOptions;
|
inherit (cfg.xkb) model layout variant options;
|
||||||
nativeBuildInputs = with pkgs.buildPackages; [ xkbvalidate ];
|
nativeBuildInputs = with pkgs.buildPackages; [ xkbvalidate ];
|
||||||
preferLocalBuild = true;
|
preferLocalBuild = true;
|
||||||
} ''
|
} ''
|
||||||
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
|
${optionalString (config.environment.sessionVariables ? XKB_CONFIG_ROOT)
|
||||||
"export XKB_CONFIG_ROOT=${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
|
"export XKB_CONFIG_ROOT=${config.environment.sessionVariables.XKB_CONFIG_ROOT}"
|
||||||
}
|
}
|
||||||
xkbvalidate "$xkbModel" "$layout" "$xkbVariant" "$xkbOptions"
|
xkbvalidate "$model" "$layout" "$variant" "$options"
|
||||||
touch "$out"
|
touch "$out"
|
||||||
'');
|
'');
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ let
|
|||||||
|
|
||||||
nodes.machine.console.keyMap = mkOverride 900 layout;
|
nodes.machine.console.keyMap = mkOverride 900 layout;
|
||||||
nodes.machine.services.xserver.desktopManager.xterm.enable = false;
|
nodes.machine.services.xserver.desktopManager.xterm.enable = false;
|
||||||
nodes.machine.services.xserver.layout = mkOverride 900 layout;
|
nodes.machine.services.xserver.xkb.layout = mkOverride 900 layout;
|
||||||
nodes.machine.imports = [ ./common/x11.nix extraConfig ];
|
nodes.machine.imports = [ ./common/x11.nix extraConfig ];
|
||||||
|
|
||||||
testScript = ''
|
testScript = ''
|
||||||
@ -116,7 +116,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "fr";
|
extraConfig.console.keyMap = "fr";
|
||||||
extraConfig.services.xserver.layout = "fr";
|
extraConfig.services.xserver.xkb.layout = "fr";
|
||||||
};
|
};
|
||||||
|
|
||||||
bone = {
|
bone = {
|
||||||
@ -130,8 +130,8 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "bone";
|
extraConfig.console.keyMap = "bone";
|
||||||
extraConfig.services.xserver.layout = "de";
|
extraConfig.services.xserver.xkb.layout = "de";
|
||||||
extraConfig.services.xserver.xkbVariant = "bone";
|
extraConfig.services.xserver.xkb.variant = "bone";
|
||||||
};
|
};
|
||||||
|
|
||||||
colemak = {
|
colemak = {
|
||||||
@ -141,8 +141,8 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "colemak";
|
extraConfig.console.keyMap = "colemak";
|
||||||
extraConfig.services.xserver.layout = "us";
|
extraConfig.services.xserver.xkb.layout = "us";
|
||||||
extraConfig.services.xserver.xkbVariant = "colemak";
|
extraConfig.services.xserver.xkb.variant = "colemak";
|
||||||
};
|
};
|
||||||
|
|
||||||
dvorak = {
|
dvorak = {
|
||||||
@ -154,8 +154,8 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "dvorak";
|
extraConfig.console.keyMap = "dvorak";
|
||||||
extraConfig.services.xserver.layout = "us";
|
extraConfig.services.xserver.xkb.layout = "us";
|
||||||
extraConfig.services.xserver.xkbVariant = "dvorak";
|
extraConfig.services.xserver.xkb.variant = "dvorak";
|
||||||
};
|
};
|
||||||
|
|
||||||
dvorak-programmer = {
|
dvorak-programmer = {
|
||||||
@ -170,8 +170,8 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "dvorak-programmer";
|
extraConfig.console.keyMap = "dvorak-programmer";
|
||||||
extraConfig.services.xserver.layout = "us";
|
extraConfig.services.xserver.xkb.layout = "us";
|
||||||
extraConfig.services.xserver.xkbVariant = "dvp";
|
extraConfig.services.xserver.xkb.variant = "dvp";
|
||||||
};
|
};
|
||||||
|
|
||||||
neo = {
|
neo = {
|
||||||
@ -185,8 +185,8 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "neo";
|
extraConfig.console.keyMap = "neo";
|
||||||
extraConfig.services.xserver.layout = "de";
|
extraConfig.services.xserver.xkb.layout = "de";
|
||||||
extraConfig.services.xserver.xkbVariant = "neo";
|
extraConfig.services.xserver.xkb.variant = "neo";
|
||||||
};
|
};
|
||||||
|
|
||||||
qwertz = {
|
qwertz = {
|
||||||
@ -199,7 +199,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.keyMap = "de";
|
extraConfig.console.keyMap = "de";
|
||||||
extraConfig.services.xserver.layout = "de";
|
extraConfig.services.xserver.xkb.layout = "de";
|
||||||
};
|
};
|
||||||
|
|
||||||
custom = {
|
custom = {
|
||||||
@ -212,7 +212,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
extraConfig.console.useXkbConfig = true;
|
extraConfig.console.useXkbConfig = true;
|
||||||
extraConfig.services.xserver.layout = "us-greek";
|
extraConfig.services.xserver.xkb.layout = "us-greek";
|
||||||
extraConfig.services.xserver.extraLayouts.us-greek =
|
extraConfig.services.xserver.extraLayouts.us-greek =
|
||||||
{ description = "US layout with alt-gr greek";
|
{ description = "US layout with alt-gr greek";
|
||||||
languages = [ "eng" ];
|
languages = [ "eng" ];
|
||||||
|
@ -121,10 +121,10 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
rdef = malloc(sizeof(struct xkb_rule_names));
|
rdef = malloc(sizeof(struct xkb_rule_names));
|
||||||
|
|
||||||
TRY_KEYMAP(model, argv[1], "xkbModel");
|
TRY_KEYMAP(model, argv[1], "xkb.model");
|
||||||
TRY_KEYMAP(layout, argv[2], "layout");
|
TRY_KEYMAP(layout, argv[2], "xkb.layout");
|
||||||
TRY_KEYMAP(variant, argv[3], "xkbVariant");
|
TRY_KEYMAP(variant, argv[3], "xkb.variant");
|
||||||
TRY_KEYMAP(options, argv[4], "xkbOptions");
|
TRY_KEYMAP(options, argv[4], "xkb.options");
|
||||||
|
|
||||||
free_logs();
|
free_logs();
|
||||||
rdef->model = argv[1];
|
rdef->model = argv[1];
|
||||||
|
Loading…
Reference in New Issue
Block a user