跟进有关在Wayland中自定义键映射的问题,我发现它xmodmap
显然已被弃用,但是xkb在Wayland中“应该起作用”。不幸的是,xkb更加复杂并且相应地文献也较少。我已经成功地工作了我基于从信息所需要的节关于交换的问题Cmd和Ctrl,另一个大写锁定的问题,阅读一些问题的答案,从我的系统文件的链接,但我不知道如何应用它们以一种可以自动化且不会与GNOME冲突的方式。
这些是我制定的节,并使用进行了成功的测试xkbcomp
。
partial alphanumeric_keys
xkb_symbols "pound" {
// Put sterling on RAlt-3 and numbersign on Shift-3.
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};
// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
key <RWIN> { [ Control_R ] };
modifier_map Control { <LCTL>, <RWIN> };
modifier_map Mod4 { <LWIN> };
};
partial modifier_keys
xkb_symbols "shiftcaps" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ VoidSymbol, Caps_Lock ],
actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
};
};
我将前两个/usr/share/X11/xkb/symbols/macbook
和第三个放在shiftcaps
同一目录中,使用xkbcomp
etc加载到标准gb(mac)
布局顶部时它们可以工作。
我正在对此进行编辑以进行更新并澄清我的答案。我的磅自定义最近停止工作了,所以我检查了gb(mac)中发生了什么更改,并意识到我必须添加, threesuperior
到该key <AE03>
行中。
我认为evdev.xml
gnome-tweak-tool使用它来在GUI中提供这些选项。这是我添加的内容:
<group allowMultipleSelection="true">
<configItem>
<name>macbook</name>
<description>Macbook customisations</description>
</configItem>
<option>
<configItem>
<name>macbook:pound</name>
<description>Hash on Shift-3, Sterling on AltGr-3</description>
</configItem>
</option>
<option>
<configItem>
<name>macbook:rcmdctrl</name>
<description>Right Cmd key acts as Ctrl</description>
</configItem>
</option>
</group>
<group allowMultipleSelection="false">
<configItem>
<name>shiftcaps</name>
<description>Caps Lock with Shift</description>
</configItem>
<option>
<configItem>
<name>shiftcaps:shiftcaps</name>
<description>Caps Lock requires Shift to toggle</description>
</configItem>
</option>
</group>
谢谢。在evdev文件中定义选项是这个难题的缺失部分,我已经使用dconf-editor来完成我现在想要的工作。
—
realh 2016年
在我的系统(Debian)上,我也找到了
—
realh 2016年
/usr/share/X11/xkb/rules/evdev.xml
。我不知道这是干什么的。如果我在其中出现语法错误,则在打开“键盘”选项时,GNOME设置应用程序将崩溃,但实际上在GUI中找不到该选项。我在包含的行后添加了适当的行<optionList>
。由于评论限制,我无法在此处发布它们。
让我补充一下,xmodmap在XKB出现时于1996年左右被弃用。即在韦兰德发明之前的几年。
—
罗伯特·西默
dconf
之下的键值org.gnome.desktop.input-sources
),请在此处