最近心血來潮,換到了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")