Linux之notify-send相关
Linux之notify-send相关
关于notify-send
notify-send
是一个在 Linux 系统中用于从命令行发送桌面通知的工具。它通过通知守护进程(notification daemon)向用户发送通知,可以用来提醒用户有关事件或显示某些信息,而不会干扰用户的正常工作。notify-send
是一个实用的工具,特别适合用于脚本或自动化任务中发送提醒。
notify-send基本使用
用法:
notify-send [选项…] <SUMMARY> [BODY] - create a notification
帮助选项:
-?, --help 显示帮助选项
应用程序选项:
-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
,可以通过包管理器进行安装。
例如,在基于 Debian 的发行版上,可以使用以下命令安装:sudo apt-get install libnotify-bin
- 发送简单通知:
notify-send "通知标题" "通知内容"
- 指定通知的紧急程度:
使用-u
选项可以设置通知的紧急程度,例如:notify-send -u critical "严重通知" "这是一个紧急通知"
- 使用自定义图标:
通过-i
选项可以指定一个图标,例如:notify-send -i /path/to/icon.png "带图标的通知" "这是一个带图标的桌面通知"
- 指定应用程序名称:
通过-a
可设置通知应用程序名称notify-send -a "应用程序名称" "通知标题" "通知内容"
- 在通知正文中使用 HTML 标记:
notify-send
支持在通知正文中使用一些 HTML 标记,以增强视觉效果。
notify-send以root身份发送通知
在root用户下使用notify-send,可能会遇到权限问题,因为 root 用户通常没有访问桌面环境和设置相关的权限, 比如 D-Bus 会话总线(session bus)的权限等。
使用如下方法就可以以root身份发送通知到现在运行的用户桌面上。
function notify-send() {
#Detect the name of the display in use
local display=":$(ls /tmp/.X11-unix/* | sed 's#/tmp/.X11-unix/X##' | head -n 1)"
#Detect the user using such display
local user=$(who | grep '('$display')' | awk '{print $1}' | head -n 1)
#Detect the id of the user
local uid=$(id -u $user)
sudo -u $user DISPLAY=$display DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$uid/bus notify-send "$@"
}
notify-send "xxx"
参考
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 DD'Notes!
评论