游戏杆充当鼠标;不会停止


14

即使在玩使用操纵杆的游戏时,操纵杆也可以充当鼠标,因此会发生随机的鼠标事件。

我插入了操纵杆来玩《螺旋骑士》,还安装了操纵杆并进行校准。一切正常,除了默认情况下,操纵杆可移动鼠标,按钮可激活鼠标键。

现在通常情况下,如果我在神话盒之类的东西上,这将是一种良好的行为。不幸的是,当我使用操纵杆输入玩《螺旋骑士》时,我看到鼠标光标在背景中移动,当我按下按钮时,它认为我在按右键单击,以使所有内容最小化。它还会创建文件夹,并可能删除内容。

那么,基本上,我该如何阻止它充当鼠标?


您能显示您使用的PC和操纵杆吗?还有什么Ubuntu版本。
Luis Alvarado

我使用的是playstation 2转USB适配器,在jscalibrate下的名称为:GreenAsia Inc. USB Joystick。我正在运行Ubuntu 10.10
Shazzner,2011年

Answers:


15

卸载xserver-xorg-input-joystick

它是使用操纵杆控制鼠标的软件包。我只安装了一次进行测试,这让我发疯,所以也许就是问题所在。我认为如果没有它,操纵杆将同样起作用。


万岁做到了!我认为当我在突触中添加操纵杆包时,这种情况就解决了。现在效果很好!
Shazzner

我也有这个问题,它解决了。非常感谢您的回答,非常感谢!
b1ackcrow 2012年

有没有办法关闭/开启此功能?用游戏手柄控制鼠标有点酷,但是当我确实需要它时应该很好地将其打开
chepe263 2012年

非常感谢,这也适用于Arch Linux!试图玩《 Dustforce》,这真让我讨厌。
Marco Scannadinari

1
仅供参考,我也必须注销并重新登录。在Manjaro linux中,程序包名称为xf86-input-joystick。
彼得

4

将此代码放在文件中:

#!/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”,则可以再次使操纵杆作为鼠标)。


看起来“ xinput list”行的格式已更改。
Phoeey 2013年

此代码需要更改才能在Ubuntu 18.04 LTS下工作。输出已更改。
汉斯·德拉贡

2

我只是遇到了同样的问题,但使用了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]}]

此脚本版本将根据当前设置(例如切换)启用或禁用控制器。


因为这是针对a)不同控制器和b)与给定脚本具有不同功能的新解决方案。我不知道编辑现有答案将如何改变这种状况。
hochl

对我来说足够好了!已投票,因此将升至最高! ;-)
Fabby

1

您也许应该使用jscal来校准操纵杆-您可以按照手册页中的-u选项将操纵杆配置为不使用鼠标按钮。

关于ubuntuforums上的各种游戏杆和游戏手柄,还有一些有趣的东西。


有没有一种方法可以配置它而不生成然后编辑xorg.conf文件?(我已经在使用jscal来校准操纵杆了)
Shazzner 2011年

我使用jstest-gtk,它在我认为的存储库中。
animaletdesequia 2011年

1

尝试使用Qjoypad或(如果您不想使用QT,则使用slighlty功能较少的摇杆(GTK)。这样,您不必编辑/创建xorg.conf。

它们都可以在playdeb使用

了解操纵杆驱动程序有点混乱,一切似乎都已过时或未完成...祝您好运!


1
这些都是很棒的程序,但是不幸的是不能解决我的问题,因为重新绑定它们并不能解决问题。
Shazzner

1

我正在使用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一样,它将丢失它。有人可以向我解释如何创建一个脚本来检查配置是否在文件中,如果没有,请在每次重新启动后将其写入?先谢谢了。


0

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操纵杆


0

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

希望这可以帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.