スクロールロックキーを使用してキーボードのバックライトを切り替えるにはどうすればよいですか?

スクロールロックキーを使用してキーボードのバックライトを切り替えるにはどうすればよいですか?

最近、照明を切り替えるためにスクロールロックが必要なバックライトキーボードを購入しました。いくつかの単純なbashコマンドで解決されたいくつかの問題が発生しました。これワイヤー。

簡単に言えば、この問題を解決するために見つけたコマンドは次のとおりです。

xset led named "Scroll Lock"

Scroll Lockが有効になり(インジケーターが点灯)

xset -led named "Scroll Lock"

Scroll Lockを無効にして照明を消します。

Scroll Lockキーイベントが受信され(Scroll Lock)機能がオフになっているときに電子コマンドを実行し、それ以外の場合は後者のコマンドを実行したい場合はどのオプションを使用できますか?それは、

if(ScrollLockIsEnabled)
    systemCommand('xset -led named "Scroll Lock");
else
    systemCommand('xset led named "Scroll Lock"`);

またはそのようなもの。

私は少なくともScroll Lockの最後の状態を維持することができる変数を保存するためにBashスクリプトの種類を実行できると思いました。その後、xbindkeys(ユーザーが入力したキーイベントに応じてコマンドを実行する)を使用してこのスクリプトを実行できます。

ベストアンサー1

同様の質問を検索して発見しました。 1年が過ぎたから答えをするのが良いと思います。

質問のように使用すると、xset led named "Scroll Lock"LED照明が有効になり、xset -led named "Scroll Lock"キーボードのLED照明が無効になります。チェックすると、現在の状態情報を出力するというxset --help内容が出ます。xset q

以下は、端末の標準出力の切り捨て例です。

Keyboard Control:
  auto repeat:  on    key click percent:  0    LED mask:  00000002
  XKB indicators:
    00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off
    03: Compose:     off    04: Kana:        off    05: Sleep:       off
    06: Suspend:     off    07: Mute:        off    08: Misc:        off
    09: Mail:        off    10: Charging:    off    11: Shift Lock:  off
    12: Group 2:     off    13: Mouse Keys:  off

Scroll lock: offこの文字列はScroll Lockがオフの場合にのみ出力に表示されるため、grepを使用してこの文字列を確認できます。xset q | grep "Scroll Lock: off"私たちの目的に合わせてうまく動作します。その後、シェルスクリプトで空の文字列をチェックして、いつオンになっているかを確認できます。

#!/bin/sh

result=$(xset q | grep "Scroll Lock: off")
if [ -z "$result" ]; then # Scroll Lock must be on
  echo "Off"
  xset -led named "Scroll Lock"
else
  echo "On"
  xset led named "Scroll Lock"
fi

次に、必要に応じて、ウィンドウマネージャまたはデスクトップ環境設定を使用してスクロールロックをクリックしたときにこのスクリプトを実行します。

おすすめ記事