Ver código fonte

funktionierende Version

Chris Hoelzel 1 mês atrás
pai
commit
7abb058476
1 arquivos alterados com 157 adições e 0 exclusões
  1. 157 0
      main.py

+ 157 - 0
main.py

@@ -0,0 +1,157 @@
+# -*- 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)