2023-07-11 09:12:50 -06:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
2022-08-25 12:21:35 -06:00
|
|
|
with lib; {
|
|
|
|
options = {
|
|
|
|
colemak = {
|
|
|
|
enable = mkOption {
|
|
|
|
description = "Enable colemak keyboard layout";
|
|
|
|
default = true;
|
|
|
|
example = true;
|
|
|
|
type = lib.types.bool;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
config = mkIf config.colemak.enable {
|
2023-07-11 09:12:50 -06:00
|
|
|
console = {keyMap = "colemak";};
|
2022-08-25 12:21:35 -06:00
|
|
|
services.xserver = {
|
|
|
|
layout = "us";
|
|
|
|
xkbVariant = "colemak";
|
2023-08-15 21:19:12 -06:00
|
|
|
xkbOptions = "ctrl:swapcaps,compose:ralt";
|
2023-08-11 05:25:58 -06:00
|
|
|
inputClassSections = [
|
|
|
|
''
|
|
|
|
Identifier "precursor"
|
|
|
|
MatchIsKeyboard "on"
|
|
|
|
MatchProduct "Precursor"
|
|
|
|
MatchVendor "Kosagi"
|
|
|
|
Option "XkbLayout" "us"
|
|
|
|
Option "XkbVariant" "basic"
|
|
|
|
''
|
|
|
|
];
|
2022-08-25 12:21:35 -06:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|