Talks, ideas…

8:31 am libxklavier, xkeyboard-config

Yesterday night I had two simultaneous chat sessions, both of them were quite interesting and gave me a lot of food for thought.

In jabber, Andriy Rusin and me discussed the idea of the unified DBus interface to the keyboard switching modules in DEs. The draft is published for discussion and announced on xdg and kde-core-devel maillists.

Also, Andriy nearly (hehe:) pushed me to implement the idea I had for a long while – get rid of translations from base.xml (which is getting damn fat these days). So xkeyboard-config would install a set of .gmo files and any interested app/library (read “libxklavier”) would use gettext explicitly. Some minor (intltool?) hacking would be required – the build process should change all underscore-prefixed tags in to the “normal ones” in base.xml, without actually merging translations. Lightweight base.xml would allow me to drop slightly overengineered DBus connection between the indicator widget and g-s-d.

Second session, with Daniel Stone on IRC, pushed another idea I had boiling in my head – introduce cross-element dependencies in base.xml. That way I would be able to say “this layout is only available for that keyboard model”. Or “this option is only available for that layout”. That kind of restrictions could be analyzed by the GUI frontends and prevent “semantically broken” configurations.

5 Responses

  1. Davyd Says:

    You should totally feel free to do the same thing for GWeather’s Locations.xml, that file is huge, making it mighty slow to parse.

  2. Sergey Udaltsov Says:

    Davyd, once I figure out how to do it – may be, I’ll consider Locations as well.

  3. Данило Says:

    Why not simply use -m (multi-file) mode of intltool-merge? It will create multiple XML files each containing a single translation (and where there is no translation, it will use English): every file will be faster to parse, and much smaller (though, total size will grow a bit, but not too much).

  4. Sergey Udaltsov Says:

    Данило: How would I put that into (or

  5. Nicolas Mailhot Says:

    Before committing to a dbus interface you need to read

    App needs is not just the current layout but the current layout use (ie the current layout may be german, but the user typing english because english letters are available on the german keyboard)