Dann prüfe mal, ob TeamSpeak in der API eine entsprechende Möglichkeit bietet. Ein DBusSignal, Statusnachricht oder ähnliches, auf das du reagieren kannst. Ich kann dir zu TS wenig sagen, weil ich das seit ungefähr 20 Jahren nicht mehr benutzt habe 😉 Eine kurze Suche brachte bspw. ein Lua-Backend hervor: https://forum.teamspeak.com/threads/137492-Serial-signal-when-audio-present
Wenn du das Event irgendwie „greifen“ kannst, brauchst du dennoch die Information des seriellen Anschlusses. USB dürfte dann /dev/ttyUSB0 sein (Zahl variierend), Gruppe dialout Siehe Benutzer und Gruppen, um den Benutzer in die nötige Gruppe zu packen. Du könntest auch über UDEV eine Regel erstellen, die speziell dein USB-Gerät mit anderen Zugriffsrechten ausstattet, also bspw. die Gruppe deines Nutzers verwendet.
Je nach Gerät kann aber auch eine Firmware nötig sein. Dazu fehlen aber Informationen. Kurzübersicht gibt es mit lsusb, eine genauere Information kannst du aus /proc/bus/input/devices entnehmen.
Mal ein fake-Beispiel, da ich gerade nichts passendes habe ohne mich Bewegen zu müssen 😀
I: Bus=0003 Vendor=abcd Product=efef Version=0001
N: Name="Mein USB-Gerät"
P: Phys=usb-0000:00:14.0-6/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6:1.2/input/input39
U: Uniq=
H: Handlers=kbd event27
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0
Ein Button hilft gerade nicht weiter, ist aber in dem Fall irrelevant, ich brauchte nur was aus dem USB-Bereich. Du siehst unter Sysfs den Pfad in der Kernelstruktur. Das ist das Verzeichnis, in dem die relevanten Daten liegen und die — je nach Gerät — auch eine direkte Kommunikation ermöglichen.
Mangels passendem einfachen Beispiel, wechsle ich an der Stelle mal zum Keyboard-Backlight, welches nur drei Zustände kennt und bei mir im Pfad /sys/class/leds/ liegt:
me@delly[~]›ls -lha /sys/class/leds/dell\:\:kbd_backlight/
insgesamt 0
drwxr-xr-x 3 root root 0 28. May 09:29 .
drwxr-xr-x 3 root root 0 28. May 09:29 ..
lrwxrwxrwx 1 root root 0 28. May 11:29 device -> ../../../dell-laptop
drwxr-xr-x 2 root root 0 28. May 11:28 power
lrwxrwxrwx 1 root root 0 28. May 09:29 subsystem -> ../../../../../class/leds
-rw-r--r-- 1 root root 4.0K 28. May 09:29 brightness
-r--r--r-- 1 root root 4.0K 28. May 09:29 brightness_hw_changed
-r--r--r-- 1 root root 4.0K 28. May 09:29 max_brightness
-rw-r--r-- 1 root root 4.0K 28. May 11:29 start_triggers
-rw-r--r-- 1 root root 4.0K 28. May 11:29 stop_timeout
-rw-r--r-- 1 root root 0 28. May 11:29 trigger
-rw-r--r-- 1 root root 4.0K 28. May 09:29 uevent
me@delly[~]›
In der Datei liegt die Information zur aktuellen Helligkeit. Diese kann ich jetzt (als root) direkt ändern:
| root@delly[~]› echo 2 > /sys/class/leds/dell\:\:kbd_backlight/brightness # hohe Helligkeit
root@delly[~]› echo 0 > /sys/class/leds/dell\:\:kbd_backlight/brightness # aus
root@delly[~]› echo 1 > /sys/class/leds/dell\:\:kbd_backlight/brightness # geringe Helligkeit
|
Natürlich kann auch der Nutzer die Helligkeit der Tastaturbeleuchtung ändern. Das funktioniert über das PolicyKit. So direkt ging es in dem Beispiel aber nur mit root.
Du brauchst nun also ein Event des TS-Servers, auf welches du reagieren kannst, die entsprechende Datei in der du Umstellen kannst und die passende Berechtigung. Klingt einfach, die Suche kann aber bisweilen mühsam sein.