Thoát khỏi Emacs và dán lại bàn di chuột


8

Tôi có mã elisp dưới đây trong cấu hình emacs của mình sẽ vô hiệu hóa bàn di chuột của tôi, vì vậy nó sẽ không làm phiền tôi khi viết.

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

Điều này hoạt động tốt; vấn đề chỉ là khi bỏ Emacs.

Nếu tôi thoát Emacs khi đang sử dụng Emacs, nó sẽ khiến touchpad của tôi bị tắt. Vì vậy, tôi cần mở Terminal mới bằng bàn phím và chạy xinput --enable bcm5974.

Có cách giải quyết nào cho việc này không? Làm cách nào tôi có thể thoát Emacs và khi thoát khỏi kích hoạt lại bàn di chuột của mình?

Câu trả lời:


11

Bạn có thể sử dụng kill-emacs-hookchạy khi emacs thoát 'bình thường'.

Móc chạy khi kill-emacsđược gọi. Vì kill-emacscó thể được gọi khi thiết bị đầu cuối bị ngắt kết nối (hoặc trong các tình huống tương tự khác), các chức năng được đặt trên móc này sẽ không thể tương tác với người dùng. Để yêu cầu xác nhận, xem kill-emacs-query-functionsthay thế.

Chỉ cần thêm turn-on-mouseđể kill-emacs-hookthích như vậy

(add-hook 'kill-emacs-hook #'turn-on-mouse)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.