Beenden von Emacs und erneutes Beschriften des Touchpads

8

Ich habe den folgenden Elisp-Code in meiner Emacs-Konfiguration, der mein Touchpad deaktiviert, sodass es mich beim Schreiben nicht stört.

;; 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)

Das funktioniert gut; Das Problem ist nur beim Beenden von Emacs.

Wenn ich Emacs auf Emacs beende, bleibt mein Touchpad deaktiviert. Also muss ich ein neues Terminal mit der Tastatur öffnen und ausführen xinput --enable bcm5974.

Gibt es eine Problemumgehung dafür? Wie kann ich Emacs beenden und mein Touchpad wieder aktivieren?

seds
quelle

Antworten:

11

Sie können verwenden, kill-emacs-hookwas ausgeführt wird, wenn emacs "normal" beendet wird.

Hook run wenn kill-emacsaufgerufen wird. Da kill-emacsFunktionen, die an diesem Hook platziert sind, möglicherweise aufgerufen werden, wenn das Terminal getrennt wird (oder in anderen ähnlichen Situationen), sollte nicht erwartet werden, dass sie mit dem Benutzer interagieren können. Informationen zur Bestätigung finden Sie kill-emacs-query-functionsstattdessen unter.

Fügen Sie einfach hinzu, turn-on-mouseum kill-emacs-hookso zu mögen

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