最近心血来潮,换到了Ubuntu13.10。通过一段时间的整治,使着仍是挺方便的。 python
惟一不爽的就是系统通知(右上角上面偶尔出现的信息提示条)出现的时间太长了(默认是10s)。 linux
你们都知道,咱们日常不论干什么QQ是要登陆的,偶也不例外。本人在Firefox下使用的webQQ,每次群里一聊天,那信息提示框过了好几分钟了还以那儿提示老久之前的消息呢,导至换歌的时候我都看不到Deepin音乐的提示了。 git
这不行啊,太难受了。作为一个不做就会死的程序猿,咱得处理一下这个问题。 github
Google了一把,能够把系统默认的notify-osd这个系统通知组件换成通过Leolik大神修改的,此修改版能够控制timeout,Ok照https://launchpad.net/~leolik/+archive/leolik 装了一边。 web
通过notify-send测试timeout是能够生效的,可是如今问题来了每次换哥的时候通知一闪就完了,我靠,以前时间长,如今我还没看清就关掉了
app
So怀疑是音乐内部设置了超时的时间,可是查看通知插件的代码也没有发现有设置timeout的地方(地址:https://github.com/linuxdeepin/deepin-music-player/blob/master/plugins/notify/__init__.py 你们有兴趣能够看一下)。
测试
随便看的时候在源码目录下发现有一个dbus_notify.py,打开一看内容跟插件中调用的接口特别像,仔细一对照。得就是它了,下面是修正后的代码。你们其实直接修改/usr/share/deepin-music-player/src下的文件就能够了。就添加了一行代码,改了下timeout时间
spa
class DbusNotify(object): def __init__(self, app_name, icon=None): self.app_name = app_name self.icon = icon or app_name self.summary = "" self.body = "" self.hints = {} self.actions = [] self.timeout = 1000 ##修改此处的timeout时间,因为是毫秒记,因此记得×1000。原来是3连一秒都不到,确定是一闪而过啊 def set_summary(self, summary): self.summary = summary def set_body(self, body): self.body = body def set_icon_from_pixbuf(self, pixbuf): pass def pixbuf_to_dbus(self, pixbuf): pass def set_icon_from_path(self, image_path): self.hints["image-path"] = image_path self.icon = image_path ##此处是在通知栏中显示歌曲的封面,默认的时候居然没有这条语句,deepin开源也太不负责了吧 def notify(self): bus = dbus.SessionBus() # if not check_dbus(bus, NOTIFICATIONS_SERVICE_NAME): # return False try: proxy = bus.get_object(NOTIFICATIONS_SERVICE_NAME, NOTIFICATIONS_PATH) notify_interface = dbus.Interface(proxy, NOTIFICATIONS_SERVICE_NAME) notify_interface.Notify(self.app_name, 5, self.icon, self.summary, self.body, self.actions, self.hints, self.timeout) except: pass dbus_notify = DbusNotify("deepin-music-player", "deepin-music-player")