讓 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 中國”官方小程式來檢視
相關文章
- 鴻蒙傳送訊息通知鴻蒙
- Linux透過Shell命令向埠傳送資料Linux
- 在 django 中使用 firebase 傳送通知Django
- 【Python】釘釘webhook傳送通知PythonWebHook
- facebook web端傳送應用通知邀請Web
- [譯] 由 Node.js 傳送 Web 推送通知Node.jsWeb
- rman備份指令碼 傳送郵件通知指令碼
- 傳送kafka訊息的shell指令碼Kafka指令碼
- shell指令碼:批次傳送curl請求指令碼
- 命令列郵件傳送工具命令列
- 如何除錯ucenter中傳送的api通知訊息除錯API
- 使用shell自動傳送Oracle AWR報告Oracle
- linux shell傳送帶附件的郵件Linux
- 用shell指令碼傳送帶附件的email指令碼AI
- 使用Linux命令傳送郵件Linux
- 使用Linux命令來傳送資訊Linux
- Shell指令碼中傳送html郵件的方法指令碼HTML
- 【測試】echo傳送和接收TCP/UDP資料包|shell 傳送TCP/UDP資料包TCPUDP
- Notification桌面通知實踐
- Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- emacs 進階:瞭解命令Mac
- Linux基礎命令---sendmail傳送郵件LinuxAI
- 電腦如何用遠端桌面連線傳送資料
- 如何在shell指令碼里使用sftp批次傳送檔案指令碼FTP
- Jenkins+Allure測試報告+飛書機器人傳送通知Jenkins測試報告機器人
- JS實現Web應用或網站傳送瀏覽器Notification通知JSWeb網站瀏覽器
- 如何在 Linux 上使用 Gmail SMTP 伺服器傳送郵件通知LinuxAI伺服器
- linux自動重起服務,併傳送郵件通知結果Linux
- Hadoop Shell命令 |HDFS Shell命令| HDFS 命令Hadoop
- HTML5 桌面通知:Notification APIHTMLAPI
- 把AirDrop放在程式塢,讓檔案傳送更方便AI
- 在Linux命令列傳送電子郵件Linux命令列
- crontab執行結果未透過傳送mail通知使用者的方法AI
- 短視訊系統原始碼,收到私信後傳送通知和提示音原始碼
- Python監測監聽螢幕介面內容變化併傳送通知Python
- Shell命令
- 如何才能讓傳送簡訊更容易被客戶理解?
- 批次網站DNS區域傳送漏洞檢測——bash shell實現網站DNS