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-name.XDG 사운드 테마 구현).

답변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!"))))

관련 정보