I have been trying to get my laptop's screen brightness to default to a low setting, and for my keyboard light to be off when I start my computer.

I have these two commands that work when I execute them at the command line:

xbacklight -set 7
echo 0 | sudo tee /sys/class/leds/asus::kbd_backlight/brightness

I put them in my /etc/rc.local file, like so:

#!/bin/sh -e
# ...
# By default this script does nothing.
echo 0 | tee /sys/class/leds/asus::kbd_backlight/brightness
xbacklight -set 7
exit 0

However, neither command executes. (I was told that the sudo was not needed in the second command when placed in /etc/rc.local)

There was another question asking the same thing about rc.local, but I tried to also include my commands using the Startup Applications GUI interface. That also did not work, so I think the problem might go beyond just the rc.local file. Other default startup commands in the list seem to start, so far as I can tell.

Why am I unable to get any custom command line to execute when I startup?

New: After some experimentation, it seems like the commands I put in /etc/rc.local might be getting executed before the login screen. So, my login screen has the screen appropriately dimmed. However, then when I login, my screen goes to maximum brightness. So it seems like perhaps there is some other setting that is being applied when I log in, or that /etc/rc.local only applies for the login screen itself and has no bearing on what happens to a user when logged in.

So, how do I resolve this so that the brightness and keyboard light settings I want apply to the user login session, not just to the login screen?

  • 1
    Does manually executing this script work?
    – nitishch
    Feb 5, 2014 at 10:12
  • @nitish, thanks for asking. I just tested now, and yes, it works. If I run it from the command line, it asks for my administrative password, and then when I enter that, it executes.
    – Questioner
    Feb 6, 2014 at 2:50
  • what is the output of ls /sys/class/backlight/
    – rɑːdʒɑ
    Feb 8, 2014 at 5:43
  • The fact that xbacklight is not working when put in /etc/rc.local seems easy to explain... The X server has not started yet when the system executes this file. On the other hand, it is really strange that it is not working in your startup session option...
    – Rmano
    Feb 8, 2014 at 5:57
  • 3
    How about when you put them in your .bashrc file in your home directory?
    – Parto
    Feb 8, 2014 at 5:58

5 Answers 5


xbacklight solution

1) Create an executable script file e.g. /home/YOU/.bin/lower-brightness like this:

xbacklight -set 7 &

2) Create a .desktop file e.g. /home/YOU/.config/autostart/lower-brightness.desktop like this:

[Desktop Entry]
Name=Lower Screen Brightness
Comment=Screen brightness is set to 7 at startup

To have the display settings as you want you can add this line in /etc/rc.local

echo 7 > /sys/class/backlight/intel_backlight/brightness

Then it can keep your brightness as 7.

hope that helps a bit.

  • Thank you for responding, but you seem to have missed the point of the question. It's not that I don't have the right commands, it's that the commands are not executing.
    – Questioner
    Feb 9, 2014 at 4:54
  • Have you tried my solution?
    – rɑːdʒɑ
    Feb 9, 2014 at 5:58
  • Yes, I tried your suggestion. Unfortunately, it had no different effect than any of the others offered. It may be due to a new dimension to the problem, which is one of competing commands. I have opened a new question to address this.
    – Questioner
    Feb 9, 2014 at 8:40

I'm sure, my solution should help you if you use ubuntu with lightdm.

I was searching for turning on NumPad on my laptop when it starts and in lightdm documentation I found this:

# display-setup-script = Script to run when starting a greeter session (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)

And that is solution. You need to create file in /usr/bin/, say /usr/bin/backlight and write commands there.

xbacklight -set 7
echo 0 | sudo tee /sys/class/leds/asus::kbd_backlight/brightness
exit 0

(Also xbacklight doesn't work for me. echo 7 > /sys/class/backlight/intel_backlight/brightness does the stuff). Than make sure you add execute permission for this file with chmod a+x /usr/bin/backlight.

Than you need to edit /etc/lightdm/lightdm.conf and write for example this line:


And that's it. Now restart you PC.


Create your own init script to adjust the brightness levels.

echo '#!/bin/sh 
sleep 60
echo 0 | tee /sys/class/leds/asus::kbd_backlight/brightness
xbacklight -set 7
exit 0' > /tmp/myinit
sudo mv /tmp/myinit /etc/init.d/myinit
sudo chmod +x /etc/init.d/myinit
sudo update-rc.d myinit defaults  

Adjust the sleep value to your suit.

  • The line sudo chmod x /etc/init.d/myinit needs to be sudo chmod -x /etc/init.d/myinit.
    – Questioner
    Feb 11, 2014 at 2:57
  • Please fix it for me, @Dave M G
    – totti
    Feb 12, 2014 at 11:51
  • Does it work for you ?. Use +x
    – totti
    Feb 15, 2014 at 6:39
  • Unfortunately, no. I've managed to get my screen brightness to dim using a different system setting. But I still can't get my keyboard to be off when I start the computer.
    – Questioner
    Feb 15, 2014 at 6:51
  • Add commands to rc.local and do sudo update-rc.d rc.local defaults. Use sleep xx at beginning if necessary.
    – totti
    Feb 15, 2014 at 8:12

I wonder why no one has suggested using update-rc.d. I would not put the script into /etc/rc.local manually. I would recommend this way to make programs run at startup:

sudo cp lower-brightness.sh /etc/init.d/
sudo chmod +x /etc/init.d/lower-brightness.sh 
sudo update-rc.d lower-brightness.sh defaults 

This will make sure the script is linked to appropriate run levels.

  • Thank you for this suggestion. When I tried your solution, after logging in it seemed like my desired settings had applied. Unfortunately, though, as soon as I moved my pointer by using the laptop's touchpad, the screen brightness changed and the keyboard light came on again. I am extremely perplexed by this.
    – Questioner
    Feb 15, 2014 at 6:05
  • That means your setting xbacklight -set 7 is not maintained after boot. Try changing to this xbacklight -set 7 & in your statup script to have the command run in background. Feb 17, 2014 at 13:05
  • I added the & as you suggested, but that didn't change anything. I also tried removing the xbacklight command entirely so as to just get the keyboard to work, but when I did that, the keyboard light never shuts off at all.
    – Questioner
    Feb 18, 2014 at 7:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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