en de
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
Precompiled:

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