给 org-pomodoro 增加桌面通知功能

对于 Emacs 新手来说有时候会混合使用 Emacs 和别的软件,那么在 GTD 的过程中有时候忽略番茄时钟的工作、休息结束提示,这样会导致 Emacs GTD 体验的下降。

我参考子龙山人的配置,使用了 terminal-notifierorg-pomodoro 增加了桌面通知。这个插件只支持 mac 用户,windows 和 linux 用户可以参考我文章中给出的其他的插件。

方法在这里

效果是这样的

7 个赞

("-activate" “oeg.gnu.Emacs”) 是不是应该为 ”org,gnu.Emacs"

1 个赞

另外,如何取消notify的声音呢?每次听到都被下了一跳。。。

奇怪,我的并没有声音 而且声音是用 -sound 这个参数才触发的

对了,那个设置中,nil 0 nil 都是什么意思? 我修改了mac的通知设置,其他通知管用了,不过这个还是会有声音,可能是我这边的问题。

我这里有个更奇葩的问题, 加了-sender之后就无法正常提示了, 去掉这个参数就可以. 虽说也能用, 但是默认显示terminal的那个icon好丑 关键还没有任何错误提示, messages没有相关提示

而且我直接在终端里面执行termnial-notifier又没有任何问题 emacs版本是25.4 系统是os x 10.12.3

同样的问题,加了-sender之后就无法正常提示了,去掉这个参数就可以。在 emacs shell 里面运行 termnial-notifier 也不行。

想问你后来解决了么

Have you try alert?

是 24.5 吧?

怎么感觉你们的 terminal-notifier 跟我的不一样

;; "GNU Emacs 24.5.3 (x86_64-apple-darwin13.4.0, Carbon Version 157 AppKit 1265.21)
(call-process "terminal-notifier" nil 0 nil
              "-message" "Emacs"
              "-sender" "org.gnu.Emacs")
[eshell] ~$ which terminal-notifier
/usr/local/bin/terminal-notifier
[eshell] ~$ terminal-notifier -message "Eshell" -sender "org.gnu.Emacs"
[iTerm2] ~$ which terminal-notifier
/usr/local/bin/terminal-notifier
[iTerm2] ~$ terminal-notifier -message "iTerm2" -sender "org.gnu.Emacs"

GNU Emacs 25.2.1 (x86_64-apple-darwin16.5.0, Carbon Version 157 AppKit 1504.82) 我前两种都不会提示,也没有错误提示,去掉 -sender 就可以了。 另外没看出什么不一样啊

emacs 25.1 我也不知道那个25.4是怎么想出来的…

terminal-notifier我是用brew装的, 还是这样的问题

我的也是这样,加了 sender 参数之后就没法正常弹出消息了

直接用 alert 就可以了

身为ubuntu党搞了半天搞不定growl-for-linux,后来干脆用notify-send:

(add-hook 'org-pomodoro-finished-hook
	(lambda ()
		(call-process-shell-command "notify-send -u critical 您要休息一下了!" )))

1 个赞

正专注的时候,那「𪠽」的一声,魂儿都吓飞了!

怎么自定义一个放在指定位置的声音文件,替换那「𪠽」?

1 个赞

有时候不得不在windows下工作,该使用什么样的程序提醒呢?

用 windows 的通知中心。我找到了一个 powershell 脚本 New-DotNetToast.ps1

我是windows7 估计用不了吧

在 win10 上可以在 pomodoro 的钩子函数中使用 org-notify 发送通知 ,没有依赖其它软件。也许可以在 win7 上用。

(when IS-WINDOWS
  (after! org-pomodoro
    :config
    (add-hook 'org-pomodoro-finished-hook
              (lambda ()
                (org-notify "A pomodoro is finished, take a break !!!")
                ))
    (add-hook 'org-pomodoro-short-break-finished-hook
              (lambda ()
                (org-notify "A short break done, ready a new pomodoro !!!")
                ))
    (add-hook 'org-pomodoro-long-break-finished-hook
              (lambda ()
                (org-notify "A long break done, ready a new pomodoro !!!")
                ))
  ))
2 个赞