I would like turn on/turn off some of my leds running a command on linux.

I use Ubuntu 12.04 LTS.

I tried

xset led named "Scroll Lock"
xset led named "Num Lock"
xset led 2             (this is the number of Scroll Lock as `xset q` says)
xset led 1

but nothing works.


setleds +num
setleds +scroll

but I got a error message saying Error reading the current settings of flags. Maybe you're not on the console? (I was in a terminal).

So, how can I perform this?

7 Answers 7


xdotool key Num_Lock

Is the an answer (the easiest you're likely to find); inverting the state, it also provides a path to search (xinput and modifying a slave keyboard state) if you really just want to set an led status.

I too ran across my Num Lock keyboard LED and X11 state differing recently (happens with remote desktops, games, etc)

This reference explains what's going on, and almost has the complete solution (but it has a case-typo, you need Num_Lock not Num_lock).


  • This should be the accepted answer. Best solution I've ever seen. Thank you! The lights are so annoying!
    – jocap
    May 13, 2014 at 21:22
  • 1
    Note that xdotool key Num_Lock is not as innocent as turning a LED on or off; It is the equivalent of actually pressing the key! Nov 4, 2018 at 12:14

To turn Scroll Lock led on run:

xset -led 2 led on

To turn it off run:

xset -led 2 led off

There is also solution without any extra software. Just use:

echo "1" > /sys/class/leds/input20::scrolllock/brightness
echo "1" > /sys/class/leds/input20::/brightness

as root.

  • Works like a charm
    – mandza
    Mar 26, 2021 at 21:30

Press Ctrl+Alt+F1, login, and then try setleds.

  • Interesting. setleds (not xset) worked for me now too. Looks like we need set a display. I tried several things but nothing worked. But, looks we're almost.
    – GarouDan
    Jun 17, 2012 at 11:28
  • 2
    This isnt the final answer to me, because I need this working on the gui display, not at the console display.
    – GarouDan
    Jul 23, 2012 at 19:55

Install xf86-input-keyboard if you don't have it.

Set kbd_mode -u

Make sure you don't have multiple instances of the KB (check what XINPUT: reports).


As noted in this answer, if your screen is on TTY1, but you try to control the LEDs from somewhere else (such as an SSH session), you can use setleds in the following way:

setleds -L +num +caps +scroll < /dev/tty1

Just use the command:

numlockx on 


numlockx off

to change the state.

  • 4
    This is rather brief: some more detail would be helpful. For example, in what circumstances does this command work? Apr 30, 2015 at 10:33
  • It does exactly what it sounds like.
    – Jon
    Apr 30, 2015 at 20:08

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .