![以编程方式切换键盘布局](https://linux22.com/image/26854/%E4%BB%A5%E7%BC%96%E7%A8%8B%E6%96%B9%E5%BC%8F%E5%88%87%E6%8D%A2%E9%94%AE%E7%9B%98%E5%B8%83%E5%B1%80.png)
我使用三种不同的布局并查看代码以通过.bashrc
函数以编程方式更改布局。
答案1
例如,要获得美国布局(顺便说一句,这非常适合编程;请参阅这问题)。
在 X 中,尝试setxkbmap -layout us
在 Linux 控制台中,添加XKBLAYOUT="us"
到/etc/default/keyboard
;然后setupcon
以超级用户身份运行。或者,使用dpkg-reconfigure keyboard-configuration
(也作为超级用户)。您还可以通过使用 ; 在控制台中使用与 X 中不同的地图KMAP
。在看/etc/console-setup/
。
这可能需要一些摆弄;也许,您想在您的文件中编写别名和/或函数.bashrc
以便快速访问。如果你打算来回切换,我发现撰写关键是有更好的解决方案。当然,除非你用完全不同的字母书写。
答案2
确实很奇怪,X11
没有提供标准工具来切换到给定的布局(当您使用 定义多个布局时setxkbmap
)。
但我刚刚找到了一个可以做到这一点的工具:xkblayout-state
使用它,您可以通过名称或布局堆栈中的位置获取/设置当前布局。
答案3
它可能看起来很老套,但它的作用就像一个魅力:
setxkbmap -layout ru && setxkbmap -layout ru,us
setxkbmap -layout us && setxkbmap -layout us,ru
强制切换:
setxkbmap -layout ru && setxkbmap -layout us && setxkbmap -layout us,ru
如果需要,您可以对循环进行编程。