Habilitando/desabilitando o touchpad através da tecla de função Fn (Fn + F9) em notebooks Asus
Dica publicada em Linux / Miscelânea
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:
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:
Finalmente, caso queira desabilitar o touchpad por padrão basta criar um arquivo que de tenha apenas os comandos:
E carregar o arquivo para execução em sessão.
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.