即使在玩使用操纵杆的游戏时,操纵杆也可以充当鼠标,因此会发生随机的鼠标事件。
我插入了操纵杆来玩《螺旋骑士》,还安装了操纵杆并进行校准。一切正常,除了默认情况下,操纵杆可移动鼠标,按钮可激活鼠标键。
现在通常情况下,如果我在神话盒之类的东西上,这将是一种良好的行为。不幸的是,当我使用操纵杆输入玩《螺旋骑士》时,我看到鼠标光标在背景中移动,当我按下按钮时,它认为我在按右键单击,以使所有内容最小化。它还会创建文件夹,并可能删除内容。
那么,基本上,我该如何阻止它充当鼠标?
即使在玩使用操纵杆的游戏时,操纵杆也可以充当鼠标,因此会发生随机的鼠标事件。
我插入了操纵杆来玩《螺旋骑士》,还安装了操纵杆并进行校准。一切正常,除了默认情况下,操纵杆可移动鼠标,按钮可激活鼠标键。
现在通常情况下,如果我在神话盒之类的东西上,这将是一种良好的行为。不幸的是,当我使用操纵杆输入玩《螺旋骑士》时,我看到鼠标光标在背景中移动,当我按下按钮时,它认为我在按右键单击,以使所有内容最小化。它还会创建文件夹,并可能删除内容。
那么,基本上,我该如何阻止它充当鼠标?
Answers:
卸载xserver-xorg-input-joystick
。
它是使用操纵杆控制鼠标的软件包。我只安装了一次进行测试,这让我发疯,所以也许就是问题所在。我认为如果没有它,操纵杆将同样起作用。
将此代码放在文件中:
#!/bin/bash
id=`xinput list | grep "↳ DragonRise Inc. Generic USB Joystick id=" | cut -c58-59`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events (" | cut -c25-27`
props_teclado=`xinput list-props $id | grep "Generate Key Events (" | cut -c23-25`
xinput set-prop $id $props_mouse 0
xinput set-prop $id $props_teclado 0
保存该文件,在权限中单击右键,然后勾选“将该文件标记为程序”
执行它,您将使操纵杆“再次作为操纵杆”(最好的是,如果在最后两行中将“ 0”更改为“ 1”,则可以再次使操纵杆作为鼠标)。
我只是遇到了同样的问题,但使用了Playstation 3控制器。使用答案作为模板,我扩展了解决方案:
#!/bin/bash
id=`xinput list | grep -P "PLAYSTATION.*pointer" | grep -oP "id=\d+" | grep -oP "\d+"`
props=`xinput list-props $id`
# echo "$props"
props_mouse=(`echo "$props" | grep "Generate Mouse Events" | grep -oP "\d+"`)
props_keyboard=(`echo "$props" | grep "Generate Key Events" | grep -oP "\d+"`)
xinput set-prop $id ${props_mouse[0]} $[1-${props_mouse[1]}]
xinput set-prop $id ${props_keyboard[0]} $[1-${props_mouse[1]}]
此脚本版本将根据当前设置(例如切换)启用或禁用控制器。
您也许应该使用jscal来校准操纵杆-您可以按照手册页中的-u选项将操纵杆配置为不使用鼠标按钮。
关于ubuntuforums上的各种游戏杆和游戏手柄,还有一些有趣的东西。
我正在使用Linux Mint 17.3,但遇到了同样的问题。我有一个在线控制台,打算扔掉控制器。我不知道它是否可以工作,但是它可以通过蓝牙轻松连接。左操纵杆控制着鼠标,我搜索并尝试了不同的方法,但没有一个起作用。我发布此信息是为了帮助其他人。我遵循了Ubuntu Sixaxis设置页面上的修复程序。我必须将此配置添加到xorg.conf文件中:
Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"
Option "StartKeysEnabled" "False" #Disable mouse
Option "StartMouseEnabled" "False" #support
结束部分
注销后,它可以完美运行。唯一的问题是,如果在安装新的图形驱动程序后像更新xorg.conf一样,它将丢失它。有人可以向我解释如何创建一个脚本来检查配置是否在文件中,如果没有,请在每次重新启动后将其写入?先谢谢了。
1-您应该先看到您的操纵杆编号...,然后运行“终端”并键入xinpute list,然后查看您的操纵杆编号并替换其编号,而不是下面的示例中的10。
#!/bin/bash id=xinput list | grep "↳ DragonRise Inc. Generic USB Joystick id=10" | cut -c58-59 props_mouse=xinput list-props 10 | grep "Generate Mouse Events (" | cut -c25-27 props_teclado=xinput list-props 10 | grep "Generate Key Events (" | cut -c23-25 xinput set-prop 10 $props_mouse 0 xinput set-prop 10 $props_teclado 0
2-创建一个新文档,然后将代码放入其中,然后将其重命名为name.sh。格式3-运行终端,然后将路径保存到文件中。
示例:cd桌面(因为我在桌面上保存了我的)
4-键入bash name.sh(单击Enter,您就完成了!)
注意1:要重新打开它,只需将最后2行的0更改为1注意2:如果此操作无效,请确保删除xserver-xorg-input-joystick和/usr/lib/X11/xorg.conf.d / 10操纵杆
Matias Parmigiani的答案对我来说很关键。但是,xinput list
至少在Ubuntu 13.04 LTS上,的格式已更改。
⎜ ↳ DragonRise Inc. Generic USB Joystick id=12 [slave pointer (2)]
↳ DragonRise Inc. Generic USB Joystick (keys) id=11 [slave keyboard (3)]
结果,我需要在禁用脚本中使用以下命令:
#!/bin/bash
id=`xinput list | grep -P "DragonRise Inc. Generic USB Joystick\s+id=" | grep -oP "id=\d+"| cut -c4-5`
props_mouse=`xinput list-props $id | grep "Generate Mouse Events" | grep -oP "\(\d+"| cut -c2-5`
props_teclado=`xinput list-props $id | grep "Generate Key Events" | grep -oP "\(\d+"| cut -c2-5`
xinput set-prop "$id" "$props_mouse" 0
xinput set-prop "$id" "$props_teclado" 0
希望这可以帮助!