The Linux kernel offers both direct access to LEDs and support for many different triggers that control when/how an LED should light up.
You can see all available triggers for an LED by reading from its trigger
file. The active trigger is indicated by brackets.
$ cat /sys/class/leds/input0::capslock/trigger none kbd-scrolllock kbd-numlock [kbd-capslock] kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock disk-activity disk-read disk-write ide-disk mtd nand-disk cpu cpu0 cpu1 cpu2 cpu3 panic usb-gadget usb-host mmc0 wacom_battery_0-online AC-online BAT0-charging-or-full BAT0-charging BAT0-full BAT0-charging-blink-full-solid rfkill-any rfkill-none audio-mute audio-micmute rfkill0 phy0rx phy0tx phy0assoc phy0radio rfkill73
For some nice triggers (e.g., heartbeat, timer, oneshot, usbport) you might need to load their module first.
$ modprobe ledtrig-timer $ echo "timer" > /sys/class/leds/input0::capslock/trigger
Two new files appear: delayon
. Both accept values in milliseconds.
and
delayoff
$ echo 100 > /sys/class/leds/input0::capslock/delay_off $ echo 100 > /sys/class/leds/input0::capslock/delay_on
See also: