| visitors | |
| today: | 23 |
| total: | 17536 |
g19 DBus Daemon
Beim g19 DBus Daemon oder g19dd, handelt es sich um einen DBus Service,
der zwischen libg19
(User-Space g19-Treiber) und Anwendungen agiert, um Applets zu erstellen,
Sondertasten auszulesen und das Tasten-Backlight zu setzen.
Es ist noch ein "dirty" Work-in-Progress-Projekt, ist aber im Prinzip verwendbar. Der ursprüngliche Name g19d (ohne DBus) wurde fallen gelassen, da es auch andere g19-Daemon-Projekte gibt, die aber nicht auf DBus aufsetzen.
Details
- Der DBus "Namespace" ist at.flausch.g19.
- Für das Lesen und Schreiben von Werten (z.B. Backlight) werden DBus-Aufrufe verwendet.
- Für das Registrieren und Löschen von Applets werden ebenfalls DBus-Aufrufe verwendet.
- Für den Zugriff auf Pixel-Daten wird eine SHM memory map verwendet.
Das DBUs-Interface ist mehr oder weniger in der beiliegenen dbus-interface.xml (siehe g19dd-src.tar.bz2) dokumentiert. Sachen ausprobieren kann man auch z.B. mit d-feet.
Abhängigkeiten
- ein C++ Compiler
- libg19
- DBus
- libglib-2.0
- libdbus-glib-1
sudo apt-get install libglib2.0 libdbus-glib-1-2
Build:sudo apt-get install libglib2.0-dev libdbus-glib-1-dev
Applets
am einfachsten lassen sich Applets mit Hilfe von Python und PIL erstellen, da der DBus-Zugriff sehr einfach ist und PIL die nötige Performance bietet.
sudo apt-get install python-dbus python-imaging
Zu beachten ist auch, dass der Bild-Speicher von der g19 nicht nach Zeilen und Spalten angeordnet ist, sondern nach Spalten und dann Zeilen. D.h. das Applet muss zuerst um 90° gedreht und dann horizontal gespiegelt werden.
Für ein Beispiel, siehe g19music.py. Achtung: der Screenshot ist von der aktuellen Version, die noch nicht veröffentlich wurde - ich bitte um ein wenig Geduld.
g19gui
ist ein Python-Programm um mit dem g19dd zu kommunizieren. Zzt. wird eigentlich nur das Tasten-Backlight unterstützt.
Build
tar xjvf g19dd-src.tar.bz2 cd g19dd make CONF=Release # OR g++ -o g19dd -O3 -lg19 -lglib-2.0 -ldbus-glib-1 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/dbus-1.0 color.cpp main.cpp
Installation
# libg19: make all ; sudo make install # g19dd: copy the built binary (see above: "Build") sudo cp .../g19dd /usr/bin/ # allow dbus access tar xjvf g19dd-service-conf.tar.bz2 sudo cp g19dd-service-conf/g19.conf /etc/dbus-1/system.d/ # startup script (tested on ubuntu) tar xjvf g19dd-startup-script.tar.bz2 sudo cp g19dd-startup-script/g19dd /etc/init.d/ # enable autostart (tested on ubuntu) sudo update-rc.d g19dd defaults # reload dbus sudo /etc/init.d/dbus reload # or sudo service dbus reload # or whatever your distribution uses # start g19dd sudo /etc/init.d/g19dd start
Bugs
- Der eingestellte Tasten-Backlight-Farbwert entspricht offensichtlich dem PWM-Signal der LEDs, jedoch leuchten nicht alle Farben gleich hell. 0xFFFFFF ist also nicht weiß, sondern hat einen Rotstich - bei mir zumindestens.
Downloads
- g19dd-src.tar.bz2 (Source Code / Netbeans working directory)
- g19dd-startup-script.tar.bz2 (Init Script)
- g19dd-service-conf.tar.bz2 (DBus service conf file)
- g19music.tar.bz2 (Music-Applet, zzt. wird nur Exaile unterstützt)
- g19gui.tar.bz2 (ein pyGTK-(GUI-)Programm um sonstige Features zu nutzen)

