讓gnome 3.4 使用notify-osd

這是我煩惱了幾天的問題了,gnome 3本身的提示服務0〔就是平時顯示在屏幕下面正中的那個我不喜歡〕弄不掉啊。
網上的找到的方法已經過時了,像修改main.js或dbus目綠都行不通。

Google了兩天還是沒有找到解答,最後決定自己編一個了。


問題:
notify-send不會使用新安裝的notify-daemon或notify-osd。


原因:
因為gnome 3本身內置的提示服務佔據了dbus的"org.freedesktop.Notifications"服務,另notify-osd及notify-daemon無法登記這個住置,所以不管怎麼移除或重新安裝都是沒有用的。


解決方法:
重新編一個gnome-shell。

其實理論上應該可以讓gnome3重新登錄這個服務的,不過我不會寫C/C++,加上python與perl的dbus模組沒有這個功能。對我來說這是最簡單的方法了。

1. 準備編譯環境
# 首先下載gnome-shell原始碼〔請隨意創建一個目錄〕:
apt-get source gnome-shell

# 然後安裝編繹所需的界面〔需要root權限〕:
apt-get build-dep gnome-shell

2. 修改源始碼,其實需要修改的就只有一行!
# 找出org.freedesktop.Notifications
grep -r org.freedesktop.Notifications -n

像這樣,我的就在src/main.c 行151:

將行151去掉:

然後就是編譯了:
# 首先建立makefile
sh autogen.sh

# 編譯
make

# 安裝
make install

重新啟動之後notify-osd就能成功登錄服務了!
Profile picture
斟酌 鵬兄
Sat Sep 21 2013 20:06:25 GMT+0000 (Coordinated Universal Time)
Last modified: Mon Sep 23 2013 00:39:52 GMT+0000 (Coordinated Universal Time)
Comments
No comments here.
Do you even comment?
website: 
Not a valid website
Invalid email format
Please enter your email
*Name: 
Please enter a name
Submit
抱歉,Google Recaptcha 服務被牆掉了,所以不能回覆了