I have the below elisp code in my emacs config which disables my touchpad, so it won't annoy me when writing.

;; disable touchpad when on emacs

(defun turn-off-mouse (&optional frame)
  (call-process-shell-command "xinput --disable bcm5974"
                              nil "*Shell command output*" t))

(defun turn-on-mouse (&optional frame)
  (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)

This works fine; the problem is only when quitting Emacs.

If I quit Emacs while on Emacs, it keeps my touchpad disabled. So I need to open a new Terminal with the keyboard, and run xinput --enable bcm5974.

Is there any workaround for this? How could I quit Emacs and when quitting re-enabling my touchpad?

1 Answer 1


You can use kill-emacs-hook which is run when emacs is quit 'normally'.

Hook run when kill-emacs is called. Since kill-emacs may be invoked when the terminal is disconnected (or in other similar situations), functions placed on this hook should not expect to be able to interact with the user. To ask for confirmation, see kill-emacs-query-functions instead.

Just add turn-on-mouse to kill-emacs-hook like so

(add-hook 'kill-emacs-hook #'turn-on-mouse)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.