如何将Ctrl / Shift映射到鼠标的拇指按钮?

我有一个Microsoft Sidewinder X8鼠标,我希望使用8代表Shift9代表Control 。 谁能告诉我怎么样?

安装xdotool和xbindkeys

sudo apt-get install xdotools xbindkeys 

然后将以下代码复制到〜/ .xbindkeysrc中

 "xdotool keydown shift" b:9 "xdotool keyup shift" release + shift + b:9 "xdotool keydown ctrl" b:8 "xdotool keyup ctrl" release + control + b:8 

其中b:x是您可以使用xev找到的按钮编号。 因为我不希望每次我需要它时这个bindig永久化我启动一个终端并输入xbindkeys -n 。 当我不再需要它时,我只需关闭终端。

首先安装xdotool

 sudo aptitude install xdotool 

然后,您可以创建一个脚本来模拟按Ctrl键。 打开gedit并复制粘贴以下内容:

 #! /bin/bash xdotool keydown ctrl while [MOUSEKEYDOWN == 1]; do #TODO change the while test. sleep 30 #decrease sleep if script doesn't react fast enough on releasing the key, #increase sleep if the computer uses to many CPU when pressing the button. done xdotool keyup ctrl # Lift the key back up after no button is pressed. 

我不是一个伟大的bash程序员。 我需要搜索一种方法,以确定您的按钮是否已关闭,我可能有(多个)语法错误,但我想一个bash程序员得到了这个想法。

如果有人修复了脚本,请将其保存在ctrl.sh下并使其可执行

 chmod +x ctrl.sh 

然后,正如nathwill所说,转到系统 – >首选项 – >键盘。 添加自定义命令,选择添加〜/ ctrl.sh命令并按下鼠标按钮作为快捷键。

这应该做到这一点。

http://linux.derkeiler.com/Newsgroups/comp.os.linux.x/2003-07/0010.html解释了如何使用xbindkeys和xmacroplay (来自xmacro包)完成此任务。 这两个应用程序都可以从Ubuntu存储库中获得。

以下是该网站的示例,其中说明了如何将鼠标按钮6映射到Alt + Left组合

将它放在~/.xbindkeysrc ,按下鼠标按钮6将Alt + Left组合回显到X服务器,该服务器映射到Konqueror和Mozilla中的“后退”:

"echo -e 'KeyStrPress Alt_L\nKeyStrPress Left\nKeyStrRelease Left\n KeyStrRelease Alt_L' | xmacroplay &"
b:6

有Shift_L和Control_L(如果您喜欢正确版本的键而不是左侧版本,还有Shift_R和Control_R)。 只需将这些键替换为上面的命令,将b:6更改为要映射到键的实际鼠标按钮,并将命令放在~/.xbindkeysrc ,您应该全部设置。

系统首选项键盘快捷键可让您将键/按钮映射到命令; 如果这不起作用xbindkeys是键映射的另一个伟大的应用程序。

有一个重复的问题:将Ctrl和Alt映射到鼠标滑块按钮

所以这里是使用Easystroke这个问题的答案副本:

我找到了一个有效的解决方案 它使用Easystroke( sudo apt install easystroke )。 感谢来自ubuntuforums的@stuartr!

虽然有一个问题 – 重新映射鼠标点击偶尔发射原始(在我的情况下’回’)事件。 为避免这种情况,可以使用xinput set-button-mapsudo apt install xinput )将鼠标按钮重新映射到某些未使用的数字。 我把它放到我的.xsessionrc (取自@Maxim的这个答案 ):

 mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*\tid=\([0-9]*\)\t.*/\1/') xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20 

这将鼠标按钮8映射到按钮20.希望按钮20没有意义。 至少它对我没有任何影响。 现在是时候将按钮20重新映射到Ctrl:

  1. 首选项选项卡:其他按钮 – >添加 – >单选按钮’即时手势’ – >单击灰色区域中选择的鼠标按钮(对我来说,’后退,拇指按钮’成为’(即时)按钮20’)
  2. “首选项”选项卡:选择“自动启动Easystroke”
  3. 操作选项卡:添加操作
    名称:你喜欢的任何东西(例如’鼠标20 – > Ctrl’)
    输入:’忽略’
    详细信息:单击一次将“忽略”更改为“组合键…”。 然后按Ctrl + a。 ‘a’没关系,被忽略了。 ‘Key Combination’将被’Ctr’取代
  4. 选择/突出显示新操作 – >单击“记录笔划” – >按下您想要再次使用的鼠标按钮(对于我来说,这在“笔划”列中显示为“20 – > 20”)
  5. 现在按住我的鼠标按钮会在屏幕上显示一个极小的“Ctr”,就像按钮被按住一样,只要鼠标按钮是