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?

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 '14 at 21:22
  • 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! – Serge Stroobandt Nov 4 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

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 '12 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 '12 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? – David Richerby Apr 30 '15 at 10:33
  • It does exactly what it sounds like. – Frank Apr 30 '15 at 20:08

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.