Habilitando/desabilitando o touchpad através da tecla de função Fn (Fn + F9) em notebooks Asus

Publicado por David Lorente em 10/03/2016

[ Hits: 6.369 ]

 


Habilitando/desabilitando o touchpad através da tecla de função Fn (Fn + F9) em notebooks Asus



Recentemente, após reinstalar o Slackware no notebook ASUS k45VM, tive problema ao tentar desabilitar o touchpad através da tecla de função fn+f9. O atalho simplesmente não funcionava.

Pesquisando na internet verifiquei que usuários de outros modelos da Asus também estavam com o mesmo problema e, com um pouco mais de pesquisa, encontrei o site wiki.archlinux.org/index.php/Touchpad_Synaptics, que disponibiliza um script (seção 3.7) para habilitar/desabilitar o touchpad via linha de comando.

Nesta dica descrevo como executar esse script através das teclas fn+f9.

Também, mostrarei uma pequena alteração que fiz no script para que, após o reboot, o sistema "lembre" do último status do touchpad (se habilitado ou desabilitado).

Vamos ao script original:

#!/bin/bash

declare -i IDp
ID=`xinput list | grep -Eio 'touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
    xinput disable $ID
    # echo "Touchpad disabled."
    # notify-send 'Touchpad' 'Disabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
else
    xinput enable $ID
    # echo "Touchpad enabled."
    # notify-send 'Touchpad' 'Enabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
fi

Salve o script em algum local em seu diretório pessoal, torne o arquivo executável e crie um atalho de teclado para a execução do arquivo.

No Xfce isso pode ser feito através do caminho: "Settings > Settings Manager > Keyboard", aba "Application Shortcuts".

Dessa forma, ao utilizar o atalho, o touchpad estará habilitado/desabilitado enquanto o usuário não fizer reboot/logout.

Sempre que o usuário efetuar uma dessas duas tarefas (reboot/logout) encontrá o touchpad desabilitado por padrão.

Caso queira que o sistema se lembre do último status, é necessário algumas alterações no script.

Primeiramente é necessário criar uma espécie de trava para marcarmos que o touchpad foi desabilitado, isso pode ser feito criando-se um arquivo vazio como o comando touch, por exemplo:

touch touchpad.lock

Em segundo lugar devemos remover essa trava, se o touchpad for novamente habilitado.

Depois é necessário que, após o login, o sistema verifique a existência, ou não, desse arquivo para determinar se desabilita o touchpad ou o deixa habilitado.

Portanto, é necessária a criação de outro script que checará se o arquivo touchpad.lock existe e, em caso positivo, desabilitar o touchpad. Os scripts seguem abaixo:

#!/bin/bash


# Script touchpad_toogle.sh: habilita/desabilita o touchpad por meio das teclas de atalho (fn+f9)


# Local onde a trava será criadap
CMD="/home/username/.local/share/scripts/touchpad"


ID=$(xinput list | grep -Eio 'touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}')


STATE=$(xinput list-props $ID | grep 'Device Enabled' | awk '{print $4}')
if [ $STATE -eq 1 ]
   then
   xinput disable $ID
   # make the lock to remember the touchpad's last status
   touch $CMD/touchpad.lock
   # echo "Touchpad enabled."
   notify-send  -t 3000 'Touchpad' 'Disabled' -i /usr/share/icons/Numix-Circle/48x48/apps/input-touchpad.svg
else
   xinput enable $ID
   # remove the lock to remember the touchpad's last status
   if [ -f $CMD/touchpad.lock ]
      then
      rm $CMD/touchpad.lock
   fi
   # echo "Touchpad enabled."
   notify-send -t 3000 'Touchpad' 'Enabled' -i /usr/share/icons/Numix-Circle/48x48/apps/input-touchpad.svg
fi

#!/bin/sh
# Script touchpad_last_status.sh: verifica o último status do touchpad.
#
# Esse script deve ser executado ao fazer o login. Novamente no Xfce, fazemos a inclusão desse arquivo em:
# "Settings > Settings Manager > Session and Startup", aba "Application Autostart".


# Local onde a trava está localizada
CMD="/home/username/.local/share/scripts/touchpad"


ID=$(xinput list | grep -Eio 'touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}')


if [ -f $CMD/touchpad.lock ]
   then
   # Desabilita o touchpad
   xinput disable $ID
fi

Finalmente, caso queira desabilitar o touchpad por padrão basta criar um arquivo que de tenha apenas os comandos:

ID=$(xinput list | grep -Eio 'touchpad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}')
xinput disable $ID

E carregar o arquivo para execução em sessão.

Outras dicas deste autor

Como configurar um segundo drive de CDROM no seu Linux

Presets no XMMS

Removendo softwares instalados no Slackware

Instalando a placa de vídeo GeForce 4 MX numa PC-Chips M810LR-H

Leitura recomendada

Converta suas conexões VNC em Flash

Download de palestra - FISL 10: Biometria em Linux, existe?

GKrellM - GTK Meters

TOIlet - Incrementos divertidos para o Shell

Obtendo informações do sistema com o script INXI

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts