注意深い。

注意深い。

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.pipevolmand

一方、…

もしまだする何か電話したいdevd まっすぐそして、まずこれを達成するためのほぼ既存のメカニズムがあることに注意してください。動詞とデバイスファイル名を使用して実行されているルールは/etc/devd.confすでにあります。仮想端末用に設定されたFreeBSDカーネル内部端末エミュレータのマッピングと項目を呼び出すことを除いて、必要に応じて実行します。これがあなたのダイナミクスも機能する方法です。/etc/rc.d/sysconssetkeyboardsetkeyboardkbdcontrol

優先順位が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。

おすすめ記事