两个键盘两种语言布局

Min*_*mus 20 keyboard language

我想将两套键盘连接到我的电脑。是否可以为特定语言设置每个。这样就无需每次都更改语言。

例如:

  • 键盘 1 类型俄语

  • 键盘 2 种英语

Rad*_*anu 20

使用xinputsetxkbmap实用程序,您可以从终端设置,使每个键盘具有不同的布局。

首先,使用xinput -list | grep key命令,您必须找到每个键盘的设备 ID。这是一个例子(我的情况):

$ xinput -list | grep 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)]
    ? Video Bus                                 id=7    [slave  keyboard (3)]
    ? Power Button                              id=8    [slave  keyboard (3)]
    ? Sleep Button                              id=9    [slave  keyboard (3)]
    ? 2.4GHz 2way RF Receiver                   id=10   [slave  keyboard (3)]
    ? HP Webcam                                 id=12   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ? HP WMI hotkeys                            id=15   [slave  keyboard (3)]
    ?   USB Keyboard                            id=16   [slave  keyboard (3)]
    ?   USB Keyboard                            id=17   [slave  keyboard (3)]
Run Code Online (Sandbox Code Playgroud)

其次,使用setxkbmap -device <key_ID> -layout <layout_name>,为每个键盘设置您希望的布局。一个例子(对于我的键盘):

setxkbmap -device 3 -layout ro    #My master keyboard is set to Romanian layout
setxkbmap -device 10 -layout us   #The keyboard with id=10 is set to English (US) layout
setxkbmap -device 16 -layout ru   #The keyboard with id=16 is set to EFor Russian layout
Run Code Online (Sandbox Code Playgroud)

  • 感谢您的回答,这激发了我提出一个相关问题:*如何将不同的键盘布局永久分配给 USB 键盘?* 看来我需要一个启动脚本。第一个 *xinput -list | grep "USB 键盘"* 会给我设备 ID(每次启动时都不同)。我需要另一个命令来剪切第一个 ID 号,然后在此处使用它:*setxkbmap -device &lt;NUMBER&gt; -layout &lt;LAYOUT&gt;* (3认同)

小智 7

有点题外话,但如果您额外使用该-variant选项,您可以在一个键盘上键入 dvorak,然后在另一个键盘上键入 workman 或 qwerty 或任何其他布局。

setxkbmap -verbose -device 17 -layout us -variant dvorak
Run Code Online (Sandbox Code Playgroud)

结对编程类固醇!