在我的 Thinkpad 上,我需要在终端中执行如下操作:
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Middle Button Emulation" 8 1
这样我的触摸板上的 2 个按钮就可以模拟鼠标中键单击。现在我需要每次启动 GNOMe 或 X 或任何其他程序时都执行此行,以便它“正常工作”。
我尝试了 ~/.xsession 或 ~/.bashrc,但无济于事。我应该把它放在 GNOME 启动脚本中还是 /etc/X 的某个地方?
我正在使用 Ubuntu 11.10。
答案1
我正在使用 Enlightenment DM,但这与其他 DM/桌面相关。我使用 xsession 启动会话,因此我最初将 xinput 命令放在 ~/.xsession 中,这并没有更改我想要更改的所有设置。只有一些其中。我期望全部更改或不更改,因此我向 .xsession 添加了 10 次迭代循环,间隔为 1 秒,每次运行 xinput 命令并检查设置是否已应用。令我惊讶的是,第一次迭代后所有设置都已应用。
这意味着您的 DM 会执行某些操作来覆盖您的 xinput 设置,并且由于启动您的 DM(在我的情况下是 E17)的命令是 .xsession 文件中的最后一个命令,因此此文件不适合执行此操作。
我在 ~/.profile 中添加了以下几行,解决了这个问题:
# don't run unless we're being invoked from an xwindows session
if [[ -n ${DISPLAY} ]]; then
# set your devices names here
pointer1="IBM TrackPoint"
pointer2="Lite-On Technology Corp. ThinkPad USB Keyboard with TrackPoint"
pointer3="Logitech USB Trackball"
id1=$(xinput | awk -F= "/$pointer1.*pointer/ {print \$2}" | cut -f1)
id2=$(xinput | awk -F= "/$pointer2.*pointer/ {print \$2}" | cut -f1)
id3=$(xinput | awk -F= "/$pointer3.*pointer/ {print \$2}" | cut -f1)
if [[ -n "${id1}" ]]; then
xinput --set-button-map "${id1}" 1 2 3 4 5 6 7
xinput set-prop "${id1}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id1}" "Evdev Wheel Emulation" 1
xinput set-prop "${id1}" "Evdev Wheel Emulation Button" 2
xinput set-prop "${id1}" "Evdev Middle Button Emulation" 0
fi
if [[ -n "${id2}" ]]; then
xinput --set-button-map "${id2}" 1 2 3 4 5 6 7
xinput set-prop "${id2}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id2}" "Evdev Wheel Emulation" 1
xinput set-prop "${id2}" "Evdev Wheel Emulation Button" 2
xinput set-prop "${id2}" "Evdev Middle Button Emulation" 0
fi
if [[ -n "${id3}" ]]; then
xinput --set-button-map "${id3}" 1 2 3 4 5 6 7 8 9
xinput set-prop "${id3}" "Evdev Wheel Emulation Axes" 6 7 4 5
xinput set-prop "${id3}" "Evdev Wheel Emulation" 1
xinput set-prop "${id3}" "Evdev Wheel Emulation Button" 8
xinput set-prop "${id3}" "Evdev Middle Button Emulation" 1
fi
fi
PS. set-int-prop 已被弃用,取而代之的是 set-prop (man xinput)。
希望这对某人有帮助。
答案2
将命令直接添加到启动应用程序。在命令字段中。
或者
制作一个简单的脚本并将该脚本添加到启动应用程序中。
答案3
/etc/X11/Xsession.d/
为其创建一个文件。
答案4
这是我在Ubuntu 14.04从终端:
1)检查您的设备名称:
xinput list
2)查看您设备的可用选项:
xinput list-props "Your Device Name"
3)编辑设置(使设置在重启/关机后保持一致将此命令添加到启动应用程序):
xinput set-prop "Your Device Name" "Option Name" "Value"
下面是我用来激活触摸板上的锁定拖动的示例命令:
xinput set-prop "SynPS/2 Synaptics TouchPad" "Synaptics Locked Drags" 1
要激活/更改另一个选项,只需在设备可用选项中查找它并使用它们直到获得所需的结果,然后将命令添加到启动应用程序即可!希望有帮助!: )