--- g15daemon-1.9.5.3.orig/g15daemon/utility_funcs.c +++ g15daemon-1.9.5.3/g15daemon/utility_funcs.c @@ -666,12 +666,23 @@ } int uf_screendump_pbm(unsigned char *buffer,char *filename) { + int fd; FILE *f; int x,y; #define WIDTH 40 g15canvas *canvas=g15daemon_xmalloc(sizeof(g15canvas)); memcpy(canvas->buffer,buffer,LCD_BUFSIZE); - f = fopen(filename,"w+"); + fd = open(filename, O_CREAT|O_EXCL|O_WRONLY, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH); + if(fd == -1) { + g15daemon_log(LOG_WARNING, "uf_screendump_pbm failed: open, %s.\n", strerror(errno)); + return -1; + } + f = fdopen(fd,"w"); + if(f==NULL) { + close(fd); + g15daemon_log(LOG_WARNING, "uf_screendump_pbm failed: fdopen, %s.\n", strerror(errno)); + return -1; + } fprintf(f,"P1\n160 43\n"); fprintf(f,"# G15 screendump - %s\n\n",filename); for(y=0;y<43;y++) @@ -681,7 +692,9 @@ fprintf(f,"\n"); } - fclose(f); + fclose(f); + fsync(fd); + close(fd); free(canvas); return 0; } --- g15daemon-1.9.5.3.orig/g15daemon/main.c +++ g15daemon-1.9.5.3/g15daemon/main.c @@ -96,10 +96,11 @@ displaying->backlight_state %= 3; // limit to 0-2 inclusive } if(value & G15_KEY_M1 && value & G15_KEY_M3) { +#define FILENAME_SIZE 128 static int scr_num=0; - char filename[128]; + char filename[FILENAME_SIZE]; lcd_t *displaying = lcd->masterlist->current->lcd; - sprintf(filename,"/tmp/g15daemon-sc-%i.pbm",scr_num); + snprintf(filename, FILENAME_SIZE, "/tmp/g15daemon-sc-%i.pbm",scr_num); uf_screendump_pbm(displaying->buf,filename); scr_num++; } @@ -456,7 +457,7 @@ struct passwd *nobody; unsigned char location[1024]; - openlog("g15daemon", LOG_PID, LOG_USER); + openlog("g15daemon", LOG_PID, LOG_DAEMON); if(strlen((char*)user)==0){ nobody = getpwnam("nobody"); }else { --- g15daemon-1.9.5.3.orig/Documentation/g15daemon_client_devel.3 +++ g15daemon-1.9.5.3/Documentation/g15daemon_client_devel.3 @@ -55,7 +55,7 @@ int retval = 0; int screen_fd = new_g15_screen( G15_WBMPBUF ); -... do processing and display here ... + ... do processing and display here ... retval = g15_close_screen( screen_fd ); --- g15daemon-1.9.5.3.orig/Documentation/g15daemon.1 +++ g15daemon-1.9.5.3/Documentation/g15daemon.1 @@ -37,113 +37,6 @@ If all required libraries are installed and in locations known to your operating system, the daemon will slip quietly into the background and a clock will appear on the LCD. Congratulations! The linux kernel will now output keycodes for all your extra keys. -.SH "Using the keys in X11" -Current versions of the Xorg Xserver dont have support for the extra keys that g15daemon provides. This support will be available in the next release of Xorg (7.2). - -For now, if you want access to the extra keys for hotkey support in X11, you need to run the xmodmaprc script on each start of X. This script is available in the contrib folder (if g15daemon is installed in the default location, the contrib folder is in /usr/share/doc/g15daemon\-${VERSION}/contrib - -Depending on your linux distribution, copying the xmodmaprc file (or pasting the text below) into ~/.Xmodmap may be all that's required. - -.SH "Xmodmaprc file" -Copy the following into ~/.Xmodmap (depending on your distribution) for X11 to recognise all extra G15 keys: - -\-\- cut here \-\- -.br -keycode 93 = XF86Launch1 -.br -keycode 129 = XF86Launch8 -.br -keycode 130 = XF86Launch9 -.br -keycode 131 = XF86Launch2 -.br -keycode 132 = XF86Phone -.br -keycode 133 = XF86Messenger -.br -keycode 136 = XF86LaunchD -.br -keycode 137 = XF86Support -.br -keycode 138 = XF86Word -.br -keycode 143 = XF86LaunchF -.br -keycode 144 = XF86AudioPrev -.br -keycode 150 = XF86LogOff -.br -keycode 152 = XF86Launch5 -.br -keycode 153 = XF86AudioNext -.br -keycode 160 = XF86AudioMute -.br -keycode 161 = XF86Travel -.br -keycode 162 = XF86AudioPlay -.br -keycode 163 = XF86Spell -.br -keycode 164 = XF86AudioStop -.br -keycode 170 = XF86VendorHome -.br -keycode 174 = XF86AudioLowerVolume -.br -keycode 176 = XF86AudioRaiseVolume -.br -keycode 177 = XF86Launch4 -.br -keycode 178 = XF86HomePage -.br -keycode 182 = XF86Away -.br -keycode 183 = XF86WebCam -.br -keycode 184 = XF86Launch0 -.br -keycode 188 = XF86Music -.br -keycode 190 = XF86Launch6 -.br -keycode 194 = XF86Forward -.br -keycode 195 = XF86Send -.br -keycode 205 = XF86Calendar -.br -keycode 208 = XF86Launch7 -.br -keycode 209 = XF86LaunchB -.br -keycode 210 = XF86LaunchC -.br -keycode 215 = XF86Save -.br -keycode 219 = XF86WWW -.br -keycode 220 = XF86LaunchE -.br -keycode 223 = XF86Sleep -.br -keycode 228 = XF86Pictures -.br -keycode 231 = XF86LaunchA -.br -keycode 236 = XF86Mail -.br -keycode 237 = XF86AudioMedia -.br -keycode 246 = XF86iTouch -.br -keycode 247 = XF86Launch3 -.br -keycode 249 = XF86ToDoList -.br -keycode 251 = XF86Calculater -.br -\-\- end cutting \-\- .SH "AUTHORS" The latest release of g15daemon is available at .P --- g15daemon-1.9.5.3.orig/debian/rules +++ g15daemon-1.9.5.3/debian/rules @@ -1,107 +1,28 @@ #!/usr/bin/make -f -# -*- makefile -*- -# Sample debian/rules that uses debhelper. -# This file was originally written by Joey Hess and Craig Small. -# As a special exception, when this file is copied by dh-make into a -# dh-make output file, you may use that output file without restriction. -# This special exception was added by Craig Small in version 0.37 of dh-make. - -# Uncomment this to turn on verbose mode. -#export DH_VERBOSE=1 - - -# These are used for cross-compiling and for saving the configure script -# from having to guess our platform (since we know it already) -DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) -DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) - - -CFLAGS = -Wall -g - -ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) - CFLAGS += -O0 -else - CFLAGS += -O2 -endif - -config.status: configure - dh_testdir - # Add here commands to configure the package. - CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure --host=$(DEB_HOST_GNU_TYPE) --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info - - -build: build-stamp - -build-stamp: config.status - dh_testdir - - # Add here commands to compile the package. - $(MAKE) - #docbook-to-man debian/g15daemon.sgml > g15daemon.1 - - touch build-stamp - -clean: - dh_testdir - dh_testroot - rm -f build-stamp - - # Add here commands to clean up after the build process. - -$(MAKE) distclean -ifneq "$(wildcard /usr/share/misc/config.sub)" "" - cp -f /usr/share/misc/config.sub config.sub -endif -ifneq "$(wildcard /usr/share/misc/config.guess)" "" - cp -f /usr/share/misc/config.guess config.guess -endif - - - dh_clean - -install: build - dh_testdir - dh_testroot - dh_clean -k - dh_installdirs - - # Add here commands to install the package into debian/g15daemon. - $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp - - -# Build architecture-independent files here. -binary-indep: build install -# We have nothing to do by default. - -# Build architecture-dependent files here. -binary-arch: build install - dh_testdir - dh_testroot - dh_installchangelogs ChangeLog - dh_installdocs - dh_installexamples - dh_install -a --sourcedir=debian/tmp -# dh_installmenu -# dh_installdebconf -# dh_installlogrotate -# dh_installemacsen -# dh_installpam -# dh_installmime -# dh_installinit -# dh_installcron -# dh_installinfo - dh_installman Documentation/g15daemon.1 Documentation/g15daemon_client_devel.3 - dh_link - dh_strip - dh_compress - dh_fixperms -# dh_perl -# dh_python -# dh_makeshlibs - dh_installdeb - dh_shlibdeps - dh_gencontrol - dh_md5sums - dh_builddeb -binary: binary-indep binary-arch -.PHONY: build clean binary-indep binary-arch binary install +# for SVN versions +AUTOMAKE_REMOVE := Makefile Makefile.in */Makefile */Makefile.in configure aclocal.m4 +AUTOMAKE_REMOVE += *.lo *.o *.la */*.lo */*.o */*.la +AUTOMAKE_REMOVE += g15daemon/g15daemon g15daemon/g15daemontest +AUTOMAKE_REMOVE += config.status config.log config.h config.h.in config/* libtool stamp-h1 +AUTOMAKE_REMOVE += */.libs/ + +#clean:: +# -rm -Rf $(AUTOMAKE_REMOVE) + +#makebuilddir:: Makefile + + +#Makefile:: Makefile.am autogen.sh +# [ -d config ] || mkdir config +# aclocal -I config +# libtoolize --automake --force --copy +# autoheader +# automake --add-missing --copy +# autoconf + +include /usr/share/cdbs/1/rules/debhelper.mk +include /usr/share/cdbs/1/class/autotools.mk + +DEB_CONFIGURE_EXTRA_FLAGS = --quiet + --- g15daemon-1.9.5.3.orig/debian/control +++ g15daemon-1.9.5.3/debian/control @@ -1,28 +1,35 @@ Source: g15daemon Section: utils -Priority: optional -Maintainer: Anthony J. Mirabella -Build-Depends: debhelper (>= 4.0.0), autotools-dev, libg15-dev, libg15render-dev -Standards-Version: 3.6.2 +Priority: extra +Maintainer: Giacomo Catenazzi +Build-Depends: cdbs, debhelper (>= 5), autotools-dev, automake1.9, libtool, + libg15-dev, libg15render-dev (>=1.2.0.svn250-2), libusb-dev, libfreetype6-dev +Standards-Version: 3.8.2 +Homepage: http://www.g15tools.com/ Package: g15daemon +Section: utils Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, libg15daemon-client (= ${Source-Version}) -Description: Screen multiplexer for Logitech G15 Keyboard +Depends: libg15daemon-client1 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, +Recommends: xkb-data ( >= 0.9+cvs.20070428-1) +Description: Screen multiplexer for Logitech G15 Keyboard G15daemon provides multiple virtual screens for the LCD on the Logitech - G15 Keyboard + G11 and G15 keyboards. + . + This package contain the daemon and a generic client to talk to the + daemon. -Package: libg15daemon-client +Package: libg15daemon-client1 Section: libs Architecture: any -Depends: ${shlibs:Depends} -Description: Client library for communicating with g15daemon - Provides interface functions for clients that wish to communicate with - a running instance of g15daemon +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Development packages for libg15daemon-client + Includes the files needed for developing g15daemon clients Package: libg15daemon-client-dev Section: libdevel Architecture: any -Depends: libg15daemon-client (= ${Source-Version}) +Depends: libg15daemon-client1 (= ${binary:Version}), ${misc:Depends} Description: Development packages for libg15daemon-client Includes the files needed for developing g15daemon clients + --- g15daemon-1.9.5.3.orig/debian/compat +++ g15daemon-1.9.5.3/debian/compat @@ -1 +1 @@ -4 +5 --- g15daemon-1.9.5.3.orig/debian/libg15daemon-client-dev.install +++ g15daemon-1.9.5.3/debian/libg15daemon-client-dev.install @@ -1,6 +1,5 @@ -usr/include/* -usr/lib/lib*.a -usr/lib/lib*.so -usr/lib/pkgconfig/* -usr/lib/*.la -usr/share/pkgconfig/* +debian/tmp/usr/include/* usr/include/ +debian/tmp/usr/lib/lib*.a usr/lib/ +debian/tmp/usr/lib/lib*.so usr/lib/ +debian/tmp/usr/lib/*.la usr/lib/ + --- g15daemon-1.9.5.3.orig/debian/copyright +++ g15daemon-1.9.5.3/debian/copyright @@ -1,10 +1,28 @@ -This package was debianized by Anthony J. Mirabella on -Thu, 28 Sep 2006 04:46:06 -0400. +This package was debianized by Giacomo A. Catenazzi on +Mon, 27 Aug 2007 20:00:20 +0200. -It was downloaded from +It was downloaded from http://g15daemon.sourceforge.net/ -Copyright Holder: +Upstream Authors: + + Mike Lampard + Sven Ludwig + James Green + Philip Lawatsch + +Copyright: + + Copyright (c) 2006 Mike Lampard, Philip Lawatsch, and others License: - + g15tools is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + +License can be found in the file `/usr/share/common-licenses/GPL-2'. + +The Debian packaging is (C) 2007, Giacomo Catenazzi and +is licensed under the GPL v2 (or later), see `/usr/share/common-licenses/GPL-2'. + --- g15daemon-1.9.5.3.orig/debian/changelog +++ g15daemon-1.9.5.3/debian/changelog @@ -1,108 +1,126 @@ -g15daemon 1.9.5.3 edgy; urgency=low - * BugFix: plugins/g15daemon_net.c: ensure that OOB traffic is not mixed with - normal image buffers. - * Feature: Add --set-backlight to allow clients (and the backlight button) - to set the backlight level for the currently shown screen only. - Default is now to disallow clients changing backlight, and to set - backlight globally via the button. - - -- Mike Lampard Thu, 31 Jan 2008 15:47:06 +1030 - -g15daemon 1.9.5.2 edgy; urgency=high - * BugFix: IS_USER_SELECTED client command was broken. fix it. - * BugFix: restore client ability to change backlight state. - - -- Mike Lampard Sat, 26 Jan 2008 11:36:04 +1030 - -g15daemon 1.9.5.1 edgy; urgency=high - * BugFix: If lcd refresh is requested whilst processing, refreshes were missed. - * Optimisation: The delay between screen updates is no longer required. remove. - -g15daemon 1.9.5 edgy; urgency=low - * Add example udev helper scripts to contrib directory. - * API: Add NEVER_SELECT cmd to client API to enforce non-display on - client-switch. Used by G15Macro if available. - * Debug: Add segfault handler to libg15daemon_client to aid debugging - clients. - * Feature: Add screendump ability. Pressing M1+M3 simultaneously will write - a pbm format image of the currently displayed screen to - /tmp/g15daemon-sc-?.pbm, where ? is an incremental number. - * BugFix: Only wakeup display thread if LCD buffer is visible. - * Packaging: Fix debian packaging to include plugins. - -g15daemon 1.9.4 edgy; urgency=low - * Debug: Log warning if keyboard disappears. - * Bugfix: Fix autoconf autodetect bugs re uinput plugin. - * Feature: If autodetection of uinput fails, configure now has a - --disable-uinput override. - * Feature: WIP should now compile and run on Linux, MacOSX, and Solaris (v10+). - Only Linux and Solaris have been tested. - * Debug: Add more debugging to plugin loader. - * Debug: Log build date,OS and GCC version. - * Feature: Plugin loader will now use DEEP_BIND if available, hopefully - resolving conflicts on OS's that support it. - * Feature: Solaris support. Requires some end-user changes to the usb - stack at the moment. Documentation coming soon. - * BugFix: Plugin loader is now much more robust. - * Feature: Add OS specific documentation for Linux and FreeBSD. - Compilation and use on FreeBSD is completely untested. - * Feature: Debug verbosity of g15daemon_log is now variable. - * Feature: Plugin filenames are now cached in g15daemon.conf to allow - (manual, at this stage) changing of load-order. - * Portability: Add our own daemon() function if platform doesn't have native - support. - * TidyUp: Wrap keyboard read function. - * TidyUp: Make all plugin-internal functions static. - * Portability: Remove mutexes on Solaris, as libusb (and therefore libg15) - blocks on read. - * Optimisation: Use pthread conditional variable to signal LCD state change. - Further reduces unnecessary wakeups. - -g15daemon 1.9.3 edgy; urgency=low - * BugFix: The documentation for --switch was inverted. Fix. - * Debug: Print list of commandline args when in debug mode - * BugFix: The decreased delay caused keypresses to be misread on some - machines. REVERT. - -g15daemon 1.9.2 edgy; urgency=low - * BugFix: Add exitfunc to net plugin for exit notification. - * BugFix: Use pause() instead of sleeping - * BugFix: create leaving var as volatile. - * BugFix: Add NAME section to g15daemon_client manpages - * Tweak delay between successive keyboard reads. This reduces cpu load by - 50% on my system. - * Bugfix: Ensure that all plugin exit functions are called on leaving. - * Bugfix: if keypress event is received (very early in the startup process, - the daemon would crash. Check that expected pointers are valid. - * Bugfix: Dont attempt compilation of uinput plugin if headers are - unavailable. - * Bugfix: Write a blank buffer to the LCD before exiting. - * Feature: Add --lcdlevel cmdline option to allow setting default LCD brightness level - -g15daemon 1.9.1 edgy; urgency=low - * BugFix: Plugins are now installed in ${PREFIX}/{${LIBDIR}/g15daemon/${VERSION}/plugins - * Feature: OS-X support thanks to Fabrizio Sestito. - * Bugfix: libg15daemon_client: keypresses were being corrupted. - * Bugfix: libg15daemon_client: use g15_recv rather than recv. - * Bugfix: use default scheduling for all threads. - * Optimisation: minor optimisation of lcd_cycle() code. - * Security: repair some potential security holes. - * Bugfix: Backlight status was being mis-applied when cycling screens. - * Bugfix: Language bindings were not being distributed. - -g15daemon 1.9.0 edgy; urgency=low - * Feature: Add plugin API - * Feature: partially rewritten event core - * Feature: updated g15daemon_xmms_spectrum plugin with new features, available in trunk/g15daemon_audio_plugins (SVN) - * Feature: Clock is now a plugin - * Feature: dependency on libdaemon is now removed - * Feature: g15daemon is now dependant on libg15render. - * Feature: Clock now includes analog clock thanks to Rasta Freak - * Moved g15daemon_xmms_spectrum plugin to separate package - -g15daemon (1.2.1-1) breezy; urgency=low +g15daemon (1.9.5.3-6) unstable; urgency=low - * Initial release + * Shared devices (lcd dispaly + audio) are not good handled + by udev script. Adding workaround until improving + programs to handle disconnections (Closes: #541780) + * Add debugging flag (and code) for init.d and udev scripts + * Change syslog facility: from user to daemon + * better (and more secure) screenshort creation in /tmp - -- Anthony J. Mirabella Thu, 28 Sep 2006 04:46:06 -0400 + -- Giacomo Catenazzi Wed, 19 Aug 2009 07:33:22 +0200 + +g15daemon (1.9.5.3-5) unstable; urgency=low + + * Handle keyboard device with udev, so detecting detachement + and attachment of keyboarda (Closes: #489978). + * init.d LSB header: try to start before xorg, to be able + to have full access to all extra keys. + * Recent libg15 corrected strange behaviour in new G15 keyboard + (Closes: #494180) + + -- Giacomo Catenazzi Thu, 13 Aug 2009 08:20:02 +0200 + +g15daemon (1.9.5.3-4) unstable; urgency=low + + * Try to load uinput module, in order to have Gx key working + (Closes: #475000). + * Usual updates + + -- Giacomo Catenazzi Thu, 06 Aug 2009 08:32:33 +0200 + +g15daemon (1.9.5.3-3) unstable; urgency=low + + * Changing default in /etc/default/g15daemon: Use L1 key instead of MR + as actual upstream default and allowing to use g15macro + (Closes: #478069) + * Removed the X11 setup on man page, because it is not relevant + to recent distributions and could confuse our users (Closes: #463078) + + -- Giacomo Catenazzi Mon, 28 Apr 2008 08:47:07 +0200 + +g15daemon (1.9.5.3-2) unstable; urgency=low + + * Recommend xkb-data instead of keyboard-config. Adapted patch from + Amaya, thanks! (Closes: #474451). + + -- Giacomo Catenazzi Mon, 07 Apr 2008 19:56:34 +0200 + +g15daemon (1.9.5.3-1) unstable; urgency=low + + * New upstream version + + -- Giacomo Catenazzi Thu, 14 Feb 2008 08:08:03 +0100 + +g15daemon (1.9.5.2-2) unstable; urgency=low + + * Handle better errors in the init.d script (Closes: #463073) + + -- Giacomo Catenazzi Tue, 29 Jan 2008 20:15:35 +0100 + +g15daemon (1.9.5.2-1) unstable; urgency=low + + * New upstream version + * Change default behaviour: to switch client use MR (as already documented + in /etc/default/g15daemon, but wrongly implemented) + + -- Giacomo Catenazzi Mon, 28 Jan 2008 09:12:16 +0100 + +g15daemon (1.9.1.0.svn346-1) unstable; urgency=low + + * New upstream version (from svn) + + -- Giacomo Catenazzi Tue, 18 Dec 2007 09:15:42 +0100 + +g15daemon (1.9.0-wip.20070910-5) unstable; urgency=low + + * change priority to "extra" + * force libg15render-dev versioned dependencies + + -- Giacomo Catenazzi Tue, 09 Oct 2007 13:28:56 +0200 + +g15daemon (1.9.0-wip.20070910-4) unstable; urgency=low + + * Correct building errors (closes: #441919, #442995) + + -- Giacomo Catenazzi Tue, 18 Sep 2007 20:29:54 +0200 + +g15daemon (1.9.0-wip.20070910-3) unstable; urgency=low + + * first try to make a debian/rules full working for + svn and released version + * fix directory fixes (closes: #442296) + + -- Giacomo Catenazzi Fri, 14 Sep 2007 20:59:27 +0200 + +g15daemon (1.9.0-wip.20070910-2) unstable; urgency=low + + * pause() instead of busy loop. + + -- Giacomo Catenazzi Tue, 11 Sep 2007 06:12:01 +0200 + +g15daemon (1.9.0-wip.20070910-1) unstable; urgency=low + + * New upstream release (from svn) + * Don't install plugin in /usr/share (Closes: #441619) + + -- Giacomo Catenazzi Mon, 10 Sep 2007 23:02:14 +0200 + +g15daemon (1.9.0-2) unstable; urgency=low + + * Updates: better init.d scripts (with support for L1 key) + * install also the sample plugin (clock, net, uinput) + + -- Giacomo Catenazzi Thu, 30 Aug 2007 23:31:18 +0200 + +g15daemon (1.9.0-1) unstable; urgency=low + + * New upstream release + + -- Giacomo Catenazzi Tue, 28 Aug 2007 20:09:54 +0200 + +g15daemon (1.2.7-1) unstable; urgency=low + + * Initial release + + -- Giacomo Catenazzi Mon, 27 Aug 2007 20:00:20 +0200 --- g15daemon-1.9.5.3.orig/debian/README.Debian +++ g15daemon-1.9.5.3/debian/README.Debian @@ -1,6 +1,35 @@ g15daemon for Debian -------------------- - - -- Anthony J. Mirabella , Thu, 28 Sep 2006 04:46:06 -0400 +Debian 'xkeyboard-config' package already have support for g15 +keyboards, so you don't need to exec 'xmodmap' as described on +original documentations. Anyway you should configure your +xorg.conf file, so that xorg will understand the extra keys. + +To have the full support of the extra keys, you should edit the +xorg configuration file /etc/X11/xorg.conf . The 'XkbModel' should +be "logitech_g15". + +I.e. on my machine: + +Section "InputDevice" + Identifier "Generic Keyboard" + Driver "kbd" + Option "CoreKeyboard" + Option "XkbRules" "xorg" + Option "XkbModel" "logitech_g15" + Option "XkbLayout" "us" +EndSection + + +Also in KDE and gnome you should set the g15daemon keyboard. +In KDE you find the configuration in: + Control Center + Regional & Accessibility + Keyboard Layout + On the right at the top "Keyboard model" select: + "Logitech G15 extra keys via G15daemon" + + + -- Giacomo Catenazzi Mon, 30 Aug 2007 08:04:22 +0200 --- g15daemon-1.9.5.3.orig/debian/g15daemon.install +++ g15daemon-1.9.5.3/debian/g15daemon.install @@ -1,3 +1,4 @@ -usr/sbin/* -usr/lib/g15daemon/*/plugins/* -usr/share/doc/g15daemon*/* +debian/tmp/usr/sbin/g15daemon usr/sbin +debian/tmp/usr/lib/g15daemon/1.9.5.3/plugins/*.so usr/lib/g15daemon/1.9.5.3/plugins/ +debian/tmp/usr/share/g15daemon/splash/g15logo2.wbmp usr/share/g15daemon/splash/ + --- g15daemon-1.9.5.3.orig/debian/g15daemon.default +++ g15daemon-1.9.5.3/debian/g15daemon.default @@ -0,0 +1,15 @@ +# Defaults for g15daemon initscript + +# SWITCH_KEY selects the key used to switch between client screens +# +# SWITCH_KEY="MR" to use the MR key (on top left) +# SWITCH_KEY="L1 to use the L1 key: the small round key below the LCD + + +SWITCH_KEY="L1" + +# Turn on debugging of g15 init.d and udev scripts +#G15DEBUG="on" + +# Additional options that are passed to the Daemon. +DAEMON_OPTS="" --- g15daemon-1.9.5.3.orig/debian/g15daemon.init +++ g15daemon-1.9.5.3/debian/g15daemon.init @@ -0,0 +1,177 @@ +#! /bin/sh + +### BEGIN INIT INFO +# Provides: g15daemon +# Required-Start: $syslog $local_fs +# Required-Stop: $syslog $local_fs +# Should-Start: $remote_fs +# Should-Stop: $remote_fs +# X-Start-Before: xdm kdm gdm ldm sdm +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: load deamon for Logitech G15 keyboard lcd display +# Description: load deamon for Logitech G15 keyboard lcd display +### END INIT INFO + + +PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin +DAEMON=/usr/sbin/g15daemon +NAME=g15daemon +DESC=g15daemon + +[ -x "$DAEMON" ] || exit 0 + +# Include g15daemon defaults if available +if [ -f /etc/default/g15daemon ] ; then + . /etc/default/g15daemon +fi + +if [ "$SWITCH_KEY" = "MR" ]; then + DAEMON_OPTS="-s $DAEMON_OPTS" +fi + +set -e + +if [ "$G15DEBUG" = "on" ]; then + +log() { + logger -p daemon.debug -t g15 -- "$*" +} +else + +log() { + true +} + +fi + + + + +wait_for_file() { + local file=$1 + local timeout=$2 + [ "$timeout" ] || timeout=120 + + local count=$(($timeout * 10)) + while [ $count != 0 ]; do + [ -e "$file" ] && return 0 + sleep 0.1 + count=$(($count - 1)) + done + return 1 +} + +load_uinput() { + if [ ! -e /dev/input/uinput ] ; then + modprobe -q uinput || true + wait_for_file /dev/input/uinput 3 || return 1 + fi +} + +wait_usr_mount() { + if [ ! -e "$DAEMON" ] ; then + wait_for_file "$DAEMON" 7 || return 1 + fi +} + +is_running() { + start-stop-daemon --stop --test --quiet --pidfile \ + /var/run/$NAME.pid --exec $DAEMON +} + +do_start() { + start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ + --exec $DAEMON -- $DAEMON_OPTS +} + +do_stop() { + $DAEMON -k + start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ + --oknodo --retry 5 --exec $DAEMON +} + + +case "$1" in + start) + echo -n "Starting $DESC: " + load_uinput || echo -n ".../dev/input/uinput not found ..." + do_start + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + do_stop + echo "$NAME." + ;; + #reload) + # + # If the daemon can reload its config files on the fly + # for example by sending it SIGHUP, do it here. + # + # If the daemon responds to changes in its config file + # directly anyway, make this a do-nothing entry. + # + # echo "Reloading $DESC configuration files." + # start-stop-daemon --stop --signal 1 --quiet --pidfile \ + # /var/run/$NAME.pid --exec $DAEMON + #;; + force-reload) + # + # If the "reload" option is implemented, move the "force-reload" + # option to the "reload" entry above. If not, "force-reload" is + # just the same as "restart" except that it does nothing if the + # daemon isn't already running. + # check wether $DAEMON is running. If so, restart + is_running && $0 restart || exit 0 + ;; + restart) + echo -n "Restarting $DESC: " + do_stop + # the device is slow to shut-down + sleep 1 + do_start + echo "$NAME." + ;; + udev) + log "calling g15 udev; action: $ACTION, product $PRODUCT" + if [ "x$ACTION" = "xadd" ] ; then + load_uinput || true + wait_usr_mount || true + # it seems udev will not release a device if userspace is still + # connected + is_running && ( do_stop; sleep 1 ) + do_start + elif [ "x$ACTION" = "xremove" ] ; then + do_stop + else + echo "unknow udev action '$ACTION'" + exit 1 + + fi + ;; + shared-udev) + # some devices share usb also for audio, which causes some spourios + # udev messages. + log "calling g15 shared-dev; action: $ACTION, product $PRODUCT" + if [ "x$ACTION" = "xadd" ] ; then + load_uinput || true + wait_usr_mount || true + do_start + elif [ "x$ACTION" = "xremove" ] ; then + do_stop + else + echo "unknow udev action '$ACTION'" + exit 1 + + fi + ;; + + *) + N=/etc/init.d/$NAME + echo "Usage: $N {start|stop|restart|force-reload|udev}" >&2 + exit 1 + ;; +esac + +exit 0 --- g15daemon-1.9.5.3.orig/debian/g15daemon.manpages +++ g15daemon-1.9.5.3/debian/g15daemon.manpages @@ -0,0 +1 @@ +Documentation/g15daemon.1 --- g15daemon-1.9.5.3.orig/debian/libg15daemon-client1.install +++ g15daemon-1.9.5.3/debian/libg15daemon-client1.install @@ -0,0 +1 @@ +debian/tmp/usr/lib/lib*.so.* usr/lib/ --- g15daemon-1.9.5.3.orig/debian/libg15daemon-client1.manpages +++ g15daemon-1.9.5.3/debian/libg15daemon-client1.manpages @@ -0,0 +1 @@ +Documentation/g15daemon_client_devel.3 --- g15daemon-1.9.5.3.orig/debian/watch +++ g15daemon-1.9.5.3/debian/watch @@ -0,0 +1,7 @@ +# See uscan(1) for format + +# Compulsory line, this is a version 3 file +version=3 + +http://sf.net/g15daemon/g15daemon-([1-9].*)\.tar\.gz + --- g15daemon-1.9.5.3.orig/debian/NEWS.Debian +++ g15daemon-1.9.5.3/debian/NEWS.Debian @@ -0,0 +1,8 @@ +g15daemon (1.9.5.3-3) unstable; urgency=low + + * The default key to switch application is changes: + now we use L1 (round small key near the display, instead of MR key. + This will allow other application to use MR (i.e. g15macro). + + -- Giacomo Catenazzi Mon, 28 Apr 2008 08:36:27 +0200 + --- g15daemon-1.9.5.3.orig/debian/g15daemon.udev +++ g15daemon-1.9.5.3/debian/g15daemon.udev @@ -0,0 +1,20 @@ +# udev rule to start g15daemon when logitech g15 keyboards are attached +# +# Recognized devices from libg15-1.2.7/libg15.c +# + +# Logitech g11 -- extra keys, no LCD +SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c225", RUN+="/etc/init.d/g15daemon udev" + +# Logitech G15 (blue) -- extra keys and LCD +SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c222", RUN+="/etc/init.d/g15daemon udev" + +# Logitech G15 v2 (orange) -- extra keys and LCD +SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c227", RUN+="/etc/init.d/g15daemon shared-udev" + +# Logitech Z10 -- extra keys and LCD +SYSFS{idVendor}=="046d", SYSFS{idProduct}=="0a07", RUN+="/etc/init.d/g15daemon udev" + +# Logitech G15 Gamepanel -- extra keys and LCD +SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c251", RUN+="/etc/init.d/g15daemon shared-udev" + --- g15daemon-1.9.5.3.orig/debian/g15daemon.docs +++ g15daemon-1.9.5.3/debian/g15daemon.docs @@ -0,0 +1,4 @@ +FAQ +NEWS +README +TODO