因为我有时需要使用斯堪的纳维亚字母,尽管使用 US Dvorak 作为我的布局,所以我想使用 Caps Lock 作为撰写键。 (我根本不需要大写锁定,我不是论坛巨魔)
如何实现这一目标呢?
将 Linux Mint 17 与 xfce 结合使用(如果这有影响的话)。
根据记录,我是这台 PC 的唯一用户,并且希望将其作为系统默认值,主要是在 xorg 中,但如果不是太苦差事的话,也在 tty 中。
答案1
X11(经典)
xev
从终端运行程序以查看CapsLock按键发送的键码。这是与按键相对应的行的keycode
第三行之后的数字。KeyPress event
在 PC 上,密钥代码是 66。
.Xmodmap
在您的主目录中创建一个名为的文件并添加以下行
keycode 66 = Mode_switch
clear Lock
Mode_switch
是X11给的奇怪的名字Compose。clear Lock
有必要避免按键偶尔表现得像大写锁定,即使它不是大写锁定(Lock
是大写锁定修饰符,当修饰符声明和键符号声明不一致时,某些应用程序的行为有点奇怪)。或者,您可以使用以下行
keysym Lock = Mode_switch
clear Lock
这会导致当前发送 Caps Lock 的任何键都被反弹到发送 Compose。无论哪种方式,您都需要安排命令
xmodmap ~/.Xmodmap
当您的会话开始时执行。这是一个常见的约定,但并非所有发行版/桌面环境的组合都会自动执行此操作。如果您没有,请将该命令添加到会话启动时执行的命令列表中(在 XFCE4 配置编辑器中,转到“会话和启动”→“应用程序自动启动”并添加该命令)。
X11 (XKB)
XKB 更简洁、更强大,但一般使用起来比 xmodmap 更麻烦。标准配置中有一个预设可以执行您想要的操作,因此在您的情况下很容易:运行以下命令:
setxkbmap -option compose:caps
请参阅上一节,了解如何在会话启动时运行此命令。
Linux控制台
找出CapsLock钥匙的钥匙代码。跑步showkey
在文本控制台上,按CapsLock,然后等待 10 秒showkey
退出。在 PC 上,密钥代码是 0x3a。您的控制台键盘映射文件中需要包含以下行:
keycode 0x3a = Compose
默认控制台键盘映射文件位于/etc/console/boottime.kmap.gz
Debian 上的console-tools
软件包中。它可能是 Mint 下的不同文件;这是loadkeys
引导脚本中调用的文件。如果您愿意,可以完整保留发行版提供的文件,使用上面的行创建一个文件,然后loadkeys /path/to/your/file.kmap
从/etc/rc.local
.