该notify-send命令手册说
Usage:
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.
-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 …Run Code Online (Sandbox Code Playgroud) 我使用 Linux Mint 13 MATE,并且在插入/拔出设备时尝试设置通知。
首先,我找到了udev-notify包,但不幸的是它几乎对我不起作用:它工作的时间很短(1-2 分钟),然后,如果我连接/断开任何设备,它会崩溃:
Traceback (most recent call last):
File "./udev-notify.py", line 319, in <module>
notification.show()
glib.GError: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name :1.1061 was not provided by any .service files
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何解决方案,所以我不得不将其删除。(日提交错误报告也)
令人惊讶的是,到目前为止我还没有找到类似的实用程序。然后我尝试编写应该匹配所有设备的 udev 规则。我添加了新文件/etc/udev/rules.d/notify.rules:
ACTION=="add", RUN+="/bin/bash /home/dimon/tmp/device_plug.sh"
ACTION=="remove", RUN+="/bin/bash /home/dimon/tmp/device_unplug.sh"
Run Code Online (Sandbox Code Playgroud)
和两个脚本:
device_plug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device plugged"
/usr/bin/play -q /path/to/plug_sound.wav &
Run Code Online (Sandbox Code Playgroud)
device_unplug.sh:
#!/bin/bash
export DISPLAY=":0"
notify-send "device unplugged"
/usr/bin/play -q /path/to/unplug_sound.wav &
Run Code Online (Sandbox Code Playgroud)
它有效,但它的工作非常愚蠢。我的问题是:
lsusb输出中看到的相同?目前,我只收到诸如“已插入”和“未插入”之类的通知,但我找不到如何在我的 udev 规则中检索设备名称(如果可以,我会将它作为范围)假设我使用notify-send这些长消息:
notify-send 'd: title, up/down: zoom, w: win_to_img, </>: rotate, *: orig, Enter/0: blah blah blah'
Run Code Online (Sandbox Code Playgroud)
但它会截断消息,只显示其中的一部分,而没有查看完整消息的选项:
使用 Fedora 21,我能够查看完整消息(在底部弹出滚动条),但使用 Fedora 24 则无法查看。
版本notify-send是 libnotify-0.7.6-8.fc24.i686。
无论如何要在 Fedora 24 中显示完整消息吗?
我已经浏览了手册页notify-send,但我无法理解以下两个选项
-u, --urgency=LEVEL Specifies the urgency level (low, normal, critical).
-h, --hint=TYPE:NAME:VALUE
Specifies basic extra data to pass. Valid types are int, double, string and byte.
Run Code Online (Sandbox Code Playgroud)
我相信紧急度的唯一用途是显示高紧急度通知,即使低紧急度在队列中。但什么是提示?我找不到关于它的更多信息。类型我理解,但是 NAME:VALUE 将在哪里使用?
除上述内容外,该-t选项还显示“以毫秒为单位的超时时间”,但我看到通知的停留时间超过了给定值。甚至不尊重给定的价值。例如我给了-t 400。通知应在 400 毫秒后关闭,但它会在大约 5 秒后消失。
有关上述问题的任何信息?
我在我的桌面上使用notify-send和dunst作为我的通知系统。
经过研究,我发现有一些商业解决方案可以向iOS设备发送推送通知,我什至使用Pushover编写了一个脚本。
但是,我没有找到任何方法来从我桌面上显示的 iPhone 获取通知。(最好使用统一的通知系统,例如使用notify-send)。我知道 OSX 对此有很好的支持,所以我想这不是不可能的,但我没有找到任何可行的解决方案。
当然,最好的解决方案是完全同步,包括在一个地方读取通知时从两个地方删除通知。
当然,很多问题已经解决了。电子邮件、Facebook 等通知基本上可以“同步”开箱即用。
我可以编写脚本,包括必须编写自定义过滤器等。如果没有完整的解决方案,我对仅获取构建块感到满意,尤其是那些以某种方式将 iOS 通知发送到我的桌面的东西。
编辑:我添加了标签蓝牙,因为我了解到 OSX 使用蓝牙 LE 来做到这一点。不过,查找蓝牙 LE 支持仍然没有帮助我。
notify-send在 bash 脚本中给出一些简单的命令,例如
notify-send "test"
Run Code Online (Sandbox Code Playgroud)
当用户单击该通知时,如何使确定的窗口获得焦点?我以为玩转-a开关会做些什么,但我无法让它在 GNOME Shell 和 XFCE 上工作。
我notify-send在Manjaro Linux中使用发送通知,如下:
notify-send [OPTIONS] [Message Summary] [Message Body]
Run Code Online (Sandbox Code Playgroud)
然而,我搬到了流行音乐!操作系统和我发现command not found: notify-send
我听说notify-send已经死了,所以我试图找到一个替代命令来在Pop!中发送通知。操作系统
是否也可以在 Pop! 中安装通知发送?操作系统?
我正在使用Linux Mint 17.
我想每 50 分钟收到一次通知,每小时一次的小休息。
这是cron 工作:
nazar@desktop ~ $ crontab -l
DISPLAY=:0.0
XAUTHORITY=/home/matrix/.Xauthority
00 13 * * * /home/nazar/Documents/scripts/lunch_break_job.sh # JOB_ID_2
50 * * * * /home/nazar/Documents/scripts/pc_break.sh # JOB_ID_1
* * * * * /home/nazar/Documents/scripts/cron_job_test.sh # JOB_ID
Run Code Online (Sandbox Code Playgroud)
这是脚本/home/nazar/Documents/scripts/cron_job_test.sh:
#!/bin/bash
export DISPLAY=0.0
export XAUTHORITY=/home/matrix/.Xauthority
if [ -r "$HOME/.dbus/Xdbus" ]; then
. "$HOME/.dbus/Xdbus"
fi
/usr/bin/notify-send -i "hello"
Run Code Online (Sandbox Code Playgroud)
这个函数片段:
if [ -r "$HOME/.dbus/Xdbus" ]; then
. "$HOME/.dbus/Xdbus"
fi
Run Code Online (Sandbox Code Playgroud)
检查DBUS_SESSION_BUS_ADDRESS并使用它。
根据这个答案我执行了脚本,现在我的Dbus被保存到 …
我正在运行 linux mint 并将该notify-send命令用于各种目的,当然也从常规应用程序(例如不和谐或 MS Teams)接收通知
使用 Cinnamon DE 时,它们看起来很正常,我什至可以在自定义notify-send调用中添加图标,以清楚地表明发生了什么
然而,我最近开始使用 XMonad WM,我发现不仅常规应用程序通知丑陋,而且我的自定义应用程序通知(其中有漂亮的图标)也遵循相同的丑陋风格(请原谅模糊的屏幕截图):
例如,根据以下命令,上述通知应包含一个图标:
notify-send --hint=int:transient:1 'Connecting to VPN... Check 2FA Device.' -i myicon
Run Code Online (Sandbox Code Playgroud)
这是在哪里配置的?
根据 Bash:特殊参数:
($!) 扩展到最近放入后台的作业的进程 ID,无论是作为异步命令执行还是使用 bg 内置
我可以按如下方式使用它:
$ leafpad &
[2] 3962
$ kill $!
Run Code Online (Sandbox Code Playgroud)
这有效并杀死最近的进程(例如leafpad),但notify-send它似乎不起作用:
$ notify-send Hello &
[2] 4052
$ kill $!
bash: kill: (4052) - No such process
Run Code Online (Sandbox Code Playgroud)
我必须使用killall notify-osd才能杀死它。
所以,我想知道为什么kill $!不起作用notify-send?杀死这样一个进程的正确方法是什么?
注意:我知道我可以指定超时,但这是一个不同的问题。
我使用的是 Linux Mint 18.1,MATE。
我正在使用 notify-send 命令来可视化键的名称(例如<enter>),同时通过 python 脚本将它们发送到当前窗口。大约两周以来,notify-send 显示出一种奇怪的行为。我知道 bash 的基本语法是notify-send [OPTIONS] <summary> [body].
执行时notify-send -t 0 '<enter>' 'text body',一切看起来都很好:

但是,当尝试使用 打印消息正文中的密钥名称时notify-send -t 0 'Summary' '<enter>',我得到:
同样的情况发生在notify-send -t 0 'Summary' '<', notify-send -t 0 'Summary' '>'或notify-send -t 0 'Summary' \<
如果正文包含 < 或 > ,为什么正文打印为空白有什么想法吗?
我尝试使用 python 模块代替:
from gi.repository import Notify
Notify.init("App Name")
Notify.Notification.new("Summary","<enter>").show()
Run Code Online (Sandbox Code Playgroud)
但结果与上图 2 中的结果相同。
zenity --info --title='Summary' --text='<enter>'在 bash …
我正在尝试创建一个通过通知发送发送通知的 cron 作业。
我目前正在尝试这个:
*/2 * * * * DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus /usr/bin/notify-send "test"
Run Code Online (Sandbox Code Playgroud)
如果我只是从终端运行它,这是有效的。
我也试过设置
XAUTHORITY=/home/munhunger/.Xauthority
Run Code Online (Sandbox Code Playgroud)
我有一个类似的 crontab,它运行一个 shell 脚本,该脚本具有打印到日志文件的相同变量,所以我知道 crontab 正在工作。但是,仍然没有显示任何通知。
有没有人知道可能有什么问题?
我正在运行 Ubuntu 17.10,上面有 i3