切换键盘布局会禁用 setxkbmap 自定义

切换键盘布局会禁用 setxkbmap 自定义

我使用此命令:setxkbmap -option "lv3:caps_switch"自定义我的键盘快捷键(home、end、左箭头和右箭头)。

配置驻留在/usr/share/X11/xkb/symbols/us文件中。一切正常,除了当我切换键盘布局时,由 创建的映射setxkbmap会停止工作,即使我切换回美国布局也不会再工作。我必须手动重新运行setxkbmap -option "lv3:caps_switch"才能使我的映射再次工作。

有办法解决这个问题吗?我的 Ubuntu 版本是 14.04

答案1

据我所知,Ubuntu 13.10 改变了 Unity/Gnome 布局管理方式。因此它支持多个输入引擎,并将布局更改快捷方式的控制移至更高级别(窗口管理器/设置守护进程)。

setxkbmap与较低级别的 XKB 配合使用,设置守护进程不会查询较低级别的更改。它只是直接应用存储在其数据库中的设置。

有两个选项可以帮助您实现这一目标:

  • 存储 XKB 设置(推荐)

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

    参考: 如何启用 Ctrl+Alt+Backspace?

  • 直接在布局中添加三级设置us,如下图所示:

        ...
        key <AB09> {        [    period,    greater         ]       };
        key <AB10> {        [     slash,    question        ]       };
    
        key <BKSL> {        [ backslash,         bar        ]       };
    
        include "level3(caps_switch)"
    };
    

    然后运行sudo dpkg-reconfigure xkb-data,切换到另一个布局然后返回。

相关内容