719*_*016 9 touchpad keyboard keyboard-layout
如何将中间按钮按下连接到笔记本电脑中的特定键?如果我点击触摸板的右上角,我可以做中间按钮,但我想将它与一个键相关联,比如“windows”键或“菜单”键。
有没有办法做到这一点?
当前答案不适用于带有经典 gnome-failsafe 桌面的 Ubuntu 11.10。我需要有人弄清楚如何为更新的 Ubuntu 版本做到这一点。
fos*_*dom 11
要重新映射菜单键,您需要执行以下操作。
安装先决条件
安装包xkbset:
sudo apt-get install xkbset
Run Code Online (Sandbox Code Playgroud)
定义键盘布局
接下来,您需要定义您使用的键盘布局。在我的情况下,英国/英国键盘布局为gb,美国为我们
setxkbmap -layout gb
Run Code Online (Sandbox Code Playgroud)
注意:如果你运行
setxkbmap -query
Run Code Online (Sandbox Code Playgroud)
它将为您提供如下输出 - 如果模型和布局是您的键盘,那么您使用的是正确的布局
rules: evdev
model: pc105
layout: gb
Run Code Online (Sandbox Code Playgroud)
接下来定义我们将下一个映射鼠标键:
xkbset m
xkbset exp =m
Run Code Online (Sandbox Code Playgroud)
查找Menu密钥代码
映射Menu密钥。为此,我们需要Menu密钥代码。在终端运行中xev,将鼠标移到方块内并按下Menu键。

最终结果
在我的情况下,我的Menu键码是值 135,这将映射到鼠标按钮 2
xmodmap -e "keycode 135 = Pointer_Button2"
Run Code Online (Sandbox Code Playgroud)
测试如下:
把这一切放在一起:
好的,一旦我们计算出正确的键码,我们就可以将它们放在一起以从登录开始。
首先在您的主文件夹中创建一个名为 remapkeys
gedit ~/remapkeys
Run Code Online (Sandbox Code Playgroud)
现在复制并粘贴以下内容
#!/bin/sh
setxkbmap -layout gb
xkbset m
xkbset exp =m
xmodmap -e "keycode 135 = Pointer_Button2"
Run Code Online (Sandbox Code Playgroud)
节省。赋予文件执行权限
chmod +x ~/remapkeys
Run Code Online (Sandbox Code Playgroud)
然后从 Dash 搜索启动应用程序,或者如果使用 Gnome Classic - Applications - Other - Startup Applications
添加新的启动应用程序条目

命令应该是:
bash -c "sleep 5 && ~/remapkeys"
Run Code Online (Sandbox Code Playgroud)
该命令会休眠 5 秒以允许您的桌面在运行新脚本之前出现 - 如果您的桌面在 5 秒内没有出现(也许您使用的是慢速上网本?)然后将此超时增加到 10 或 15 秒。注销并登录以进行测试。
小智 5
首先,安装 xautomation:
sudo apt-get install xautomation
您可以使用 xte 发送一个中键事件:
xte 'mouseclick 2'
您可以在“首选项”->“键盘快捷键”(或 Unity 搜索中的“键盘快捷键”)下为其创建自定义快捷键。单击“添加”,输入名称和上述命令,然后单击“应用”。滚动到底部并像设置任何其他操作一样设置快捷方式。
当我尝试这个时,我无法将操作绑定到 Windows 键。您可以通过执行以下操作来尝试它,但似乎存在阻止此操作的错误:
打开终端并运行
gconf-editor
按 Ctrl+f,选择“也在键值中搜索”框,然后在搜索框中输入以下内容:
xte 'mouseclick 2'
底部窗格中应该只有一个结果。如果还有更多,请选择名称中包含“/desktop/gnome/keybindings/custom*/action”的那个。在右上角的窗格中,在“绑定”字段旁边输入 ''(不带引号)。如果你得到和我一样的结果,你所有的窗口外观都会改变,新的键绑定不会做任何事情。将其改回原样(或将其设为空白)并打开外观(首选项 -> 外观或统一搜索下的“外观”)。那应该可以解决问题。