刚刚安装了 Ubuntu Mate,遇到一个奇怪的问题:每次重新启动系统时,我都必须手动启用触控板。
这变得相当烦人,如果有人可以通过创建脚本或其他东西来帮忙,或者给我一个程序,或者帮助模拟Fn和F7密钥,那就太棒了。
答案1
我不知道有什么方法可以Fn通过使用xdotool
类似的东西来模拟按键。不过,话虽如此,你可以编写一个脚本,在启动时运行该脚本来启用触控板。
这是一种替代方法。
为此,我们将使用xinput
。不幸的是,我的这个系统上没有触控板,但命令应该以相同的方式使用。
首先,从终端运行以下命令:
xinput --list
您将在列表中寻找您的触控板。 我仅将使用我的鼠标作为示例。
terrance@terrance-ubuntu:~$ xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Kensington USB/PS2 Wheel Mouse id=8 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
我的鼠标显示为,Kensington USB/PS2 Wheel Mouse
因此这就是我们要获取的props
。运行下一个命令以查看props
可以为设备设置的:
xinput --list-props '<device name>'
示例:(我提供了大量信息,因此我将其截断为我们需要的信息。“设备启用”才是我们真正想要的。)
terrance@terrance-ubuntu:~$ xinput --list-props 'Kensington USB/PS2 Wheel Mouse'
Device 'Kensington USB/PS2 Wheel Mouse':
Device Enabled (152): 1
显示Device Enabled (152): 1
我的鼠标已启用。要禁用我的鼠标,只需将其设置为0
,但根据您的情况,您希望启用它或将其设置为1
。启用它的命令是:
xinput --set-prop '<device name>' 'Device Enabled' 1
启用鼠标的命令是:
xinput --set-prop 'Kensington USB/PS2 Wheel Mouse' 'Device Enabled' 1
然后,您可以将命令及其完整路径添加xinput
到文件中/etc/rc.local
。您需要确保将其保留exit 0
为文件中的最后一行/etc/rc.local
。
which xinput
将为您提供文件的完整路径。
terrance@terrance-ubuntu:~$ which xinput
/usr/bin/xinput
完成后,将你的行添加到/etc/rc.local
文件中:
/usr/bin/xinput --set-prop '<device name>' 'Device Enabled' 1
它应该在您进入登录屏幕之前运行。
我注意到登录后该命令可能会被否决。因此,您可以将一个.desktop
文件添加到/etc/xdg/autostart/
文件夹中,该文件将随每个登录系统的用户一起启动。
我调用了我的文件mouse_enable.desktop
并在其中添加了以下几行:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=mouse_enable
Exec=/bin/bash -c 'sleep 15 && /usr/bin/xinput --set-prop "<device name>" "Device Enabled" 1'
使文件归 root 所有:
sudo chown root:root /etc/xdg/autostart/mouse_enable.desktop
使文件具有正确的权限:
sudo chmod 644 /etc/xdg/autostart/mouse_enable.desktop
现在登录时应该保持设备启用。
希望这可以帮助!