iptux来新消息时托盘图标会闪烁,一般情况下都能注意到。但是,当处在一个全屏了的虚拟机里面时,托盘自然就看不到了。

当收到新信息的时候,用 notify-send 命令发一个基于 X 的通知。就算在全屏的虚拟机里面,也能收到这个基于 X 的通知。ppa


--- iptux-0.5.3.orig/src/StatusIcon.cpp	2012-11-04 19:02:40.000000000 +0800
+++ iptux-0.5.3/src/StatusIcon.cpp	2012-11-04 19:04:12.000000000 +0800
@@ -98,6 +98,7 @@
         /* 获取消息串 */
         pthread_mutex_lock(cthrd.GetMutex());
         if ( (len = cthrd.GetMsglineItems())) {
+                system("/usr/bin/notify-send -u low -c im -t 500 'Instant Message'");
                 gtk_status_icon_set_blinking(sicon->statusicon, TRUE);
                 msgstr = g_strdup_printf(_("To be read: %u messages"), len);
         } else {
@@ -116,10 +117,13 @@
                 g_free(msgstr);
 #else
         pthread_mutex_lock(cthrd.GetMutex());
-        if (cthrd.GetMsglineHeadItem())
+        if (cthrd.GetMsglineHeadItem()) {
+                system("/usr/bin/notify-send -u low -c im -t 500 'Instant Message'");
                 gtk_status_icon_set_blinking(sicon->statusicon, TRUE);
-        else
+        }
+        else {
                 gtk_status_icon_set_blinking(sicon->statusicon, FALSE);
+        }
         pthread_mutex_unlock(cthrd.GetMutex());
 #endif