Log in

No account? Create an account
X Window Keyboard and around's Journal
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in X Window Keyboard and around's LiveJournal:

[ << Previous 20 ]
Wednesday, May 26th, 2010
11:09 pm
Dreaming about XKB2
There is a standing joke dream about XKB2. That name is used to refer the idea of breaking annoying limitations of XKB (yes, in incompatible way). New X11 extension, new API.

That thing was mentioned many times. Various people looked at it. Some (very few!) people have skills and knowledge to work at it - but, as all of us, they are busy people, and that project would give nothing but a lot of PITA and a small bit of credits (among those few who can understand the whole issue), so for a moment no timeline, no promises.

There is an idea that even collecting those dreams together in one place could be handy. May be, one day, we'll find the superhero... GSoC 2011?

Anyway, here is the place to express your ideas related to XKB2. The initial set was discussed with Andriy Rysin (the guy who manages XKB stuff in KDE).
Wednesday, March 3rd, 2010
3:13 am
a new layout for both hands and one hand writing
i have created a Keyboard Layout that can be operated with both hands and optional with only one hand.

i have also packed a deb-packet, but i think it would be better to have it implemented in the X Window project.

could you add my changes from the deb-packet to the repository?

Sunday, January 3rd, 2010
3:05 pm
Level clarification needed
Hi guys,

Let me get straight to my problem. The turkmen keyboard has different letters where x, c, v and q are supposed to be. So in the turkmen keyboard layout, I used:


To get ctrl shortcuts (copy, paste, cut, quit) to work. However, after adding these, the altGr doesn't work, we use altGr to get x, c, v which we do need in international words, though not frequently.

I looked at some other layouts they have lines such as FOUR_LEVEL, FOUR_LEVEL_ALPHABETIC. I'm guessing these are the ones to be used, though, if I substitute these, the ctrl shortcuts stop working. I frankly don't understand the mechanism, I got this far with try & fail. If anyone sees my problem, please share some tips :)
Wednesday, December 23rd, 2009
12:45 am
XKB options: swap Ctrl and Super (windows) key
Hi, I haven't found a mailing list on the freedesktop wiki, so I assume this place is as good as any other place. I wanted to ask for a feature to be implemented in the xkb layouts. So, let me explain. i have a macintosh (macintel) keyboard and even if I seldom uses Mac OS X, I'd like to have a similar layout as in Mac OS X. Especially around the special keys around the spacebar (control, alt, ...) Here is how my keyboard (a laptop) looks like (on the lowest row of keys):

Here is how a desktop mac keyboard would look like on the same row.

Now, on X11, the main modifier key is Control (<LCTL>, <RCTL>), while on Mac OS X, the main modifier key is command (or the windows key, it has the same keycode. <LWIN> <RWIN>). On Mac OS X, we can choose the third level (the equivalent of AltGr on PC keyboards) using any of the alt keys alone (<LALT>, <RALT>). When used in combination with the command key (<LWIN>, <RWIN>), the third level is not chosen. I tried to create an XKB map that would be as close to this behaviour as possible, but I couldn't succeed. The problem is that i couldn't find a way that Alt would trigger the third level if pressed alone, but not if pressed with another modifier. My solution was to map the keys as follows:

key <LCTL> to symbol Super_L and modifier Mod1 (Alt)
key <RCTL> to symbol Super_R and modifier Mod1 (Alt)
key <LALT> to symbol Alt_L and modifier Mod5 (level3 shift)
key <RALT> to symbol Alt_R and modifier Mod5 (level3 shift)
key <LWIN> to symbol Control_L and modifier Control
key <RWIN> to symbol Control_R and modifier Control
The exact code I used was:

  xkb_symbols   {

      // --------------
      // Default keymap
      // --------------

      include "pc"
      include "macintosh_vndr/fr"
      include "inet(evdev)"

      // ---------------
      // Command (cmd ⌘)
      // ---------------

      include "altwin(ctrl_win)"

      // -------------------
      // Control (ctrl) keys
      // -------------------

      key <LCTL> { [ Super_L, Super_L ] };
      key <RCTL> { [ Super_R, Super_R ] };
      modifier_map Mod1 { <LCTL>, <RCTL> };

      // ----------------
      // Alt (alt ⌥) keys
      // ----------------

      include "level3(lalt_switch)"
      include "level3(ralt_switch)"
Now, my only problem is that I have to use xkbcomp keymap $DISPLAY to install the keymap. And frequently, GNOME reset the keymap to the default keymap configured within GNOME. I'd really welcome these features to be included directly in xkb layouts. Probaaly in the XKB options. I think we could have something like:

partial modifier_keys
xkb_symbols "switch_lwin_lctrl" {
    key <LWIN> { [ Control_L ] };
    key <LCTL> { [ Super_L, Super_L ] };
    modifier_map Control { <LWIN> };

partial modifier_keys
xkb_symbols "switch_rwin_rctrl" {
    key <RWIN> { [ Control_R ] };
    key <RCTL> { [ Super_R, Super_R ] };
    modifier_map Control { <RWIN> };

partial modifier_keys
xkb_symbols "ctrl_key_as_mod1" {
    modifier_map Mod1 { <LCTL>, <RCTL> };
Then we could have something like I have using those three options plus level3(lalt_switch) and level3(ralt_switch) What do you think ? Could that be included ? Thanks. Mildred
Friday, October 23rd, 2009
12:57 am
Please help me !

How can i add more than four keyboard layouts on my Ubuntu 9.04 ? Is it fixable in this version of Ubuntu or i just should wait for next version (9.10 , where i hope this bug is fixed?)

Thanx !
Wednesday, June 10th, 2009
10:10 pm
European multi-lingual layout
The CEN/MEEK worgroup is writing a recommendation for all European countries for implementing their
multilinguage keyboards. In practice these recommendations will end up being used by parties such as Microsoft when implementing their layouts.

The document has just entered the public commenting period (which ends August 28th, 2009), and the workgroup would like to urge all interested parties in the X11 community to submit their comments.

The addresses are
Friday, October 10th, 2008
3:22 pm
Intro and request for documentation.
New to keyboard wizardry, I've just spent 3 days wondering round the net trying to figure out how
my Linux (Fedora core 9) gets from keyboard events to glyphs in emacs.

Started when I decided to move to dvorak. I'm in the UK, so I found the us dvorak symbols not quite right.

I've figured it out using
$setxkbmap dvorak (and changing xkb/symbols/us)
Also by modifying /etc/X11/xorg.conf to use the uk keyboard, with the dvorak option (only two changes this time).

I'm looking for documentation (high level presently) which takes me from the xorg.conf file through to
a set of directories (how are these selected?), to matching files from

Section "InputDevice"
# keyboard added by rhpxl
# DP Oct 08. Changed.  added grp:, dvorak layout
# SkbModel was "pc105". New one selected from bast.lst
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option        "XkbModel" "microsoft"
    Option        "XkbLayout" "gb,dvorak"
    Option      "XkbOptions"    "grp:alt_shift_toggle"

through to file gb, 'variant' (if that's the right word) ?

How can I find out what values are 'valid' within an Option?

Any documentation appropriate to Fedora / Redhat would be appreciated.

Second, I'm using a variant of the microsoft 'natural' keyboard.
Marked 'natural ergonomic keyboard 4000'

$xkbprint $DISPLAY keyboard.ps

Seems not to have this model in it's repertoire.

Is there any way I could contribute this?

Tuesday, September 16th, 2008
5:52 pm
Business as usual: pre-release freeze in xkeyboard-config
Yesterday I've committed last changes to the project before the pre-release freeze. The POT file is sent to the Translation Project. No more new models/layouts/variants/options, just bugfixes - till 29.09.
Friday, September 12th, 2008
10:55 am
one more time about RMLVO
There is an interesting blog post once again explaining some details of the XKB internals. It does not go too deep, does not touch "dark corners", but can be a good starting point. Highly recommended.
Monday, April 21st, 2008
12:31 pm
ISO codes: request for review

Please help reviewing the ISO codes, submit bugs either here or in fd.o bugzilla. Thanks, thanks, thanks.
Sunday, April 13th, 2008
5:55 am
Persistent custom layouts

Hi all,

So I made a custom layout for Hungarian because I can’t stand the official one — naturally, if I want to see the right flag in KDE (and since it’s not for a new, previously unsupported language), it seems to me that the only way to get it to work is to append it to symbols/hu.

Problem: apt-get upgrade has a tendency to overwrite it whenever X11 is updated :P

So I was wondering, it would be awesome if people could define symbols in their home (say in ~/.xkb/ or something) — no need for root access, and no need to mess with files installed from the packages.

Or is this already possible? I haven’t found anything like it yet.

Thursday, March 6th, 2008
6:40 pm
Xkb and Combining Characters
I need to implement keyboard layouts for several african languages, some with complex tonal marks: acute, grave, grave with dot below, acute with dot below (these are the ones i know now, but there may be others). many of these characters do not have unicode code points of their own but they can be represented using combining diacritical marks: ie S with acute and dot below is S + U+0300 U+0323 - this is what i understand but i may be wrong so please correct me. 
My question is how do you implement such solution on linux? looking at the Compose file for en_US.utf8 it seems composing sequence characters can only be mapped to another unicode code point: eg. <Multi_Key> <U10001100> <U10001100> : "'' " U1101
How do you compose keys with multi_key or dead keys that emit more than one code point? 
Can this be implemented in the xkb keyboard layout/variant file? if so, how?

Thursday, December 13th, 2007
7:13 am
Where should I put geometry for IBM ThinkPad Z60m, to geometry/thinkpad or geometry/lenovo? Or some other place?
And how should be model named? Currently I choose thinkpadz60m, but this geometry also applies to most of 60/61 series (as I can see on photos).
Sunday, September 16th, 2007
12:18 am
The rules to follow...
These days a lot of people contribute new layouts/variants/models to xkeyboard-config. Usually it is done through the freedesktop.org's bugzilla. Quite often that contributed code requires manual "polishing" which would be unnecessary if authors would follow some simple rules. Till today, they really could not be blamed - because these rules existed only in my head. Now, these rules are published. So do not tell me you were not warned ;)

PS I still highly appreciate every contribution to the project. I just would like to make my life a bit easier. Thanks for understanding.
Saturday, September 15th, 2007
6:56 pm
grp:ctrl_shift_toggle and other hotkeys starting with ctrl+shift
When enabled group changing for ctrl+shift other hotkeys such ctrl+shift+left stop working...

Does anybody know a solution for this problem?
Monday, April 9th, 2007
6:23 pm
... libwhat?
There is probably a bit too many libraries related to the keyboard - in X Window System in general, and GNOME in particular. In order to explain their not-too-complex relationships and their places in the whole puzzle, I am giving some short reference here.


Language: C
Licence: X11
Bugzilla: Xorg

Strictly speaking, this library does not exist. Well, technically it does - but it was never meant to be public. Well, unfortunately it is de facto public now - for a long while. Why? Because there are several things in XKB which have never got proper network-transparent solution. In particular - dealing with keyboard configuration in terms of rules/models/layouts/variants/options (RMLVO). In the reference X Window System implementation, libxkbfile is handling RMLVO. It was originally designed as internal library linked to X server and several command line utilities like xkbcomp and setxkbmap. It was never network-transparent, it works with local keyboard configuration database files directly - which means it cannot properly support with remote X server (except for special environments using NFS etc).

This is one of many dark corners of X - the library which should not be used by anything but X implementation internally - but it is actually used quite often.

This library is installed as a part of standard Xorg or XFree86 installation.

Commercial implementations of X may be shipped without this library. Or have this library broken. Or have XKB implementation which does not use this library. All these scenarios create a lot of troubles for "bad" (from X Window architecture POV) applications using it. The authors of these applications usually realize this fact - but they have no choice (the only alternative for them is some kind of functional regression).
In the long run, the applications will use new version of XKB protocol which would provide network-transparent solution. But for the "old" servers, they'd have to link to libxkbfile for many years to come.


Language: C
Licence: LGPL
Bugzilla: none

This library was created in attempt to generalize (and make environment-independent) the code dealing with XKB, from the GNOME keyboard indicator applet. It contains a lot of utility code for accessing the keyboard configuration in terms of RMLVO, tracking the keyboard state etc. Its purpose is to provide a foundation for applications like keyboard layout indicators and monitors, keyboard configurators, layout-aware window managers etc.

Initially the library depended on X Window and libxml2 APIs only. Later (during the GNOME 2.15 release cycle), it was ported to gobject-based architecture.

Currently, it is used in production in GNOME only - but it is also used in ongoing KDE4 development (as optional dependency).

The library uses libxkbfile internally, it also accesses keyboard configuration registry file locally. This makes applications using it "bad citizens" in X Window world (there is standing bug report in GNOME bugzilla). Once new version of XKB is provided, the network transparency is going to be restored (for conformant X servers).

The compatibility with original X Window keyboard handling ("xmodmap") is maintained but with low priority.


Language: C
Licence: LGPL
Bugzilla: GNOME

The internal GNOME library emerged from two virtual modules in GNOME CVS: libgswitchit and libkbdraw. The merger was performed during 2.17 development cycle, the original modules were immediately declared deprecated. The library contains GNOME code related to the keyboard: keyboard indicator widget (including plugin management), keyboard drawing widget, saving/loading configuration to GConf etc.
Saturday, December 9th, 2006
1:05 pm
XKB and GTK shortcuts

I'm new to the community and, as all newbies, I'm seeking answers ;-)

My biggest problem after migration from Windpws to Linux was the keyboard in GTK-based GUI applications (Eclipse, Firefox). The problems is that while in non-latin group (for me it's 'ru'), key combinations with CTRL and ALT do not work correctly. I get CTRL+Я instead of CTRL+Z ...

Some people on the net say it's a bug in GTK, some say it's a trouble of each of the GTK-based applications. All I know it that it renders those applications barely useful!

I was wondering if there exists a pure XKB solution? The basic idea is to use latin letter if Control or Alt (Mod1) are present. What about xmodmap?

Saturday, August 12th, 2006
11:00 pm
Keyboard configuration UI (not too GNOME-specific)
There is an interesting discussion here:

Again, layouts, countries, languages - what would be the most usable representation for the user. Everyone is welcome with ideas and comments.
Saturday, July 8th, 2006
1:59 am
IRC meeting regarding the keyboard (slightly GNOME-specific)
Yesterday, there was an interesting meeting on IRC regarding the input methods. Here is its log. Big thanks to everyone.
Thursday, April 27th, 2006
10:02 am
setting layout per application
Hello! I heard it is possible to configure xkb to serve keyboard layout for each application, so for example i can type in russian in browser and keep typing in english in xterm without switching between locales each time i switch to another window.
[ << Previous 20 ]
XKeyboardConfig home page   About LiveJournal.com