我怎样才能加快鼠标的速度?

我有一个轨迹球,即使速度设置达到最大值,我也会用拇指4次从屏幕的一侧移动到另一侧。 我将xset m 200 1添加到我的启动应用程序中,但最近它停止了自动启动。 我必须在终端中手动输入此命令是否可以设置此速度而无需此解决方法?

感谢您的帮助

不是“如果没有这种解决方法,有没有办法设定这个速度?” – 回答。 但也许有些帮助。 您可能会在@ RickGreen-Turbo的评论链接中找到解决方案,但添加一些。

识别鼠标使用:

$ xinput list # or $ xinput --list --short 
  #应该给你这样的东西: 
      ⎡虚拟核心指针id = 2 [主指针(3)] 
      ⎜⎜虚拟核心XTEST指针id = 4 [从指针(2)] 
      ⎜⎜罗技USB-PS / 2光学鼠标id = 8 [从指针(2)] 
      ⎣虚拟核心键盘id = 3 [主键盘(2)] 
          ↳虚拟核心XTEST键盘id = 5 [从键盘(3)] 
          ↳电源按钮id = 6 [从属键盘(3)] 
          ↳电源按钮id = 7 [从属键盘(3)] 
          ↳AT Translated Set 2键盘id = 9 [从键盘(3)] 
          ↳HPWMI热键id = 10 [从键盘(3)] 
 

在你的情况下,它可能是像Logitech USB Trackball

要列出当前设置,请说:

xinput --list-props [ | "String Identifier"]

例如(在我的情况下):

 $ xinput --list-props 8 Or $ xinput --list-props "Logitech USB-PS/2 Optical Mouse" 

不确定这一点,但我的猜测是, id可能会在靴子之间发生变化。 如上所述 :

id是0-128范围内唯一标识设备的数字。它在服务器初始化时分配给设备。”

因此,在脚本中,在修改时,请使用字符串变体。 (也许这是您的旧配置出了什么问题?)

它产生(对我来说):

 
      设备'罗技USB-PS / 2光电鼠标': 
          设备已启用(132):1 
          坐标转换矩阵(134):1.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,1.00000000 
          设备加速配置文件(261):0 
          设备加速常数减速度(262):1.000000 
          设备加速自适应减速(263):1.000000 
          Device Accel Velocity Scaling(264):10.000000 
          设备产品ID(251):1133,49181 
          设备节点(252):“/ dev / input / event3” 
          Evdev Axis Inversion(265):0,0 
          Evdev Axes Swap(267):0 
          轴标签(268):“Rel X”(142),“Rel Y”(143),“Rel Vert Wheel”(260) 
          按钮标签(269):“按钮左”(135),“按钮中间”(136),“按钮右”(137),“按钮轮向上”(138),“按钮轮向下”(139),“按钮Horiz Wheel Left“(140),”Button Horiz Wheel Right“(141),”Button Side“(255),”Button Extra“(256),”Button Forward“(257),”Button Back“(258), “按钮任务”(259),“按钮未知”(254),“按钮未知”(254),“按钮未知”(254),“按钮未知”(254) 
          Evdev中按钮仿真(270):0 
          Evdev中键超时(271):50 
          Evdev第三按钮仿真(272):0 
          Evdev第三按钮仿真超时(273):1000 
          Evdev第三按钮仿真按钮(274):3 
          Evdev第三按钮仿真阈值(275):20 
          Evdev车轮仿真(276):0 
          Evdev车轮仿真轴(277):0,0,4,5 
          Evdev车轮仿真惯性(278):10 
          Evdev车轮仿真超时(279):200 
          Evdev车轮仿真按钮(280):4 
          Evdev拖动锁按钮(281):0 

找到要更改的值并将其添加到启动脚本中。

用于测试,例如:

 $ xinput --set-prop 8 "Device Accel Velocity Scaling" 50 $ xinput --set-prop 8 "Device Accel Constant Deceleration" 1.5 

(相关)属性:

  • 设备加速自适应减速
  • 设备加速恒定减速度
  • 设备加速配置文件
  • 设备加速度缩放

记录在这里 。 (如果需要,请查看同一页面以获取更多信息。)

在文件中添加适用于鼠标的hack并将其保存到例如~/.bin/my_mouse_hack

例如:

 #!/bin/bash xinput --set-prop "Logitech USB Trackball" "Device Accel Velocity Scaling" 75 xinput --set-prop "Logitech USB Trackball" "Device Accel Constant Deceleration" 1.5 

使其可执行:

 $ chmod 700 ~/.bin/my_mouse_hack 

现在:将其设置为在启动时运行。 将此添加到.bash_profile ,如此处所述。 ( 我正处于大量工作,编码,编译等过程中,因此我现在不会对此进行测试。但我会稍后再做更新。

或者在(如果使用GNOME)中选择“添加”将其添加到:

Alt + F2 gnome-session-properties 输入

或者通过X11配置或类似。


编辑1:暂停怪癖

暂停后看到你有一些恢复问题。

当计算机进入或恢复暂停/hibernate模式时,它会运行位于/etc/pm/sleep.d/usr/lib/pm-utils/sleep.d脚本。 男人pm-action 。

当关闭脚本时,使用参数suspendhibernate运行,当恢复参数分别resumethaw – 即: 在你的脚本中,$ 1是四个中的任何一个

这些目录中的脚本(又名"hooks"是AFAIK,分为两个块。

 /usr/lib/pm-utils/sleep.d Distribution / package provided hooks /etc/pm/sleep.d Administrator provided hooks 

也; 如果要禁用驻留在/usr/lib/pm-utils/sleep.d的脚本,请在/etc/pm/sleep.d创建一个具有相同名称的空文件,并且不要使其可执行。

最后一个要提及的文件是/var/log/pm-suspend.log 。 此文件包含有关上次暂停/hibernate和恢复/解冻的信息 – 按照惯例,这是添加自己的日志记录的好地方。 它也是寻找错误的好地方。 如果脚本失败,则应在此处记录。

一个简单的脚本01_test

 #!/bin/bash ts=$(date) case "$1" in "hibernate"|"suspend") printf "; %s: going down by \`%s'\n" "$ts" "$1" >> /var/log/pm-suspend.log ;; "resume"|"thaw") printf "; %s: waking up by \`%s'\n" "$ts" "$1" >> /var/log/pm-suspend.log ;; esac 

然后

 $ sudo chmod 755 /etc/pm/sleep.d/01_test 

暂停和唤醒,猫日志,看看:

 $ cat /var/log/pm-suspend.log ; Sun Jan 13 06:38:14 CET 2013: going down by `suspend'. ... ; Sun Jan 13 06:38:19 CET 2013: waking up by `resume'. 

好。 这样可行。 现在你想要的是用xset等设置鼠标。很容易相信像一个简单的线

 xset m 14/1 1 

/etc/pm/sleep.d的脚本就足够了,但如果你尝试(尝试没有害处),你会在日志文件中看到一些错误。 至少有两个问题。 1: xset需要display 2:root很可能没有Xsession。

要解决此问题,可以通过添加这样的行来指定用户环境等:

 su YOUR_USERNAME -c "xset -display :0 m 14/1 1" 

但是因为这是一个全局脚本,所以可能会做得更复杂一些。 此脚本检查已登录并具有:0显示的用户,检查他们是否在/home/user/bin/ named .resume中有可执行文件; 如果这样执行它

01_user_resume

 #!/bin/bash # Time(stamp) ts=$(date) # Log file log="/var/log/pm-suspend.log" # Array of Users # Users (finger/who/w ... etc) # Having Xsession (:0) # Unique declare -a users=($(/usr/bin/finger | \ /bin/grep ':0'| \ /bin/grep -o '^\w*' | \ /usr/bin/uniq)) # Array of scritps to look for (using array as it is easy to extend) declare -a user_scripts_resume=(".resume") # Run resume script fo all users with X session run_user_scripts_resume() { local user # Each user local home # Users home local scr # Script to check for and run for user in "${users[@]}"; do printf ";; For User: %s.\n" "$user" >> "$log" # Identify users home directory home=$(/usr/bin/getent passwd "$user" | cut -d: -f6) # If user has a file called $HOME/bin/ and it is # executable then run it for scr in "${user_scripts_resume[@]}"; do if [ -f "$home/bin/$scr" ] && [ -x "$home/bin/$scr" ]; then printf ";; Executing: $home/bin/$scr\n" >> "$log" # DISPLAY is needed by eg xset /bin/su "$user" -c "export DISPLAY=:0; $home/bin/.resume" fi done done } case "$1" in "hibernate"|"suspend") printf "; %s: going down by \`%s'.\n" "$ts" "$1" >> "$log" # Nothing to do ;; "resume"|"thaw") printf "; %s: waking up by \`%s'.\n" "$ts" "$1" >> "$log" printf "; Executing User resume scripts.\n" >> "$log" run_user_scripts_resume ;; esac 

所以:

  • 将该脚本添加到/etc/pm/sleep.d/01_user_resume的文件中。
  • 使其可执行: sudo chmod 755 /etc/pm/sleep.d/01_user_resume

在你的主目录中创建文件bin/.resume – 并添加eg( 错误见下面的编辑2):

 #!bin/bash sleep 3 # See note on EDIT 2: below xset m 15/1 1 

使其可执行: chmod 700 bin/.resume

或者,更好的是,使用相同的脚本进行启动和恢复 – 也就是重新运行用于在启动时设置鼠标的脚本。

暂停和恢复。 检查设置是否已更改:

 xset q # or xset q | grep -A 1 Pointer 

编辑2:鼠标移动

测试这似乎还有另一个问题。 xset q | grep -A 1 Pointer xset q | grep -A 1 Pointer命令显示设置已更改,问题是一旦使用鼠标 – 它将恢复。 对我来说,这是通过在.resume脚本中的xset之前添加sleep 1 .resume 。 您可能希望使用更长的睡眠时间来确定。

根据日志文件更改以便最后执行脚本,但这没有帮助 – 可能是因为脚本似乎是在子shell中执行的 – 所以在执行最后一个脚本之后可能会执行早期脚本中的某些进程。

为了解决暂停/恢复问题,我最终使用了crontab:

 $ crontab -e * * * * * DISPLAY=:0 xset m 2 2 

我知道它不漂亮,但它有效。