如何在運行全螢幕應用程式/遊戲時停用觸控板?

如何在運行全螢幕應用程式/遊戲時停用觸控板?

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;;

EG 將 Ubuntu 的預設視訊播放器添加到先前Videos新增的例外中,因此它看起來像這樣:|*videos*
) WNN=1;;

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

請注意,應用程式的名稱區分大小寫,因此您必須僅使用小寫字母(smplayer但不是SMPlayer)。

相關內容