web-dev-qa-db-ja.com

Linuxのショートカット用の個別のキーボード(2つのキーボード、2つのレイアウト)

私は2つのキーボードを持っています:古いps/2のものとusbのものです。 USBキーボードにUSBレイアウト(または、USBキーボードをgnomeで選択したレイアウトに従わせることが望ましい)にし、ps/2キーボードにカスタムレイアウト(ショートカットなど:D)を持たせたいです。実行時にsetxkbmap -device 8 -layout ru(テストするロシア語のレイアウト)を使用して各キーボードに個別のレイアウトを設定しようとしましたが、これによりすべてのキーボードのレイアウトがロシア語に設定されます。

philippe@tnw:~$ xinput -list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ MOSART Semi. Wireless Keyboard & Mouse    id=9    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=10   [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=11   [slave  pointer  (2)]
⎣ 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)]
    ↳ MOSART Semi. Wireless Keyboard & Mouse    id=8    [slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                        id=12   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]

編集:答えの一部が見つかりました:デバイスのレイアウトを指定するときは、すべてのハードウェアに必要なすべてのレイアウトを含める必要があります。したがって、デバイス2でロシア語、3で米国英語が必要な場合は、デバイス2のレイアウトを指定するときに「ru、us」を使用し、デバイス3のレイアウトを指定する必要があります。

setxkbmap -device 2 -layout ru,us
setxkbmap -device 3 -layout us,ru

起動時にこれを取得して、カスタムレイアウトを作成する必要があります。それを手伝っていただければ幸いです。

2
tehwalris

あなたは使用する必要があります

xinput --create-master SecondKeyboard

別のマスターキーボードを作成してから、2番目のキーボードを新しいマスターに再接続します。

xinput --reattach "キーボードID" "マスターID"

からのIDを使用します

xinput --list

このように、キーボードは分離されており、排他的に扱うことができます。例えば。 2つのフォーカスがあり、2つのキーボードを使用して2つのアプリケーションで同時に書き込み、setxkbmapなどで異なるマスターIDを指定することにより、異なるキーマッピングを設定できます。

4
Nohus