在键盘上切换 Caps Lock 和 Control 键(假设您使用键位映射 0-15;使用 dumpkeys | head -1
检查)
% loadkeys
keymaps 0-15
keycode 58 = Control
keycode 29 = Caps_Lock
%
仅在 X 环境下切换它们
% xmodmap .xmodmaprc
其中 .xmodmaprc
文件包含以下行
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_L
关于键位编号是怎么回事?退格键在 Linux 下是 14,在 X 下是 22?好吧,编号最好被认为是任意的;可以使用 showkey(1) 找到键的 Linux 编号,使用 xev(1) 找到 X 编号。通常 X 编号会比 Linux 编号大 8。人们还喜欢更改功能键的绑定。假设您想让 F12 产生字符串 “emacs ”。那么
% loadkeys
keycode 88 = F12
string F12 = "emacs "
%
这样做就可以了。更明确地说,步骤如下:(i)使用 showkey(1) 查找要重新映射的键的键码。(ii)保存当前的键位映射,复制一份并编辑它
% dumpkeys > my_keymap
% cp my_keymap trial_keymap
% emacs trial_keymap
% loadkeys trial_keymap
%
可以通过查看 dumpkeys
的输出来猜测表的格式,并在 keymaps(5) 中有文档说明。当新的键位映射按预期工作时,您可以添加一个调用
loadkeys my_new_keymap
在 /etc/rc.local
或类似文件中,以便在启动时自动执行它。请注意,更改修饰键是很棘手的,新手很容易陷入只有专家才能解决的境地。键位映射的默认目录是 /usr/lib/kbd/keymaps
。键位映射的默认扩展名是 .map
。例如,loadkeys uk
可能会加载 /usr/lib/kbd/keymaps/i386/qwerty/uk.map
。(对于 kbd-0.95 及更早版本,这将是 /usr/lib/kbd/keytables
和 /usr/lib/kbd/keytables/uk.map
。)
(在我的机器上)/dev/console
是 /dev/tty0
的符号链接,内核将 /dev/tty0
视为当前 VT 的同义词。XFree86 1.3 更改了 /dev/tty0
的所有者,但在完成后不会重置它。因此,loadkeys
或 dumpkeys
可能会失败,因为其他人拥有 /dev/tty0
;在这种情况下,您可以先运行 X。请注意,当不在控制台(且不是超级用户)时,您无法更改键盘映射。
“可以使 Shift、Ctrl 和 Alt 键表现为切换键吗?”
是的,在输入
% loadkeys
keymaps 0-15
keycode 29 = Control_Lock
keycode 42 = Shift_Lock
keycode 56 = Alt_Lock
%
左边的 Control、Shift 和 Alt 键将充当切换键。涉及的数字由 showkey 显示(通常左和右 control、shift 和 alt 分别是 29、97、42、54、56、100),函数是 Control_Lock、Shift_Lock、Alt_Lock、ALtGr_Lock。“那么“粘滞”修饰键呢?”
自 1.3.33 版本以来,内核了解“粘滞”修饰键。这些键作用于下一个按下的键。因此,以前需要 3 个符号的序列 Shift_Lock a Shift_Lock 来键入“A”,现在可以使用 2 个符号的序列 SShift_Lock a。您可以输入
% loadkeys
keymaps 0-15
keycode 54 = SShift
keycode 97 = SCtrl
keycode 100 = SAlt
%
使右边的 Shift、Ctrl、Alt 成为左边键的粘滞版本。这将允许您用一只手通过三次击键来键入 Ctrl-Alt-Del。这些示例中的 keymaps 行应涵盖您正在使用的所有键位映射。您可以通过以下方式找到您正在使用的键位映射
% dumpkeys | head -1
X
环境下的粘滞键
以下文本由 Piotr Mitros 贡献。
XFree86 支持一种辅助功能选项,允许残疾用户单手打字。启用粘滞键后,用户可以按下一个修饰键(ctrl、alt、shift),然后按另一个键,而不是必须在按字母的同时按住修饰键。
要启用粘滞键,首先确保 xkb 扩展已启用(这在初始 X
服务器配置期间完成,通常默认启用)。接下来,使用 +accessx
选项运行 X
服务器。如果您使用 startx
,可以运行 startx -- +accessx
或将 +accessx
添加到 startx
脚本中的 serverargs 行。如果您使用 xdm
,请将 +accessx
添加到 /etc/X11/xdm/Xservers
中的相应服务器行。
也可以使用一些终端用户实用程序在运行的 X
服务器上启用 X
辅助功能。
启用 X
辅助功能后,连续按五次 shift 键以启用粘滞键。要禁用粘滞键,可以再次按五次 shift 键,或者在按住修饰键的同时按下一个键。
XFree86 还支持慢速键、重复键、弹跳键和声音提示。xkbcomp
可用于生成 .xkm
文件以启用这些功能。相应的 xkbcomp
命令列在 /usr/X11R6/lib/X11/xkb/compat/accessx
中。遗憾的是,确切的过程仍未记录在案。