gnomeのデフォルト通知システムを使用するためにemacsでティータイムを設定する方法

gnomeのデフォルト通知システムを使用するためにemacsでティータイムを設定する方法

簡単な方法がありますか?tea-timegnomeのデフォルト通知システムを介してメッセージを表示しますか?

tea-time.elの現在の「通知機能」は次のとおりです。

(defun show-notification (notification)
  "Show notification. Use mumbles."
 (if (program-exists "mumbles-send")
    (start-process "tea-time-mumble-notification" nil "mumbles-send" notification)
  (message notification)
 ))

代わりに編集しようとしましたが、notify-send成功しませんでした。特に(shell-command (concat "notify-send " notification))inのようなものを使うのはうまく(start-process "tea-time-mumble-notification" nil "mumbles-send" notification)いかないようです(もちろんif文も削除しました)。

提案?

答え1

うん、電話してください。notify-send警告フックのコマンド(存在する場合、そうでない場合はこれを取得するためにティータイムをパッチする必要があるかもしれません)

答え2

Emacs 24では、notifications.elelispコードから直接D-Bus通知を送信できます。上記の@yhagerのフックを書き直してください。

(add-hook 'tea-time-notification-hook
  (lambda ()
    (notifications-notify :title "Time is up!"
                          :body "I know you're busy, but it's TEA TIME!!"
                          :app-name "Tea Time"
                          :sound-name "alarm-clock-elapsed)))

より便利なパラメータの説明があります。通知ページ~のEmacs Lispリファレンスマニュアル:sound-file代わりにオプションを含めてください:sound-nameXDGサウンドテーマの実装)。

答え3

試行錯誤により、次のような再定義が可能であることを発見しました。

(defun show-notification (notification)
"Show notification. Use notify-send."
(start-process "tea-time-notify-notification" nil "notify-send" notification)
)

もっと素敵なことをすることもできます。

(start-process "tea-time-notify-notification" nil "notify-send" "-i" (expand-file-name "~/path/to/your/icon/YourIconName.png") "Emacs Tea Timer" notification)

通知デーモンへのアイコン(これ適切)通知ポップアップで太い「要約」テキスト(「Emacs Tea Timer」)を使用します。

答え4

最新のtea-time.elには、これを達成するために使用できるフックがあります。
Emacsの初期化に以下を追加します。

(add-hook 'tea-time-notification-hook 
  (function (lambda() 
    (start-process "tea-timer-notification" nil "notify-send" "Time is up!"))))

関連情報