Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
1  
Does manually executing this script work? –  hatter Feb 5 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. –  Dave M G Feb 6 at 2:50
    
what is the output of ls /sys/class/backlight/ –  raaz Feb 8 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 at 5:57
3  
How about when you put them in your .bashrc file in your home directory? –  Parto Feb 8 at 5:58
show 12 more comments

5 Answers

xbacklight solution

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

#!/bin/sh
xbacklight -set 7 &

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

[Desktop Entry]
Type=Application
Exec=/home/YOU/.bin/lower-brightness
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Lower Screen Brightness
Comment=Screen brightness is set to 7 at startup
Icon=display
share|improve this answer
add comment

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.

share|improve this answer
    
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. –  Dave M G Feb 9 at 4:54
    
Have you tried my solution? –  raaz Feb 9 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. –  Dave M G Feb 9 at 8:40
add comment

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.

#!/bin/bash
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:

session-setup-script=/usr/bin/backlight

And that's it. Now restart you PC.

share|improve this answer
add comment

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.

share|improve this answer
    
The line sudo chmod x /etc/init.d/myinit needs to be sudo chmod -x /etc/init.d/myinit. –  Dave M G Feb 11 at 2:57
    
Please fix it for me, @Dave M G –  totti Feb 12 at 11:51
    
Does it work for you ?. Use +x –  totti Feb 15 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. –  Dave M G Feb 15 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 at 8:12
add comment

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.

share|improve this answer
    
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. –  Dave M G Feb 15 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. –  biocyberman Feb 17 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. –  Dave M G Feb 18 at 7:55
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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