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.336 ]

 


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

Presets no XMMS

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

Removendo softwares instalados no Slackware

Como configurar um segundo drive de CDROM no seu Linux

Leitura recomendada

Como instalar o Debian-Live

Ideone.com - IDE online para C, PHP, Python, Java e muitas outras

Dividindo arquivos grandes restaurando-os com slipt e cat

Ligando/Desligando o PC-Speaker (beep) do terminal

Temas para Cinnamon

  

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