我是一个 Ubuntu 10.04 用户,正在寻找一种方法,例如,+
当我按住Windows键(我认为它Super在 Linux 世界中称为)并按下K键时让我的计算机键入一个字符。我需要这个在所有应用程序中工作。(我是一个打字障碍的人,我需要使 Ubuntu 适应我的需要。)谢谢!
我是一个 Ubuntu 10.04 用户,正在寻找一种方法,例如,+
当我按住Windows键(我认为它Super在 Linux 世界中称为)并按下K键时让我的计算机键入一个字符。我需要这个在所有应用程序中工作。(我是一个打字障碍的人,我需要使 Ubuntu 适应我的需要。)谢谢!
由于您要重新映射所有应用程序的键,因此最好的选择是使用 xmodmap。它灵活且功能强大,但需要在终端中输入一些命令。
步骤 0 - 方法
X-server 管理键盘和所有键事件,并将其转换为所有应用程序的键码。
该方法是将修改键(如 Super 或 Right Alt 键)映射为“模式切换”键,并告诉 X-server 根据是否在按住模式键的情况下按下某个键来生成不同的代码。
默认情况下,没有定义模式切换键,并且所有键都配置为在按下或不按下模式切换时生成相同的代码。这很好,因为这意味着除了您明确覆盖的键之外,没有其他键的行为会有所不同或需要额外的配置。
但是,我希望您考虑使用 Right Alt 键作为模式切换,特别是如果您还使用 compiz,因为一些 compiz 插件映射超级键快捷方式(例如,窗口选择器、移位切换器等)。如果您不热衷于通过键盘控制 compiz,那么 Super 就可以了。
对于 xmodmap,超级键被标识为 Super_L 或 Super_R。您需要选择一个用作模式切换键。或者,右 alt 键是 Alt_R。您可以通过运行 xev 并按键盘上的必要键来确认这些。有关步骤,请参阅此帖子。
第 1 步 - 设置修改器贴图
打开终端 (
Applications -> Accesories -> Terminal
) 并运行以下命令以创建具有当前键绑定的文件。我们将以此为起点。在您最喜欢的文本编辑器中打开它。
gedit curkeys.map &
在 gedit 中打开它。在文件末尾,您将看到如下几行:删除以“xmodmap: up to 4...”开头的行
编辑修改器贴图,使其看起来像这样。在每行的开头放置单词“add”,并在修饰符名称后插入“=”。然后删除括号和逗号中的代码。另请注意,由于它是空的,所以我已经
Mode_switch
从mod5
一行移到另一行。mod3
修改后的表格应如下所示 - 在您的情况下,实际内容将与以下内容略有不同(取决于您的键盘布局)。重新映射物理模式切换键。在末尾添加这样的一行(如果需要,将 Super_L 替换为 Super_R 或 Alt_R)。
从任何修饰符定义中删除键名 (Super_L)。对于 Super_L,这意味着将其从 mod4 行中删除。
现在,右“超级”键仍将充当普通超级键,而左键将具有特殊属性。
现在我们需要重新映射按键以产生不同的代码,无论它们是否在按住 Super_L 的同时按下。我们文件中以开头
keycode
的每一行为每个键指定 4 个键符,根据是否按下 Mod1(shift 键)和模式切换键来生成。(链接)如果我们希望 Super_L+k 按键生成一个“+”键,那么我们需要修改它以读取
最后的加号也将 Shift+Super_L+k 映射到加号,但这可以映射到其他东西。对于每个键,恰好有 1 行需要修改。编辑更多行以重新映射更多键 - 保持前 2 个条目不变以保持正常的按键行为。
保存文件并退出编辑器。
通过在终端中运行以下命令来安装键盘映射。第一个为该会话设置它,第二个使其永久用于将来的会话。
您可以通过按下修改后的键(例如 Super_L + k)立即进行测试。
第 3 步 - 添加/修改地图
安装修改后的地图后,很容易添加新键。
使用xev查找键码和键符
通过运行此命令来映射密钥对其进行测试:
<code>
<base>
用适当的值替换尖括号中的项目(如等)。备份
curkeys.map
文件。curkeys.map
并编辑相应键码的行。使用以下命令重新应用(如果您执行了第 2 步,则不需要第一个命令)
注意:1:在键盘快捷键中进行
System -> Preferences -> Keyboard Shortcuts
的修改(例如,通过 )会影响修改器映射,并且通常会在下次登录时丢失。所以请避免这种情况。注意:2:使用此方法时,我有时会收到这样的错误消息。我不知道这意味着什么,但是,这些通常是无害的。
此处提供了 xmodmap 的详细帮助。