USBキーボードをFreeBSDデスクトップに再接続するたびに、キーボード設定は新しく接続されたキーボード(具体的にはsetxkbmap -option ctrl:nocaps
)に再適用されません。
USBキーボードを接続するたびにsetxkbmap -option ctrl:nocaps
実行したいです。su - username -c 'DISPLAY=:0 setxkbmap -option ctrl:nocaps'
私が試したこと
xorg.conf
私が望むことを達成するためにXorg設定ファイルを使ってみました。以下を追加しました/usr/local/etc/X11/xorg.conf.d/99-input.conf
。
Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbLayout" "pl"
Option "XkbOption" "ctrl:nocaps"
EndSection
残念ながら、Xorg環境がすでに実行されている間にUSBキーボードを抜いて再接続すると、キーボードのCaps LockはCaps Lockに戻ります(興味深いことに、ノートパソコンのキーボードのCaps LockはまだControlにマップされています)。
だから...
どうすればいいですか?
ベストアンサー1
注意深い。
devd
迅速にシャットダウンできないプログラムは、実行を簡単にブロックできます。これを防ぐには、たとえば、devd
出力に接続されているモニタプログラムを実行する必要があります。/var/run/devd.seqpacket.pipe
volmand
一方、…
もしまだする何か電話したいdevd
まっすぐそして、まずこれを達成するためのほぼ既存のメカニズムがあることに注意してください。動詞とデバイスファイル名を使用して実行されているルールは/etc/devd.conf
すでにあります。仮想端末用に設定されたFreeBSDカーネル内部端末エミュレータのマッピングと項目を呼び出すことを除いて、必要に応じて実行します。これがあなたのダイナミクスも機能する方法です。/etc/rc.d/syscons
setkeyboard
setkeyboard
kbdcontrol
優先順位が101のルールを追加することにし、ルールが特定のファイルとukbd[0-9]+
一致/usr/local/etc/devd/mateusz.conf
する場合は、仮想端末でUSBキーボードの使用を中止したくない場合は、既存のルールをコピーする必要があります。
devd
ルールは優先順位の高い累積ルールではありません。変える優先順位が低いです。
/dev/ukbd*
もちろん、USBキーボードデバイスファイルです。
例:シェルワイルドカードではなく正規表現をmatch
使用し、オペレーティングシステムに付属していないルールセットの正しい場所。cdev
/usr/local/etc/devd/
devd
手をつないで...
気づくこれで問題が解決しない可能性があります。 FreeBSDポートツリーにパッチが適用されたXorg
アドオンモジュールがあります。config/devd
返品devd
キーボードとマウスのデバイスが行き来するときに動的に物事を接続し、分離しようとする出力パイプです。それ通常キーボードコンセントレータにのみ接続し/dev/kbdmux0
、他のキーボードデバイスは無視します。これをいつ実行するかを決定するのはかなり複雑です。残念ながら、エンドユーザーのためにこれらのどれも文書化されていません。存在しません。
したがって、仕事を処理するより良い方法はdevd
まったくルールではありませんXorg
。
config/devd
のモジュールはキーボードを登録するXorg
ので、InputDevice
キーボードdevd:kbdmux
クラスデバイスXorg.conf
用に設定するだけですOption
。この本の第5章にも同様の例があります。"XkbOptions"
"ctrl:nocaps"
FreeBSDマニュアル。
追加読書
devd.conf
。 2019年5月31日。 ファイル形式マニュアル。無料BSD。