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

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

首先时安装一个 lib 包:

sudo apt-get install libnotify-bin

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

$ notify-send --help

Usage:

/usr/bin/notify-send [OPTION...] [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"

bddbdab17843b99206fc1e8f2dd3ab9c.png

文字通知

使用 -u 给通知设定通知等级,一般我们选择默认。

使用 -t 可以设定通知信息停留的时间(时间单位毫秒,为 0 时表示需要手动关闭通知,实际上我测试无效,怎样都是 5 秒就消失了),比如:

notify-send -t 2000 "hello world"

使用 -a 参数可以添加应用名称,在一些发行版中会把通知收进其通知收纳盒,使用这个参数可以知道是哪个应用发送的通知。

使用 -i 可以指定通知的图标,使用绝对路径或者相对路径都可以,例如:

/usr/bin/notify-send -i /data/favicon.png "hello,$USER"

cb5c39dcd069e2c3620d50920dcc468a.png

自定义图标的通知

使用 -c 和 -a 有些类似,都是为了在通知多时知道通知的分类,一般发行版都没有这些功能。

使用 -h 可以在通知中发送额外的信息,便于程序读取通知中的含义。

扩展

添加标题

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

09945599ee1c1f48314113f268db7249.png

带标题的通知

指定屏幕

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

在通知中执行命令

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

notify-send "当前目录是 `pwd`"

4e115d0c1f454699d0e9b8dff11c8704.png

可执行命令的通知

示例

随便举个例子:

实现后台升级系统完成后自动提示升级成功。

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 来调用通知,简单好用~~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值