Dev-Thoughts: Background information on the new keyboard lighting control - TUXEDO Computers

  • Notebooks
    • Notebooks/Laptops with preinstalled and configured Linux and more. TUXEDO Computers are individually built computers and PCs being fully Linux-suitable, custom tailored Linux hardware so to say. We deliver all TUXEDOs ready to go so you only ha...
    • 10-14 inch
    • 15-16 inch
    • 17 inch
    • Immediate shipping
    • Business notebooks
    • Gaming-Notebooks
    • Mobility notebooks
    • Deep Learning AI
    • All Notebooks
  • Computers / PCs
    • Computers / PCs with Linux preinstalled & more TUXEDO Computers are individually built computers and PCs being fully Linux-suitable, custom tailored Linux hardware so to say :) We deliver all TUXEDOs ready to go so you only have to unwrap,...
    • Mini Systems
    • Midi Systems
    • Maxi Systems
    • AMD Systems
    • Intel Systems
    • All Systems
  • Accessories
    • Here you will find accessories, components and peripherals for your TUXEDO system. Nothing suitable found here? Get in touch with us directly!
    • Batteries
    • Displays
    • Dockingstations
    • Books
    • Input Devices & Peripherals
    • Bags & Sleeves
    • Fan Merchandise
    • Notebook Power Supplies & Cords
    • Components & Complements
      • Cables
      • Drives
      • Hard Disk Drives 2.5"
      • Memory
      • PC Power Supplies
      • SSDs 2.5"
      • SSDs m.2 (SATAIII and NVMe)
      • WiFi, LAN & Mobile Network
      • Licenses
  • B2B
    • In this category you can find equipment for your company, office, school, university or educational institution and servers and solutions. Appliances with CRM, ERP and merchandise management, cloud storage, cloud server for self-hosting, services...
    • Business notebooks
    • Business computers
  • Novelties
  •  
    • Notebooks
      • 10-14 inch
      • 15-16 inch
      • 17 inch
      • Immediate shipping
      • Business notebooks
      • Gaming-Notebooks
      • Mobility notebooks
      • Deep Learning AI
      • All Notebooks
    • Computers / PCs
      • Mini Systems
      • Midi Systems
      • Maxi Systems
      • AMD Systems
      • Intel Systems
      • All Systems
    • Accessories
      • Batteries
      • Displays
      • Dockingstations
      • Books
      • Input Devices & Peripherals
      • Bags & Sleeves
      • Fan Merchandise
      • Notebook Power Supplies & Cords
      • Components & Complements
        • Cables
        • Drives
        • Hard Disk Drives 2.5"
        • Memory
          • DDR4 DIMM
          • DDR4 SO-DIMM
          • DDR5 DIMM
          • DDR5 SO-DIMM
        • PC Power Supplies
        • SSDs 2.5"
        • SSDs m.2 (SATAIII and NVMe)
        • WiFi, LAN & Mobile Network
        • Licenses
    • B2B
      • Business notebooks
      • Business computers
    • Novelties
  • Settings

  • Deutsch
  • English

  • Customer Account

  • Log in
  ATTENTION: To use our store you have to activate JavaScript and deactivate script blockers!  
Thank you for your understanding!

Dev-Thoughts: Background information on the new keyboard lighting control

Hi, Werner here.

Last year I wrote about Mainlining and the TUXEDO kernel here in our TUXEDO blog, but then never got to the third part of the article series: Ubuntu installation via WebFAI vs. an ISO from ubuntu.com. So with kudos to all who waited for it… Sorry, not today xD. But with good reasons, there was a lot to do and one of them was the complete the rewrite of our keyboard backlight drivers.

Depending on the TUXEDO model, the keyboard lighting built into the device can be dimmed or set to different colors.
Depending on the TUXEDO model, the keyboard lighting built into the device can be dimmed or set to different colors.

Many APIs, many standards

I want to go into a little bit of the technical background of why the driver behaves the way it does and start with the realities: Across the devices we’ve sold over the last few years, we’re dealing with a total of seven different keyboard lighting firmware APIs in different versions, spread across four Linux kernel modules we’ve written.

Besides the obvious differences, of for example single-color, multi-zone or even per key individually adjustable RGB lighting, there are also less obvious differences in certain keyboard models, such as brightness adjustable in 3, 5, 10 or 256 steps.

In the past, these four modules “historically” had no sysfs interface at all or each had a completely separate sysfs interface to control the lighting from within the Linux operating system. This was the reason for the rewrite: If we have a unified GUI, the backend API should also be unified at some point.

Via the current version of the TUXEDO Control Center you can control the LED illumination of the keyboard with a mouse click.
Via the current version of the TUXEDO Control Center you can control the LED illumination of the keyboard with a mouse click.

Uniform interfaces necessary

Standards, we need more standards! (Source: xkcd, License: CC BY-NC 2.5)
Standards, we need more standards! (Source: xkcd, License: CC BY-NC 2.5)

To resolve this complex situation, we decided to use what is already standardized in the kernel: /sys/class/leds. For the old sysfs entries, we had to make a radical cut and delete them from the driver.

The most important in a nutshell

For our keyboards, there is now a white:kbd_backlight entry and one or more rgb:kbd_backlight entries under /sys/class/leds. Each of them has the attributes brightness (readable and writable) for the current and max_brightness (read-only) for the maximum brightness level.

If there are multiple rgb:kbd_backlight entries (e.g. for the per-key RGB keyboards), the brightness attribute is currently still kept in sync across all entries. This is not quite in specification for the interface, but a workaround for KDE Plasma – if you change the keyboard brightness via the Plasma power settings, only one value is currently rewritten.

Under /sys/class/leds you will find the entries for the configuration of the keyboard illumination. You can use the entries for your own scripts and tools.
Under /sys/class/leds you will find the entries for the configuration of the keyboard illumination. You can use the entries for your own scripts and tools.

For rgb:kbd_backlight entries, we have additionally introduced the multi_intensity attribute, which takes three space-separated integers between 0 and 255 to set the RGB value of the respective keyboard zone or key. On the TUXEDO Aura 15 Gen2, for example, the command…

echo 255 0 0 | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity

…sets the color of the keyboard leds to red. Accordingly the command…

echo 0 255 0 | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity

…turns all leds green and…

echo 0 0 255 | sudo tee /sys/class/leds/rgb:kbd_backlight/multi_intensity

…finally into a blue landscape.

On per-key keyboards, the numbering of the rgb:kbd_backlight entries goes from top left to bottom right or from bottom left to top right, depending on the model, and there are more entries than there are actual keys.

This is partly because some keys have multiple LEDs (such as the Enter key), and partly because the LED controller keeps a few placeholders free for other current or future keyboard layouts, which are not associated with any LED at all on our models.

However, since the driver cannot know which ones these are, it cannot filter them out. In the future, this mapping will probably happen model-specifically at the level of the TUXEDO Control Center.

Questions for the developers

Before the update I could switch through three brightness levels with FN+Spacebar, now only through two?

This is because before the update, the behavior of the FN+Spacebar shortcut was implemented directly by the firmware or driver. Now, the behavior of the “toggle keyboard illumination” shortcut is implemented by the respective desktop environment. KDE Plasma and Gnome, for example, only toggle it on and off, so there are now only two levels.

Shortcuts like FN+Spacebar or FN+× (the multiplication sign on the numeric keypad) don’t work at all anymore?

Some desktop environments do not implement the “Toggle keyboard backlight” shortcut at all. Here, an extra configuration or script may be necessary.

My script or tool that I used until now to change the keyboard illumination does not work anymore?

This is to be expected, since – as described above – we have implemented a completely new interface and removed the old one. The script or tool must be rewritten to the new interface.

The TUXEDO Control Center says that my keyboard is not supported (yet)

This can have two causes: The device is still running on an Ubuntu 20.04 base and thus still has the tuxedo-keyboard driver version 3.1.x installed instead of the required 3.2.0 (or newer). We deliberately did not include the 3.2.0 driver in the 20.04 package sources, since these systems could theoretically still run on the Linux kernel 5.4, which is not compatible with the new driver.

If you only have the Linux kernel 5.15 installed, you can manually install the newer package from our repository. However, for anyone who generally values the latest features, I recommend upgrading to a 22.04-based Ubuntu or the current 22.04-based Tuxedo OS. The 20.04-based systems will still receive security updates until 2025, but increasingly no new features.

The second cause could be that the firmware of the device does not offer the possibility to control the lighting through the operating system or it has an API that only occurs on this one older model. In this case, I can’t promise that the GUI control will be added (in a timely manner), but the keyboard shortcuts will continue to work as usual.

The Windows Control Center has more setting options than the TUXEDO Control Center for my device?

We are working on adding all functions and a few more. We are just at the beginning of the TUXEDO Control Center 2.

I noticed bug XY.

As part of our development, we test a lot, but with a rewrite like this, you always miss something. Don’t worry, we collect all the bugs that are reported to us on Github and see that we fix them in a timely manner.

  • tuxedo-keyboard on github
  • tuxedo-control-center on Github

The important thing is: Which device in which configuration is it? Which distribution in which version? Which kernel in which version? Which desktop environment in which version? Which version of the kernel modules tuxedo-control-center, tuxedo-keyboard and tuxedo-keyboard-ite is installed? Which versions of BIOS and EC firmware?

With this information, we can take the corresponding device from the archive shelf and try to recreate the bug, which is usually the first step in bug fixing.

Many greetings from the TUXEDO Tower in Augsburg!

Service & Support

Welcome to TUXEDO Support - how can we help you?

Linux at TUXEDO

Are you wondering if Linux is right for you? Our team will be happy to answer your questions and explain details about the free operating system at TUXEDO.
Let the advantages and services convince you!

Hardware

Notebook, PC, both - and which model? Our technical service team also provides advice on selection, equipment and puts together suitable offers for your technical requirements.

Questions and Answers

Frequently asked questions and the corresponding answers can be found here. If you cannot find a solution to your problem here, it is also worth taking a look at the instructions section.


Find out more

Instructions and Tips

Most situations can be solved quickly and easily by yourself. This saves you time and you can use your device directly again. We provide you with instructions, first steps and short tips for all TUXEDO models.


Find out more

System Recovery

Even in the case of a case, you don't have to rely on us: Your device can be reset to the factory settings - completely automatically! Everything is included with your order and you can get started right away.


Find out more

Technical Service

Our competent technicians are also happy to help with service requests. You have different possibilities to contact us. We are personally there for you Monday to Friday from 9 am to 1 pm and from 2 pm to 5 pm. But also outside these times, you can contact our team with your request by e-mail.
An extra function is available in your customer account for repair requests (RMA).

 

Contact

We are personally there for you Monday to Friday from 9 am to 1 pm and from 2 pm to 5 pm (German time). But also outside these times you can contact our team with your request by e-mail. Please include your customer number, the model name of your laptop or PC and as detailed a description of your request as possible. The more details you give us, the faster we can process your request!

We might not be able to answer questions about third party hardware or software. For questions about popular open source software (Thunderbird, Filezilla...) please contact a forum e.g. ubuntuforums.org. The research effort for application specific setup is immense and not manageable at the current time. Basic compatibility questions e.g. are of course still welcome!

An extra function is available in your customer account for repair requests (RMA).

 

Image of Tux

Linux compatible
image of 5 years warranty badge

Up to 5 Years Warranty
stylized image of a Rocket

Immediately ready for use
image of germany with a wrench in the center

Assembled in Germany
image of germany with a section sign in the center

German Data Privacy
stylized image of a tech support worker

German Tech Support

Guidance

  • Service & Support
  • B2B
  • Newsletter


Mo - Fr: 9-13 & 14-17h
+49 (0) 821 / 8998 2992

About TUXEDO

  • Why TUXEDO
  • TUXEDO Control Center
  • TUXEDO Tomte
  • TUXEDO WebFAI
  • TUXEDO OS
  • TUXEDO Aquaris
  • Individual logos and keyboards

Help & Support

  • Downloads & Drivers
  • System Diagnostics
  • Frequent questions (FAQ)
  • Instructions
  • Help with my device
  • Revocation right
  • Shipping costs & delivery times
  • Payment methods

News & more

  • News & Blog
  • Press
  • Newsletter
  • Event Calendar
  • Jobs & Career
  • Sponsoring

Community


Your Linux specialist since 2004

  • Accessibility
  • Privacy policy
  • Imprint
  • Battery disposal
  • Conditions of Use

Shipping costs & delivery times

We ship your order to almost all countries, in Europe mostly even free of charge! The respective shipping costs and the cost threshold above which we will cover the costs for you can be found here or for international shipping in the table below.

 


Free shipping within Germany

There are no shipping costs within Germany for goods worth €100 or more.

 

7.99 € shipping cost at max!

No matter how many small articles you order, such as USB stick card reader, LAN adapters or fan articles, with us, you pay a maximum of 7.99 € shipping costs.

  • 7.99 € shipping fee for all orders below 100 € of goods
  • Free shipping from 100 € total value of goods

You can check all occurring shipping costs or if we even deliver for free right before sending your order!

 


International delivery

Here are the shipping costs as well as the amount threshold for your order. The threshold is referring to the total amount of your order, which enables free shipping.
 

Taxes and customs outside the EU:

For orders outside the EU there might be additional duties, taxes or charges needed to be paid by the customer. These don't have to be paid to the supplier, but to local authorities. Please check for any details with your local customs or tax authorities before ordering! But as a benefit you don't have to pay German taxes, this means you save up to 19%!
Due to the Brexit and the associated changes, there may be delays of several days in customs clearance on site for deliveries to the UK. This is not within our sphere of influence, so we ask for your understanding.

 

 
⚠️   Countries to which we unfortunately cannot ship, and information on how you can still order from us, can be found here!
Country Shipping Fee Free Shipping From
Albania 99,00 EUR -
Andorra 59,00 EUR -
Belarus Temporarily no delivery possible 59,00 EUR -
Belgium 8,49 EUR 100 EUR
Bulgaria 15,99 EUR 160 EUR
Denmark 8,49 EUR 100 EUR
Estonia 15,99 EUR 160 EUR
Faroe Islands 129,00 EUR -
Finland 14,99 EUR 150 EUR
France 9,99 EUR 120 EUR
Greece 22,90 EUR -
United Kingdom 9,99 EUR 120 EUR
Hong Kong 199,00 EUR -
India 199,00 EUR -
Ireland 14,99 EUR 150 EUR
Island 129,00 EUR -
Italy 9,99 EUR 120 EUR
Japan 99,00 EUR -
Canada 99,00 EUR -
Croatia 34,90 EUR 500 EUR
Latvia 15,99 EUR 160 EUR
Lithuania 15,99 EUR 160 EUR
Luxembourg 8,49 EUR 100 EUR
Macau 199,00 EUR -
Malta 34,90 EUR 500 EUR
Macedonia 59,00 EUR -
Moldova 199,00 EUR -
Monaco 19,00 EUR -
Montenegro 99,00 EUR -
Netherlands 8,49 EUR 100 EUR
Norway 14,99 EUR 150 EUR
Austria 8,49 EUR 100 EUR
Poland 15,99 EUR 160 EUR
Portugal 14,99 EUR 150 EUR
Romania 15,99 EUR 160 EUR
San Marino 9,99 EUR 120 EUR
Sweden 14,99 EUR 150 EUR
Switzerland 13,99 EUR 150 EUR
Serbia 34,90 EUR 500 EUR
Singapore 199,00 EUR -
Slovakia 15,99 EUR 160 EUR
Slovenia 15,99 EUR 160 EUR
Spain (without Canary Islands) 14,99 EUR 150 EUR
Czech Republic 15,99 EUR 160 EUR
Ukraine Temporarily no delivery possible 129,00 EUR -
Hungary 15,99 EUR 160 EUR
USA including Hawaii 99,00 EUR -
United Arabic Emirates 199,00 EUR -
Cyprus 34,90 EUR 500 EUR
Qatar 199,00 EUR -
⚠️ Countries to which we unfortunately cannot ship, and information on how you can still order from us, can be found here!

 


Time of delivery

If not stated differently in the article's description, we deliver goods in:

  • 7-10 working days within Germany
  • 10-12 working days outside Germany

For orders paid in advance, the delivery time starts with receipt of the payment. Please keep in mind that there is no delivery on Sundays or on holidays.
For goods delivered as download, there will be no shipping fees due.
Access data for downloads are sent out via e-mail 1-3 working days after contract formation. For orders with advanced payment, we will deliver after receiving the payment. You can download the item by using the link sent to you via e-mail.

Self-pick-up of orders is not possible, unfortunately.