Accents on US keyboards
I have an American keyboard but I often have to write in French, Italian, and German (in this order). Xmodmap is a utility which comes with Xorg and which is extremely flexible, to the point that you can completely remap you keyboard. I have remapped mine so that
Note: AltGr is the Alt key on the right-hand side of the space bar. AltGr + e -> é AltGr + r -> è AltGr + a -> à AltGr + u -> ù AltGr + i -> ì AltGr + o -> ò AltGr + c -> ç AltGr + [ -> « AltGr + ] -> » AltGr + ; -> dead diaresis (ï, ü, etc.)
The only difficulty is to have a good xmodmap file (see below).
A useful utility to produce xmodmap file
On this page you'll find XKeyCaps, a graphical front-end to xmodmap which is useful to produce an xmodmap file suiting your needs.
Example xmodmap file
Here's the xmodmap file I use, where keys are mapped as indicated above:
clear Mod1 clear Mod2 ! us.map with a few redefinitions keycode 9 = Escape Escape keycode 10 = 1 exclam keycode 11 = 2 at at keycode 12 = 3 numbersign keycode 13 = 4 dollar dollar keycode 14 = 5 percent currency keycode 15 = 6 asciicircum dead_circumflex keycode 16 = 7 ampersand braceleft keycode 17 = 8 asterisk bracketleft keycode 18 = 9 parenleft bracketright keycode 19 = 0 parenright braceright keycode 20 = minus underscore backslash keycode 21 = equal plus keycode 22 = BackSpace Delete keycode 23 = Tab Tab keycode 24 = q keycode 25 = w keycode 26 = e E eacute keycode 27 = r R egrave keycode 28 = t keycode 29 = y keycode 30 = u U ugrave keycode 31 = i I igrave keycode 32 = o O ograve keycode 33 = p keycode 34 = bracketleft braceleft guillemotleft keycode 35 = bracketright braceright guillemotright keycode 36 = Return keycode 37 = Control_L keycode 38 = a A agrave keycode 39 = s keycode 40 = d keycode 41 = f keycode 42 = g keycode 43 = h keycode 44 = j keycode 45 = k keycode 46 = l keycode 47 = semicolon colon dead_diaeresis keycode 48 = apostrophe quotedbl keycode 49 = grave asciitilde dead_grave keycode 50 = Shift_L keycode 51 = backslash bar keycode 52 = z keycode 53 = x keycode 54 = c C ccedilla keycode 55 = v keycode 56 = b keycode 57 = n keycode 58 = m keycode 59 = comma less apostrophe keycode 60 = period greater quotedbl keycode 61 = slash question keycode 62 = Shift_R keycode 63 = KP_Multiply keycode 64 = Alt_L Meta_L keycode 65 = space space keycode 66 = Caps_Lock keycode 67 = F1 F11 keycode 68 = F2 F12 keycode 69 = F3 F13 keycode 70 = F4 F14 keycode 71 = F5 F15 keycode 72 = F6 F16 keycode 73 = F7 F17 keycode 74 = F8 F18 keycode 75 = F9 F19 keycode 76 = F10 F20 keycode 77 = Num_Lock keycode 78 = Scroll_Lock keycode 79 = KP_7 keycode 80 = KP_8 keycode 81 = KP_9 keycode 82 = KP_Subtract keycode 83 = KP_4 keycode 84 = KP_5 keycode 85 = KP_6 keycode 86 = KP_Add keycode 87 = KP_1 keycode 88 = KP_2 keycode 89 = KP_3 keycode 90 = KP_0 keycode 94 = less greater bar keycode 95 = F11 F11 keycode 96 = F12 F12 keycode 108 = KP_Enter keycode 109 = Control_R keycode 112 = KP_Divide keycode 113 = Mode_switch keycode 114 = Break keycode 110 = Find keycode 98 = Up keycode 99 = Prior keycode 100 = Left keycode 102 = Right keycode 115 = Select keycode 104 = Down keycode 105 = Next keycode 106 = Insert keycode 116 = Mode_switch ! right windows-menu key, redefined as Compose key keycode 117 = Multi_key add Mod1 = Alt_L add Mod2 = Mode_switc
What to do with the xmodmap file
If you want to do use the file posted above, put it in a hidden file called xmodmaprc in your home directory:
Some desktop environments, for instance Gnome, will automatically detect the file and ask you if you want to use it. If you're using a desktop environment or a window manager which does not do this, you'll have to add a line to an executable file called .xinitrc, located in your home directory. This file contains a list of commands that are executed after you log in.
If you already have a .xinitrc file, type these commands in a terminal:
cd echo "xmodmap ~/.xmodmaprc" >> .xinitrc
If you don't have a .xinitrc file, do this:
cd echo "xmodmap ~/.xmodmaprc" > .xinitrc chmod 755 .xinitrc