如果您想编辑并制作自己的 .Xmodmap 键盘布局定义,我将解释 .Xmodmap 文件中的一行,以明确您应该做什么。
此解释可用于所有键码。例如,以下行
keycode 0x11 = 8 asterisk aacute 8
(注意:键码 0x11 来源于 “xkeycaps” 实用程序;您也可以使用 X Window “xev” 实用程序来探索键盘难题。)
表示第一对,默认的一对,(数字 “8” 和 “asterisk”)在您按下键码 0x11(“8”)时将显示数字 “8”,在按下 “shift” 键时将显示 asterisk。按下 Scroll Lock 键后,还有另一个定义:ISO_NEXT_GROUP,这意味着当您按下默认的 “8” 键时,不会显示 “8”,而是显示 aacute (�);当您按下 “shift” 键时,将显示数字 “8”。因此,如果您更改 “aacute” 和 “8”,那么您放入 “aacute” 和 “8” 位置的任何内容都将被显示,例如
keycode 0x11 = 8 asterisk semicolon colon
将在您按下 Scroll Lock 键后,在您的 0x11 键码中给出 “semicolon” 和 “colon”。
ISO_NEXT_GROUP 由另一行定义。如果未定义此行,您将只能使用两个定义(“8” 和 “asterisk”) - 请查看我的 .Xmodmap 文件。如果您删除 ISO_NEXT_GROUP(右侧的下一对定义),您将只有一个键盘定义组(“8” 和 “asterisk”)。编辑 .Xmodmap 文件时要小心。您不得删除启用 Scroll Lock 功能的定义,除非您知道自己在做什么(或者您通过右 Alt 键映射第二个键盘)。这些行例如
keycode 0x4e = ISO_Next_Group
add mod5 = ISO_Next_Group,
等等。您还必须记住 Unix 是区分大小写的。如果您想了解更多关于键码的信息,请安装 “xkeycaps” 包或使用 “xev”。
以下 .Xmodmap 示例文件包含两组键盘定义,您可以将其用作默认或 XKB 键盘选择的补充。您可以将此文件用作构建自己的键盘映射的示例。此文件需要根据您的特定目的进行编辑,此处仅作为提示。如果您将 “y Y” 等字母更改为 “t T”,那么在您通常有 “y Y” 键的键盘位置,您将拥有 “t T” 等。因此,您可以看到,通过这种方式,您可以几乎完全控制您的键盘 - 这在 Microsoft Windows 操作系统中只能通过特殊且肯定昂贵的程序才能实现。使用 Scroll Lock 键在第一组和第二组键定义之间切换。 _______________________cut_here_________________________
keycode 0x09 = Escape
keycode 0x43 = F1 F11 F1 Multi_key
keycode 0x44 = F2 F12 F2 F12
keycode 0x45 = F3 F13 F3 F13 idiaeresis
keycode 0x46 = F4 F14 F4 F14 mu yen
keycode 0x47 = F5 F15 F5 F15 guillemotright guillemotleft
keycode 0x48 = F6 F16 F6 F16 ograve
keycode 0x49 = F7 F17 F7 dead_abovedot oacute
keycode 0x4A = F8 F18 F8 dead_breve acute
keycode 0x4B = F9 F19 F9 dead_cedilla ugrave
keycode 0x4C = F10 F20 F10 dead_ogonek
keycode 0x5F = F11 F21 dead_acute dead_caron
keycode 0x60 = F12 F22 dead_abovering dead_diaeresis
keycode 0x6F = Print Execute dead_iota
keycode 0x4E = ISO_Next_Group
keycode 0x6E = Pause
keycode 0x31 = grave asciitilde semicolon dead_diaeresis
keycode 0x0A = 1 exclam plus 1
keycode 0x0B = 2 at lcaron 2
keycode 0x0C = 3 numbersign scaron 3
keycode 0x0D = 4 dollar ccaron 4
keycode 0x0E = 5 percent tcaron 5
keycode 0x0F = 6 asciicircum zcaron 6
keycode 0x10 = 7 ampersand yacute 7
keycode 0x11 = 8 asterisk aacute 8
keycode 0x12 = 9 parenleft iacute 9
keycode 0x13 = 0 parenright eacute 0
keycode 0x14 = minus underscore equal percent
keycode 0x15 = equal plus dead_acute dead_caron
keycode 0x33 = backslash bar ncaron parenright
keycode 0x16 = BackSpace
keycode 0x6A = Insert
keycode 0x61 = Home
keycode 0x63 = Prior
keycode 0x4D = Num_Lock Pointer_EnableKeys
keycode 0x70 = KP_Divide slash
keycode 0x3F = KP_Multiply asterisk
keycode 0x52 = KP_Subtract minus
keycode 0x17 = Tab ISO_Left_Tab
keycode 0x18 = q Q
keycode 0x19 = w W
keycode 0x1A = e E
keycode 0x1B = r R
keycode 0x1C = t T
keycode 0x1D = y Y z Z
keycode 0x1E = u U
keycode 0x1F = i I
keycode 0x20 = o O
keycode 0x21 = p P
keycode 0x22 = bracketleft braceleft uacute slash
keycode 0x23 = bracketright braceright adiaeresis parenleft
keycode 0x24 = Return
keycode 0x6B = Delete
keycode 0x67 = End
keycode 0x69 = Next
keycode 0x4F = KP_Home 7 KP_Home
keycode 0x50 = KP_Up 8
keycode 0x51 = KP_Prior 9
keycode 0x56 = KP_Add plus
keycode 0x42 = Caps_Lock
keycode 0x26 = a A
keycode 0x27 = s S
keycode 0x28 = d D
keycode 0x29 = f F
keycode 0x2A = g G
keycode 0x2B = h H
keycode 0x2C = j J
keycode 0x2D = k K
keycode 0x2E = l L
keycode 0x2F = semicolon colon ocircumflex quotedbl
keycode 0x30 = apostrophe quotedbl section exclam
keycode 0x53 = KP_Left 4
keycode 0x54 = KP_Begin 5
keycode 0x55 = KP_Right 6
keycode 0x32 = Shift_L ISO_Next_Group
keycode 0x34 = z Z y Y
keycode 0x35 = x X
keycode 0x36 = c C
keycode 0x37 = v V
keycode 0x38 = b B
keycode 0x39 = n N
keycode 0x3A = m M
keycode 0x3B = comma less comma question
keycode 0x3C = period greater period colon
keycode 0x3D = slash question minus underscore
keycode 0x3E = Shift_R
keycode 0x62 = Up
keycode 0x57 = KP_End 1
keycode 0x58 = KP_Down 2
keycode 0x59 = KP_Next 3
keycode 0x6C = KP_Enter Return
keycode 0x25 = Control_L ISO_Next_Group
!keycode 0x40 = Alt_L Meta_L
keycode 0x40 = Meta_L Alt_L
keycode 0x41 = space
keycode 0x71 = Alt_R Meta_R
keycode 0x6D = Control_R
keycode 0x64 = Left
keycode 0x68 = Down
keycode 0x66 = Right
keycode 0x5A = KP_Insert 0
keycode 0x5B = KP_Delete period
!keysym Alt_L = Meta_L
!keysym F12 = Multi_key
clear Shift
!clear Lock
clear Control
clear Mod1
clear Mod2
clear Mod3
clear Mod4
clear Mod5
add Shift = Shift_L Shift_R
add Control = Control_L Control_R
!add Mod1 = Alt_L Alt_R
add Mod1 = Meta_L Alt_R
add Mod2 = Num_Lock
add Mod5 = ISO_Next_Group
!add Mod1 =
!add Mod2 = Alt_R Alt_L Mode_switch
keycode 0x73 = ISO_Next_Group
keycode 0x74 = dead_acute dead_diaeresis
keycode 0x75 = dead_caron dead_abovering
_____________________________cut_here_____________________________