Difference between revisions of "Accents on US keyboards"

From ArchWiki
Jump to: navigation, search
m (link to our article)
Line 50: Line 50:
 
== xmodmap ==
 
== xmodmap ==
  
The {{Ic|xmodmap}} utility that is supplied with [[Xorg]] allows user to completely remap the keyboard. The following is an example configuration:
+
The {{Ic|xmodmap}} utility that is supplied with [[Xorg]] allows user to completely remap the keyboard. See [[xmodmap#Accents on US keyboards]] for more information.
 
 
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.)
 
AltGr + 6 -> dead circumflex (î, ê, etc.)
 
 
 
=== A useful utility to produce a xmodmap file ===
 
 
 
On [http://www.jwz.org/xkeycaps this page] you'll find XKeyCaps, a graphical front-end to xmodmap which makes it easier to produce an ideal xmodmap file. XKeyCaps is available from the community repository and can be installed with ''pacman'':
 
# pacman -S xkeycaps
 
 
 
=== Example xmodmap file ===
 
 
 
This is an xmodmap file which remaps keys to match the above example.
 
 
 
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_switch
 
 
 
=== What to do with the xmodmap file ===
 
 
 
To use this configuration, put it in a hidden file called .xmodmap in your home directory:
 
 
 
~/.xmodmap
 
 
 
Some desktop environments such as [[GNOME]] will automatically detect the file and ask you if you want to use it. If you are using a desktop environment or a window manager which does not do this, you will 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 ~/.xmodmap" >> .xinitrc
 
 
 
If you do not have a .xinitrc file, do this:
 
 
 
cd
 
echo "xmodmap ~/.xmodmap" > .xinitrc
 
chmod 755 .xinitrc
 

Revision as of 09:38, 13 April 2013

Typing in foreign languages such as French, Italian and German can be difficult on an American keyboard. To remedy this, Xorg provides options such as the compose key and the xmodmap utility.

XCompose

The compose key, when pressed in sequence with other keys, produces a Unicode character. E.g., in most configurations pressing <Compose> ' e produces é.

Compose keys appeared on some computer keyboards decades ago, especially those produced by Sun Microsystems. However, it can be enabled on any keyboard with setxkbmap. For example, compose can be set to right alt by running:

setxkbmap -option compose:ralt

If you want another key to be your Compose key, see /usr/share/X11/xkb/rules/base.lst at the compose: lines.

You may also edit your /etc/X11/xorg.conf.d/10-evdev.conf and change InputClass / 'evdev keyboard catchall' to look like this.

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
        Option "XkbOptions" "terminate:ctrl_alt_bksp,compose:ralt"
EndSection

Key combinations

By default, the compose key uses combinations defined in a file. The file used depends on the user's locale: an American using LC_CTYPE=en_US.UTF-8, for instance, would find the defaults in /usr/share/X11/locale/en_US.UTF-8/Compose.

Some of the default combinations are listed below:

Compose ` a : à
Compose ' e : é
Compose ^ i : î
Compose ~ n : ñ
Compose / o : ø
Compose " u : ü
Compose o c : ©
Compose + - : ±
Compose : - : ÷

However, you can define your own compose key combinations by copying the default file to ~/.XCompose and editing it. The compose key works with any of the thousands of valid Unicode characters, including those outside the Basic Multilingual Plane.

Environment variables

Some unfriendly applications (including many GTK apps) will override the compose key and default to their own built-in combinations. You can typically fix this by setting environment variables; for instance, you can fix the behavior for GTK with:

export GTK_IM_MODULE=xim

xmodmap

The xmodmap utility that is supplied with Xorg allows user to completely remap the keyboard. See xmodmap#Accents on US keyboards for more information.