Jar*_*und 6 linux x11 console keyboard-layout compose-key
因为尽管使用 US Dvorak 作为我的布局,我有时还是需要使用斯堪的纳维亚字母,所以我想使用 Caps Lock 作为组合键。(我根本不需要 Caps Lock,我不是论坛巨魔)
怎样才能做到这一点?
将 Linux Mint 17 与 xfce 结合使用,如果这有所不同的话。
作为记录,我是这台 PC 的唯一用户,并且希望将其设置为系统默认值,主要是在 xorg 中,但如果这不是太多苦差事,也可以在 tty 中使用。
Gil*_*il' 12
xev从终端运行程序以查看密钥发送的CapsLock密钥代码。这是与按键对应keycode的KeyPress event行的第三行之后的数字。在 PC 上,密钥代码是 66。
创建一个.Xmodmap在您的主目录中调用的文件并添加该行
keycode 66 = Mode_switch
clear Lock
Run Code Online (Sandbox Code Playgroud)
Mode_switch是 X11 赋予的奇怪名称Compose。clear Lock有必要避免键偶尔像 Caps Lock 一样起作用,即使它不是 Caps Lock(Lock是 Caps Lock 修饰符,当修饰符声明和 keysym 声明不一致时,某些应用程序的行为会有点奇怪)。或者,您可以使用行
keysym Lock = Mode_switch
clear Lock
Run Code Online (Sandbox Code Playgroud)
这会导致当前发送 Caps Lock 的任何键被反弹到发送 Compose。无论哪种方式,您都需要安排命令
xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)
在会话开始时执行。这是一个常见的约定,但并非所有分发/桌面环境的组合都会自动执行。如果没有,请将命令添加到会话启动时执行的命令列表中(在 XFCE4 配置编辑器中,转到“会话和启动”?“应用程序自动启动”并添加该命令)。
XKB 更简洁、功能更强大,但通常比 xmodmap 使用起来更麻烦。标准配置中有一个预设可以执行您想要的操作,因此在您的情况下很容易:运行以下命令:
setxkbmap -option compose:caps
Run Code Online (Sandbox Code Playgroud)
有关如何在会话开始时运行此命令的信息,请参阅上一节。
找出密钥的CapsLock密钥代码。showkey在文本控制台上运行,按CapsLock,然后等待 10 秒钟showkey退出。在 PC 上,密钥代码是 0x3a。您需要在控制台键盘映射文件中包含以下行:
keycode 0x3a = Compose
Run Code Online (Sandbox Code Playgroud)
默认的控制台键盘映射文件位于/etc/console/boottime.kmap.gz带有console-tools软件包的Debian 上。在Mint下可能是不同的文件;这是loadkeys在引导脚本中调用的文件。如果您愿意,可以保留分发提供的文件不变,使用上面的行创建一个文件,然后loadkeys /path/to/your/file.kmap从/etc/rc.local.
| 归档时间: |
|
| 查看次数: |
2889 次 |
| 最近记录: |