Compare commits

..
Author SHA1 Message Date
Andrej Shadura 9907e0062b Finalise the changelog 2019-10-19 21:17:49 +02:00
Andrej Shadura a3bbbca557 Add myself as an uploader 2019-10-19 21:17:47 +02:00
Andrej Shadura 351c169ea5 d/watch: Use https protocol 2019-10-19 21:17:46 +02:00
Andrej Shadura 5fb544492b d/control: Add Vcs-* field 2019-10-19 21:17:45 +02:00
Andrej Shadura 617a6ef06c d/changelog: Remove trailing whitespaces 2019-10-19 21:17:44 +02:00
Andrej Shadura 503d5138ca Use debhelper-compat instead of debian/compat 2019-10-19 21:17:42 +02:00
Andrej Shadura 7aab0cc87f Wrap and sort 2019-10-19 21:17:35 +02:00
ranma dda0192482 Fix typo in postinst script. 2019-10-19 21:08:35 +02:00
ranma 6c79eaa189 Add dependency on libg15-1 (>= 1.2.7-3) 2019-10-19 21:07:40 +02:00
Alexander Ponyatykh b4412b7c70 * Reintroduce package. (Closes: bug#928158)
* Convert source to 3.0 (quilt) format.
  * Migrate from cdbs to debhelper.
  * Merge from Ubuntu:
    - libg15daemon_client/g15daemon_net.c: Fix a potential buffer overflow.
  * debian/patches/07-reinit-on-any-error.diff: reinitialize on any error
    returned by libusb to correctly recover after suspend/resume. (LP: #1357556)
  * /etc/init.d/g15daemon: overhaul.
    - Replace /dev/input/uinput with /dev/uinput. (Closes: bug#687663).
    - Use "udevadm settle" instead of polling /dev/uinput.
    - Use log_*_msg functions instead of echo.
    - Add dependency on $remote_fs.
    - Remove bashism. (Closes: bug#772244)
    - Return 0 exit code if the daemon fails to start.
      (LP: #617101, LP: #1103275)
    - Don't stop or restart on udev events, because g15daemon now properly
      handles replugging.
  * Remove build dependency on libusb.
  * Remove dependency on libg15daemon-client1 for g15daemon.
  * Add dependency on udev for g15daemon.
  * Change priority of packages to optional.
  * Add native systemd service. (LP: #1441365)
  * /etc/default/g15daemon: remove SWITCH_KEY option to keep systemd service
    file simple.
  * Add subsystem check to udev matching rules.
  * Multiarchify the library packages. (Closes: bug#812952)
  * Do not install *.la files.
  * Change package description. (Closes: bug#802652)
2019-05-02 18:15:52 +03:00
Eric Dorland 59793e4434 Import Debian changes 1.9.5.3-8.3
g15daemon (1.9.5.3-8.3) unstable; urgency=medium

  * Non-maintainer upload.
  * debian/control: Drop unnecessary automake1.9 build deps. (Closes:
    #724371)
2014-03-04 23:50:12 -05:00
Luk Claes 1363e7ede4 Import Debian changes 1.9.5.3-8.2
g15daemon (1.9.5.3-8.2) unstable; urgency=low

  * Non-maintainer upload.
  * Use ATTR instead of SYSFS in udev rules (closes: #573434).
  * Remove references to other libraries from dependency_libs field
    (closes: #629592).
2011-05-31 07:33:52 +02:00
Julien Cristau 9be03a7841 Import Debian changes 1.9.5.3-8.1
g15daemon (1.9.5.3-8.1) unstable; urgency=low

  * Non-maintainer upload.
  * Send a sync event after key up/down (closes: #567213).
2010-07-25 11:39:22 +02:00
Giacomo Catenazzi 1525a75133 Import Debian changes 1.9.5.3-8
g15daemon (1.9.5.3-8) unstable; urgency=low

  * Put the third argument (modes) on open with O_CREAT (Closes: #559649)
  * remove rpath
2009-12-18 07:52:26 +01:00
28 changed files with 583 additions and 192 deletions

No files matched your search

+107
View File
@@ -37,6 +37,113 @@ to have the MR key as the client screen switch.
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
+75 -2
View File
@@ -1,8 +1,81 @@
g15daemon (1.9.5.3-9) unstable; urgency=medium
[ Alexander Ponyatykh ]
* Reintroduce package. (Closes: bug#928158)
* Convert source to 3.0 (quilt) format.
* Migrate from cdbs to debhelper.
* Merge from Ubuntu:
- libg15daemon_client/g15daemon_net.c: Fix a potential buffer overflow.
* debian/patches/07-reinit-on-any-error.diff: reinitialize on any error
returned by libusb to correctly recover after suspend/resume. (LP: #1357556)
* /etc/init.d/g15daemon: overhaul.
- Replace /dev/input/uinput with /dev/uinput. (Closes: bug#687663).
- Use "udevadm settle" instead of polling /dev/uinput.
- Use log_*_msg functions instead of echo.
- Add dependency on $remote_fs.
- Remove bashism. (Closes: bug#772244)
- Return 0 exit code if the daemon fails to start.
(LP: #617101, LP: #1103275)
- Don't stop or restart on udev events, because g15daemon now properly
handles replugging.
* Remove build dependency on libusb.
* Remove dependency on libg15daemon-client1 for g15daemon.
* Add dependency on udev for g15daemon.
* Change priority of packages to optional.
* Add native systemd service. (LP: #1441365)
* /etc/default/g15daemon: remove SWITCH_KEY option to keep systemd service
file simple.
* Add subsystem check to udev matching rules.
* Multiarchify the library packages. (Closes: bug#812952)
* Do not install *.la files.
* Change package description. (Closes: bug#802652)
[ Andrej Shadura ]
* Wrap and sort.
* Use debhelper-compat instead of debian/compat.
* d/changelog: Remove trailing whitespaces.
* d/control: Add Vcs-* field.
* d/watch: Use https protocol.
-- Andrej Shadura <andrewsh@debian.org> Sat, 19 Oct 2019 21:15:39 +0200
g15daemon (1.9.5.3-8.3) unstable; urgency=medium
* Non-maintainer upload.
* debian/control: Drop unnecessary automake1.9 build deps. (Closes:
#724371)
-- Eric Dorland <eric@debian.org> Tue, 04 Mar 2014 23:50:12 -0500
g15daemon (1.9.5.3-8.2) unstable; urgency=low
* Non-maintainer upload.
* Use ATTR instead of SYSFS in udev rules (closes: #573434).
* Remove references to other libraries from dependency_libs field
(closes: #629592).
-- Luk Claes <luk@debian.org> Tue, 31 May 2011 07:33:52 +0200
g15daemon (1.9.5.3-8.1) unstable; urgency=low
* Non-maintainer upload.
* Send a sync event after key up/down (closes: #567213).
-- Julien Cristau <jcristau@debian.org> Sun, 25 Jul 2010 11:39:22 +0200
g15daemon (1.9.5.3-8) unstable; urgency=low
* Put the third argument (modes) on open with O_CREAT (Closes: #559649)
* remove rpath
-- Giacomo Catenazzi <cate@debian.org> Fri, 18 Dec 2009 07:52:26 +0100
g15daemon (1.9.5.3-7) unstable; urgency=low
* Don't distribute .la file
* Change priority of libg15daemon-client1 from extra to optional
(mumble package needs it)
-- Giacomo Catenazzi <cate@debian.org> Thu, 08 Oct 2009 07:22:15 +0200
-- Giacomo Catenazzi <cate@debian.org> Tue, 01 Sep 2009 19:50:38 +0200
g15daemon (1.9.5.3-6) unstable; urgency=low
-1
View File
@@ -1 +0,0 @@
5
+50 -23
View File
@@ -1,35 +1,62 @@
Source: g15daemon
Section: utils
Priority: extra
Maintainer: Giacomo Catenazzi <cate@debian.org>
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/
Priority: optional
Maintainer: Alexander Ponyatykh <lazyranma@gmail.com>
Uploaders:
Andrej Shadura <andrewsh@debian.org>
Build-Depends:
debhelper-compat (= 12),
libfreetype6-dev,
libg15-dev (>= 1.2.7-3),
libg15render-dev (>= 1.2.0.svn250-2),
libtool
Standards-Version: 4.1.4
Homepage: https://sourceforge.net/projects/g15daemon/
Vcs-Browser: https://salsa.debian.org/debian/g15daemon
Vcs-Git: https://salsa.debian.org/debian/g15daemon.git
Package: g15daemon
Section: utils
Architecture: any
Depends: libg15daemon-client1 (=${binary:Version}), ${shlibs:Depends}, ${misc:Depends},
Recommends: xkb-data ( >= 0.9+cvs.20070428-1)
Description: Screen multiplexer for Logitech G15 Keyboard
Pre-Depends:
${misc:Pre-Depends}
Depends:
libg15-1 (>= 1.2.7-3),
lsb-base (>= 4.1+Debian3),
udev,
${misc:Depends},
${shlibs:Depends}
Recommends:
xkb-data (>=0.9+cvs.20070428-1)
Description: LCD multiplexer for Logitech G15 Keyboard
G15daemon provides multiple virtual screens for the LCD on the Logitech
G11 and G15 keyboards.
.
This package contain the daemon and a generic client to talk to the
daemon.
Package: libg15daemon-client1
Section: libs
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Development packages for libg15daemon-client
Includes the files needed for developing g15daemon clients
G15 keyboard and Z10 speakers. It also allows the use of all additional
keys of G11 and G15 keyboards, even if the kernel does not support them.
Package: libg15daemon-client-dev
Section: libdevel
Architecture: any
Depends: libg15daemon-client1 (= ${binary:Version}), ${misc:Depends}
Description: Development packages for libg15daemon-client
Includes the files needed for developing g15daemon clients
Multi-Arch: same
Depends:
libg15daemon-client1 (= ${binary:Version}),
${misc:Depends}
Description: Development files for libg15daemon-client
The g15daemon client library allows applications to use LCD of the Logitech G15
keyboard or Z10 speakers under control of g15daemon.
.
This package provides the development files and static libraries.
Package: libg15daemon-client1
Section: libs
Architecture: any
Multi-Arch: same
Pre-Depends:
${misc:Pre-Depends}
Depends:
${misc:Depends},
${shlibs:Depends}
Description: Client library for communicating with g15daemon
The g15daemon client library allows applications to use LCD of the Logitech G15
keyboard or Z10 speakers under control of g15daemon.
.
This package provides the runtime files.
+3 -3
View File
@@ -23,6 +23,6 @@ License:
License can be found in the file `/usr/share/common-licenses/GPL-2'.
The Debian packaging is (C) 2007, Giacomo Catenazzi <cate@debian.org> and
is licensed under the GPL v2 (or later), see `/usr/share/common-licenses/GPL-2'.
The Debian packaging is (C) 2007, Giacomo Catenazzi <cate@debian.org>,
(C) 2019 Alexander Ponyatykh <lazyranma@gmail.com> and is licensed under
the GPL v2 (or later), see `/usr/share/common-licenses/GPL-2'.
Vendored
-3
View File
@@ -1,3 +0,0 @@
NEWS
README
TODO
+1 -7
View File
@@ -1,12 +1,6 @@
# 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"
# SWITCH_KEY option was removed. Use DAEMON_OPTS="-s" instead.
# Turn on debugging of g15 init.d and udev scripts
#G15DEBUG="on"
+39 -91
View File
@@ -2,8 +2,8 @@
### BEGIN INIT INFO
# Provides: g15daemon
# Required-Start: $syslog $local_fs
# Required-Stop: $syslog $local_fs
# Required-Start: $syslog $local_fs $remote_fs
# Required-Stop: $syslog $local_fs $remote_fs
# Should-Start: $remote_fs
# Should-Stop: $remote_fs
# X-Start-Before: xdm kdm gdm ldm sdm
@@ -17,21 +17,17 @@
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/sbin/g15daemon
NAME=g15daemon
DESC=g15daemon
DESC="Logitech G15 keyboard LCD multiplexer"
[ -x "$DAEMON" ] || exit 0
. /lib/lsb/init-functions
# 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() {
@@ -45,33 +41,17 @@ log() {
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
check_new_init() {
if [ -d /run/systemd/system ] ; then
exit $1
fi
}
wait_usr_mount() {
if [ ! -e "$DAEMON" ] ; then
wait_for_file "$DAEMON" 7 || return 1
load_uinput() {
if [ ! -e /dev/uinput ] ; then
modprobe -q uinput
udevadm settle -t 5 -E /dev/uinput
[ -e /dev/uinput 3 ] || return 1
fi
}
@@ -86,90 +66,58 @@ do_start() {
}
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 ..."
log_daemon_msg "Starting $DESC" $NAME
load_uinput || log_warning_msg "/dev/uinput not found"
do_start
echo "$NAME."
log_end_msg $?
;;
stop)
echo -n "Stopping $DESC: "
do_stop
echo "$NAME."
log_daemon_msg "Stopping $DESC" $NAME
if do_stop ; then
log_end_msg 0
else
log_end_msg 1
exit 1
fi
;;
#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
log_daemon_msg "Restarting $DESC" $NAME
if ! do_stop ; then
log_end_msg 1
exit 1
fi
# the device is slow to shut-down
sleep 1
load_uinput || log_warning_msg "/dev/uinput not found"
do_start
echo "$NAME."
log_end_msg $?
;;
status)
is_running
exit $?
;;
udev)
check_new_init 0
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 )
# If g15daemon is running, it will handle replugging.
is_running && exit 0
load_uinput
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
log_action_msg "Usage: $N {start|stop|restart|force-reload|status}"
exit 1
;;
esac
+3 -4
View File
@@ -1,4 +1,3 @@
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/
debian/tmp/usr/lib/*/g15daemon/*/plugins/*.so
debian/tmp/usr/sbin/g15daemon
debian/tmp/usr/share/g15daemon/splash/g15logo2.wbmp
+12
View File
@@ -0,0 +1,12 @@
[Unit]
Description=Logitech G15 keyboard LCD multiplexer
Documentation=man:g15daemon(1)
Wants=remote-fs.target
After=remote-fs.target
[Service]
Type=forking
EnvironmentFile=-/etc/default/g15daemon
ExecStartPre=-/sbin/modprobe -q uinput
ExecStartPre=-/sbin/udevadm settle -t 5 -E /dev/uinput
ExecStart=/usr/sbin/g15daemon $DAEMON_OPTS
+5 -6
View File
@@ -4,17 +4,16 @@
#
# Logitech g11 -- extra keys, no LCD
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c225", RUN+="/etc/init.d/g15daemon udev"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c225", RUN+="/etc/init.d/g15daemon udev", TAG+="systemd",ENV{SYSTEMD_WANTS}+="g15daemon.service"
# Logitech G15 (blue) -- extra keys and LCD
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c222", RUN+="/etc/init.d/g15daemon udev"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c222", RUN+="/etc/init.d/g15daemon udev", TAG+="systemd", ENV{SYSTEMD_WANTS}+="g15daemon.service"
# Logitech G15 v2 (orange) -- extra keys and LCD
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c227", RUN+="/etc/init.d/g15daemon shared-udev"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c227", RUN+="/etc/init.d/g15daemon udev", TAG+="systemd", ENV{SYSTEMD_WANTS}+="g15daemon.service"
# Logitech Z10 -- extra keys and LCD
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="0a07", RUN+="/etc/init.d/g15daemon udev"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="0a07", RUN+="/etc/init.d/g15daemon udev", TAG+="systemd", ENV{SYSTEMD_WANTS}+="g15daemon.service"
# Logitech G15 Gamepanel -- extra keys and LCD
SYSFS{idVendor}=="046d", SYSFS{idProduct}=="c251", RUN+="/etc/init.d/g15daemon shared-udev"
SUBSYSTEM=="usb", ATTR{idVendor}=="046d", ATTR{idProduct}=="c251", RUN+="/etc/init.d/g15daemon udev", TAG+="systemd", ENV{SYSTEMD_WANTS}+="g15daemon.service"
+3 -4
View File
@@ -1,4 +1,3 @@
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/include/*
debian/tmp/usr/lib/*/lib*.a
debian/tmp/usr/lib/*/lib*.so
+1 -1
View File
@@ -1 +1 @@
usr/lib/lib*.so.*
usr/lib/*/lib*.so.*
+1 -1
View File
@@ -1 +1 @@
debian/tmp/usr/lib/lib*.so.* usr/lib/
debian/tmp/usr/lib/*/lib*.so.*
+127
View File
@@ -0,0 +1,127 @@
--- a/Documentation/g15daemon.1
+++ b/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
--- a/Documentation/g15daemon_client_devel.3
+++ b/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 );
+39
View File
@@ -0,0 +1,39 @@
--- a/g15daemon/utility_funcs.c
+++ b/g15daemon/utility_funcs.c
@@ -666,12 +666,24 @@
}
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 +693,9 @@
fprintf(f,"\n");
}
- fclose(f);
+ fclose(f);
+ fsync(fd);
+ close(fd);
free(canvas);
return 0;
}
+11
View File
@@ -0,0 +1,11 @@
--- a/g15daemon/main.c
+++ b/g15daemon/main.c
@@ -456,7 +456,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 {
+11
View File
@@ -0,0 +1,11 @@
--- a/g15daemon/utility_funcs.c
+++ b/g15daemon/utility_funcs.c
@@ -356,7 +356,7 @@
config_items_t * item=NULL;
char line[1024];
- config_fd = open(filename,O_CREAT|O_RDWR|O_TRUNC);
+ config_fd = open(filename,O_CREAT|O_RDWR|O_TRUNC, 0644);
if(config_fd){
snprintf(line,1024,"# G15Daemon Configuration File\n# any items entered before a [section] header\n# will be in the Global config space\n# comments you wish to keep should start with a semicolon';'\n");
write(config_fd,line,strlen(line));
@@ -0,0 +1,30 @@
--- a/plugins/g15_plugin_uinput.c
+++ b/plugins/g15_plugin_uinput.c
@@ -125,6 +125,13 @@
event.value = G15KEY_DOWN;
write (uinp_fd, &event, sizeof(event));
+
+ memset(&event, 0, sizeof(event));
+
+ event.type = EV_SYN;
+ event.code = SYN_REPORT;
+
+ write (uinp_fd, &event, sizeof(event));
}
static void g15_uinput_keyup(unsigned char code)
@@ -137,6 +144,13 @@
event.value = G15KEY_UP;
write (uinp_fd, &event, sizeof(event));
+
+ memset(&event, 0, sizeof(event));
+
+ event.type = EV_SYN;
+ event.code = SYN_REPORT;
+
+ write (uinp_fd, &event, sizeof(event));
}
void (*keyup)(unsigned char code) = &g15_uinput_keyup;
+11
View File
@@ -0,0 +1,11 @@
--- a/libg15daemon_client/g15daemon_net.c
+++ b/libg15daemon_client/g15daemon_net.c
@@ -217,7 +217,7 @@
if(poll(pfd,1,100)>0){
if(pfd[0].revents & POLLPRI && !(pfd[0].revents & POLLERR || pfd[0].revents & POLLHUP || pfd[0].revents & POLLNVAL)) {
memset(packet,0,sizeof(packet));
- msgret = recv(sock, packet, 10 , MSG_OOB);
+ msgret = recv(sock, packet, sizeof(packet) , MSG_OOB);
if (msgret < 1) {
return -1;
}
+22
View File
@@ -0,0 +1,22 @@
Description: Reinitialize on any libusb error.
This allows g15daemon to correctly recover after suspend/resume.
Author: Alexander Ponyatykh <lazyranma@gmail.com>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libusb/+bug/1357556
Forwarded: no
Last-Update: 2015-05-18
===================================================================
--- a/g15daemon/main.c
+++ b/g15daemon/main.c
@@ -204,10 +204,10 @@
G15_EVENT_KEYPRESS, keypresses);
lastkeys = keypresses;
- }else if(retval == -ENODEV && LIBG15_VERSION>=1200) {
+ }else if(retval < 0 && LIBG15_VERSION>=1200) {
pthread_mutex_lock(&g15lib_mutex);
while((retval=re_initLibG15() != G15_NO_ERROR) && !leaving){
- g15daemon_log(LOG_WARNING,"Keyboard has gone.. Retrying\n");
+ g15daemon_log(LOG_WARNING,"Keyboard error (%d).. Reinitializing\n", retval);
sleep(1);
}
if(!leaving) {
+7
View File
@@ -0,0 +1,7 @@
01-remove-x11-setup-from-man.diff
02-better-screenshort-creation.diff
03-change-syslog-facility.diff
04-open-needs-mode.diff
05-send-a-sync-event-after-key-up-down.diff
06-fix-buffer-overflow.diff
07-reinit-on-any-error.diff
Vendored Executable
+14
View File
@@ -0,0 +1,14 @@
#!/bin/sh
set -e
#DEBHELPER#
#g15daemon.service is normally pulled by udev events at boot time or after
#plugging in a device, and deb-systemd-invoke refuses to start a static service,
#so force it to start using invoke-rc.d
if [ -d /run/systemd/system ] && [ -z "$2" ] && ( [ "$1" = "configure" ] \
|| [ "$1" = "abort-remove" ] ) ; then
invoke-rc.d g15daemon start >/dev/null || true
fi
+5 -27
View File
@@ -1,31 +1,9 @@
#!/usr/bin/make -f
# 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/
DH_VERBOSE = 1
#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
include /usr/share/cdbs/1/rules/utils.mk
common-binary-predeb-arch:: list-missing
DEB_CONFIGURE_EXTRA_FLAGS = --quiet
%:
dh $@
override_dh_installsystemd:
dh_installsystemd --no-start
+1
View File
@@ -0,0 +1 @@
3.0 (quilt)
+1 -1
View File
@@ -3,5 +3,5 @@
# Compulsory line, this is a version 3 file
version=3
http://sf.net/g15daemon/g15daemon-([1-9].*)\.tar\.gz
https://sf.net/g15daemon/g15daemon-([1-9].*)\.tar\.gz
+3 -4
View File
@@ -96,11 +96,10 @@ int g15daemon_send_event(void *caller, unsigned int event, unsigned long value)
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[FILENAME_SIZE];
char filename[128];
lcd_t *displaying = lcd->masterlist->current->lcd;
snprintf(filename, FILENAME_SIZE, "/tmp/g15daemon-sc-%i.pbm",scr_num);
sprintf(filename,"/tmp/g15daemon-sc-%i.pbm",scr_num);
uf_screendump_pbm(displaying->buf,filename);
scr_num++;
}
@@ -457,7 +456,7 @@ int main (int argc, char *argv[])
struct passwd *nobody;
unsigned char location[1024];
openlog("g15daemon", LOG_PID, LOG_DAEMON);
openlog("g15daemon", LOG_PID, LOG_USER);
if(strlen((char*)user)==0){
nobody = getpwnam("nobody");
}else {
+1 -14
View File
@@ -666,23 +666,12 @@ int uf_conf_open(g15daemon_t *list, char *filename) {
}
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);
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;
}
f = fopen(filename,"w+");
fprintf(f,"P1\n160 43\n");
fprintf(f,"# G15 screendump - %s\n\n",filename);
for(y=0;y<43;y++)
@@ -693,8 +682,6 @@ int uf_screendump_pbm(unsigned char *buffer,char *filename) {
}
fclose(f);
fsync(fd);
close(fd);
free(canvas);
return 0;
}