Xorg:複数のキーボード、1つの構成

Xorg:複数のキーボード、1つの構成

xmodmap私のラップトップでは、いくつかのキーバインディングとキーボード設定を使用して調整します xset。外部USBキーボードを接続すると、新しいキーボードの設定がデフォルト値に設定されます(つまり、調整しません)。xmodmapこれをやり直すと、これらのxsetデフォルト設定は新しく接続されたキーボードにも適用されますが、接続/切断時にデフォルトにリセットされます。プラグを差し込んだり外したりしても、ノートブックキーボードの設定には影響しません。また、プロセス全体でキーボードが調整されたままになります。

質問:私はどのようにすることができますか?一つすべてのキーボード(現在および将来)で動作するxmodmapとxsetの基本設定セット。

構成: 3.1.1 カーネルベースの Arch Linux, Xorg 1.11.2, ホームブルー設定なし, ウィンドウマネージャ: クールな 3.4.11, kde または gnome エントリなし

ありがとうございます!

答え1

@Patkos Csaba:変更されました。デフォルトは、何も設定する必要はなく、自動的に機能することです。いくつかの点では、.xinitrcにsetxkbmapを追加する方がサーバー構成を変更するよりも簡単です。

USBキーボードまたはマウスを接続すると、/dev/miceなどのコマンドを使用せずにX11でそれを追加して認識できます。

この問題が発生したので、IMHOの完全な解決策は、Xorgに現在接続されているキーボードから新しいキーボード設定を継承するように指示するか、setxkbmapにオプションを現在のサーバーのデフォルトに設定するように指示することです。そして将来のキーボード。

これまで、私はこれを行う方法を見つけることができませんでした。 setxkbmap/xmodmapを再実行しない唯一の方法は、新しいデバイスを構成するときにhaldで使用されるデフォルト設定を編集することです。freebsd ドキュメント、§6.4.2(セクションタイトルの下の一部の段落には、キーボードのデフォルト設定の2つの例があります)。 「オプション2」も参照してください。Klaas Teschauerのhal移行チュートリアル。しかもハードウェアを追加するときのスクリプトトリガーへのリンクを含むStackoverflowに関する質問したい場合は、そうしてください。

答え2

私は.xorgで生成されたXorg設定ファイルを使ってこの問題を解決しましたlocalectl。私はdvorak / qwertyレイアウトを使用し、Caps Lockキーを追加の制御キーとして使用します。私はこれを.xinitrcに持っていました:

setxkbmap -layout us,us -variant dvorak, \
-option 'grp:alt_space_toggle' \
-option 'grp_led:caps' \
-option 'ctrl:nocaps'

Xorg構成ファイルから同等の設定を取得するには、次のようにしました。

sudo localectl set-x11-keymap us,us "" dvorak, 'grp:alt_space_toggle,grp_led:caps,ctrl:nocaps'

これはファイルに保存されます/etc/X11/xorg.conf.d/00-keyboard.conf

~からArchwiki キーボード設定ページ:

便宜上、X 構成ファイルを手動で編集する代わりに、localectl ツールを使用できます。 /etc/X11/xorg.conf.d/00-keyboard.conf に設定が保存されます。 localectlが次回起動したときに変更が上書きされるため、手動で編集しないでください。

使用法は次のとおりです。

  $ localectl set-x11-keymap layout [model] [variant] [options]

答え3

私はそれを使ったことがありませんが、「usbd」があなたが探しているようです。ドキュメントによると、USBポートを監視し、特定の変更に対してユーザーコマンドを実行します。

ここにいるマニュアルページ

関連情報