Eu tenho o código elisp abaixo na minha configuração do emacs que desativa meu touchpad, para que não me incomode ao escrever.
;; disable touchpad when on emacs
(defun turn-off-mouse (&optional frame)
(interactive)
(call-process-shell-command "xinput --disable bcm5974"
nil "*Shell command output*" t))
(defun turn-on-mouse (&optional frame)
(interactive)
(call-process-shell-command "xinput --enable bcm5974"
nil "*Shell command output*" t))
(add-hook 'focus-in-hook #'turn-off-mouse)
(add-hook 'focus-out-hook #'turn-on-mouse)
(add-hook 'delete-frame-functions #'turn-on-mouse)
(provide 'setup-xinput)
Isso funciona bem; o problema é apenas ao sair do Emacs.
Se eu sair do Emacs enquanto estiver no Emacs, ele manterá meu touchpad desativado. Então, preciso abrir um novo terminal com o teclado e executar xinput --enable bcm5974
.
Existe alguma solução alternativa para isso? Como eu poderia sair do Emacs e ao sair da reativação do meu touchpad?