我在 Macbook Pro 上使用 Kubuntu Linux 12.04,并且希望能够使用 Command/Meta 键来执行复制、粘贴和全选等常见快捷键。
尝试过的解决方案:
- 在 KDE 的系统设置 > 快捷键和手势 > 标准键盘快捷键中重新映射复制、粘贴、全选等
- 问题:大多数应用程序似乎都会忽略这些快捷方式。我测试的所有网络浏览器都继续等待Ctrl我表示希望使用该Meta密钥的密钥。由于无法找到可用的网络浏览器,我没有尝试任何其他应用程序。
- 测试环境:Firefox、Chromium、Rekonq、Arora、Konqueror。
- 交换Meta与Ctrl 使用 xmodmap。
- 问题:终端仿真器将需要使用该Meta键来代替Ctrl键盘中断、大多数 Emacs 绑定以及各种 CLI 应用程序中无数其他绑定等命令的键。
考虑的解决方案:
- 单独更改 GUI 应用程序中的常用快捷键。不幸的是,能够更改复制、粘贴和全选的绑定似乎很少。
- 仅更改 Konsole(或另一个终端仿真器)的 Ctrl 修饰符。理想情况下,这会导致Meta-x产生击键Ctrl-x反之亦然。然而,我找不到任何方法来实现这一点。
- 使用stty更改终端键命令的绑定以使用元,并另外为所有其他 CLI 应用程序编写自定义配置文件。这需要付出不合理的努力才能完成。
我对这个简单的修改似乎需要付出多少努力感到非常惊讶,并且我将感谢任何可以提供的帮助来找到合理的工作解决方案。
答案1
每次在键盘上按下一个键时,Linux 内核都会生成一个代码。该代码与keycodes
定义随后显示的图形的表格进行比较。
这个过程很复杂Xorg
,它启动了自己的表keycodes
。每个都keycode
可以属于一个keysym
。 Akeysym
就像一个函数,通过按键启动。Xmodmap
允许您编辑这些keycode-keysym
关系。
要使用以下命令获取当前的键盘映射表Xmodmap
:
xmodmap -pke
这将以以下格式打印出完整的表格:
keycode <keycode#> = <boundkey> <boundkey>
前移动任何内容时,请务必使用备份原始keycode
布局。xmodmap -pke >> $HOME/Xmodmap.orig
这会将文件放置Xmodmap.orig
在您的用户主目录中。
提示:还有一些预定义的键码(例如XF86AudioMute
、XF86Mail
)。这些键码可以在以下位置找到:/usr/include/X11/XF86keysym.h
您还可以编辑按键:Shift
、Ctrl
、Alt
和Super
(始终存在左键和右键 ( Alt_R=AltGr
))。
这是一个快的如果您想交换CTRL
和Super
(Windows 键),您的配置将是什么样子的示例:
keycode 255 =
!add Shift = Shift_L Shift_R
!add Lock = Caps_Lock
add Control = Super_L Super_R
!add Mod1 = Alt_L Alt_R
!add Mod2 = Mode_switch
!add Mod3 =
add Mod4 = Control_L Control_R
!add Mod5 =
(!
用于注释/忽略该行。仅在本示例中Super
,Control
键会进行调整)
该配置将被保存$HOME/.Xmodmap
并加载
xmodmap ~/.Xmodmap
您也可以通过 xwindows 将其添加到您的~/.xinitrc
如果事情变得棘手,你可以随时恢复到Xmodmap.org
.
依赖这些键的应用程序的任何绑定也将被移动。因此,请确保所有内容都保持绑定状态,这样您就不会丢失任何功能。这是一场拔河比赛。