web-dev-qa-db-ja.com

1台のコンピューターに2つのキーボード。 Aで書くときはUSキーボードレイアウト、Bを使うときはスウェーデン語が必要です。可能?

外付けキーボードを使用するラップトップを持っています。外部キーボードを使用して入力するときは、USキーボードレイアウトを使用したいと思います。これは、私が使用している外部キーボードの種類だからです。一方、統合キーボードを使用して入力するときは、スウェーデンのレイアウトを使用したいと思います。

これは可能ですか?そして、私はそれをどうやってやりますか?

ほとんどのLinuxの専門知識はここにあると思うので、ここで質問します。

47
Deleted

まず、変更するキーボードのデバイス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
41
flicken

この質問は少し古いですが、他のどの回答もこれをブートで機能させる方法を扱っていないため、自分の解決策を共有すると思いました。

私の状況:USB経由で接続するハッピーハッキングキーボードがあり、キーが移動します(Caps Lockの位置などを制御します)。ほとんどの場合これを使用しますが、標準のラップトップキーボードまたは別の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

最初の部分は基本的にすべての標準キーボードについて述べており、カスタムバリアントでusレイアウトを適用します。 2番目の部分は、ハッキングキーボードが幸せであることを示しています。基本的なバリアントでusレイアウトを使用します。

一連のパラメータに基づいてデバイスを一致させることができます: xorg doc

9
zanegray

あなたがしたいことは確かに可能だと私は前向きに言えるでしょう。最初に特定のシナリオを達成しました

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または類似。

9
Arkenklo

Setxkbmapの-device引数で判断すると、可能である可能性があります。

 -device device 
新しいキーボードレイアウトで更新する入力デバイスの数値デバイスIDを指定します
。指定しない場合、Xサーバーの
コアキーボードデバイスが更新されます。

しかし、当然のことながら、現時点ではそれを試すための2つ目のキーボードはありません。

-Dvorakユーザー

5
Tommy McGuire

あなたが望むようにこれを正確に行うことができるとは思いません。私が知っている2つのオプションがあります。

1)簡単なマウスクリック/キーストロークを切り替えることができます。

Ubuntu/GNOMEの場合:

マウスクリック

Ubuntu/Gnomeでは、入力レイアウトが設定されている場合、パネルの空の場所に移動し、右クリックして[パネルに追加]をクリックします。これをパネルに追加するには、「キーボードインジケーター」を選択します。キーボードレイアウトを示す小さなテキストが入力され、クリックして切り替えることができます。

キーボードショートカット

システム->設定->キーボード->レイアウト->レイアウトオプション

「レイアウトを変更するためのキー」というオプションがあります。これをAlt + Shiftに設定できます。これにより、通常のキーボードショートカットが妨げられることはありません。

KDEの方法もあると思います。

2)他の代替案は http://en.wikipedia.org/wiki/Xneur ですが、これがスウェーデン語で使用できるかどうかは不明であり、同様の構成を持つ言語では不可能かもしれません英語に。

1
Phil