讓 Emacs shell 命令傳送桌面通知
我總是使用 Eshell 來與作業系統進行互動,因為它與 Emacs 無縫整合、支援處理 (遠端) TRAMP 檔案,而且在 Windows 上也能工作得很好。
啟動 shell 命令後 (比如耗時嚴重的構建任務) 我經常會由於切換緩衝區而忘了追蹤任務的執行狀態。
多虧了 Emacs 的 鉤子 機制,你可以配置 Emacs 在某個外部命令完成後呼叫一個 elisp 函式。
我使用 John Wiegleys 所編寫的超棒的 alert 包來傳送桌面通知:
(require 'alert)
(defun eshell-command-alert (process status)
"Send `alert' with severity based on STATUS when PROCESS finished."
(let* ((cmd (process-command process))
(buffer (process-buffer process))
(msg (format "%s: %s" (mapconcat 'identity cmd " ") status)))
(if (string-prefix-p "finished" status)
(alert msg :buffer buffer :severity 'normal)
(alert msg :buffer buffer :severity 'urgent))))
(add-hook 'eshell-kill-hook #'eshell-command-alert)
alert 的規則可以用程式來設定。就我這個情況來看,我只需要當對應的緩衝區不可見時得到通知:
(alert-add-rule :status '(buried) ;only send alert when buffer not visible
:mode 'eshell-mode
:style 'notifications)
這甚至對於 TRAMP 也一樣生效。下面這個截圖展示了失敗的 make
命令產生的 Gnome 桌面通知。
via: https://blog.hoetzel.info/post/eshell-notifications/
作者:Jürgen Hötzel 選題:lujun9972 譯者:lujun9972 校對:wxy
訂閱“Linux 中國”官方小程式來檢視
相關文章
- gnome-shell 使用 notify-send 傳送桌面訊息
- Linux透過Shell命令向埠傳送資料Linux
- 【Python】釘釘webhook傳送通知PythonWebHook
- 鴻蒙傳送訊息通知鴻蒙
- 在 django 中使用 firebase 傳送通知Django
- facebook web端傳送應用通知邀請Web
- [譯] 由 Node.js 傳送 Web 推送通知Node.jsWeb
- shell指令碼:批次傳送curl請求指令碼
- 傳送kafka訊息的shell指令碼Kafka指令碼
- 命令列郵件傳送工具命令列
- 【測試】echo傳送和接收TCP/UDP資料包|shell 傳送TCP/UDP資料包TCPUDP
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- Linux基礎命令---sendmail傳送郵件LinuxAI
- Notification桌面通知實踐
- 如何在shell指令碼里使用sftp批次傳送檔案指令碼FTP
- 在Linux命令列傳送電子郵件Linux命令列
- Shell命令
- Jenkins+Allure測試報告+飛書機器人傳送通知Jenkins測試報告機器人
- Linux 命令列傳送郵件的 5 種方法Linux命令列
- Python監測監聽螢幕介面內容變化併傳送通知Python
- JS實現Web應用或網站傳送瀏覽器Notification通知JSWeb網站瀏覽器
- 把AirDrop放在程式塢,讓檔案傳送更方便AI
- 批次網站DNS區域傳送漏洞檢測——bash shell實現網站DNS
- Hive shell 命令Hive
- HDFS shell命令
- Shell printf 命令
- Shell test 命令
- Shell命令列命令列
- hbase shell命令
- shell命令(一)
- 常用shell 命令
- Emacs基礎使用教程及常見命令整理Mac
- 在 Linux 命令列傳送郵件的 5 種方法Linux命令列
- crontab執行結果未透過傳送mail通知使用者的方法AI
- 163郵箱傳送郵件通知異常 org.springframework.mail.MailAuthenticationException: Authentication failedSpringFrameworkAIException
- 短視訊系統原始碼,收到私信後傳送通知和提示音原始碼
- 如何才能讓傳送簡訊更容易被客戶理解?
- 使用gitlab ci構建IOS包併傳送通知訊息到企業微信GitlabiOS