如何在 Ubuntu 12.04 中阻止操纵杆控制鼠标?
我尝试删除xserver-xorg-input-joystick
和/usr/lib/X11/xorg.conf.d/10-joystick
,但均未安装。
答案1
1- 您应该首先看到您的操纵杆编号...因此运行终端并输入 xinpute list,然后查看您的操纵杆编号并将其编号替换为下面示例中的 10。
#!/bin/bash id=
xinput 列表 | grep "↳ DragonRise Inc. 通用 USB 操纵杆 id=10" | cut -c58-59
props_mouse=
xinput 列表-props 10 | grep "生成鼠标事件(" | cut -c25-27
props_teclado=
xinput 列表-props 10 | grep "生成键事件(" | 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:要重新打开它,只需将最后两行的 0 更改为 1 注意 2:如果这不起作用,请确保删除 xserver-xorg-input-joystick 和 /usr/lib/X11/xorg.conf.d/10-joystick
答案2
引用 AhmedAlkaabi 的话:
xinput 现在可能有更多功能了??
#!/bin/bash
id=$(xinput --list --id-only 'ZEROPLUS P4 Wired Gamepad')
source <(xinput list-props $id | perl -ne'
if(m/Generate Mouse Events \(([0-9]+)\)/){print"props_mouse=$1;";}
if(m/Generate Key Events \(([0-9]+)\)/){print"props_teclado=$1;";}
')
xinput set-prop $id $props_mouse 0
xinput set-prop $id $props_teclado 0
这是 BASH,在较差的 shell 上无法工作。使用了一些 perl,但对任何人来说都不算太糟糕。
答案3
在中/etc/X11/xorg.conf.d/
,您可以创建一个包含
Section "InputClass"
Identifier "joystick catchall"
MatchIsJoystick "on"
MatchDevicePath "/dev/input/event*"
Driver "joystick"
Option "StartKeysEnabled" "False" # Disable mouse events
Option "StartMouseEnabled" "False" # Disable keyboard events
EndSection
(取自→ 这里)。
答案4
以 Mike 为基础回答在同一页面上,这里有一个更便携的 shell 版本,没有 perl,并且作为一个函数提供。
jsinput() {
# Insert your controller name here, as seen from `xinput --list`.
_c="$( xinput --list --id-only 'Logic3 Controller' )"
# Default is off, unless you pass "yes" or similar as first parameter.
_mode="0" ; echo "${1}" | grep -qiE '\<(yes|1|y|on)\>' && _mode=1
# Find ids of these property names, and then tell each one to go to the mode chosen in the previous line.
xinput list-props "${_c}" | sed -n -r -e '/Generate (Mouse|Key)/{s/.*\(([0-9]+)\).*/\1/;p}' | xargs -I@ xinput set-prop "${_c}" @ "${_mode}"
}
如果您将其粘贴到您的控制器中,~/.bashrc
则可以运行jsinput
以禁用该控制器作为鼠标输入。要打开鼠标输入,您只需运行jsinput 1
或即可jsinput on
。