RHEL 6.6でNum LockまたはCaps Lockがオンになっているかどうかを確認するには?

RHEL 6.6でNum LockまたはCaps Lockがオンになっているかどうかを確認するには?

Num Lock / Caps LockがオンまたはオフのときにThinkpad T430に目立つインジケーターがありません。オンまたはオフのときに画面に通知を表示する方法はありますか?

答え1

次の方法で情報を取得できます。設定:

xset q | grep Caps

結果:

00: Caps Lock:   off    01: Num Lock:    on     02: Scroll Lock: off

しかし、Xがなければ試してみることができます。サポート技術情報:

kbdinfo gkbled

結果:

scrolllock:off numlock:on capslock:off

編集:
ステータスを変更するには、xset次の点を確認してください。回答

または、次を使用してステータスを変更できます。xdoツール:

xdotool key Caps_Lock

画面アラートの場合は確認できます核心が不明

次のスクリプトを試すこともできます。

#!/bin/bash
#lockkey.sh

sleep .2

case $1 in
    'num')
        mask=2
        key="Num"
        ;;
    'caps')
        mask=1
        key="Caps"
        ;;
esac

value="$(xset q | grep 'LED mask' | awk '{ print $NF }')"

if [ $(( 0x$value & 0x$mask )) == $mask ]
then
    output="$key Lock is on"
else
    output="$key Lock is off"
fi

notify-send "$output"

スクリプトをコピーし/usr/local/binてバインドCapsして実行できます。

/usr/local/bin/lockkey.sh caps

および/またはNum次のように:

/usr/local/bin/lockkey.sh num

答え2

T430にはCapsLock LEDがない可能性がありますが、電源LEDはソフトウェア(Linuxカーネル4.2でテスト)を介して制御できるため、うまく利用できます。まず、これを/etc/rc.localに追加します。

echo kbd-capslock >/sys/class/leds/tpacpi::power/trigger
chmod 666 /sys/class/leds/tpacpi::power/brightness

最初の行はテキストコンソールを担当し、副作用として最初はLEDを消灯します。 X11を処理するために、2行目では、一般ユーザーがLEDを制御できます。次に、このコードを保存してください。

#!/bin/sh
sleep 0.1
if xset q | grep -q 'Caps Lock: *on'; then
    echo 255 >/sys/class/leds/tpacpi::power/brightness
else
    echo 0 >/sys/class/leds/tpacpi::power/brightness
fi

実行可能スクリプト(例:/usr/local/bin/capsled.sh)で実行し、デスクトップ設定でCapsLockキーをバインドします。本当に醜いですが動作します(XFCE4でテスト)。 X11でLEDを再マッピングするよりきれいな方法を知っている人はいますか?

答え3

CAPS_STATUS=`xset q | grep -i caps | cut -c 22-24`
#test on $CAPS_STATUS if its on or off 

関連情報