如何在运行全屏应用程序/游戏时禁用触摸板?

如何在运行全屏应用程序/游戏时禁用触摸板?

Ubuntu 对笔记本电脑的支持相当令人失望。Ubuntu 和 Kubuntu 就像是两个不同的世界。有没有一个脚本可以在运行全屏应用程序时禁用触摸板?我尝试自己编写,但最终没有成功。我的猜测是与 相xdotool结合xinput

非常欢迎任何不同的方法以及类似脚本的建议。

不,我对设置快捷方式不感兴趣!当全屏应用程序处于活动状态时,脚本应该自动禁用触摸板。

答案1

经过一番研究,我编写了一个功能脚本。当全屏应用程序处于活动状态时,它将自动禁用触摸板并且鼠标已连接.所以它适合全屏游戏。

您需要做的是将文本复制到 Gedit 中并将文件另存为例如:(.auto_disable_touchpad.sh由于它位于.名称前面,因此它是隐藏文件,但您可以随意命名。)。然后:右键单击/属性/权限/允许将文件作为程序执行。要将其添加到启动项,请打开Startup applications并添加以下命令your/script/folder/.auto_disable_touchpad.sh

#!/bin/bash

SC1=$(xdpyinfo | grep dimensions)
SC2="${SC1#*dimensions: }"
SC3="${SC2%% pixels*}"

while :
do
    TP=$(xinput list --name-only | grep -i Touchpad)
    TPS1=$(xinput --list-props "$TP" | grep -i "device enabled")
    TPS2="${TPS1#*:}"

    MO=$(xinput list --name-only | grep -i mouse)

if [ ! -z "$MO" ];then
    WN1=$(xdotool getactivewindow getwindowgeometry)
    WN2="${WN1#*Geometry: }"

    WNN=$(xdotool getactivewindow getwindowname)

    case ${WNN,,} in
        desktop|*vlc*|*smplayer*|*mozilla*firefox*) WNN=1;;
        *) WNN=0;;
    esac

        if [ $SC3 == $WN2 ] && [ $WNN == 0 ]; then
                xinput -disable "$TP"
        elif [ $TPS2 == 0 ]; then
                xinput -enable "$TP"
        fi
else sleep 2
fi  
sleep 1
done

如果您正在观看电影或全屏 YouTube 视频,它还会在鼠标存在时禁用触摸板。因此,您可能需要添加例外。我已经添加了一些:桌面、firefox(插件容器)、VLC 和 SMPlayer。

当您希望在全屏应用程序运行时触摸板处于活动状态时,请将应用程序名称添加到此行:

desktop|*vlc*|*smplayer*|*mozilla*firefox*) WNN=1;;

例如,将 Ubuntu 的默认视频播放器添加Videos到例外情况|*videos*之前
) WNN=1;;,它将看起来像这样:

desktop|*vlc*|*smplayer*|*mozilla*firefox*|*videos*) WNN=1;;

请注意,应用程序的名称区分大小写,因此您必须仅使用小写字母(smplayer但不能SMPlayer)。

相关内容