最近寫一個(gè)腳本需要用到桌面通知,然后找了點(diǎn)資料秒咐,記錄一下啦鸣。
首先時(shí)安裝一個(gè) lib 包:
sudo apt-get install libnotify-bin
安裝之后就可以使用 /usr/bin/notify-send 來向桌面發(fā)送通知了。
$ notify-send --help
Usage:
/usr/bin/notify-send [OPTION...] <SUMMARY> [BODY] - create a notification
Help Options:
-?, --help Show help options
Application Options:
-u, --urgency=LEVEL Specifies the urgency level (low, normal, critical).
-t, --expire-time=TIME Specifies the timeout in milliseconds at which to expire the notification.
-a, --app-name=APP_NAME Specifies the app name for the icon
-i, --icon=ICON[,ICON...] Specifies an icon filename or stock icon to display.
-c, --category=TYPE[,TYPE...] Specifies the notification category.
-h, --hint=TYPE:NAME:VALUE Specifies basic extra data to pass. Valid types are int, double, string and byte.
-v, --version Version of the package.
從上面可以看到 notify-send 的基本功能就這么幾個(gè)谍婉。
- 比如直接向桌面發(fā)送一個(gè)通知:
notify-send "hello world"
文字通知
- 使用 -u 給通知設(shè)定通知等級(jí),一般我們選擇默認(rèn)镀钓。
- 使用 -t 可以設(shè)定通知信息停留的時(shí)間(時(shí)間單位毫秒穗熬,為 0 時(shí)表示需要手動(dòng)關(guān)閉通知,實(shí)際上我測(cè)試無效丁溅,怎樣都是 5 秒就消失了)唤蔗,比如:
notify-send -t 2000 "hello world"
- 使用 -a 參數(shù)可以添加應(yīng)用名稱,在一些發(fā)行版中會(huì)把通知收進(jìn)其通知收納盒窟赏,使用這個(gè)參數(shù)可以知道是哪個(gè)應(yīng)用發(fā)送的通知妓柜。
- 使用 -i 可以指定通知的圖標(biāo),使用絕對(duì)路徑或者相對(duì)路徑都可以涯穷,例如:
/usr/bin/notify-send -i /data/favicon.png "hello,$USER"
自定義圖標(biāo)的通知
- 使用 -c 和 -a 有些類似棍掐,都是為了在通知多時(shí)知道通知的分類,一般發(fā)行版都沒有這些功能拷况。
- 使用 -h 可以在通知中發(fā)送額外的信息作煌,便于程序讀取通知中的含義。
擴(kuò)展
添加標(biāo)題
notify-send "我是標(biāo)題" "我是內(nèi)容赚瘦,測(cè)試用的通知粟誓。"
帶標(biāo)題的通知
指定屏幕
如果你有多個(gè)屏幕,使用 DISPLAY=:0.0 可以給第一個(gè)屏幕發(fā)送通知起意,以此類推鹰服,詳細(xì)自己百度,我只有一個(gè)屏幕杜恰,笑。
在通知中執(zhí)行命令
除了可以在通知中調(diào)用顯示變量之外(上面 -i 的例子hello,$USER
)仍源,還可以使用下面的方式在發(fā)送通知時(shí)執(zhí)行命令:
notify-send "當(dāng)前目錄是 `pwd`"
可執(zhí)行命令的通知
示例
隨便舉個(gè)例子:
實(shí)現(xiàn)后臺(tái)升級(jí)系統(tǒng)完成后自動(dòng)提示升級(jí)成功心褐。
DISPLAY=:0.0 notify-send -t 3 "系統(tǒng)升級(jí)...." && sudo apt-get upgrade -y && notify-send -t 3 "升級(jí)完成。"
中間的命令你還可以替換成任意命令笼踩,比如使用 wget 下載文件結(jié)束后提示下載完成逗爹。
你還可以使用 alias 把 notify-send 放進(jìn) .bashrc 或者 .zshrc 中:
alias ns="DISPLAY=:0.0 notify-send "
然后直接使用 ns
來調(diào)用通知,簡(jiǎn)單好用~~