バッチスクリプトをショートカットに接続したい。 システム設定>キーボード>ショートカットでバインドすると 外部のAppleキーボードからの明るさキーを除いて、すべてのキーで動作します。
明るさのキーは、キーコード 224のshowkeyで認識されます および225 。
xev出力:
FocusOut event, serial 41, synthetic NO, window 0x4000001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 41, synthetic NO, window 0x4000001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 41, synthetic NO, window 0x0,
keys: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
私にできることはありますか?
承認された回答:
halevtを使用したソリューション
マニュアルページによるとhalevt HALイベントの汎用ハンドラーです。非推奨になり、udevに置き換えられました 、でもudevについてはよくわからないので halevtをあげます ソリューション。
編集: 深刻な汗をかいた後、私はudevでこれを行うことができました 。私の他の答えを参照してください。
vimを使用します ファイルを編集しますが、vimがわからない場合 nanoに置き換えることができます またはgedit 。
halevtのインストール
sudo apt-get update && sudo apt-get install halevt
スクリプトにバインドするイベントを決定する
halevtを停止します すでに実行されているデーモン:
sudo /etc/init.d/halevt stop
ここで、halevtかどうかを確認します 使用したいキーのイベントを認識できるので、リスナーを起動します:
sudo -u halevt halevt -fig:plugdev
次に、スクリプトをバインドするキーボードのファンクションキーを押します。 OPが彼の明るさキーを機能させたいと思っているので、それで行きましょう。明るさキーの出力は次のようになります。
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-down)
Condition: /org/freedesktop/Hal/devices/platform_i8042_i8042_KBD_port_logicaldev_input,ButtonPressed (brightness-up)
brightness-down およびbrightness-up イベントが送信されます。
イベントをスクリプトにバインドする
ファイル/etc/halevt/halevt.xmlを編集します :
sudo vim /etc/halevt/halevt.xml
次の行を追加します(</halevt:Configuration>の直前の下部で行いました ):
<halevt:Device match="hal.info.category = input">
<halevt:Condition name="ButtonPressed" value="brightness-up" exec="sudo /home/user/brightness-script.sh up"/>
<halevt:Condition name="ButtonPressed" value="brightness-down" exec="sudo /home/user/brightness-script.sh down"/>
</halevt:Device>
もちろん、valueを変更する必要があります リスナーから取得したイベント、およびexec 実行したいコマンドによって。
コマンドまたはスクリプトを実行する権限をhalevtユーザーに付与します
halevt以降 デーモンはhalevtとして実行されます execで指定したことを実行する権限をユーザーに付与する必要があります 。
実行します(vimを置き換えることを忘れないでください 選択した編集者による)
sudo EDITOR=vim visudo
下部に次の行を追加します
halevt ALL=(root) NOPASSWD: /home/user/brightness-script.sh
保存して終了します。
関連:コマンドラインからキーボードリピートを無効にしますか?スクリプトが実行可能であることを確認してください
sudo chmod +x /home/user/brightness-script.sh
halevtデーモンを再起動します
sudo /etc/init.d/halevt start
そしてそれは機能しているはずです!