如何将中键按下与笔记本电脑上的特定键关联?如果我点击触摸板的右上角,我可以使用中键,但我想将其与某个键关联,例如“windows”键或“menu”键。
有没有办法做到这一点?
当前答案不适用于具有经典 gnome-failsafe 桌面的 Ubuntu 11.10。我需要有人弄清楚如何为更新的 Ubuntu 版本做到这一点。
答案1
重新映射菜单关键您需要执行以下操作。
安装先决条件
安装包xkbset
:
sudo apt-get install xkbset
定义键盘布局
接下来你需要定义你使用的键盘布局。就我而言英国用于英国键盘布局或我们针对美国
setxkbmap -layout gb
注意:如果你运行
setxkbmap -query
它将为您提供以下输出 - 如果型号和布局是您的键盘,那么您使用的是正确的布局
rules: evdev
model: pc105
layout: gb
接下来定义我们将要映射的鼠标键:
xkbset m
xkbset exp =m
查找Menu密钥代码
映射Menu按键。为此,我们需要Menu按键代码。在终端运行中xev
,将鼠标移到方框内并按下Menu按键。
最终结果
在我的例子中,我的Menu键码是值 135,它将映射到鼠标按钮 2
xmodmap -e "keycode 135 = Pointer_Button2"
测试如下:
- 在终端中复制一些文本 - 启动粘贴操作
- 将鼠标悬停在标题栏上 - 窗口移至背景
综合起来:
好的,一旦我们计算出正确的密钥代码,我们就可以将它们放在一起从登录开始。
首先在主文件夹中创建一个名为remapkeys
gedit ~/remapkeys
现在复制并粘贴以下内容
#!/bin/sh
setxkbmap -layout gb
xkbset m
xkbset exp =m
xmodmap -e "keycode 135 = Pointer_Button2"
保存。赋予文件执行权限
chmod +x ~/remapkeys
然后从 Dash 搜索启动应用程序或者如果使用 Gnome Classic - 应用程序 - 其他 - 启动应用程序
添加新的启动应用程序条目
命令应该是:
bash -c "sleep 5 && ~/remapkeys"
该命令会休眠 5 秒钟,以便您的桌面在运行新脚本之前出现 - 如果您的桌面在 5 秒内没有出现(也许您使用的上网本速度很慢?)则将此超时时间增加到 10 或 15 秒。注销并登录进行测试。
答案2
首先,安装 xautomation:
sudo apt-get install xautomation
您可以使用 xte 发送中键单击事件:
xte 'mouseclick 2'
您可以在“首选项”->“键盘快捷键”(或 Unity 搜索中的“键盘快捷键”)下为其创建自定义快捷键。单击“添加”,输入名称和上述命令,然后单击“应用”。滚动到底部并设置快捷方式,就像设置其他任何操作一样。
当我尝试此操作时,我无法将操作绑定到 Windows 键。您可以尝试执行以下操作,但似乎有一个错误阻止此功能正常工作:
打开终端并运行
gconf-editor
按 Ctrl+f,选择“在键值中搜索”框,然后在搜索框中输入以下内容:
xte 'mouseclick 2'
底部窗格中应该只有一个结果。如果有更多结果,请选择名称中包含“/desktop/gnome/keybindings/custom*/action”的结果。在右上方窗格中,在“绑定”字段旁边输入“”(不带引号)。如果您得到的结果与我相同,则所有窗口外观都将更改,并且新的键绑定不会执行任何操作。将其改回原来的状态(或将其留空)并打开外观(首选项 -> 外观或 Unity 搜索下的“外观”)。这应该可以解决问题。
答案3
我想指出的是,对于其他人来说(因为我在寻找自己的鼠标时发现过几次这个问题),一些罗技鼠标有几个按钮(在我的 MX1100 上,它们默认是“DPI +/-”按钮)不会向 USB 接收器发送信号。
可以覆盖此设置并让鼠标向鼠标驱动程序报告按钮按下情况,但该过程并不方便用户使用(甚至难以复制,因为每个鼠标似乎都不同)。“lomoco”软件包显然适用于某些用户,但有一段时间没有针对较新的鼠标进行更新。