mirror of
https://github.com/ilyakooo0/nixpkgs.git
synced 2024-09-11 07:15:54 +03:00
nixos/x11: move extraLayouts into xkb attrset
[Motivation](NixOS#257817 (comment)) `extraLayouts` was missed in #259891, so moving it to the other xkb options with this PR. Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com>
This commit is contained in:
parent
e0acf703ce
commit
143680787e
@ -208,7 +208,7 @@ qt.style = "gtk2";
|
|||||||
|
|
||||||
It is possible to install custom [ XKB
|
It is possible to install custom [ XKB
|
||||||
](https://en.wikipedia.org/wiki/X_keyboard_extension) keyboard layouts
|
](https://en.wikipedia.org/wiki/X_keyboard_extension) keyboard layouts
|
||||||
using the option `services.xserver.extraLayouts`.
|
using the option `services.xserver.xkb.extraLayouts`.
|
||||||
|
|
||||||
As a first example, we are going to create a layout based on the basic
|
As a first example, we are going to create a layout based on the basic
|
||||||
US layout, with an additional layer to type some greek symbols by
|
US layout, with an additional layer to type some greek symbols by
|
||||||
@ -235,7 +235,7 @@ xkb_symbols "us-greek"
|
|||||||
A minimal layout specification must include the following:
|
A minimal layout specification must include the following:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
services.xserver.extraLayouts.us-greek = {
|
services.xserver.xkb.extraLayouts.us-greek = {
|
||||||
description = "US layout with alt-gr greek";
|
description = "US layout with alt-gr greek";
|
||||||
languages = [ "eng" ];
|
languages = [ "eng" ];
|
||||||
symbolsFile = /yourpath/symbols/us-greek;
|
symbolsFile = /yourpath/symbols/us-greek;
|
||||||
@ -298,7 +298,7 @@ xkb_symbols "media"
|
|||||||
As before, to install the layout do
|
As before, to install the layout do
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
services.xserver.extraLayouts.media = {
|
services.xserver.xkb.extraLayouts.media = {
|
||||||
description = "Multimedia keys remapping";
|
description = "Multimedia keys remapping";
|
||||||
languages = [ "eng" ];
|
languages = [ "eng" ];
|
||||||
symbolsFile = /path/to/media-key;
|
symbolsFile = /path/to/media-key;
|
||||||
|
@ -318,7 +318,7 @@
|
|||||||
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`.
|
- 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.extraLayouts` is now `services.xserver.xkb.extraLayouts`, `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.
|
||||||
|
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
layouts = config.services.xserver.extraLayouts;
|
layouts = config.services.xserver.xkb.extraLayouts;
|
||||||
|
|
||||||
layoutOpts = {
|
layoutOpts = {
|
||||||
options = {
|
options = {
|
||||||
@ -15,10 +15,10 @@ let
|
|||||||
languages = mkOption {
|
languages = mkOption {
|
||||||
type = types.listOf types.str;
|
type = types.listOf types.str;
|
||||||
description =
|
description =
|
||||||
lib.mdDoc ''
|
lib.mdDoc ''
|
||||||
A list of languages provided by the layout.
|
A list of languages provided by the layout.
|
||||||
(Use ISO 639-2 codes, for example: "eng" for english)
|
(Use ISO 639-2 codes, for example: "eng" for english)
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
compatFile = mkOption {
|
compatFile = mkOption {
|
||||||
@ -80,29 +80,37 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
xkb_patched = pkgs.xorg.xkeyboardconfig_custom {
|
xkb_patched = pkgs.xorg.xkeyboardconfig_custom {
|
||||||
layouts = config.services.xserver.extraLayouts;
|
layouts = config.services.xserver.xkb.extraLayouts;
|
||||||
};
|
};
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
(lib.mkRenamedOptionModuleWith {
|
||||||
|
sinceRelease = 2311;
|
||||||
|
from = [ "services" "xserver" "extraLayouts" ];
|
||||||
|
to = [ "services" "xserver" "xkb" "extraLayouts" ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
###### interface
|
###### interface
|
||||||
|
|
||||||
options.services.xserver = {
|
options.services.xserver.xkb = {
|
||||||
extraLayouts = mkOption {
|
extraLayouts = mkOption {
|
||||||
type = types.attrsOf (types.submodule layoutOpts);
|
type = types.attrsOf (types.submodule layoutOpts);
|
||||||
default = {};
|
default = { };
|
||||||
example = literalExpression
|
example = literalExpression
|
||||||
''
|
''
|
||||||
{
|
{
|
||||||
mine = {
|
mine = {
|
||||||
description = "My custom xkb layout.";
|
description = "My custom xkb layout.";
|
||||||
languages = [ "eng" ];
|
languages = [ "eng" ];
|
||||||
symbolsFile = /path/to/my/layout;
|
symbolsFile = /path/to/my/layout;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
description = lib.mdDoc ''
|
description = lib.mdDoc ''
|
||||||
Extra custom layouts that will be included in the xkb configuration.
|
Extra custom layouts that will be included in the xkb configuration.
|
||||||
Information on how to create a new layout can be found here:
|
Information on how to create a new layout can be found here:
|
||||||
|
@ -213,7 +213,7 @@ in pkgs.lib.mapAttrs mkKeyboardTest {
|
|||||||
|
|
||||||
extraConfig.console.useXkbConfig = true;
|
extraConfig.console.useXkbConfig = true;
|
||||||
extraConfig.services.xserver.xkb.layout = "us-greek";
|
extraConfig.services.xserver.xkb.layout = "us-greek";
|
||||||
extraConfig.services.xserver.extraLayouts.us-greek =
|
extraConfig.services.xserver.xkb.extraLayouts.us-greek =
|
||||||
{ description = "US layout with alt-gr greek";
|
{ description = "US layout with alt-gr greek";
|
||||||
languages = [ "eng" ];
|
languages = [ "eng" ];
|
||||||
symbolsFile = pkgs.writeText "us-greek" ''
|
symbolsFile = pkgs.writeText "us-greek" ''
|
||||||
|
Loading…
Reference in New Issue
Block a user