version 0.3.0
[expresskeys.git] / ChangeLog
1
2 _Version 0.3.0 27 Jul 2006_
3
4 * Finally and totally obliterated the src-expresskeysconf directory.
5 Such a tool will never be written by me. But there is hope balancing
6 on the horizon! At http://alavaliant.googlepages.com you'll find
7 "wacom-config", which is a pygtk (2.8+) point-and-click program for
8 configuration of the linuxwacom driver (through "xsetwacom") and
9 expresskeys version 0.2.x config file editing.
10
11 No more manual wrangling with "xprop" and "xev"! A future version
12 will support expresskeys 0.3.x (I've been assured).
13
14 * New configuration file (version 3), incompatible with version 2. The
15 reasoning around this switch can be read about in the USAGE file, ca
16 2/3 down under the heading "NEW in expresskeys version 0.3.0".
17
18 This will hopefully be the _last_ config file change that impacts the
19 user in a negative way. Future changes can be done non-destructively.
20
21 * New configuration _file name_. Depending on devices identified, either
22 a "padless.conf1" or an "intuos3.conf1" file is written out. Apart from
23 only containing relevant record fields, the headers of these files are
24 tagged with device "Identifier" strings from xorg.conf, like:
25
26 _intuos3.conf1_                                         _padless.conf1_
27
28 ConfigVersion 3                                         ConfigVersion 3
29 Identifier1Pad 1stIntuos3Pad            Identifier1Pad LACKING
30 Identifier1Sty 1stIntuos3Stylus1        Identifier1Sty Stylus1
31
32 The TODO file - better known as the "Wish-list" - hints towards why this
33 filename change has become desirable...
34
35 * Automatic detection and use of the first 'pad' and/or 'stylus' device found
36 through the XListInputDevices call. This happens unconditionally, but can be
37 overridden by specifically naming a device on the command line.
38
39 We still only allow one device of each kind (for now) so eg an automatically
40 picked stylus, say 1stIntuos3Stylus1, gets dropped if the user specifies the
41 1stIntuos3Stylus2 or a 2ndIntuos3Stylus1.
42
43 Anyone with a little programming understanding can change a copy of the code
44 in globals.c and alter the config_dir string to eg "/.expresskeys2". Then
45 that program copy can support another set of pad/stylus (until expresskeys
46 properly handles multi-devices).
47
48 * Expresskeys can now trace the stylus usage and automatically change
49 the pressure sensitivity (PressCurve) depending on which program window
50 that has focus. We call "xsetwacom" for the actual change, but the
51 implementation has minimal overhead - can't be felt or seen on my machine:
52
53 NOTE: To partially overcome a limitation in any Qt3 program (see the BUGS
54 file; they swallow all stylus button presses) we also have to judge the
55 state _every time_ the pen comes within operational height of the tablet,
56 aka ProximityIn.
57
58 1a) Stylusbutton - tip or rocker - pressed (doesn't matter which),
59 1b) or stylus reports itself as having entered proximity of the tablet.
60 2) Is the current focuswindow in our program list (plus "default")? = True.
61 3) Does the program name differ from the name in a historybuffer (1 back)?
62 4) Does the program presscurve differ from a historybuffer curve (1 back)?
63 5) Call xsetwacom only if these are true.
64
65 The above mentioned USAGE entry has all the important details.
66
67 So... now the program enters a more generic stage where it's beneficial
68 to any Wacom tablet user. Though, the name will remain expresskeys ;-)
69
70 * Deleted the old-extra directory with the small scripts for re-reading the
71 configuration file or terminating the program.
72
73 It is actually quite embarrassing, but the two options have been available
74 from _within_ the main_setup.c file since... forever. We already did a signal
75 send to check for a running daemon, so all it took was a slight rearrangement
76 and a few extra code lines. I _am_ myopic, but this oversight borders on
77 blindness.
78
79 It is now possible to do an "expresskeys -r" or "expresskeys -k" against
80 a daemon instance. (BLUSH)!
81
82 * A few more command line switches have been introduced:
83
84 -x sets -v and exits after some important info blocks.
85 -s tells a daemon instance to report status (info block).
86
87 The 'status' signal is triggered through SIGUSR2 (re-read of the config file
88 has always been linked with SIGUSR1). The information printed out by -s
89 is almost exactly how -x displays it during a non-daemon run. Difference
90 being that -s also gives the "OUR RUN-PID" field.
91
92 OBSERVE: If expresskeys is started from the "outside" by use of .xinitrc or
93 similar methods, the output of -s will be seen on that first text terminal
94 (most often back at "Ctrl-Alt-F1" when in X). To get visibility from a terminal
95 _inside_ X, first do an "expresskeys -k" then "expresskeys -d" and THEN the
96 "expresskeys -s" ;-)
97
98 * Finally remembered to give a warning about Gimp and the pad device.
99 The USAGE file has it as a top item, and I'll copy the text here:
100
101 "Important: Gimp doesn't know _anything_ about a "pad" device, so the option
102 File --> Preferences --> Input Devices --> Configure Extended Input Devices...
103 --> [Device: pad  Mode: Disabled] is how it should be set. If you change it
104 to Sceen or Window, pressing pad buttons or using touch strips will NOT work."
105
106 * Updated to a working email address in the AUTHORS file and removed the
107 obsolete private project page from README. The canonical page now is:
108
109 http://freshmeat.net/projects/wacomexpresskeys
110
111 It has been so since version 0.2.1, I just never got around to mentioning it.
112
113
114 _Version 0.2.6 25 Feb 2006_
115
116 * Continuation of the maintenance by future proofing the ./configure phase
117 of the program compilation. We now examine what is returned from the commands
118 "pkg-config --variable=libdir x11" and "pkg-config --variable=includedir x11"
119 which is used to identify a modular X11R7 release. If that fails, we fall
120 back on a hardcoded /usr/X11R6/lib[64] and /usr/X11R6/include path for the
121 monolithic X11R6 releases. Failing that... the users can specify their own
122 paths through the "--with-xlib=" and/or "--with-xinc=" options. ".
123
124
125 _Version 0.2.5 7 Feb 2006_
126
127 [Absolutely no new functionality! A pure maintenance release to prevent
128 trouble. Ticked off a todo-list based on user experiences and their snafus]
129
130 * Erased the useless code in the src-expresskeysconf directory. When or
131 if a graphical utility is written it should have a fresh start.
132
133 * Populated the auto-generated Gimp section of the configuration file
134 with a more complete set of keycodes (a collection which I use myself).
135 This was done in order to help people's understanding of the fields.
136
137 Updated the USAGE file with this Gimp information, close to the bottom,
138 since there was no easy way to auto-write a description in the configuration
139 file itself.
140
141 * Changed the expresskeys-reread.sh and expresskeys-terminate.sh scripts
142 in the old-extra directory so they won't use any hardcoded program paths,
143 except for the #!/bin/sh trigger. I thought that I had used the canonical
144 paths, but distributions apparently shuffle stuff around willy-nilly.
145
146 * Threw in a basic trap/filtering routine in config_read.c which silently
147 swallows illegal keycodes from the low region - below 9 [Escape] - unless
148 the program is run in verbose (-v) mode. Then it spits out a "keycode IGNORED"
149 message when the configuration file is read. Xlib crashes the program when
150 fed unsavory keycodes, so more work can be done in this area.
151
152 * Implemented a ./configure discovery section where a dummy file is
153 compiled and linked for each of libX11.so libXext.so libXi.so libXtst.so
154 X11/Xlib.h X11/Xutil.h X11/extensions/XInput.h and X11/extensions/XTest.h
155 Missing dependencies are thus quickly spotted and a comprehensible error
156 message delivered. A section dealing with dependencies has also been added
157 at the end of the INSTALL file.
158
159 The discovery section can be ogled in the configure.in file of the
160 root directory. I almost went mad before nailing a working piece like:
161
162 echo $'#include <X11/Xlib.h>\nmain(){}'|$CC -L$XLIBDIR -xc - -o dum 2>/dev/null
163 if test $? != 0 ; then
164    echo "Can not include <X11/Xlib.h> header file!"
165    SOMEERROR=1
166 else
167    echo "Xlib.h OK"
168 fi
169
170 So simple looking and yet so hard to produce...
171
172 * Included the following text block in the runtime help, the README and
173 the USAGE file (and now here ;-)
174
175 "Please direct any bug reports or questions to the top address in
176 the AUTHORS file. This program is _not_ a linuxwacom project."
177