keyboard layout

Questions about hardware, drivers and peripherals
Forum rules
Before you post read how to get help. Topics in this forum are automatically closed 6 months after creation.
Locked
AndyVIII

keyboard layout

Post by AndyVIII »

I am using Mint 8 on a laptop with US keyboard

to make my life comfortable, I would like to switch off capslock, and
to add some special characters, as äöü ÄÖÜ and some other useful stuff ...

So search and find out: use xmodmap :D

But third level does not behave as specified... :?
after long search, find out:
if the original symbols file ( /usr/share/X11/xkb/symbols/us ) does not
make use of third/ fourth level, then xmodmap will also not use them correctly...

so I changed the original file /usr/share/X11/xkb/symbols/us
and used xmodmap to switch off capslock, and now I am happy

BUT: as I find out, many user have the same needs and the problem..
so does anybody know more about how to to this easy???
and perhaps more correct...
Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 1 time in total.
Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.
remoulder
Level 17
Level 17
Posts: 7621
Joined: Fri May 09, 2008 1:14 pm

Re: keyboard layout

Post by remoulder »

xkeycaps is a gui for this may not make it easier.
[Edit] your original post and add [SOLVED] once your question is resolved.

“The people are my God” stressing the factor determining man’s destiny lies within man not in anything outside man, and thereby defining man as the dominator and remoulder of the world.
AndyVIII

Re: keyboard layout

Post by AndyVIII »

still not really solved, and still waiting on advice of a real expert!!
what I did in the meantime:
coming back to the clean way, let the original files untouched, in:
/usr/share/X11/xkb/symbols/

instead, use a /home/xx/.xmodmap file, where only the changes need to be declared.

remember, position <1> to <4> means:
<1> <key>
<2> <shift-key>
<3> <"Mode_switch"-key>
<4> <shift-"Mode_switch"-key>
as "Mode_switch" I define Alt_L and Alt_R, and I disable 66 = "caps lock"

now in xubuntu it works as expected, example:
keycode 26 = e E EuroSign cent ...
keycode 64 = Mode_switch Alt_L Meta_L Alt_L Meta_L Alt_L
keycode 66 = NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
keycode 108 = Mode_switch ISO_Level3_Shift ISO_Level3_Shift

But in Mint must be as below (x means don't care):
keycode 26 = x x e E x x EuroSign cent
keycode 64 = Mode_switch Mode_switch Mode_switch Mode_switch
keycode 66 = NoSymbol NoSymbol NoSymbol NoSymbol NoSymbol
keycode 108 = Mode_switch Mode_switch Mode_switch Mode_switch

So my big question: WHY ???
why there are the don't care position in Mint,
or how to do it so it works as specified???
remoulder
Level 17
Level 17
Posts: 7621
Joined: Fri May 09, 2008 1:14 pm

Re: keyboard layout

Post by remoulder »

Good luck in finding a 'real' expert.
[Edit] your original post and add [SOLVED] once your question is resolved.

“The people are my God” stressing the factor determining man’s destiny lies within man not in anything outside man, and thereby defining man as the dominator and remoulder of the world.
AndyVIII

Re: keyboard layout

Post by AndyVIII »

sorry remolder, but I did not make reference to your post!

I tried xkeycaps of coarse! The problem there is:
it offers a big choice of different keyboards, and
if you are not able to choose the right one as yours,
then any change will end up in a disaster...
Or I maybe, misunderstood something...

But as I am not able to fully understand xmodmap,
I was hoping to find someone (the real expert) which
can explain what I make wrong...
AndyVIII

Re: keyboard layout: now superfluous

Post by AndyVIII »

after upgrade to Mint 9 this post become superfluous:
the xmodmap now behaves as specified!

Only difficult to understand: what happened before,
why this strange behavior???
AndyVIII

Re: keyboard layout

Post by AndyVIII »

Finally I can find an easy and perfect solution for my needs:

I use a local keyboard with us and Thai layout.
The us layout is ok for me, but I like to have some
additional german characters like "äöü ÄÖÜ"
This can easy be implemented with xmodmap, but if
you switch to the second layout, you will observe
some strange results.

After plenty of googling, I found an IMHO easy and
perfect solution: create and use your custom keyboard!

1) /usr/share/X11/xkb/symbols/
choose your nearest preference, in my case "us"
and save it with a new name: "us-de"

2) delete anything, which you don't need, and change,
what ever you like. My file for "us-de":
-----------
default
xkb_symbols "basic" {

name[Group1]= "ASCII with german";

// Alphanumeric section
key <TLDE> { [ grave, asciitilde ] };
key <AE01> { [ 1, exclam ] };
key <AE02> { [ 2, at, twosuperior ] };
key <AE03> { [ 3, numbersign, threesuperior ] };
key <AE04> { [ 4, dollar, onequarter ] };
key <AE05> { [ 5, percent, onehalf ] };
key <AE06> { [ 6, asciicircum, threequarters ] };
key <AE07> { [ 7, ampersand ] };
key <AE08> { [ 8, asterisk, oneeighth ] };
key <AE09> { [ 9, parenleft ] };
key <AE10> { [ 0, parenright, degree ] };
key <AE11> { [ minus, underscore ] };
key <AE12> { [ equal, plus ] };

key <AD01> { [ q, Q ] };
key <AD02> { [ w, W ] };
key <AD03> { [ e, E, EuroSign, cent ] };
key <AD04> { [ r, R ] };
key <AD05> { [ t, T ] };
key <AD06> { [ y, Y ] };
key <AD07> { [ u, U, udiaeresis, Udiaeresis ] };
key <AD08> { [ i, I ] };
key <AD09> { [ o, O, odiaeresis, Odiaeresis ] };
key <AD10> { [ p, P ] };
key <AD11> { [ bracketleft, braceleft ] };
key <AD12> { [ bracketright, braceright ] };

key <AC01> { [ a, A, adiaeresis, Adiaeresis ] };
key <AC02> { [ s, S ] };
key <AC03> { [ d, D ] };
key <AC04> { [ f, F ] };
key <AC05> { [ g, G ] };
key <AC06> { [ h, H ] };
key <AC07> { [ j, J ] };
key <AC08> { [ k, K ] };
key <AC09> { [ l, L ] };
key <AC10> { [ semicolon, colon ] };
key <AC11> { [ apostrophe, quotedbl ] };

key <AB01> { [ z, Z ] };
key <AB02> { [ x, X ] };
key <AB03> { [ c, C ] };
key <AB04> { [ v, V ] };
key <AB05> { [ b, B ] };
key <AB06> { [ n, N ] };
key <AB07> { [ m, M, mu ] };
key <AB08> { [ comma, less ] };
key <AB09> { [ period, greater ] };
key <AB10> { [ slash, question ] };

key <BKSL> { [ backslash, bar ] };
key <CAPS> { [ VoidSymbol ] };

// End alphanumeric section
include "level3(ralt_switch)"
};
-----------

3) /usr/share/X11/xkb/rules/evdev.xml
Modify "evdev.xml" so your custom keyboard will be recognised:
search for "</layoutList>" and
add the following just previous to "</layoutList>"
-----------
<layout>
<configItem>
<name>us-de</name> <!-- 1) -->
<shortDescription>US-DE</shortDescription> <!-- 2) -->
<description>ASCII with german</description> <!-- 3) -->
<languageList><iso639Id>eng</iso639Id></languageList> <!-- 4) -->
</configItem>
</layout>
-----------
<!-- 1) --> "us-de" is the filename of the new keyboard layout in X11/xkb/symbols
<!-- 2) --> "US-DE" this will appear eg. in the indicator applet
<!-- 3) --> "ASCII with german" must coincide with the text at the begin of your file:
name[Group1]= "ASCII with german";
This text will also appear as comment under "Layouts"
<!-- 4) --> if you choose "eng" your layout will be shown in
System->Preferences->Keyboard->tab Layouts->Add->By Language->English
under "Variants"

4) log out and log in again, and check
System->Preferences->Keyboard->tab Layouts->Add->By Language->English
if you can find your custom layout, happy! You are ready to go!
Select your first and second layou here. Add a keyboard switcher applet
here under "options" you can also disable the CapsLock key.

5) the default keyboard will annoy you and sometime reappear...
If you like to get rid of this, edit
/var/cache/gdm/$USER/dmrc
and place one of the existing layout as your new default:

[Desktop]
Language=en_US.utf8
Layout=us-de

then reboot..

I post this, as it is easy, but difficult to find out, and perhaps
to make somebody happy...
Feedback and hints to improve are welcome!
Locked

Return to “Hardware Support”