I got fed up with the small battery icon in the system tray of my notebook. I used a borrowed Mac PowerBook for a few days and I immediately started to envy the battery status indicator of its OS X.
With this battery display on the Mac, you don't have to hover over an icon to learn the percentage, hidden in a tray that might not even visible on the screen all the time (I prefer to set the task bar to Auto hide myself). The Windows display usually only shows the battery percentage, not the time remaining and when is does show time, I've already seen the most amusing values there: both 8 minutes and more than 10 hours remaining estimated for a 50% charged battery. Besides, it never even tries to estimate the remaining time until full when charging the battery.
So, I decided to write my own utility. Instead of being hidden as an icon, it can display the measure and estimated data anywhere on the screen. It works best on Windows 2000 and XP because these support user interface transparency. On Windows 98, a background will always be seen behind the display area. Due to lack of support for the low level hardware interface to the battery, the program will not run on NT 4.0 or Windows 95. And, of course, it will not run on desktop computers where there is no battery in the first place...
Instead of displaying the percentage and remaining time in digits, the program uses color and size. The colors are obvious: 100% (full) is green, 50% is yellow, 0% (empty) is red. The display is divided into small sections, each one representing 30 minutes (so, this picture represents the battery still charged to about 50%, with a projected estimate of 1.5 hours of remaining time). You can change the number of sections, or in other words, the total displayable time in Settings (click on the icon in the taskbar). You can move the display around the screen, if it is on the right, it will be mirrored, it's always the outer edge that it is moving towards. When the program starts (also after sleeping or hibernating), it gives a very rough time estimate that will start adjusting itself after only as little as 0.2% change in battery capacity (this will usually take 20-30 seconds at most), and will become more precise as time goes by.
During charging, the display changes from red to green, the length representing the remaining charging time to full (this picture shows the previous notebook just connected to the mains, battery charged to 50%, estimated time remaining to full charge is about 40 minutes). When it is fully charged and runs on mains, the display disappears completely. When Windows reports a bad battery, the whole display is red. If there are more than one batteries in the system, the program estimates combined times for all batteries.
On 98 and NT, there is no transparency support comparable to 2000 or XP. On these systems, the part of the display not actually used in any given moment is drawn in the background color specified in the .INI file. Change that, if necessary, to make the display background blend into your desktop colors. The display will obscure the icons or other windows beneath it, there is no cure for that on those operating systems. If you find the display too obtrusive, just reduce its height in the .INI file.
The time estimate calculations are based on finer hardware input than those used by the built-in Windows battery icon (namely, perthousands instead of percents). This approach allows the program to be much more responsive, to start displaying acceptable time estimates faster. On notebooks where the hardware doesn't provide data with this granularity, this can lead to fluctuating display: the display bar will constantly rise (the hardware input remains constant while time elapses, fooling the program into thinking that the battery reserve will be sufficient for a longer total time), then drop suddenly as the battery capacity level changes abruptly, then start rising again. In those cases, the refresh frequency of the display should be decreased in the INI file.
The program is customizable but not everything is available in the Settings dialog. It leaves a PowerDisplay.ini in the Windows directory, you can change the vertical size of the display or the background color there (start the program once and exit it, this will create the .ini file with default values; then you can change those).
You can also specify the usual time it takes for the battery to be charged and discharged (defaulting to 1.5 and 3 hours, respectively). This value is only used to make the rough estimate shown during the initial 0.2% period a little bit more realistic, it is ignored otherwise.
The entries in the .INI file are as follows:
[Settings]
Horizontal = X co-ordinate of the display rectangle (in pixels; defaults to 0)
Vertical = Y co-ordinate of the display rectangle (in pixels; defaults to 0)
Width = width of the display rectangle (in pixels)
Height = height of the display rectangle (in pixels; defaults to one third of the height of the small window caption)
Sections = number of 30-minute sections in the display
[Background]
R, G, B = RGB color components of the background (0-255 each; only used on Win98 and NT 4, ignored on 2000 and XP)
[UsualTime]
Charge =usual time required to charge the battery fully (in seconds; defaults to 1.5 hours)
Discharge = usual time required to discharge the battery fully (in seconds; defaults to 3 hours)
[Display]
RefreshPeriod = period between display refreshes (in seconds; defaults to 5 sec)
The utility can be downloaded in a .zip archive (10,527 bytes). Just start the executable inside (23,072 bytes), or copy it into your Startup folder if you want to have it started automatically with your system. It does put an icon into the system tray but this doesn't serve as a display any more, just a place where you can click to bring up a small menu with only two choices: a Settings dialog and a way to shut down the program.
In the Settings dialog, you can decide where the display will appear on the screen (look out for a moving selection rectangle as you move the horizontal or vertical slider).