Fortunately, this keyboard is fairly well supported under Linux. There are tools capable of handling the macro keys, or interaction wit the LCD panel. This page documents how the keyboard attached to River was configured.
Lineakd (http://lineak.sourceforge.net/) is a daemon which runs under X and executes arbitrary scripts when specified keys are pressed. It does not come with definitions for the G15 keyboard, however this is easily added.
Install lineakd emerge lineakd -av
Append the following to the keyboard definitons file: /etc/lineakkb.def|<code>0@@</code>
Next, create a config file in your home directory: ~/.lineakd.conf|<code>1@@</code>
Finally, make lineakd start up with your X session. For KDE, create the following file:
~/.kde4/Autostart/lineakd|<code>2@@</code>
Either quit the running KDE session and log back in again, or run this shell script by hand for the changes to take effect.
Install the G15 tools to gain control over the LCD panel. We will also use LCDproc, lcd4linux and lcd-stuff, which will provide mail, rss and mpd now playing screens for the LCD panel.
The MR key is used to toggle between g15daemon's clients, of which LCDproc is one. The G1 key is used to access LCDproc's menu, and so cannot be used for macros. The round button on the panel is used to toggle rotation between LCDproc clients. the four black buttons on the panel control the active client.
Emerge these packages with the following useflags: app-misc/g15daemon USE=“perl python” app-misc/lcd4linux USE=“iconv mpd mysql python” LCD_DEVICES=“g15” app-misc/g15composer USE=“truetype” app-misc/lcd-stuff USE=“imap mpd rss xml”
The g15 daemon does all the talking to the keyboard, which exposes itself as numerous event devices in /dev/input/, and re-exposes it via the user-space device /dev/input/uinput.
/etc/conf.d/g15daemon|<code>3@@</code>
Add the g15daemon to the default runlevel, and start it immediately. rc-update add g15daemon default /etc/init.d/g15daemon start