当前位置: 首页>>技术教程>>正文


如何为我的所有鼠标按钮分配操作?

问题描述

我有一个有很多按钮的鼠标,但它不是像 Logitech 这样的主流品牌。对于 Windows,我有一个驱动程序可以让我分配 close-window (Ctrl+W) 或 next-tab (Ctrl+Tab) 等操作,但我没有 Linux 驱动程序。由于Linux是如此灵活,我想也许有一种通用的方法可以做到这一点,而不管品牌如何?

更新:根据 Cyrex 的输入,我安装并运行了 sudo apt-get install btnx,它找到了几个但不是所有的鼠标按钮。找到:左,右,轮,轮点击,拇指向前,拇指向后。未找到:向左滚轮、向右滚轮、拇指中间按钮。供应商 ID 为 0x04d9,型号 ID 为 0xa015。

更新 2:在 System>Prefs>Mouse 中有一个灯泡图标用于测试双击速度。每个工作按钮都可以打开和关闭灯泡,但缺少的按钮不能。 Ubuntu 似乎不知道这些按钮,因此不会记录它们的点击次数。我想我需要寻找驱动程序,尽管主流鼠标可能是更简单的方法。

最佳思路

如果正确检测到所有按钮,则可以安装 btnx:

sudo apt-get install btnxsudo aptitude install btnx

然后转到:应用程序 ->系统工具 -> Btnx

它支持多种类型的鼠标

次佳思路

我有一个 MX Anywhere “M-R0001”

我使用前进和后退按钮作为复制和粘贴。

步骤:1)所有按钮都被检测到最后一个内核……至少

uname -a

3.8.0-25-generic #37-Ubuntu SMP Thu Jun 6 20:47:07 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

2) 因此,基本上,您只需要将这些按钮映射到所需的操作。如何知道按钮被按下时对应的数字代码?那么,你可以使用 ‘xev’ 程序:

xev

这个程序是一个按键和鼠标事件嗅探器。当它运行时,您可以看到一个窗口,您可以在其中按下鼠标按钮并查看它们是否被检测到。例如,使用 Performance MX 的缩放按钮,您将看到如下内容:

ButtonPress event, serial 35, synthetic NO, window 0x5800001,
    root 0x15a, subw 0x0, time 64521438, (84,117), root88,144),
    state 0x10, button 13, same_screen YES

这意味着 13 是该鼠标按钮的代码。您可以尝试手上的每个鼠标按钮……为了方便访问,这是 Performance MX 的Map:

  • 返回按钮:8

  • 前进按钮:9

  • 缩放按钮:13

  • 显示窗口按钮:10

其他按钮很容易识别,您不需要映射到操作。

3) 现在,您需要为 re-map 鼠标和键盘输入安装一个小程序。魔术师是’xbindkeys’ …简易安装使用:

sudo apt-get install xbindkeys

4)一旦安装,你就可以施展魔法了。这个想法是配置鼠标按钮以发送组合键以激活其他桌面功能(事实上,当您按下鼠标按钮时,xbindkeys 可用于执行任何其他程序)。在 KDE 中,您可以使用 Ctrl+F10 组合键来实现。关键是创建一个 xbindkeys 的配置文件来完成这项工作。

5) 要创建配置文件,只需运行以下命令:

xbindkeys --defaults > $HOME/.xbindkeysrc

6) 我们需要编辑文件以指定按钮的映射:

gedit $HOME/.xbindkeysrc

7) 我们需要添加我们的 button-to-key 配置。例如,我有以下内容:

# Back changed to Copy
"xte 'keydown Control_L' 'key C' 'keyup Control_L'"
  b:8

# Forward
"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'"
  b:9

# Present desktops
"xte 'keydown Control_L' 'key F8' 'keyup Control_L'"
  b:13

# Present windows
"xte 'keydown Control_L' 'key F10' 'keyup Control_L'"
  b:10

8) 有一个新的要求。 ‘xte’ 程序,它基本上模拟用户按键组合。使用以下方法安装它:

sudo apt-get install xautomation

现在,如果您在终端上运行类似:

xte 'keydown Control_L' 'key F10' 'keyup Control_L'

这意味着模拟 Ctrl + F10 按键。这个想法是使用 xbindkeys 说:“当我按下第 13 个鼠标按钮时,使用 xte 程序发送一个 Ctrl + F10 键盘按下来生成那个”

9) 最后,您需要将 ‘xbindkeys’ 配置为在系统启动时自动运行。启动应用程序/添加程序按钮并在对话框中键入 ‘/usr/bin/xbindkeys’。

完毕

第三种思路

Easystroke 是适用于 Ubuntu 和其他 Linux 发行版的鼠标 gesture-recognition 应用程序和鼠标手势管理器。它允许用户使用手绘鼠标手势或在屏幕上绘制来控制 ubuntu 应用程序。 Easystroke 适用于平板电脑,如果您有 touch-sensitive 屏幕,它也可以与鼠标、笔甚至手指一起使用。

在 Ubuntu 中安装 Easystroke

sudo apt-get install easystroke

如果你想通过 PPA 安装 easystroke,你可以添加一个 PPA 存储库,输入以下命令:

sudo add-apt-repository ppa:easystroke/ppa
sudo apt-get update
sudo apt-get install easystroke

对于 Unity 用户:EasyStroke 尚未使用指示器小程序,因此当您从菜单运行它时,指示器小程序上没有任何内容。要解决这个问题,只需在终端中运行这些命令:

easystroke -g

它将运行 EasyStroke 并自动打开配置窗口。

Source

第四种思路

Easystroke Gesture Recognition 主要用于创建自定义 pointing device gestures ,但它也可用于将操作分配给简单的按钮按下。

要以这种方式使用它,

  1. Open the configuration window

  2. 在首选项 ▸ 行为 ▸ 附加按钮 ▸ 添加中,选择 Instant Gestures,然后在灰色框中按下所需的鼠标按钮。

  3. 在操作中,单击添加操作。

  4. 双击 Stoke 列,然后再次按下所需的鼠标按钮。

  5. 单击名称、类型和详细信息列以设置操作。

第五种思路

如果您安装了 CompizConfig Settings Manager,那么您将能够设置很多窗口管理鼠标按钮快捷方式。

确定哪个按钮是哪个按钮可能需要一些努力。

在屏幕截图中,我将打开 Super+Tab 切换器分配给我的滚轮的左键单击。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/11961.html,未经允许,请勿转载。