Emacsを終了してタッチパッドを再度有効にする


8

私のemacs設定には、タッチパッドを無効にする以下のelispコードがあるので、書いているときに邪魔になりません。

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

これは正常に動作します。問題はEmacsを終了するときだけです。

Emacsの使用中にEmacsを終了すると、タッチパッドが無効のままになります。キーボードで新しいターミナルを開き、を実行する必要がありますxinput --enable bcm5974

これの回避策はありますか?Emacsを終了する方法と、タッチパッドの再有効化を終了する方法を教えてください。

回答:


11

kill-emacs-hookemacsが「正常に」終了したときに実行されるwhich を使用できます。

kill-emacs呼び出されたときにフックが実行されます。kill-emacs端末が切断されたとき(または他の同様の状況で)に呼び出される可能性があるため、このフックに配置された関数は、ユーザーと対話できることを期待すべきではありません。確認を求めるには、kill-emacs-query-functions代わりにを参照してください 。

好きに追加turn-on-mouseするだけkill-emacs-hook

(add-hook 'kill-emacs-hook #'turn-on-mouse)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.