Eu tenho um tablet Wacom Bamboo que tem uma função de touchpad que eu quase nunca uso - principalmente, atrapalha. Eu tenho um script que desliga essa função, executado através de um arquivo .desktop em ~/.config/autostart
. Isso funciona bem e não tenho nenhum problema em executar o script a partir de um terminal.
O problema é que, depois de sair da suspensão, a função de toque é reativada. Antes de atualizar para o 16.04, esse script foi chamado de /etc/pm/sleep.d/wacom
, que foi desativado novamente. Após a atualização, tentei fazer a mesma coisa usando systemd ( /lib/systemd/system-sleep/wacom
), mas parece haver algo muito diferente no contexto em que é executado, porque o comando produz erros intrigantes.
O syslog mostra wacom_set_report: ran out of retries (last error = -32)
e o erro -32 parece significar “tubo de comunicação quebrado”.
A saída do log mostra que até mesmo a obtenção do status falha— xsetwacom get "$DEVICE" touch
* não retorna nenhuma saída quando deve relatar “on” ou “off”. Executar o comando para desligar o toque ( xsetwacom set "$DEVICE" touch off
) retorna “ Failed to open Display .
”.
Eu também recebo isso - warning: commands will be executed using /bin/sh
, mas o script roda bem para mim usando sh
.
Eu tentei adicionar um comando sleep
antes de chamar o script, mas parece não ajudar. Chamei-o usando at
( at now + 1 min -f
), mas o resultado é o mesmo - embora esteja funcionando bem depois de retomar, o script ainda não consegue o status do dispositivo. Eu tentei colocar o comando status em um loop while, mas ele nunca saiu do loop (nenhum status foi retornado), mas ao mesmo tempo eu poderia executar o comando com sucesso em um terminal.
Eu também tentei colocar o comando diretamente em /lib/systemd/system-sleep/wacom
.
Isso é bastante trivial, mas irritante como isso costumava funcionar, mas agora não funciona.
·
* DEVICE="Wacom Bamboo 2FG 6x8 Finger touch"
, conforme retornado por xsetwacom list dev
.