Keluar dari Emacs dan mengaktifkan kembali touchpad

8

Saya memiliki kode elisp di bawah ini di konfigurasi emacs saya yang menonaktifkan touchpad saya, sehingga tidak akan mengganggu saya saat menulis.

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

Ini berfungsi dengan baik; masalahnya hanya ketika berhenti Emacs.

Jika saya keluar dari Emacs saat menggunakan Emacs, itu membuat touchpad saya dinonaktifkan. Jadi saya perlu membuka Terminal baru dengan keyboard, dan jalankan xinput --enable bcm5974.

Apakah ada solusi untuk ini? Bagaimana saya bisa keluar dari Emacs dan ketika berhenti mengaktifkan kembali touchpad saya?

seds
sumber

Jawaban:

11

Anda dapat menggunakan kill-emacs-hookyang dijalankan ketika emacs keluar 'secara normal'.

Hook run saat kill-emacsdipanggil. Karena kill-emacsdapat dipanggil ketika terminal terputus (atau dalam situasi serupa lainnya), fungsi yang ditempatkan pada kait ini seharusnya tidak dapat berinteraksi dengan pengguna. Untuk meminta konfirmasi, lihat kill-emacs-query-functionssaja.

Cukup tambahkan turn-on-mouseke kill-emacs-hookseperti begitu

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