| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- # -*- coding: utf-8 -*-
- # ließ und schreibt RGB Daten für die farbige Tastaturbeleuchtung auf Clevo NL51 Laptops
- # Notwendigerweise müssen die Treiber von NovaCustom oder Tuxedo kompiliert und geladen sein
- # siehe: https://wiki.siningsoft.de/doku.php?id=terra:1500p
- # Kernelmodul: tuxedo_keyboard
- # 2026-02-02 - devnull - initial
- # 2026-02-03 - devnull - added Brightness restore
- ver="0.1"
- import os
- import sys
- import argparse
- sysfs_color_fp = '/sys/devices/platform/tuxedo_keyboard/leds/rgb:kbd_backlight/multi_intensity'
- sysfs_bri_fp = '/sys/devices/platform/tuxedo_keyboard/leds/rgb:kbd_backlight/brightness'
- keep_color_fp = '/var/lib/kbdLED.state'
- keep_bri_fp = '/var/lib/kbdBRI.state'
- led_color = []
- # ließt die zwischengespeicherte Werte vom Dateisystem
- def get_Color_Keep(kfp):
- if os.access(kfp, os.R_OK):
- try:
- with open(kfp) as fh:
- return fh.read()
- except Exception as ex:
- print("- fehler beim Öffnen der Status Datei")
- else:
- print("- kann Datei " + kfp + " nicht zum lesen öffnen, wird später geschrieben")
- return "255 255 255"
- #schreibe die Haltewerte
- def set_Color_Keep(color, kfp):
- try:
- kfh = open(kfp, 'w')
- kfh.write(color)
- kfh.close()
- except:
- print("- Fehler beim Schreiben der Persistenzwerte")
- # ließt die aktuellen Werte der Tastaturbeleuchtung
- def get_Color_LED(afp):
- if os.access(afp, os.R_OK):
- try:
- with open(afp) as fh:
- return fh.read()
- except Exception as ex:
- print("- fehler beim Öffnen der Sysfs Datei " + afp)
- print("- Kernel Modul tuxedo_keybaord geladen ?")
- print(ex)
- sys.exit(1)
- else:
- print("- kann Datei " + afp + " nicht zum lesen öffnen, falsche Rechte ?")
- sys.exit(1)
- # schreibe die Haltewerte
- def set_Color_LED(color, afp):
- try:
- afh = open(afp, 'w')
- afh.write(color)
- afh.close()
- except:
- print("- Fehler beim Schreiben der Ist-Werte")
- # ließt die zwischengespeicherte Werte vom Dateisystem
- def get_Brig_Keep(kfp):
- if os.access(kfp, os.R_OK):
- try:
- with open(kfp) as fh:
- return fh.read()
- except Exception as ex:
- print("- fehler beim Öffnen der Status Datei")
- else:
- print("- kann Datei " + kfp + " nicht zum lesen öffnen, wird später geschrieben")
- return "255"
- #schreibe die Haltewerte
- def set_Brig_Keep(color, kfp):
- try:
- kfh = open(kfp, 'w')
- kfh.write(color)
- kfh.close()
- except:
- print("- Fehler beim Schreiben der Persistenzwerte")
- # ließt die aktuellen Werte der Tastaturbeleuchtung
- def get_Brig_LED(afp):
- if os.access(afp, os.R_OK):
- try:
- with open(afp) as fh:
- return fh.read()
- except Exception as ex:
- print("- fehler beim Öffnen der Sysfs Datei " + afp)
- print("- Kernel Modul tuxedo_keybaord geladen ?")
- print(ex)
- sys.exit(1)
- else:
- print("- kann Datei " + afp + " nicht zum lesen öffnen, falsche Rechte ?")
- sys.exit(1)
- # schreibe die Haltewerte
- def set_Brig_LED(color, afp):
- try:
- afh = open(afp, 'w')
- afh.write(color)
- afh.close()
- except:
- print("- Fehler beim Schreiben der Ist-Werte")
- # teilt den Eingabestring in die drei Farben
- def splitColor(color:str):
- color_array = color.split(' ')
- led_R = color_array[0]
- led_G = color_array[1]
- led_B = color_array[2]
- # Press the green button in the gutter to run the script.
- if __name__ == '__main__':
- parser = argparse.ArgumentParser(
- prog='T1500_KeyboardLED',
- description='saves and restore LED Colors',
- epilog='GPL')
- startstop = parser.add_mutually_exclusive_group()
- startstop.add_argument('--start', action='store_true', help='will be used for system starts')
- startstop.add_argument('--stop', action='store_true', help='will be used for system shutdowns')
- startstop.add_argument('--version', action='version', version='%(prog)s ' + ver, default='d')
- args = parser.parse_args()
- if args.start:
- print("Startup set Keyboard Color and Brightness")
- set_Color_LED(get_Brig_Keep(keep_color_fp), sysfs_color_fp)
- set_Brig_LED(get_Brig_Keep(keep_bri_fp), sysfs_bri_fp)
- elif args.stop:
- print("Shutdown save Keyboard Color Brightness")
- set_Color_Keep(get_Brig_LED(sysfs_color_fp), keep_color_fp)
- set_Brig_Keep(get_Brig_LED(sysfs_bri_fp), keep_bri_fp)
- sys.exit(0)
|