2 Implemented the libdockapp port - this seems to close Debian bug
3 #227819, but it hasn't received sufficient testing.
5 Implemented a capacity mode for calculating time remaining (as
6 opposed to the normal current rate mode) - this mode samples the
7 remaining capacity of the battery and notes the time at which it
8 was sampled, and uses a history of samples to estimate the rate of
9 drain on the battery. From there it calculates a value for time
12 Also, various cleanups have gone in:
14 * a reworking of the scrolling code
16 * generic battery number support (rather than just
17 using two pixmaps, one for b1 and one for b2)
19 * stopped the battery glyph from blinking when running on AC
22 Fix for Debian bug #250792 - the parser for the acpi files was
23 too stupid to deal with error conditions. I've now added some
24 basic checking to make it handle the error that caused the bug
25 report, but I'll need to add more later.
28 Collected fixes for the collected fixes below . . .
30 * Manpage fixes, to reflect the reality of the current code.
32 * Code cleanups, to make a few things more sensible. Most notably,
33 the interface for setting the samplerate has changed so that it's
34 no longer inverted and illogical - you now say how many times you
35 want to sample per minute.
37 * Fixed an issue with initialisation - I'd moved the power_init()
38 call below the options parsing code, without dealing with the -m
39 option properly. The end result was that if you told it to monitor
40 a battery number, it would fail saying the battery didn't exist. I
41 moved the check for this out of the options parsing and after the
44 * Fixed a leaking file descriptor in init_ac_adapters.
46 * Implemented a way to handle changing batteries - reinitialise
47 the battery info periodically. I don't know of a better way to do
48 that, since we'd have to do all that parsing anyway to find out if
51 libdockapp is waiting, but I think that's the only change left
52 without more bug repots . . .
55 Collected fixes for various small issues.
57 * Fixed a problem with placement of the window when using the
58 click to place mode - turned out to be a sizehints problem.
60 * Some fixes to the manpage.
62 * Reenabled the CLI build by default - the Debian patches can
63 handle disabling it themselves.
65 * Added a way to disable the scrolling message, since some users
68 I've left the big changes that are needed (like using libdockapp,
69 in the hope that it'll solve the docking problems) until later, so
70 that I can get these smaller fixes out. Hopefully soon . . .
72 2004 January 12 1.99r3
73 . . . and a fix for a fix that didn't fix it . . .
75 2004 January 12 1.99r2
76 Some cleanups and bugfixes found by the wonderful Debian users.
78 It's finally in testing!
81 Finally claimed the wmacpi name as my own . . .
83 Renamed wmacpi-ng and acpi-ng, renamed the header files, fixed up
86 For the Debian package, also made compilation of the command line
87 tool optional, defaulting to not building it. This is because
88 after the renaming, my acpi clashes with the acpi package that's
89 already in Debian. The command line functionality is now
90 accessible via the -w option to wmacpi.
92 This is wmacpi 1.99, so that I can have a release packaged and in
93 Debian before going to 2.0, so that any bugs that are left can be
94 found by all the extra users.
96 2003 September 26 0.99
97 Fix the last of the old wmacpi code oddities (specifically, the
98 APMInfo struct, which was a completely inappropriate name given we
99 no longer deal with APM, and because of the various code
102 I think this is probably as good as I can make it without getting
103 more feedback and the like, so I'm going to make this version
104 0.99, preliminary to either wmacpi-ng 1.0 or wmacpi 2.0 (depending
105 which direction I go with that).
107 2003 September 23 0.92
108 Fix a few more bugs, and include an option to allow the user to
109 specify how often to sample the ACPI data - some BIOSes disable
110 all interrupts while reading from the battery, which apparently
111 causes some interactivity issues. I have no idea why reading once
112 every three seconds (which is our default), but there've been some
115 Also fixed acpi-ng to properly handle the -a option.
118 Fix a problem I'm seeing with docking the app - if the window name
119 is set to "acpi" rather than "apm" it doesn't dock . . .
122 Make the time display show '--:--' instead of '00:00' when the
123 time remaining is 0 - I think this is reasonable, since it'll only
124 get into this state when the present rate value is 0. This only
125 happens when the battery is fully charged and neither discharging
126 or charging, or when the battery is completely drained. In any of
127 these states the time remaining is of very little interest, so we
128 don't lose anything. We also get to handle the (sadly, very
129 common) case where the ACPI subsystem doesn't report sane values
130 for the things we depend on.
133 Make the time display show nothing (as opposed to 00:00) when the
134 time remaining is unknown, as requested by Emma Jane Hogbin.
136 Respect the critical level specified on the command line, and add
137 a new message to differentiate between the command line critical
138 level and the critical state reported by the battery.
140 Speed up the message scrolling, so that there isn't quite such a
141 painful delay between repeats. Also, up the speed when the battery
142 is low, more when it's critical, and scroll continuously when it's
145 Finally, add support for disabling the blinking power and battery
146 glyphs from the command line, as requested by Sebastian
147 Henschel. We still blink the battery glyph when the battery
148 reports hardware critical level - I think that's worth being a bit
151 Also, added an acpi-ng manpage.
154 Properly fix the AC adapter issue - it's not much use adding the
155 infrastructure and then forgetting to fix the code that uses it.
157 Fix the time disiplay so that it doesn't try to display values
158 greater than 99:59, since the display area won't fit anything
162 Bugfixes, to handle two problems: the case where something like
163 the present rate or some such is "unknown" (reported initially by
164 Emma Jane Hogbin, and where the AC adapter is called something
165 other than "AC" (reported by Sebastian Henschel). This an 'a'
166 release because I can't test these myself . . .
169 Finally got rid of that annoying button - that space now contains
170 a 'B 1' or 'B 2' (only those two at present, since I'm too lazy to
171 fix it so that the number is generic. It should work fine for
172 anyone who doesn't have a freakish system with more than two
175 A few more code cleanups.
178 libacpi cleanups and reworking - we now handle the charging
179 battery case properly, it seems.
181 Also, some attempts to make error printing a bit cleaner; still a
182 long way to go on that, though . . .
185 Removed process_plugin_timer(), since it was doing nothing useful
189 Removed libapm.c - wmacpi-ng is specifically for ACPI, with no APM
193 Some more code cleanups, designed to move libacpi to more of a
194 library than something built into wmacpi-ng. This is useful with
195 the seperate programs, though at present it's not used much.
198 Added a command line tool, acpi-ng to query battery status from
202 Implemented multiple battery support, and averaging of the samples
203 in an attempt to even out the jumpiness of the timer.
206 More major code cleanups: in particular the handling of the power
207 panel and the message has been cleaned up so that it's actually
210 Next step from here is to actually implement handling of multiple
211 batteries, so that if there's a fully charge second battery
212 available it reports the correct time remaining (based on the
213 present rate of power consumption and the sum of the two battery's
214 remaining capacities).
217 Some major reworking of the internals, to help fix the handling of
218 multiple batteries and such things.
221 Code cleanups to fix various problems with corner cases.
224 Added support for multiple batteries: I took the simple route of
225 displaying only one battery per instance - to do more I'd need to
226 hack with the display code, and I'm not ready for that yet.
228 Added a -m option to specify the battery number to monitor.
231 Changed package completely, to support the new ACPI code as of
234 Since this code hasn't been touched in more than a year, I figure
235 I might as well have a go at hacking on it . . .
237 -- Simon Fowler, <simon@dreamcraft.com.au>
240 Updated ACPI statistics gathering code for the latest ACPI patch from
241 Intel. Now uses/checks for subsystem version 20020214+. Redone the version
245 Little fix to ACPI version check so that I don't have to make a new
246 version each time a new kernel comes out
249 Split ACPI and APM portions in different source files
250 Added power_init() function - handles checking subsystem presence,
251 version, etc. Enumerates batteries in ACPI implementation
252 ACPI: Beginnings of multiple battery support - not fully implemented
253 ACPI: Get the battery ID from /proc/acpi/battery instead of hard-coding
254 it in - also helps with multi battery stuff
255 Added some stupid command line help
256 Added -c option to set critical battery alarm level. Defaults to
257 10 percent, and added -b option to make noise when this critical level
259 APM: Updated for critical alarm stuff
260 Made a 20 color "low" quality pixmap for machines running 8bit displays
261 Updated README with some stuff, made separate INSTALL file
264 Update for intel ACPI release version 20010313
265 Minor updates for new /proc layout
268 Update for intel ACPI release verion 20010302
269 Proc format changed a little bit, so updates were necessary.
270 Added a check for specific acpi subsystem version - since each
271 new version seems to have a new interface, better be safe than
273 As usual, please test and report to me.
275 This ONLY works with linux acpica 20010302. Download this version from
276 http://developer.intel.com/technology/iapc/acpi/downloads.htm - it's a
280 Finally read through the ACPI specification. Hah, they had all my
281 questions answered :) Thus,
283 Confirmed remaining percentage formula (correct)
285 Now calculate "time remaining" according to the spec formula
287 Removed "battery load" hack since we now have "time remaining"
289 Fixed bug in display_percentage (10% didn't display right)
291 Released version 1.21
294 Added support for ACPI. This is very untested, and not very clean.
295 This has been tested on machines with only ONE battery, and only
296 with kernel 2.4.2 (that's where ACPI started to work for me)
298 Added some hackery to do with ACPI. Check README.
303 Fixed all the stuff so that wmapm works as advertised:
304 Fixed dumb bug where after charging was done new message didn't scroll.
306 Added support for fucked APM bioses that display stuff wrong. (See
307 README to learn how to enable it. Obviously, it's disabled by default)
309 Reorganized apminfo structure and got rid of redundancy.
311 Reorganized acquire_apm_info. All APM data is processed there.
313 Fixed display_state to do the Right Thing.
315 Fixed red blinking button to actually blink on critical battery, and
316 to stop when it isn't critical anymore. I don't think it ever worked