优秀linux文章Linux学习之路我用 Linux

一行代码实现通用Linux桌面通知

2017-01-16  本文已影响398人  左蓝

最近写一个脚本需要用到桌面通知,然后找了点资料,记录一下。

首先时安装一个 lib 包:

sudo apt-get install libnotify-bin

安装之后就可以使用 /usr/bin/notify-send 来向桌面发送通知了。

$ 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 的基本功能就这么几个。

notify-send "hello world"
文字通知
notify-send -t 2000 "hello world"
/usr/bin/notify-send -i /data/favicon.png "hello,$USER"
自定义图标的通知

扩展

添加标题

notify-send "我是标题" "我是内容,测试用的通知。"
带标题的通知

指定屏幕

如果你有多个屏幕,使用 DISPLAY=:0.0 可以给第一个屏幕发送通知,以此类推,详细自己百度,我只有一个屏幕,笑。

在通知中执行命令

除了可以在通知中调用显示变量之外(上面 -i 的例子hello,$USER),还可以使用下面的方式在发送通知时执行命令:

notify-send "当前目录是 `pwd`"
可执行命令的通知

示例

随便举个例子:
实现后台升级系统完成后自动提示升级成功。

DISPLAY=:0.0 notify-send -t 3 "系统升级...." && sudo apt-get upgrade -y && notify-send -t 3 "升级完成。"

中间的命令你还可以替换成任意命令,比如使用 wget 下载文件结束后提示下载完成。

你还可以使用 alias 把 notify-send 放进 .bashrc 或者 .zshrc 中:

alias ns="DISPLAY=:0.0 notify-send "

然后直接使用 ns 来调用通知,简单好用~~

上一篇下一篇

猜你喜欢

热点阅读