Life With Arch:让Capslock成为输入法切换快捷键

Mac重度用户应该都知道自带输入法很早的时候就可以支持capslock切换输入法了。而且它的实现方式也很贴心,并不会完全覆盖capslock原本的作用。长按依然可以切换大小写。

作为一个键盘重度用户,大小写切换确实是完全用不上的。因为经常使用capslock切换大小写的人,肯定是时不时的会忘记当下的键盘是大写还是小写。用shift反而是更优的方案。这就导致了如果不用capslock切换输入法,这个home row上位置极佳的按键就几乎没用了。

之前想着重新映射capslock让他作为输入法切换。但看了看xmodmap的映射修改方式就觉得麻烦。映射的脚本可读性太差,基本不可能记住。所以一直懒得弄。而昨天网上发现了用setxkbmap的方法,才发现原来xserver已经默认提供了映射修改方案了。

首先这些方案可以在/usr/share/X11/xkb/rules/base.xmllocalectl list-x11-keymap-options里面看到。不同的是在那个xml文件里面还可以看到修改方案的描述。

  • /usr/share/X11/xkb/rules/base.xml
caps:swapescape
Swap ESC and Caps Lock
caps:escape
Make Caps Lock an additional Esc
caps:backspace
Make Caps Lock an additional Backspace
caps:super
Make Caps Lock an additional Super
caps:hyper
Make Caps Lock an additional Hyper
caps:menu
Make Caps Lock an additional Menu key
caps:numlock
Make Caps Lock an additional Num Lock
  • localectl list-x11-keymap-options
caps:backspace
caps:capslock
caps:ctrl_modifier
caps:escape
caps:hyper
caps:internal
caps:internal_nocancel
caps:menu
caps:none
caps:numlock
caps:shift
caps:shift_nocancel
caps:shiftlock

接下去,只需要用setxkbmap -option 方案名就可以采用这个方案。我使用的是caps:numlock。毕竟数字键盘笔记本几乎没有,即使有除了银行职员和会计也不太用的上。现在很多机械键盘也都不出带数字键盘得了。

最后,只需要在fcitxglobal setting里面修改快捷键即可。

但这样做重启后或推出登录后就无效了。如果需要它persist,把这条命令丢到.xinitrc里面去,放在启动桌面环境语句的前面即可。


当然了,除了这种方法,还有别的更加灵活的方案。比如直接利用fcitx的ipc接口,将fcitx-remote命令在你所使用的窗口管理器或者桌面环境的设置里绑定到某个快捷键上即可。这样还可以绑各式各样的组合键。当然了,还是上面那种简单,而且是适用于xorg全局的。

你可能感兴趣的:(Life With Arch:让Capslock成为输入法切换快捷键)