我正在玩notify-send和cron(在 Arch 机器上),但我想不出将它们结合起来的方法:
我尝试了here和here给出的解决方案,但都没有奏效。我该如何使用它们?
编辑: 我已经在 crontab 中设置了 DISPLAY,但它仍然没有工作。我在 Ubuntu 中尝试了同样的方法,并且一切正常。这是我的 cron 线:
*/1 * * * * DISPLAY=:0.0 /usr/bin/notify-send "hellp" || echo "er" > .er
Run Code Online (Sandbox Code Playgroud) 当 VLC 处于全屏模式时,如何防止桌面通知出现?
我的一些脚本使用notify-send. 最好的解决方案是配置critical通知仍然显示并
low抑制优先通知。这就是我创建通知的方式:
notify-send --urgency=low 'Foo' 'Bar'
notify-send --urgency=critical 'Foo' 'Bar'
Run Code Online (Sandbox Code Playgroud)
编辑:我在 Debian GNU/Linux sid 上使用 Gnome 版本 3.4.2 和很棒的 WM v3.4.14。如果 Gnomenotification-daemon已启动,或者 awesome 是否负责显示通知,这并没有什么区别。
当我notify-send用来发送一条简单的消息到notification-daemon:
notify-send "hello"
Run Code Online (Sandbox Code Playgroud)
它不仅会显示消息,还会创建一个系统托盘图标,如下面的屏幕截图所示:

此图标将保留在系统托盘中,直到我单击它并选择“清除所有通知”。这个图标完全违背了notify-send作为不显眼的通知的目的。我notify-send几年前使用过,我确信它没有任何托盘图标。不用说,这绝对令人讨厌。
我发现我可以使用transient选项
notify-send --hint=int:transient:1 hello
Run Code Online (Sandbox Code Playgroud)
这使得图标在一段时间后消失。这更好,但仍然不能接受。
有没有办法完全摆脱托盘图标?
我在 Debian Wheezy 上使用 LXDE
一些答案表明,这是由我的桌面环境 (LXDE) 引起的。
我觉得很难相信。我仍然怀疑这是由通知守护程序引起的。我已经下载了notification-daemon包的源代码CHANGELOG,其中包括:
- 添加了对将上下文通知附加到系统托盘上的图标的更好支持,即使它移动时也是如此。科林沃尔特斯的补丁。
这似乎是我抱怨的“功能”。
有人可以建议如何禁用系统托盘通知notification-daemon吗?当我 greptray或的来源时systray,我什么也没找到。我不知道从哪里开始。
我想看看哪个通知守护进程正在运行。这是因为我想更换它,因为它没有正确确认来自blueman-applet.
我提到我正在运行i3窗口管理器。
我正在使用 gpg-agent 和 Yubikey 来安全地存储我的 GPG 密钥。此外,我已启用,因此每当发生身份验证、签名或解密请求时,我都必须物理按下 Yubikey 上的按钮。当我这样做ssh FOO并且 Yubikey 开始闪烁时,很明显我需要推动它。
我也有执行任务的 cron 作业,例如在后台运行 mbsync 以检索电子邮件,然后它们又使用 GPG 来解密包含密码的文件。在这种情况下,我没有以交互方式启动命令,而是我的 Yubikey 开始闪烁,我不知道为什么(虽然我能猜到)。我希望能够看到当前对 gpg-agent 的查询是什么。
有没有一种方法可以监控和显示对 gpg-agent 的查询,以便我可以看到当前查询实际尝试做什么?
Linux Mint 12 桌面底部的通知栏似乎永远不会隐藏,除非我先在上面单击 N+1 次(N 是消息数)。由于它覆盖在所有窗口(甚至全屏视频)上,因此有点烦人。右击和左击通知栏不会弹出任何设置对话框,所以我想知道如何在超时后自动隐藏消息,禁用某些消息的显示(我不需要知道哪些外部磁盘在启动时插入),或者(如果所有其他方法都失败)完全禁用通知栏。
如果我正在与某人进行 Skype 通话(打开共享屏幕选项),我不想在有人给我打电话或给我发消息时收到通知。他们不应该知道我的联系人是谁。我应该怎么做才能实现这一目标?
我有一个 Bash 脚本,用于检查我的笔记本电脑电池并向我发送 Android 通知(通过 Shuttle,我编写的一个 Bash 脚本用作 Pushbullet API 的 cli 接口)。它运行良好,但当电池电量达到 100% 时,它会反复通知我拔掉笔记本电脑的电源。相反,我宁愿它只通知我一次 100% 收费,然后就是这样(即继续检查但不通知)。但是,我确实希望它在电池电量不足时反复通知我,以便我记得插入笔记本电脑(目前它正在这样做)。
我认为在循环中使用 continue 和 break 命令是可能的,但我不确定这是否是我想要的(我对这些不是很熟悉)。
无论如何,我很感激有关如何使用 Bash 最好地实现这一点的建议。我怀疑这很简单,但由于某种原因我没有得到它。
这是我的脚本:
#! /bin/bash
while true;
do
percent=$(acpi | awk '{ print $4}' | sed -e 's/%//g' | sed -e 's/,//g')
if [ "$percent" -le "20" ];
then
shuttle push note Chrome "Aurora: Plug in now" "Battery is at $percent percent"
fi
if [ "$percent" -eq "100" ];
then
shuttle push note Chrome "Aurora: Battery charged" …Run Code Online (Sandbox Code Playgroud) 恕我直言,GNOME (3) 中的通知隐藏得非常快。当然,这取决于用户,他/她阅读通知的速度等等。那么有没有办法改变通知在隐藏之前显示的时间?
快速搜索 dconf 我找不到任何设置。
从Ask Fedora交叉发布。
我正在尝试编写一个 BASH 脚本,每次在 dbus-monitor 的输出中找到某个字符串(稍后在帖子中指定的参数)时,该脚本都会创建一个时间戳(要写入文件)。我的脚本的主要目的是在 Spotify 上开始播放歌曲时节省时间(包括毫秒)和日期,因为它使用通知。
string "Spotify"每当播放歌曲时,就会输出以下命令。
dbus-monitor --session interface='org.freedesktop.Notifications',member='Notify' | grep 'string "Spotify"'
Run Code Online (Sandbox Code Playgroud)
我的尝试:
search='string "Spotify"'
found=$(dbus-monitor --session interface='org.freedesktop.Notifications',member='Notify' | grep 'string "Spotify"')
while [ ${search} == ${found} ]; do
date -u +%Y%M%d-%H%M%S.%N >> timestamp.txt
done
Run Code Online (Sandbox Code Playgroud)
我假设代码功能障碍的原因是 dbus-monitor 持续运行,因此阻止了 while 循环的执行。
notifications ×10
gnome ×2
gnome3 ×2
awesome ×1
bash ×1
battery ×1
blueman ×1
cron ×1
d-bus ×1
freedesktop ×1
gpg ×1
gpg-agent ×1
libnotify ×1
linux-mint ×1
lxde ×1
monitoring ×1
openbox ×1
panel ×1
scripting ×1
shell-script ×1
skype ×1
vlc ×1
x11 ×1
yubikey ×1