Monday, November 26, 2007

HAL patch collection (4)

Here my actual HAL patch collection. I send them already to the HAL mailing list, but they are not aproved yet (also because David isn't active/present on the list).

  • a patch to remove the Eject() methode from dm-devices. The eject command is a ioctl and not supported by dm-devices (at least on Linux). On crypto volumes you should use Teardown() instead, which do the same.
  • a patch to fix calculation of the remaining time of ACPI batteries, if they report the wrong charging state (e.g. if they report 'charged' if the battery is charging). With this patch HAL try to guess the correct state depending on the AC state and the state of the other primary ACPI batteries in the system.
  • a small fix to prevent endless loops on fdi-files with a empty rule (only a match, but nothing merged etc.).
  • two patches for the Dell brightness [1] and killswitch [2] (against hal-info) devices. With kernel 2.4.24 (or this patch) there is now a uevent if the platform device of the dcdbas module get added/removed. Attach the Dell devices now to this platform device in the HAL device tree. This should fix the problem that HAL provide the Dell devices and methodes also if the needed kernel module isn't loaded.
  • extend HAL try to get the smbios information from sysfs on startup instead of call a prober (which call dmidecode, parse the output and set the properties to HAL). If /sys/class/dmi/id isn't present it falls back to the prober.
  • small fix to ignore module and drivers uevents in HAL, since they aren't events for devices
  • a patch, needed also for the Dell devices, to remove also via fdi-files spawned devices if the parent device get removed. Currently the devices get not removed, also if they are not visible in lshal (because the parent was removed), which mean also the may started addons get not stopped.
  • two patches to add more checks: to the partutil code [3] which should prevent possible crashes and to libhal [4] to check e.g. if a given UDI is valid (should start with: /org/freedesktop/Hal/devices/)
  • extend HAL to add also drm (Direct Rendering Manager) devices to the device tree.
  • a fix to stop HAL from flood syslog with warnings if the remaining time get over 60 hours (which can happen on broken batteries)
  • small patch to fix possible segfaults if HAL get compiled without IDs (PCI/PnP/USB) support

These patches are against current HAL git. As always: you can find all my current HAL patches here, if a link to a patch doesn't work, the patch was maybe moved to this directory. The patches are already part of the HAL beta package in my openSUSE buildservice repo.

Tech Tags:

Tuesday, November 06, 2007

TabletPCs: Cellwriter

Recently I found a new cool tool for TabletPCs: Cellwriter. The developer describe it as 'a grid-entry natural handwriting input panel' and it reminds me to the input panel on the Windows XP TabletPC Edition.

It provides a way to enter text by write characters with a pen to a grid. The big advantage in comparison with e.g. tools like xstroke is: there are no limitation for the way you write a character. You can take off the pen for one character and write points or an other line. This allows to write all characters of Unicode (e.g. German umlauts or chinese). As first you have to train the tool to correctly recognize your input. For this you can use the 'Train'-dialog where you should write each char five times into the related grid.

After the user trained CellWriter, he can use it to simple input text, commands or whatever to any desktop application that has the focus. Cellwriter show as applet e.g. in the KDE Panel and can get hide/shown via click on the applet icon. You can place the window free on the desktop or dock it to Top or Bottom of the screen. The input dialog allows also to correct wrong recognized input or to simply delete input. If you finished, simply press enter to send the text to the application with the input focus.

If you prefer to enter text via a virtual keyboard, CellWriter has also a solution for this. Simply press on the Keys icon and you get a virtual keyboard. Unfortunately this works for me only if the window is docked to the screen, but I assume it is a bug. There is also some more room for improvement: I could not find a way to configure the layout of the virtual keyboard, it was always US.

Cellwriter is a relative young project. The Changelog show the initial package is from end of August 2007. But it is a great tool and work well, also if there is some room for improvements:

  • The user need to train the tool before use the first time. It would be useful to have a basic pre-trained mode, which would allow the user to simply use it from the first start (at least for basic Latin characters).
  • The keyboard need to get fixed (see above) and should support configurable key maps.
  • If CellWriter is docked it should simply roll itself up if the focus get lost (like yakuake). If Cellwriter is in not docked the window is unfortunately always on top, thats annoying.
  • It would be cool if Cellwriter would detect input areas automatically and would show a icon besides this area to pop-up the input window. Not sure if this is that simple or if this need some changes in the desktop environments, but it should be IMO possible.

Conclusion: Cellwriter is a great tool, I like it. It allows TabletPC users to get basic, but natural handwrite recognition. Simply forget xstroke, this tool is very much powerful. I have already packaged it for openSUSE 10.2, 10.3 and Factory. You can get the packages from my repository. Feel free to install and use it. We plan to add the package to the next openSUSE release.

Tech Tags:

Sunday, November 04, 2007

KPowersave 0.7.3 released

Some days ago I released the next version of KPowersave (v0.7.3). Also if this is a package is marked on as 'unstable', which mean it's from the development tree, this is a really stable version.

Here a list of the major changes since the last release:

  • new feature autodimm, which allow to reduce the brightness of the display automatically if the user get inactive (after a defined time) and dimm up if the user get active again
  • new dialog shown up 30 seconds before autosuspend call the suspend, to warn the user and allow chancel the suspend
  • new dialog to show logfiles if a suspend/resume fail and allow the user to save the log (need to get enabled per distribution, depending on the suspend solution)
  • added code to check if the current desktop session is active and handle usecases if the session get inactive (via ConsoleKit)
  • KPowersave work with new PolicyKit/ConsoleKit/HAL combination and checks if the user is privileged (for HAL >= 0.5.10 and related PolicyKit versions)
  • prepared to work also with HAL >= 0.5.10 (handle renamed policy names in HAL)
  • release/aquire org.freedesktop.Policy.Power if the session get inactive/active to allow powersaved or other active KPowersave instances to handle powermanagement
  • use now kdebug functions instead of own macros, added --dbg-trace option to allow trace function entry and leave points

The release contains also many smaller changes and lots of bugfixes and translation updates. For a complete list of changes, take a look at the package Changelog or the commit log which is part of the source.

You can download the source and rpms as always via or directly via the sourceforge project page. On are besides the source tar.bz2 already packages for these distributions (for ix86 and x86_64) available: Mandriva 2007.1/2008, openSUSE 10.2 (also for ppc) and Fedora Core 6/7/8. The package is already part of the released openSUSE 10.3.

Tech Tags: