tmux桌面通知及RSS源被墙的解决

最近两天在家折腾自己机器,解决了几个小问题。解决的问题个人觉得有些用处,而且看了看网上似乎没有什么相关的资料提到,就合在一起说一下。

Tmux桌面通知

tmux有个很有用的功能,就是可以帮助用户监控某个窗口的活动或静止状态。简单解释就是用户在tmux中的某个窗口执行一个长时间运行的命令(比如make)后,可以要求tmux监控该窗口然后切到其它窗口去工作;到该窗口的输出状态改变时,tmux会在它的状态栏显示提示信息或者以蜂鸣声提醒用户,用户就可以切回该窗口继续下一步工作了。

前面所说的窗口及状态栏都是tmux中的概念而非窗口管理器中的概念。换句话说,当我在rxvt中使用tmux时,提示信息只能在rxvt中显示,正在使用浏览器的用户是注意不到提示的;蜂鸣声也不适合在公共场合使用,这迫使用户仍然要时不时的自行切回tmux窗口检查状态。

需要补充说明一下的是tmux中窗口的状态改变是由窗口是否产生新输出来判定的。即窗口放置一段时间后产生了新输出即为静止(silence)状态变为活动(activity)状态,持续产生输出的窗口一定时间内不再产生输出了即为活动状态变为静止状态。

对此我希望能配置tmux使用notify-send来发送通知。目标是让tmux在其状态栏显示提示的同时,X桌面会弹出桌面通知我哪个tmux任务的哪一个窗口有了新输出或停止了输出。

很少有人提到的是,tmux提供了针对少量内部事件的hook机制,其配置语法为:

set-hook [-g] [-t target-session] hook-name command

支持的事件类型只有几种:

  • alert-activity ...
more ...