![配置鼠标按钮以在应用程序之间切换?](https://linux22.com/image/855752/%E9%85%8D%E7%BD%AE%E9%BC%A0%E6%A0%87%E6%8C%89%E9%92%AE%E4%BB%A5%E5%9C%A8%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B9%8B%E9%97%B4%E5%88%87%E6%8D%A2%EF%BC%9F.png)
我刚刚安装了 14.04,所以我使用默认设置(我猜是 Unity)。
我的鼠标侧面有两个额外的鼠标按钮。有什么方法可以映射它们,以便它们可以在打开的应用程序之间切换吗?
如果单击按钮 6(或其他按钮)可以向前循环切换应用程序,单击按钮 7 可以向后循环切换应用程序,按住其中一个按钮可以显示任务列表并让您单击所需的应用程序,那就太完美了。这确实是我想要的。
答案1
这是复制自这答案,并做了一些澄清更改。请投票赞成那答案,不是我的。
通过安装几个软件包,您可以非常轻松地配置它,而不会遇到太多麻烦。无论我使用哪个版本的 Linux,在鼠标和键盘模拟方面,我始终确保安装两个特定的应用程序。
这些是:
xautomation 是一组命令行程序,用于控制 X 并执行“视觉抓取”以在屏幕上查找内容。此应用程序有六个不同的程序,但我们要关注的是 xte。此程序允许我们利用“XTest”扩展将任意鼠标和键盘事件发送到内核。
sudo apt-get install xautomation
xbindkeys 是一个程序,使我们能够将命令绑定到键盘上的某些键或组合键,并且与窗口管理器无关,因此无论您使用的是 Gnome、Unity、KDE 等……都没有区别。
sudo apt-get install xbindkeys
**通过结合使用这两个程序,我们可以让键盘和鼠标做任何我们想要做的事情。*
例如,您说您想在您的案例中使用拇指按钮,那么首先我们需要找到 X Server 在您单击它时识别的“鼠标按钮编号”。我们将使用一个名为 xev 的有用工具来运行此程序,执行以下操作:
- 打开终端窗口并在提示符下输入以下命令
xev
Xev 创建一个窗口,然后要求 X 服务器在窗口发生任何事件时向其发送事件(例如,移动、调整大小、输入、单击等)。您还可以将其附加到现有窗口。它对于查看导致事件发生的原因以及显示事件所包含的信息非常有用;它本质上是一个调试和开发工具,在正常使用中不需要它。
将鼠标悬停在屏幕上打开的事件窗口上,然后单击拇指按钮。您将看到终端窗口中发生了很多事情,但我们关心的一件事是您刚刚单击的按钮的“按钮编号”。这可以在终端窗口的底部找到,看起来应该类似于以下行:
state 0x10, button 1, same_screen YES
我们感兴趣的是按钮部分。您的按钮是拇指按钮,可能显示为按钮 8 或按钮 9,但可以是任何数字。记住或记下该数字,因为我们稍后会用到它。您现在可以关闭 xev,我们不再需要此程序。
现在开始工作!!
假设您已经安装了如上所述的 xautomation 和 xbindkeys 应用程序,我们将继续执行以下操作:
打开您最喜欢的文本编辑器并在您的主目录中创建一个名为 .xbindkeysrc 的新文件,这是 xbindkeys 将使用的配置文件,让您的鼠标或键盘执行我们希望它做的特殊事情。
在文件中输入以下内容:
"xdotool key alt+Tab" b:X + Release
注意:**请务必将 X 替换为您之前运行 xev 时记下的拇指按钮的数字*。
注意:**第一行和第二行之间不应有空格。如果有空格,则运行 xbindkeys 时会出现错误。*
这里告诉 xbindkeys 要做的是单击并释放拇指按钮,并使其执行双击鼠标左键的操作,如下所示 'mouseclick 1' 'mouseclick 1'
- 保存文件然后我们就可以开始了。
好的,让我们测试一下!!
- 打开终端窗口并输入以下内容,以便我们可以测试功能:
xbindkeys -n -v
这将在调试模式下运行 xbindkeys 程序,这样我们就可以看到单击按钮时发生了什么。它会告诉您它正在读取我们创建的 .xbindkeysrc 文件并将其用于配置。如果一切顺利,那么您最终应该会看到一行“Starting Loop”
现在,如果您单击鼠标拇指按钮,则应该看到终端中发生了一些事情,这意味着它识别了按钮按下。现在您应该获得与双击鼠标左键相同的功能。
您应该能够通过使用拇指按钮并单击终端的菜单栏来测试这一点,这应该会最大化或最小化它,从而执行与双击鼠标左键相同的操作。
现在退出该程序。
注意:为了让这一切始终有效,我们需要让 xbindkeys 始终在后台运行。如果您在启动应用程序中添加了新命令(xbindkeys
不带 -)n -v
,那么每次登录窗口管理器时它都会启动。
我已尝试详细解释如何执行此操作,希望您能够理解并成功完成此操作。:)