重新映射 Caps Lock 来撰写

重新映射 Caps Lock 来撰写

因为我有时需要使用斯堪的纳维亚字母,尽管使用 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给的奇怪的名字Composeclear 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.gzDebian 上的console-tools软件包中。它可能是 Mint 下的不同文件;这是loadkeys引导脚本中调用的文件。如果您愿意,可以完整保留发行版提供的文件,使用上面的行创建一个文件,然后loadkeys /path/to/your/file.kmap/etc/rc.local.

答案2

请注意:特别是,XFCE 允许您根据设置配置 CapsLock:

在此输入图像描述

切换到“布局”选项卡,然后禁用“使用系统默认值”。在“撰写键”下,选择 Caps Lock。

这会:

  • 禁用 CapsLock LED(如果有)
  • 禁用 CapsLock 功能
  • 启用 CapsLock 作为撰写键

我以前从未见过这个选项,所以这可能适用于最近的 XFCE(我的例子是 4.16)。

相关内容