Libg15

The libg15 library gives applications low-level access to the G15 and G11 keyboards and the Z10 speakers.  G15Daemon requires it to be installed.  It uses libusb for access to the usb bus.


G15Daemon

The G15daemon is a userspace driver/multiplexer for the keyboard and its LCD, using libg15 for low-level keyboard control.  Some of the features of g15daemon are:


  1. Allows all extra G15 keys to be used in applications.

  2. It allows for multiple simultaneous LCD clients.

  3. Virtualises the LCD, the user can select which application is displayed with a simple keypress.

  4. Clients talk to the daemon via a simple protocol.

  5. Client applications have full control over LCD backlight and contrast.

  6. Perl and Python bindings are available in the archive. 

  7. Lcdproc 5.1 contains a driver to talk to the daemon.

  8. A patch is available in the archive for version 1.3 of libgraphlcd, which allows any application using graphlcd to now use the keyboard's LCD via the daemon.  [The SVN version of graphlcd now includes the driver this patch provided].

  9. Shell scripts can talk to the daemon via g15composer.

  10. G15daemon now has Mac OS X support. Check out the download section for some binary files. A Mac OS X howto is also available (Thanks to Fabrizio Sestito). 



G15Composer & libG15Render

G15composer is a scriptable command interface to the libg15render drawing functions that outputs to a G15daemon screen. G15composer exposes all graphics primitives and text rendering functions of libg15render so that they may be used in a variety of situations, including from the command line or in virtually any scripting language.  As a G15Daemon client, it requires that the daemon is installed and running.  libg15render is a small graphics library optimised for displaying on an LCD display. It currently offers the following:


  1. Truetype font support.

  2. A number of graphics primitives:

  3. Rectangles

  4. Circles

  5. Lines

  6. Percentage bar

  7. Bitmap & Truetype fonts


Programming reference information for libg15render is available here.


g15lcd

G15lcd was the original standalone utility that provided access to the keyboard's LCD and use of the extra keys.  The new utilities dont need it installed in order to work, and their functionality is greater, so it's prefered that you use them. Version 1.2 of g15lcd is still available for download at the g15tools project page.


G15 (M, L, and G) Keys

The keyboard will be detected by the kernel as two different usb devices. One is the normal keyboard and the other one is a special controller with the LCD and the special G keys.  By default, the G keys have the same scancodes as the 'F' (and other) keys, which reduces their usefulness a great deal without some massaging.  The keypresses are interpreted by G15daemon which changes the scan codes to unused keys, and sent back to the kernel via the UINPUT device driver.  Applications can then use the new keys just like any others.


You need to compile your kernel with uinput support

Device Drivers -> Input Device ... -> Miscellaneous devices -> User level driver support.


Make sure you have this one LOADED and also that the device exists

crw-r--r-- 1 root root 10, 223 Jan 15 20:44 /dev/input/uinput

 

The G15Tools: