Release Keyboard layout changer


Open ~/.pndXmodmap in a text editor (hidden file), that's a list of keycode changes specific for the pandora keyboard. If you google around a bit (something about xmodmap scancodes i think) you can find a list of what all keys name are. The shellscripts for the included layouts calls up predefined layouts that ships with the device.

Ok, I found the .pndXmodmap file. Copy+pasting the contents here:

Code:
keycode   9 = Escape NoSymbol Escape

keycode  10 = 1 section 1 section

keycode  11 = 2 braceleft 2 braceleft

keycode  12 = 3 braceright 3 braceright

keycode  13 = 4 asciitilde 4 asciitilde

keycode  14 = 5 percent 5 percent

keycode  15 = 6 asciicircum 6 asciicircum

keycode  16 = 7 ampersand 7 ampersand

keycode  17 = 8 asterisk 8 asterisk

keycode  18 = 9 bracketleft 9 bracketleft

keycode  19 = 0 bracketright 0 bracketright

keycode  22 = BackSpace Delete BackSpace Delete

keycode  24 = q Q q Q

keycode  25 = w W w W

keycode  26 = e E e E

keycode  27 = r R r R

keycode  28 = t T t T

keycode  29 = y Y y Y

keycode  30 = u U u U

keycode  31 = i I i I

keycode  32 = o O o O

keycode  33 = p P p P

keycode  34 = parenleft NoSymbol parenleft

keycode  35 = parenright NoSymbol parenright

keycode  36 = Return Multi_key Return

keycode  37 = Control_L NoSymbol Control_L

keycode  38 = a A a A

keycode  39 = s S s S

keycode  40 = d D d D

keycode  41 = f F f F

keycode  42 = g G g G

keycode  43 = h H h H

keycode  44 = j J j J

keycode  45 = k K k K

keycode  46 = l L l L

keycode  47 = semicolon NoSymbol semicolon

keycode  48 = apostrophe NoSymbol apostrophe

keycode  49 = grave NoSymbol grave

keycode  50 = Shift_L NoSymbol Shift_L

keycode  52 = z Z z Z

keycode  53 = x X x X

keycode  54 = c C c C

keycode  55 = v V v V

keycode  56 = b B b B

keycode  57 = n N n N

keycode  58 = m M m M

keycode  59 = comma less comma less

keycode  60 = period greater period greater

keycode  61 = slash NoSymbol slash

keycode  62 = Shift_R NoSymbol Shift_R

keycode  64 = Alt_L NoSymbol Alt_L

keycode  65 = space NoSymbol space

keycode  66 = Caps_Lock NoSymbol Caps_Lock

keycode  67 = F1 NoSymbol F1

keycode  68 = F2 NoSymbol F2

keycode  69 = F3 NoSymbol F3

keycode  70 = F4 NoSymbol F4

keycode  71 = F5 NoSymbol F5

keycode  72 = F6 NoSymbol F6

keycode  73 = F7 NoSymbol F7

keycode  74 = F8 NoSymbol F8

keycode  75 = F9 NoSymbol F9

keycode  76 = F10 NoSymbol F10

keycode  82 = minus NoSymbol minus NoSymbol

keycode  83 = Home quotedbl Home quotedbl

keycode  86 = plus NoSymbol plus NoSymbol

keycode  87 = Prior Multi_key Prior Multi_key

keycode  88 = End XF86_Switch_VT_2 End XF86_Switch_VT_2

keycode  89 = Next XF86_Switch_VT_1 Next XF86_Switch_VT_1

keycode  95 = F11 NoSymbol F11

keycode  96 = F12 NoSymbol F12

keycode 118 = Insert NoSymbol Insert

keycode 132 = yen NoSymbol yen

keycode 187 = parenleft NoSymbol parenleft

keycode 188 = parenright NoSymbol parenright

keycode 191 = acute NoSymbol acute

keycode 192 = bar NoSymbol bar

keycode 193 = underscore NoSymbol underscore

keycode 194 = numbersign NoSymbol numbersign

keycode 195 = exclam NoSymbol exclam

keycode 196 = sterling NoSymbol sterling

keycode 197 = quotedbl NoSymbol quotedbl

keycode 198 = at NoSymbol at

keycode 199 = colon NoSymbol colon

keycode 200 = dollar NoSymbol dollar

keycode 201 = EuroSign NoSymbol EuroSign

keycode 222 = question NoSymbol question

keycode 235 = Tab NoSymbol Tab


I'm still left with a lot of questions. Why are many entries entered in twice (eg. a A a A)? What does NoSymbol mean? Why are there sometimes two NoSymbols, and sometimes just one? Why do there seem to be separate keycodes for the blue (Fn) functions (well, ok, that does make things more convenient I guess)?



If I just copy + paste this into the appdata/kblayout/keymaps folder and change some of the assignments, will I be able to select it, or do I need to add some other text to the file? The existing files in the folder look like this:





Code:
./setxkbmap -layout us

xmodmap ~/.pndXmodmap


Do I need to add some of that text to the beginning of the file?
 
First two are with and without shift modifier. Next two are with and without shift modifier together with a second modifier. NoSymbols means that that combination doesn't produce a character.


The first line applies a base keymap. In this case a standard american one. Next line loads up the modmap file. If you put your modified version in appdata/kblayout/keymaps, you want to call it with xmodmap keymaps/.nameofile. I suggest you make it a dotfile to prevent it from showing up as a selectable alternative. You need a bash script to call it up with xmodmap. Just name that script to what you want it to show up as.


The reason to the separate keycodes for the fn-combination is that the fn-key acts on a lower level, and is not seen as a separate key. It moodifies the produced scancodes instead.
 
First two are with and without shift modifier. Next two are with and without shift modifier together with a second modifier. NoSymbols means that that combination doesn't produce a character.
The reason to the separate keycodes for the fn-combination is that the fn-key acts on a lower level, and is not seen as a separate key. It moodifies the produced scancodes instead.
Thanks. If the Fn-key acts on a lower level, then what is the "second modifier"? Or is it just unused on the Pandora? I'm only aware of Shift and Fn as being modifier keys.

The first line applies a base keymap. In this case a standard american one.
Where can I see a list of the "base keymaps" that are installed on the Pandora? Is it possible to add a new "base keymap"? (or would this be inadvisable?)

Next line loads up the modmap file. If you put your modified version in appdata/kblayout/keymaps, you want to call it with xmodmap keymaps/.nameofile. I suggest you make it a dotfile to prevent it from showing up as a selectable alternative.
Ok, so, hypothetically, it would look like this:



Code:
./setxkbmap -layout us

xmodmap /media/mmcblk0p1/pandora/appdata/kblayout/keymaps/.nameofile


And the .nameofile would basically be just like the .pndXmodmap file that's on the NAND, but with modified assignments?
 
Last edited by a moderator:
On some keyboards, you have a alt-gr key, that's usually the second modifier.


/usr/share/X11/xkb/keymap/xfree86 seems to cover all the installed ones (don't have my pandora, can't check.) I can't think of a easy way of adding more base ones (although by looking in the file I pointed to, you might come up with some fancy combination that fits your needs.)


You don't need the full path, as the script is running from appdata/kblayout. A relative path from appdata/kblayout should be enough. And yes, that file would just be a modmap like .pndXmodmap on NAND, but with your modifications.
 
New problem. I got everything to work as you said, except for one important thing: if I want to map a key to anything that's not in the ANSI_X3.4-1968 codeset, that mapping will simply be ignored. So my custom ".modmap" file can basically only contain characters from English. On the other hand, I can type in Russian if I have ./setxkbmap -layout ru ; but I can ONLY use that standard layout. I can't change around the order of the letters because xmodmap files seem to only be able to use ANSI (or else this program doesn't recognize others, I don't really know).


EDIT: Just thought of a possible solution... ok, so I can't ADD more base keymaps. But can I edit them? Or can that only be done with xmodmap, which only seems to accept ANSI?


Regarding keyboard shortcuts: I was hoping there could be a shortcut NOT simply to open this app, but to cycle between the different layouts within. Maybe that's impossible (though it can be done in Windows).
 
Last edited by a moderator:
Awesome! Thank you, I didn't know about those codes. Once I have everything set up, I'm going to write a guide for how to do this on the Pandorawiki. Turns out I could've done this months ago, had I had good instructions.


Cycling would be very useful if you could find a way to do it, for anyone who's multilingual I would imagine. Right now my compromise is to have this on the desktop so I can quickly reach it, but it still takes a while to open and close. Being able to cycle with just a key combination would be fantastic. (by the way, curiously, I found that Links2 doesn't support writing in Russian, though it DISPLAYS Russian text just fine. Midori does both, on the other hand).
 
Last edited by a moderator:
Ok... so here's what I have right now. Two files inside appdata/kblayout/keymaps. One is called "RU-translit", one is called ".rumodmap". Contents of the RU-translit file:



Code:
./setxkbmap -layout us

xmodmap keymaps/.rumodmap



Contents of the .rumodmap file:





The result is that I can open your keyboard layout app, choose RU-translit, and get a layout similar to the one in the image on the first page of this thread, with extra letters replacing F1-F7. You'll notice I tried to put some letters into Prior/Next/Home/End (aka ABXY), but it doesn't have any effect.


Another interesting thing (bug?) is that I can't get capital letters to work for the letters that I assigned to F1-F7 (so, keycodes 67-73). Do you know why that might be?

Code:
keycode   9 = Escape NoSymbol Escape

keycode  10 = 1 section 1 section

keycode  11 = 2 braceleft 2 braceleft

keycode  12 = 3 braceright 3 braceright

keycode  13 = 4 asciitilde 4 asciitilde

keycode  14 = 5 percent 5 percent

keycode  15 = 6 asciicircum 6 asciicircum

keycode  16 = 7 ampersand 7 ampersand

keycode  17 = 8 asterisk 8 asterisk

keycode  18 = 9 bracketleft 9 bracketleft

keycode  19 = 0 bracketright 0 bracketright

keycode  22 = BackSpace Delete BackSpace Delete

keycode  24 = Cyrillic_ya Cyrillic_YA Cyrillic_ya Cyrillic_YA

keycode  25 = Cyrillic_zhe Cyrillic_ZHE Cyrillic_zhe Cyrillic_ZHE

keycode  26 = Cyrillic_ie Cyrillic_IE Cyrillic_ie Cyrillic_IE

keycode  27 = Cyrillic_er Cyrillic_ER Cyrillic_er Cyrillic_ER

keycode  28 = Cyrillic_te Cyrillic_TE Cyrillic_te Cyrillic_TE

keycode  29 = Cyrillic_yeru Cyrillic_YERU Cyrillic_yeru Cyrillic_YERU

keycode  30 = Cyrillic_u Cyrillic_U Cyrillic_u Cyrillic_U

keycode  31 = Cyrillic_i Cyrillic_I Cyrillic_i Cyrillic_I

keycode  32 = Cyrillic_o Cyrillic_O Cyrillic_o Cyrillic_O

keycode  33 = Cyrillic_pe Cyrillic_PE Cyrillic_pe Cyrillic_PE

keycode  34 = parenleft NoSymbol parenleft

keycode  35 = parenright NoSymbol parenright

keycode  36 = Return Multi_key Return

keycode  37 = Control_L NoSymbol Control_L

keycode  38 = Cyrillic_a  Cyrillic_A Cyrillic_a  Cyrillic_A

keycode  39 = Cyrillic_es Cyrillic_ES Cyrillic_es Cyrillic_ES

keycode  40 = Cyrillic_de Cyrillic_DE Cyrillic_de Cyrillic_DE

keycode  41 = Cyrillic_ef Cyrillic_EF Cyrillic_ef Cyrillic_EF

keycode  42 = Cyrillic_ghe Cyrillic_GHE Cyrillic_ghe Cyrillic_GHE

keycode  43 = Cyrillic_che Cyrillic_CHE Cyrillic_che Cyrillic_CHE

keycode  44 = Cyrillic_shorti Cyrillic_SHORTI Cyrillic_shorti Cyrillic_SHORTI

keycode  45 = Cyrillic_ka Cyrillic_KA Cyrillic_ka Cyrillic_KA

keycode  46 = Cyrillic_el Cyrillic_EL Cyrillic_el Cyrillic_EL

keycode  47 = semicolon NoSymbol semicolon

keycode  48 = apostrophe NoSymbol apostrophe

keycode  49 = grave NoSymbol grave

keycode  50 = Shift_L NoSymbol Shift_L

keycode  52 = Cyrillic_ze Cyrillic_ZE Cyrillic_ze Cyrillic_ZE

keycode  53 = Cyrillic_ha Cyrillic_HA Cyrillic_ha Cyrillic_HA

keycode  54 = Cyrillic_tse Cyrillic_TSE Cyrillic_tse Cyrillic_TSE

keycode  55 = Cyrillic_ve Cyrillic_VE Cyrillic_ve Cyrillic_VE

keycode  56 = Cyrillic_be Cyrillic_BE Cyrillic_be Cyrillic_BE

keycode  57 = Cyrillic_en Cyrillic_EN Cyrillic_en Cyrillic_EN

keycode  58 = Cyrillic_em Cyrillic_EM Cyrillic_em Cyrillic_EM

keycode  59 = comma less comma less

keycode  60 = period greater period greater

keycode  61 = slash NoSymbol slash

keycode  62 = Shift_R NoSymbol Shift_R

keycode  64 = Alt_L NoSymbol Alt_L

keycode  65 = space NoSymbol space

keycode  66 = Caps_Lock NoSymbol Caps_Lock

keycode  67 = Cyrillic_yu Cyrillic_YU Cyrillic_yu Cyrillic_YU

keycode  68 = Cyrillic_e Cyrillic_E Cyrillic_e Cyrillic_E

keycode  69 = Cyrillic_softsign Cyrillic_SOFTSIGN Cyrillic_softsign Cyrillic_SOFTSIGN

keycode  70 = Cyrillic_sha Cyrillic_SHA Cyrillic_sha Cyrillic_SHA

keycode  71 = Cyrillic_shcha Cyrillic_SHCHA Cyrillic_shcha Cyrillic_SHCHA

keycode  72 = Cyrillic_io Cyrillic_IO Cyrillic_io Cyrillic_IO

keycode  73 = Cyrillic_hardsign Cyrillic_HARDSIGN Cyrillic_hardsign Cyrillic_HARDSIGN

keycode  74 = F8 NoSymbol F8

keycode  75 = F9 NoSymbol F9

keycode  76 = F10 NoSymbol F10

keycode  82 = minus Prior minus Prior

keycode  83 = Cyrillic_sha Cyrillic_SHA Cyrillic_sha Cyrillic_SHA

keycode  86 = plus Next plus Next

keycode  87 = Cyrillic_softsign Cyrillic_SOFTSIGN Cyrillic_softsign Cyrillic_SOFTSIGN

keycode  88 = Cyrillic_e Cyrillic_E Cyrillic_e Cyrillic_E

keycode  89 = Cyrillic_shcha Cyrillic_SHCHA Cyrillic_shcha Cyrillic_SHCHA

keycode  95 = F11 NoSymbol F11

keycode  96 = F12 NoSymbol F12

keycode 118 = Delete Insert Delete

keycode 132 = yen NoSymbol yen

keycode 187 = parenleft NoSymbol parenleft

keycode 188 = parenright NoSymbol parenright

keycode 191 = acute NoSymbol acute

keycode 192 = bar NoSymbol bar

keycode 193 = underscore NoSymbol underscore

keycode 194 = numbersign NoSymbol numbersign

keycode 195 = exclam NoSymbol exclam

keycode 196 = sterling NoSymbol sterling

keycode 197 = quotedbl NoSymbol quotedbl

keycode 198 = at NoSymbol at

keycode 199 = colon NoSymbol colon

keycode 200 = dollar NoSymbol dollar

keycode 201 = EuroSign NoSymbol EuroSign

keycode 222 = question NoSymbol question

keycode 235 = Tab NoSymbol Tab
 
By the way, just an addendum in case anyone is curious... here are the contents of that file that you said lists what base keymaps are available (I should add this info to the wiki eventually...):

Code:
// $XFree86: xc/programs/xkbcomp/keymap/xfree86,v 3.30 2003/04/03 16:34:49 dawes Exp $



default xkb_keymap "us" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "us(pc105)"		};

    xkb_geometry	{ include "pc"			};

};


// "ar" addition by Arabeyes Team, <support@arabeyes.org>

xkb_keymap "ar" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ar"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "be"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+be"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "bg"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+bg"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

// us_intl and br by Ricardo Y. Igarashi (iga@that.com.br)

xkb_keymap "br"	{

    xkb_keycodes	{ include "xfree86(abnt2)"	};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "us(pc101)+br"	};

    xkb_geometry 	{ include "pc(abnt2)"		};

};

// cz and sk keymaps by Kamil Toman (ktoman@email.cz) 

// are designed to replace old czechoslovakian and czsk keyboards

// and their prog variants. Those are now obsolete and should not be used anymore.

xkb_keymap "cz" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+cz"	};

    xkb_geometry	{ include "pc"			};

};

xkb_keymap "de"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+de"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "ch_de"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ch(de)"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "ch_fr"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ch(fr)"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "dk"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+dk"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "dvorak" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+dvorak"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "en_US" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols 	{ include "en_US(pc105)"	};

    xkb_geometry 	{ include "pc"			};

};

xkb_keymap "es"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+es"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "fr"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+fr"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "fr-latin9" {

    xkb_keycodes        { include "xfree86"             };

    xkb_types           { include "default"             };

    xkb_compatibility   { include "default"             };

    xkb_symbols         { include "en_US(pc105)+fr-latin9" };

    xkb_geometry        { include "pc"           	};

};

xkb_keymap "fr_CA"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ca"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "gb"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+gb"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "hr"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+hr"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "it"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+it"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "jp106" {

    xkb_keycodes	{ include "xfree86(jp106)"	};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "jp(jp106)"		};

    xkb_geometry	{ include "pc(jp106)"		};

};

xkb_keymap "lt"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+lt"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "lt_std"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+lt_std"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "lv"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+lv"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "mk" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+mk"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "mt" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+mt"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "no"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+no"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "pl"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+pl"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "pt"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+pt"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

// ro: additions by Cristian Gafton, <gafton@redhat.com>

xkb_keymap "ro" {

    xkb_keycodes	{ include "xfree86"			};

    xkb_types		{ include "default"			};

    xkb_compatibility	{ include "default"			};

    xkb_symbols		{ include "en_US(pc101)+ro(pc101)"	};

    xkb_geometry	{ include "pc(pc101)"			};

};

xkb_keymap "ro_microsoft" {

    xkb_keycodes	{ include "xfree86"			};

    xkb_types		{ include "default"			};

    xkb_compatibility	{ include "default"			};

    xkb_symbols		{ include "en_US(pc105)+ro(pc105)"	};

    xkb_geometry	{ include "pc(pc105)"			};

};

xkb_keymap "ru"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ru"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "se_FI"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+fi"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "se_SE"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+se"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "sl" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+si"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "sl_SI" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+si"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

// cz and sk keymaps by Kamil Toman (ktoman@email.cz) 

// are designed to replace old czechoslovakian and czsk keyboards

// and their prog variants. Those are now obsolete and should not be used anymore.

xkb_keymap "sk" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+sk"	};

    xkb_geometry	{ include "pc"			};

};

// Additions by Emil Soleyman-Zomalan, <emil@nishra.com>

xkb_keymap "syr" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default" 		};

    xkb_symbols		{ include "en_US(pc105)+syr"	};

    xkb_geometry	{ include "pc(pc102)"		};

};    

xkb_keymap "th"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+th"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "th_tis"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+th_tis"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "th_pat"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+th_pat"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "tr" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+tr"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "uk" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+uk)"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "us_flexpro" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "us(pc105)"		};

    xkb_geometry	{ include "keytronic(FlexPro)"	};

};

// us_intl and br by Ricardo Y. Igarashi (iga@that.com.br)

// us_intl means standard us keyboard plus dead_keys symbols

// these keyboards are very popular in Brazil

xkb_keymap "us_intl" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "us(pc101)+us(intl)"	};

    xkb_geometry	{ include "pc"			};

};

xkb_keymap "us_microsoft" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "us(pc105)"		};

    xkb_geometry	{ include "microsoft"		};

};


xkb_keymap "uz" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+uz"	};

    xkb_geometry	{ include "pc(pc102)"		};

};


# svu: compatibility keymaps, based on variants

xkb_keymap "cz_qwerty" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+cz(qwerty)"	};

    xkb_geometry	{ include "pc"			};

};

xkb_keymap "de_CH"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ch(de)"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "fr_CH"	{

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+ch(fr)"	};

    xkb_geometry 	{ include "pc(pc102)"		};

};

xkb_keymap "mt_us" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+mt(us)"	};

    xkb_geometry	{ include "pc(pc102)"		};

};

xkb_keymap "sk_qwerty" {

    xkb_keycodes	{ include "xfree86"		};

    xkb_types		{ include "default"		};

    xkb_compatibility	{ include "default"		};

    xkb_symbols		{ include "en_US(pc105)+sk(qwerty)"	};

    xkb_geometry	{ include "pc"			};

};


I've narrowed down the problem with the F1-7 capital letters a bit. It DOES work if I use the SHIFT that's on the keyboard, but not if I use the left shoulder button (which does, however, work properly for all the other keys).


EDIT: Do you think it might be a good idea for next release to include a documentation file, and put in some basic instructions such as those I just used to create a custom keymap?
 
Last edited by a moderator:
I have no idea why capital letters on F1-F7 doesn't work. I had åäö on ¥, F11 and F12, and capital letters did work just fine.

Hm. That's true, you're a fellow swede. Följer den mappningen med själva programmet? If not, could I have it? Please? :)
 
Last edited by a moderator:
I been reading this topic and the layout changer guide with interest.

I have copied the swedish layout file and tested it.It works with the swedish characters,

But I noticed that due to the nature of the F-keys, they doesnt work with the shift key, so that you get no capital letters.

To work around this, I found that remapping the dollar and euro sign to the F11 and F12 keys, and then putting the swedish characters down to the N and M keys did solve this.

Now I try to make a norwegian layout file for my own use. I found one of the characters is ae AE ae AE will make a norwegian letter, but for the last one I dont know the correct syntax.

I tried eo and ostroke but this doesnt work. (oe did produce a similar character to ae)

Anyone know where the correct keymap codes can be found?
 
I been reading this topic and the layout changer guide with interest.

I have copied the swedish layout file and tested it.It works with the swedish characters,

But I noticed that due to the nature of the F-keys, they doesnt work with the shift key, so that you get no capital letters.

To work around this, I found that remapping the dollar and euro sign to the F11 and F12 keys, and then putting the swedish characters down to the N and M keys did solve this.

Now I try to make a norwegian layout file for my own use. I found one of the characters is ae AE ae AE will make a norwegian letter, but for the last one I dont know the correct syntax.

I tried eo and ostroke but this doesnt work. (oe did produce a similar character to ae)

Anyone know where the correct keymap codes can be found?
oslash according to  http://wiki.linuxquestions.org/wiki/List_of_Keysyms_Recognised_by_Xmodmap
 
Thanks for the info. oslash was the one I needed.

Now ÆØÅ works fine here :)

I'll attach the norwegian keyboard files here in case someone might need them.

norwegian.zip

note that the norwegian characters are mapped to Fn+ N,M and L. The $ and € are moved to F11 and F12
 

Attachments

  • norwegian.zip
    1.2 KB · Views: 165
I ran into a strange bug. Whenever I change back to default kbd layout, touchscreen becomes unresponsive and keystrokes used to change between applications/desktops (I'm using openbox) do not work. I have to suspend, resume and wait a bit before things go back to normal

I've reinstalled, stalked out dmesg, /tmp/pndrun_kblayout.out, nothing out of the ordinary

Ideas?
 
Last edited by a moderator:
I have no idea whatsoever why that would happen. All It does is setxkbmap and xmodmap o_O

Does sound like something starts pegging the CPU att full usage?
 
Back
Top