Answers:
首先,您必须找到要更改的键盘设备ID:
$ xinput -list | grep -i key
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ LITEON Technology USB Keyboard id=9 [slave keyboard (3)]
↳ LITEON Technology USB Keyboard id=10 [slave keyboard (3)]
然后使用setxkbmap更改布局:
$ setxkbmap -device 9 dvorak
某些版本的setxkbmap需要一个'-layout'参数:
$ setxkbmap -device 9 -layout dvorak
我可以肯定地说,您想要做的确实是可能的。我首先达到了指定的方案
sudo cat /dev/input/event(0,1,2..)
同时在每个键盘上键入以确保将其识别为单独的设备。然后,我简单地应用了反复试验,
setxkbmap -device (1-x) us
。
我发现setxkbmap -device 1 us
配置了这两个(所有)键盘,而setxkbmap -device 6 us
只影响了辅助键盘。相关的也许是它们都通过PS / 2连接了。
当然,这不能保证对您有用,甚至都不能将其归类为正确答案,但它肯定是完全可能的。我不知道各个键盘是根据哪种方案命名的/dev/input
,但是我确定可以在udev中指定这些名称,从而可以setxkbmap
在其中输入/etc/rc.local
类似的命令。
尽管这个问题有点陈旧,但我认为我会分享自己的解决方案,因为其他答案都没有涉及如何在启动时进行此工作。
我的情况: 我有一个Happy Hacking键盘,可通过USB插入键盘,键盘上有可移动的键(控制大写锁定的位置等)。我大多数时候都使用这种键盘,但有时我想使用标准的笔记本电脑键盘或其他USB键盘。对于这些键盘,我创建了自定义键盘布局。
诀窍在于,自定义键盘布局不应应用于Happy Hacking键盘。
解决方案: 我创建了一个Xorg配置文件,如下所示:
$ cat /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
Identifier "Happily Hacked Keyboard"
MatchDevicePath "/dev/input/event*"
MatchIsKeyboard "on"
Driver "evdev"
Option "XkbLayout" "us"
Option "XkbVariant" "hhk"
EndSection
Section "InputClass"
Identifier "Happy Hacking Keyboard"
MatchIsKeyboard "on"
MatchVendor "Topre_Corporation"
Driver "evdev"
Option "XkbLayout" "us"
Option "XkbVariant" "basic"
EndSection
第一部分从根本上说,对于任何标准键盘,请使用带有custom变体的us布局。第二部分说到快乐的黑客键盘,使用带有基本变体的us布局。
您可以根据一系列参数来匹配设备:xorg doc
根据setxkbmap的-device参数判断,这可能是可行的:
-设备设备 指定输入设备的数字设备标识为 更新了新的键盘布局。如果未指定, X服务器的核心键盘设备已更新。
当然,我现在没有第二个键盘可以尝试。
-Dvorak用户
我认为您无法完全按照自己的方式进行操作。我知道两种选择:
1)您可以通过简单的鼠标单击/击键来切换。
使用Ubuntu / GNOME:
鼠标点击
在Ubuntu / Gnome中,如果已设置输入布局,请在面板上的空白处单击鼠标右键,然后单击“添加到面板”。选择“键盘指示器”以将其添加到面板中。那应该输入一小段文字来指示键盘布局,您可以单击此按钮进行切换。
键盘快捷键
系统->首选项->键盘->布局->布局选项
有一个选项“可以更改布局的键”。您可以将其设置为Alt + Shift,这不会干扰任何普通的键盘快捷键。
我想也有一种KDE的方法。
2)另一种选择是http://en.wikipedia.org/wiki/Xneur,但是我不确定这是否适用于瑞典语,并且对于与英语具有相似结构的语言可能也不可行。