Como desativar o touchpad durante a execução de aplicativos / jogos em tela cheia?

3

O suporte para notebooks no Ubuntu é bastante decepcionante. É como se o Ubuntu e o Kubuntu fossem dois mundos diferentes. Existe um script para desativar o touchpad durante a execução de aplicativos em tela cheia? Eu tentei escrever, mas não tive sucesso no final. Meu palpite é combinar xdotool com xinput .

Qualquer abordagem diferente, bem como sugestões de scripts semelhantes são muito bem-vindas.

E não, não estou interessado em configurar atalhos! O script deve desativar automaticamente o touchpad quando o aplicativo em tela cheia estiver ativo.

    
por VRR 03.05.2015 / 19:54

1 resposta

3

Após algumas pesquisas, consegui escrever um roteiro funcional. Ele desativará automaticamente o touchpad enquanto o aplicativo de tela cheia estiver ativo e o mouse estiver conectado . Por isso, é adequado para jogos em tela cheia.

O que você precisa fazer é copiar o texto para o Gedit e salvar o arquivo como e. g. : .auto_disable_touchpad.sh (Já que tem . na frente do nome, é um arquivo oculto, mas você pode nomear como quiser.) Então: clique com o botão direito do mouse em / properties / permissions / permita executar o arquivo como programa. Para adicioná-lo à inicialização, abra Startup applications e adicione o comando folowing 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

Se você estiver assistindo a filmes ou vídeos em tela inteira do youtube, ele também desativará o touchpad enquanto o mouse estiver presente. Então, você pode querer adicionar exceções . Eu já adicionei alguns para: desktop, firefox (plugin-container), VLC e SMPlayer.

Quando você quiser ativar o touchpad enquanto o aplicativo em tela cheia estiver sendo executado, adicione o nome do aplicativo a esta linha:

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

E.G. para adicionar o player de vídeo padrão do Ubuntu Videos às exceções, adicione |*videos* antes de ) WNN=1;; para que fique assim:

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

Observe que o nome do aplicativo faz distinção entre maiúsculas e minúsculas, portanto, você deve usar apenas minúsculas ( smplayer , mas não SMPlayer ).

    
por VRR 05.05.2015 / 17:03