这个问题就像当 VPN 连接时是否可以添加通知消息?答案中的 python 脚本(见下文)在 13.04 上运行良好,但它只会在建立新连接时发出通知,而不会在 VPN 连接断开时发出通知,这一点更为重要,因为它可能随时发生。
有人可以调整一下断开连接的脚本吗?
或者,文件系统中网络连接(用于 VPN)托盘图标保存在哪里,以便我可以更改它 - 微型挂锁太小了,几乎看不见。反转前景/背景颜色会更好。
import gtk
import pynotify
import dbus
from dbus.mainloop.glib import DBusGMainLoop
def vpn_connection_handler(*args, **keywords):
state = args[0].get('State',0)
if state == 2:
n = pynotify.Notification ("VPN", "Connection established")
n.show()
pynotify.init ("icon-summary-body")
dbus_loop = DBusGMainLoop()
system_bus = dbus.SystemBus(mainloop=dbus_loop)
system_bus.add_signal_receiver(vpn_connection_handler,
dbus_interface="org.freedesktop.NetworkManager.VPN.Connection",
signal_name="PropertiesChanged")
gtk.gdk.threads_init()
gtk.main()
答案1
其实很简单。您已经知道必须检查state
VPN 何时连接,因此添加一个小的打印语句来查看state
断开 VPN 连接时的值。
我明白了4
,所以只需添加一个 elif 块:
elif state == 4:
n = pynotify.Notification ("VPN", "Connection lost")
n.show()
但是,我已经收到了来自网络管理器本身的通知,你没有吗?