最近、照明を切り替えるためにスクロールロックが必要なバックライトキーボードを購入しました。いくつかの単純な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
次に、必要に応じて、ウィンドウマネージャまたはデスクトップ環境設定を使用してスクロールロックをクリックしたときにこのスクリプトを実行します。