バッチスクリプトをショートカットに接続したい。 システム設定>キーボード>ショートカットでバインドすると 外部の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
そしてそれは機能しているはずです!