我有以下布局 layouts/en_ru
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_geometry { include "pc(pc104)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols {
include "pc+us+ru:2+inet(evdev)"
include "group(rctrl_rshift_toggle)"
include "capslock(swapescape)"
// swap right alt and left control
replace key <RALT> { [ Control_L ] };
modifier_map Control { <RALT> };
// swap ; and : only in us layout
replace key <AC10> { [ colon, semicolon ],
[ Cyrillic_zhe, Cyrillic_ZHE ] };
// helpers //
// xinput list
// xinput test 16
// xkbcomp $DISPLAY out.xkb
// cat /usr/share/X11/xkb/rules/base.lst
};
};
Run Code Online (Sandbox Code Playgroud)
$HOME/xinitrc
像这样加载
xkbcomp $HOME/.config/layouts/en_ru $DISPLAY
Run Code Online (Sandbox Code Playgroud)
如何将这一切转移到configuration.nix
?
我通过添加使这件事的第一部分发生
xserver = {
enable = true;
layout = "us,ru";
xkbOptions = "caps:swapescape,grp:rctrl_rshift_toggle";
};
Run Code Online (Sandbox Code Playgroud)
到我的configuration.nix
,但我不知道如何添加这部分并使其在系统范围内
// swap right alt and left control
replace key <RALT> { [ Control_L ] };
modifier_map Control { <RALT> };
// swap ; and : only in us layout
replace key <AC10> { [ colon, semicolon ],
[ Cyrillic_zhe, Cyrillic_ZHE ] };
Run Code Online (Sandbox Code Playgroud)
小智 3
这是一个暂时的问题。systemd 中有修复,但 NixOS 中尚未包含 systemd 的版本:
https://github.com/systemd/systemd/commit/5016eb56352a7ea1f61ea106fa4f5639fbf6ddd8
我知道你在说什么!“这不是答案!” 并且我同意!幸运的是,我们可以选择services.udev.extraHwdb
在 中添加我们自己的 udev 规则configuartion.nix
。
这是我现在正在进行的最终修复:
services.udev.extraHwdb = ''
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v4*:pvr*
KEYBOARD_KEY_56=backslash
''
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1328 次 |
最近记录: |