Vâng để thay đổi chỉ báo led trên bảng điều khiển VT bạn có thể sử dụng setleds
. Vì vậy, nếu bạn đang ở trong VT, bạn chỉ cần gõ
setleds
và bạn sẽ có được trạng thái dẫn hiện tại của bạn. Nếu bạn không muốn bật numlock, chỉ cần bật sáng bạn có thể gõ:
setleds -L +num
Nó trở nên phức tạp hơn trong X và đây là cách "đơn giản nhất" để thử nó. Xin lưu ý rằng X thường được chạy dưới dạng root, vì vậy bạn sẽ phải kiểm tra quyền trên X-windows tty hoặc chạy nó với quyền root. Thông thường X là tty7. /dev/console
nên làm việc là bảng điều khiển hệ thống và do đó tất cả các VT sẽ bị ảnh hưởng.
sudo su -c 'setleds -L +num < /dev/tty7'
Tôi nghĩ rằng điều này cũng sẽ làm việc:
sudo su -c 'setleds -L +num < /dev/console'
đây là danh sách các lựa chọn ánh sáng
[{+|-}num] [{+|-}caps] [{+|-}scroll]
Nếu bạn không có setleds
trong hệ thống của mình, tôi đoán là bạn có thể lấy nó từ gói xuất hiện này sys-apps/kbd
.
Nếu bạn có nhiều người thích đến mã thứ đây là một liên kết đến en dụ mã để led thay đổi trong X . Tôi đã không kiểm tra điều này, nhưng chỉ bằng cách xem mã trông ổn.
Và đây là một kịch bản shell để làm những gì bạn muốn ban đầu. Để có mũ hoặc đèn led khác như chỉ số ổ cứng.
#!/bin/bash
# Check interval seconds
CHECKINTERVAL=0.1
# console
CONSOLE=/dev/console
#indicator to use [caps, num, scroll]
INDICATOR=caps
getVmstat() {
cat /proc/vmstat|egrep "pgpgin|pgpgout"
}
#turn led on
function led_on()
{
setleds -L +${INDICATOR} < ${CONSOLE}
}
#turn led off
function led_off()
{
setleds -L -${INDICATOR} < ${CONSOLE}
}
# initialise variables
NEW=$(getVmstat)
OLD=$(getVmstat)
##
while [ 1 ] ; do
sleep $CHECKINTERVAL # slowdown a bit
# get status
NEW=$(getVmstat)
#compare state
if [ "$NEW" = "$OLD" ]; then
led_off ## no change, led off
else
led_on ## change, led on
fi
OLD=$NEW
done