diff --git a/infra/libkookie/configuration/workstation/xkblayout/default.nix b/infra/libkookie/configuration/workstation/xkblayout/default.nix new file mode 100644 index 00000000000..e4d2fab4b0e --- /dev/null +++ b/infra/libkookie/configuration/workstation/xkblayout/default.nix @@ -0,0 +1,32 @@ +/* KEYBOARD LAYOUT MODULE + * + * (INCOMPLETE) Setup keyboard layout + * and overrides. Currently this is + * mostly handled by GRAPHICS/I3 but + * should maybe be moved here? + */ +{ pkgs, config, ... }: + +{ + console.useXkbConfig = true; + + services.xserver = { + layout = "us"; + xkbVariant = "altgr-intl"; + xkbOptions = "caps:hyper"; + + # We want to set this layout modification as a per-device setting + # to avoid interpreting hardware keyboards with the same + # layout, which would otherwise lead to "double dvorak". + extraConfig = '' + Section "InputClass" + Identifier "Internal Keyboard" + MatchIsKeyboard "yes" + MatchProduct "AT Translated Set 2 keyboard" + Option "XkbLayout" "dvorak" + Option "XkbVariant" "altgr-intl" + Option "XkbOptions" "caps:hyper" + EndSection + ''; + }; +} diff --git a/infra/libkookie/roots/tempest.nix b/infra/libkookie/roots/tempest.nix index a3d24a09027..84b51273679 100644 --- a/infra/libkookie/roots/tempest.nix +++ b/infra/libkookie/roots/tempest.nix @@ -31,6 +31,8 @@ in # + + ################################################################# # home-manager modules that exist entirely in userspace