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
。
便宜上、X 構成ファイルを手動で編集する代わりに、localectl ツールを使用できます。 /etc/X11/xorg.conf.d/00-keyboard.conf に設定が保存されます。 localectlが次回起動したときに変更が上書きされるため、手動で編集しないでください。
使用法は次のとおりです。
$ localectl set-x11-keymap layout [model] [variant] [options]
答え3
私はそれを使ったことがありませんが、「usbd」があなたが探しているようです。ドキュメントによると、USBポートを監視し、特定の変更に対してユーザーコマンドを実行します。
ここにいるマニュアルページ。