我在运行 Wayland 的 Ubuntu 22 系统上遇到了一个奇怪的问题。我使用以下脚本将 Caps-lock 键重新映射为附加 Control 键:
remap_caps() {
local filename="/etc/default/keyboard"
local search
local replace
if grep XKBOPTIONS= $filename; then
search=$(grep XKBOPTIONS= $filename)
replace=XKBOPTIONS="\"ctrl:nocaps,grp:toggle\""
sudo sed -i "s/$search/$replace/" $filename
else
echo XKBOPTIONS="\"ctrl:nocaps,grp:toggle\"" | sudo tee -a $filename
fi
if [ "$XDG_SESSION_TYPE" = "x11" ] || [ "$XDG_SESSION_TYPE" = "xwayland" ]; then
setxkbmap -option 'ctrl:nocaps,grp:toggle'
fi
sudo dpkg-reconfigure keyboard-configuration
}
我还在 GTK 设置中启用了 Emacs 关键主题:
gsettings set org.gnome.desktop.interface gtk-key-theme "Emacs"
有时,主要是在 Emacs 和 Google Chrome 中,一些使用 的键绑定Caps-lock会停止工作。最常见的情况是,在拉取文本 - Caps-y时(而Ctrl-y仍按预期工作并拉取文本)和下一行 - Caps-n时(而Ctrl-n仍有效),会发生这种情况。
奇怪的是,如果 Caps 或y按键不起作用,它们单独也不起作用。但它们确实起作用 -y按键仍按预期键入y
和提取文本。这让我相信,虽然按键被识别,Ctrl但它以某种方式被系统误解了。yCaps-lock
值得注意的是Caps-v和Alt-功能完美, -和-v也是如此。对我来说,这表明问题明显与特定键绑定有关,而不是按键的一般故障。CtrlyAltvCaps-lock
我怀疑该问题可能与我系统上应用的 Emacs 主题相关的 GTK 设置有关。
感觉我的系统上有什么东西干扰了 Emacs 和 Chrome 中的 GTK 快捷方式正常运行。如果有人遇到过类似的问题或知道我应该如何继续调试这个问题,我可能需要你的帮助。