如何在 Wayland 上重新映射 CAPS LOCK?

如何在 Wayland 上重新映射 CAPS LOCK?

在 Fedora 切换到 Wayland 之前,我使用此.Xmodmap文件通过我的CapsLock密钥来获取德语变音符号:

keycode 66 = Mode_switch Multi_key
keycode 20 = minus underscore ssharp
keycode 34 = bracketleft braceleft udiaeresis Udiaeresis
keycode 47 = semicolon colon odiaeresis Odiaeresis
keycode 48 = apostrophe quotedbl adiaeresis Adiaeresis

在 Wayland 上,这不再起作用 -CapsLock只是像以前一样工作。

有没有办法在 Wayland 中实现同样的结果?

答案1

对于 gnome,你可以使用

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:ctrl_modifier']"

虽然 X 的首选方式是

setxkbmap -option caps:ctrl_modifier

我认为不是 xmodmap。请参阅此错误报告

答案2

为了完整性:在 KWin/KDE 下,你可以使用以下方法灵活地重新映射 Caps-Lock(以及一些其他控制键)系统设置输入设备键盘先进的

具体来说,你可以设置选择第 3 级的键大写锁定以实现您的特定配置。

Alt Gr– 比在编程时使用要好得多,而损失Caps Lock的回报实际上根本不是损失。

答案3

对于摇摆你可以使用:

export XKB_DEFAULT_OPTIONS=caps:escape

跑步前:

sway

参考https://github.com/swaywm/sway/wiki

答案4

这是一个脚本,它可以将 Capslock 更改为 Ctrl,并将 GNOME + Wayland 的 rightAlt 更改为 Capslock(适用于 Arch Linux)。

https://gist.github.com/zw963/e8156358b2029c4f5a6f0d57fb9f6143

脚本内容为:


#! /bin/bash

if ! fgrep -qs 'ctrl:new_ctrl  =   +new_ctrl(new_ctrl)' /usr/share/X11/xkb/rules/evdev; then
    sudo sed -i.bak '/ctrl:nocaps[[:blank:]]*=[[:blank:]]*+ctrl(nocaps)/a\
  ctrl:new_ctrl  =   +new_ctrl(new_ctrl)
' /usr/share/X11/xkb/rules/evdev
fi

cat <<'HEREDOC' |sudo tee /usr/share/X11/xkb/symbols/new_ctrl
partial modifier_keys
xkb_symbols "new_ctrl" {
    replace key <CAPS> { [ Control_L ] };
    modifier_map Control { <CAPS>, <LCTL> };
    replace key <RALT> { [ Caps_Lock ] };
    modifier_map Lock { <RALT> };
};
HEREDOC

gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:new_ctrl']"

# for to disable this run
# gsettings reset org.gnome.desktop.input-sources xkb-options

相关内容