2 Major changes to command line handling and to the way we use
3 libdockapp, courtesy of Patrice Dumas. This should hopefully fix
4 several long-standing bugs with non-wmaker window managers (in
5 particular Debian bugs #280495 and 293546).
7 Updated to support newer kernels that no longer support
8 /proc/acpi/info - thanks to Samuel Ortiz.
10 Fixed a longstanding issue with redrawing - thanks to Vito
13 This version changes a number of command line options (little used
14 ones, but they're still incompatible changes) due to the
15 libdockapp work. In particular, -w becomes -x, -v becomes -V (and
16 takes an argument rather than being repeated), and -V becomes -v
17 (thanks to libdockapp grabbing -h, -v and -w for itself). Also,
18 long options are now supported for everything in wmacpi (but not
19 acpi, since it doesn't use libdockapp for command line parsing).
22 Added a patch from Patrice Dumas to support newer versions of
25 Updated email address in AUTHORS and manpages.
28 Finalised libdockapp-0.5.0 port - no changes from 2.1rc1.
31 Typo fix in the manpage.
33 Ported to libdockapp-0.5.0 - all this needed was changing the
34 type of the dockapp width and height to unsigned short.
37 Upped version number to 2.0.
41 wmacpi 2.0 goes gold . . .
43 2004 September 28 2.0rc1
44 Added support for switching to capacity mode automatically, on
45 detecting dodgy reports from the battery.
47 Added support for capacity mode on charging, with automatic
48 enabling as per discharging.
52 Hopefully last release before the final 2.0.
55 Implemented the libdockapp port - this seems to close Debian bug
56 #227819, but it hasn't received sufficient testing.
58 Implemented a capacity mode for calculating time remaining (as
59 opposed to the normal current rate mode) - this mode samples the
60 remaining capacity of the battery and notes the time at which it
61 was sampled, and uses a history of samples to estimate the rate of
62 drain on the battery. From there it calculates a value for time
65 Also, various cleanups have gone in:
67 * a reworking of the scrolling code
69 * generic battery number support (rather than just
70 using two pixmaps, one for b1 and one for b2)
72 * stopped the battery glyph from blinking when running on AC
75 Fix for Debian bug #250792 - the parser for the acpi files was
76 too stupid to deal with error conditions. I've now added some
77 basic checking to make it handle the error that caused the bug
78 report, but I'll need to add more later.
81 Collected fixes for the collected fixes below . . .
83 * Manpage fixes, to reflect the reality of the current code.
85 * Code cleanups, to make a few things more sensible. Most notably,
86 the interface for setting the samplerate has changed so that it's
87 no longer inverted and illogical - you now say how many times you
88 want to sample per minute.
90 * Fixed an issue with initialisation - I'd moved the power_init()
91 call below the options parsing code, without dealing with the -m
92 option properly. The end result was that if you told it to monitor
93 a battery number, it would fail saying the battery didn't exist. I
94 moved the check for this out of the options parsing and after the
97 * Fixed a leaking file descriptor in init_ac_adapters.
99 * Implemented a way to handle changing batteries - reinitialise
100 the battery info periodically. I don't know of a better way to do
101 that, since we'd have to do all that parsing anyway to find out if
104 libdockapp is waiting, but I think that's the only change left
105 without more bug repots . . .
108 Collected fixes for various small issues.
110 * Fixed a problem with placement of the window when using the
111 click to place mode - turned out to be a sizehints problem.
113 * Some fixes to the manpage.
115 * Reenabled the CLI build by default - the Debian patches can
116 handle disabling it themselves.
118 * Added a way to disable the scrolling message, since some users
121 I've left the big changes that are needed (like using libdockapp,
122 in the hope that it'll solve the docking problems) until later, so
123 that I can get these smaller fixes out. Hopefully soon . . .
125 2004 January 12 1.99r3
126 . . . and a fix for a fix that didn't fix it . . .
128 2004 January 12 1.99r2
129 Some cleanups and bugfixes found by the wonderful Debian users.
131 It's finally in testing!
133 2003 November 23 1.99
134 Finally claimed the wmacpi name as my own . . .
136 Renamed wmacpi-ng and acpi-ng, renamed the header files, fixed up
139 For the Debian package, also made compilation of the command line
140 tool optional, defaulting to not building it. This is because
141 after the renaming, my acpi clashes with the acpi package that's
142 already in Debian. The command line functionality is now
143 accessible via the -w option to wmacpi.
145 This is wmacpi 1.99, so that I can have a release packaged and in
146 Debian before going to 2.0, so that any bugs that are left can be
147 found by all the extra users.
149 2003 September 26 0.99
150 Fix the last of the old wmacpi code oddities (specifically, the
151 APMInfo struct, which was a completely inappropriate name given we
152 no longer deal with APM, and because of the various code
155 I think this is probably as good as I can make it without getting
156 more feedback and the like, so I'm going to make this version
157 0.99, preliminary to either wmacpi-ng 1.0 or wmacpi 2.0 (depending
158 which direction I go with that).
160 2003 September 23 0.92
161 Fix a few more bugs, and include an option to allow the user to
162 specify how often to sample the ACPI data - some BIOSes disable
163 all interrupts while reading from the battery, which apparently
164 causes some interactivity issues. I have no idea why reading once
165 every three seconds (which is our default), but there've been some
168 Also fixed acpi-ng to properly handle the -a option.
171 Fix a problem I'm seeing with docking the app - if the window name
172 is set to "acpi" rather than "apm" it doesn't dock . . .
175 Make the time display show '--:--' instead of '00:00' when the
176 time remaining is 0 - I think this is reasonable, since it'll only
177 get into this state when the present rate value is 0. This only
178 happens when the battery is fully charged and neither discharging
179 or charging, or when the battery is completely drained. In any of
180 these states the time remaining is of very little interest, so we
181 don't lose anything. We also get to handle the (sadly, very
182 common) case where the ACPI subsystem doesn't report sane values
183 for the things we depend on.
186 Make the time display show nothing (as opposed to 00:00) when the
187 time remaining is unknown, as requested by Emma Jane Hogbin.
189 Respect the critical level specified on the command line, and add
190 a new message to differentiate between the command line critical
191 level and the critical state reported by the battery.
193 Speed up the message scrolling, so that there isn't quite such a
194 painful delay between repeats. Also, up the speed when the battery
195 is low, more when it's critical, and scroll continuously when it's
198 Finally, add support for disabling the blinking power and battery
199 glyphs from the command line, as requested by Sebastian
200 Henschel. We still blink the battery glyph when the battery
201 reports hardware critical level - I think that's worth being a bit
204 Also, added an acpi-ng manpage.
207 Properly fix the AC adapter issue - it's not much use adding the
208 infrastructure and then forgetting to fix the code that uses it.
210 Fix the time disiplay so that it doesn't try to display values
211 greater than 99:59, since the display area won't fit anything
215 Bugfixes, to handle two problems: the case where something like
216 the present rate or some such is "unknown" (reported initially by
217 Emma Jane Hogbin, and where the AC adapter is called something
218 other than "AC" (reported by Sebastian Henschel). This an 'a'
219 release because I can't test these myself . . .
222 Finally got rid of that annoying button - that space now contains
223 a 'B 1' or 'B 2' (only those two at present, since I'm too lazy to
224 fix it so that the number is generic. It should work fine for
225 anyone who doesn't have a freakish system with more than two
228 A few more code cleanups.
231 libacpi cleanups and reworking - we now handle the charging
232 battery case properly, it seems.
234 Also, some attempts to make error printing a bit cleaner; still a
235 long way to go on that, though . . .
238 Removed process_plugin_timer(), since it was doing nothing useful
242 Removed libapm.c - wmacpi-ng is specifically for ACPI, with no APM
246 Some more code cleanups, designed to move libacpi to more of a
247 library than something built into wmacpi-ng. This is useful with
248 the seperate programs, though at present it's not used much.
251 Added a command line tool, acpi-ng to query battery status from
255 Implemented multiple battery support, and averaging of the samples
256 in an attempt to even out the jumpiness of the timer.
259 More major code cleanups: in particular the handling of the power
260 panel and the message has been cleaned up so that it's actually
263 Next step from here is to actually implement handling of multiple
264 batteries, so that if there's a fully charge second battery
265 available it reports the correct time remaining (based on the
266 present rate of power consumption and the sum of the two battery's
267 remaining capacities).
270 Some major reworking of the internals, to help fix the handling of
271 multiple batteries and such things.
274 Code cleanups to fix various problems with corner cases.
277 Added support for multiple batteries: I took the simple route of
278 displaying only one battery per instance - to do more I'd need to
279 hack with the display code, and I'm not ready for that yet.
281 Added a -m option to specify the battery number to monitor.
284 Changed package completely, to support the new ACPI code as of
287 Since this code hasn't been touched in more than a year, I figure
288 I might as well have a go at hacking on it . . .
290 -- Simon Fowler, <simon@dreamcraft.com.au>
293 Updated ACPI statistics gathering code for the latest ACPI patch from
294 Intel. Now uses/checks for subsystem version 20020214+. Redone the version
298 Little fix to ACPI version check so that I don't have to make a new
299 version each time a new kernel comes out
302 Split ACPI and APM portions in different source files
303 Added power_init() function - handles checking subsystem presence,
304 version, etc. Enumerates batteries in ACPI implementation
305 ACPI: Beginnings of multiple battery support - not fully implemented
306 ACPI: Get the battery ID from /proc/acpi/battery instead of hard-coding
307 it in - also helps with multi battery stuff
308 Added some stupid command line help
309 Added -c option to set critical battery alarm level. Defaults to
310 10 percent, and added -b option to make noise when this critical level
312 APM: Updated for critical alarm stuff
313 Made a 20 color "low" quality pixmap for machines running 8bit displays
314 Updated README with some stuff, made separate INSTALL file
317 Update for intel ACPI release version 20010313
318 Minor updates for new /proc layout
321 Update for intel ACPI release verion 20010302
322 Proc format changed a little bit, so updates were necessary.
323 Added a check for specific acpi subsystem version - since each
324 new version seems to have a new interface, better be safe than
326 As usual, please test and report to me.
328 This ONLY works with linux acpica 20010302. Download this version from
329 http://developer.intel.com/technology/iapc/acpi/downloads.htm - it's a
333 Finally read through the ACPI specification. Hah, they had all my
334 questions answered :) Thus,
336 Confirmed remaining percentage formula (correct)
338 Now calculate "time remaining" according to the spec formula
340 Removed "battery load" hack since we now have "time remaining"
342 Fixed bug in display_percentage (10% didn't display right)
344 Released version 1.21
347 Added support for ACPI. This is very untested, and not very clean.
348 This has been tested on machines with only ONE battery, and only
349 with kernel 2.4.2 (that's where ACPI started to work for me)
351 Added some hackery to do with ACPI. Check README.
356 Fixed all the stuff so that wmapm works as advertised:
357 Fixed dumb bug where after charging was done new message didn't scroll.
359 Added support for fucked APM bioses that display stuff wrong. (See
360 README to learn how to enable it. Obviously, it's disabled by default)
362 Reorganized apminfo structure and got rid of redundancy.
364 Reorganized acquire_apm_info. All APM data is processed there.
366 Fixed display_state to do the Right Thing.
368 Fixed red blinking button to actually blink on critical battery, and
369 to stop when it isn't critical anymore. I don't think it ever worked