27

Some Lenovo laptops have keyboard backlights, and they can be turned on using Fn + Space. There are three states: off, normal and bright.

When I start Ubuntu, these laptops always default back to a burning sun screen brightness and the keyboard lights off.

I want a medium brightness and keyboard lights on by default, because I usually use this laptop in dark environments.

The backlight is easy. Internet is filled with information about this.
echo 10 > /sys/class/backlight/acpi_video0/brightness

But how do I turn on the keyboard backlights with a command? I've been looking here but it seems to do nothing:
/sys/class/leds/tpacpi\:\:thinklight


Updates

I tried for i in {1..32}; do xset led $i; done but nothing changes. Perhaps the keyboard backlight for Lenovo laptops has a proprietary driver and can only be controlled through tpacpi?

Also tried for i in $(find /sys/devices/platform/thinkpad_acpi/leds/ | grep /brightness\); do echo 255 > $i; done of no avail.

Redsandro
  • 3,764

5 Answers5

19

This is really needed to be fixed!

I think this is a common bug in new thinkpads. If you light keyboard manually fn + space then executed:

echo 0 > /sys/class/leds/tpacpi\:\:thinklight/brightness

keyboard will fade out. Please see the following link if it helps:

http://www.spinics.net/lists/ibm-acpi-devel/msg03090.html

rashad
  • 391
11

Looks as this has been updated, my X1C with ubuntuMATE 16.04 LTS has

/sys/class/leds/tpacpi\:\:kbd_backlight/brightness

which works as expected ie:

# echo 2 > /sys/class/leds/tpacpi\:\:kbd_backlight/brightness

Brings it to full light :)

wuxmedia
  • 226
5

This is the bash script I use:

https://gist.github.com/vzaliva/0adba7bc40e2f31a0b5f802af2a63267

Works on IBM ThinkPad X260 with Ubuntu 16.04.

krokodil
  • 253
3

Ok, it works fine with me with this gist:

https://gist.github.com/hadess/6847281

  • First of all download the gist above, I renamed it to ThinkLight.c instead of tmp.c.
  • Make sure you have glib-2.0 installed:

    sudo apt-get install libglib2.0-dev
    
  • Compile ThinkLight.c as the following:

    gcc -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include ThinkLight.c -o ThinkLight -lglib-2.0
    
  • Load ec_sys module ( this can be added to /etc/modules on boot ):

    sudo modprobe ec_sys
    
  • Finally execute ThinkLight with level argument (0, 1, or 2):

     sudo ./ThinkLight 0
     sudo ./ThinkLight 1
     sudo ./ThinkLight 2
    

Special thanks to hadess for making this happen!

rashad
  • 391
1

My T450s would not re-enable keyboard backlight upon resume with kernels older then 4.6. FWIW, with 4.6 now, keyboard backlight is set to the brightness it had before suspend.

bk138
  • 320