我使用的是 Linux 发行版,即使在电池充满后我也没有收到任何通知。
是否有任何自定义脚本来运行电池充电状态并在电池充满电时输出声音通知?
如何从命令行通知所有在线(桌面)用户?
我知道,如果我希望在某事完成时得到通知,我只是这样做:
sudo apt-get update | notify-send "apt-get update" "update finished"
Run Code Online (Sandbox Code Playgroud)
我应该使用什么来通知所有用户(或某些特定用户)?
我在 Debian 6.0.5 (squeeze) 上,我时不时地在 GNOME2 面板的通知区域看到以下图标:
但黑色而不是红色。它显示包管理器正在工作。通常它只在几秒钟后显示红色,即可用更新,所以我认为它只是在寻找更新。但有时情况并非如此。我没有自动安装更新的选项,所以可能不是这样,所以我想知道是否有办法查看哪个包管理器正在运行。
单击它只会打开 Synaptic Package Manager,但它不会说明正在运行的内容。
gnome administration debian notifications package-management
我正在使用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被保存到 …
你知道,我就在那里,做我的事情,突然出现了一条可怕的广播消息!
fiatjaf@mises ~> sl
fiatjaf@mises ~> ls dotfiles/
urxvt
vim/
vimrc
fiatjaf@mises ~> cowsay good morning
______________
< good morning >
--------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
fiatjaf@mises ~>
fiatjaf@mises ~>
Broadcast message from root@mises
(/dev/pts/3) at 11:12 ...
The system is going down for maintenance NOW!
Run Code Online (Sandbox Code Playgroud)
如何从我自己的程序中触发这样的消息?
在 Debian 上,我现在收到这些消息,
对话框读取,
需要重新登录或重新启动!您的会话正在运行如下所列过时的二进制文件或库。请考虑重新登录或重启受影响的进程!bash[pids] sh[pids]
如何禁用这些通知?
我正在运行 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)
这是在哪里配置的?
我正在玩Pushover,并认为如果我可以将它用作任何随机命令的参数会很酷,这样它就会在任务结束时运行 pushover 脚本,无论该任务是什么.
我不知道这是否可能,或者我将如何去做,但我想学习。
RasPi Stack Exchange 网站上的这个问题让我想到了它。但我认为它有很多用处,比如让你知道编译工作何时最终完成,以及它是否成功。
我认为它可能看起来像:
$ apt-get -b source packagename -pushover "Compile job complete."
Run Code Online (Sandbox Code Playgroud)
想法是在任何命令之后的参数“-pushover [在此处输入消息文本]”将执行 pushover 脚本,并使用他们的 API 通过他们的应用程序通知您。
所以我想问题是,有可能以这种方式做吗?如果是这样,我从哪里开始?如果没有,是否有更好的方法来完成同样的事情,而不受您正在运行的命令的限制?
我并没有锁定将它用作命令参数的想法,但我确实想要一种使用任何命令运行它的方法,而无需为每个命令编写单独的脚本。
我是 Linux 的新手,所以如果它是一个非初学者的想法,我也会接受这个答案,前提是有合理的解释为什么它不适合它。
我使用 arch linux 和 i3wm。我的通知不起作用。当我dunst在命令行中输入时,它会响应:
警告:未找到 dunstrc。
当我输入时notify-send --icon=gtk-info Test "This is a test",它会一直运行,直到我用crt+cdunstify --action="replyAction,reply" "Message received"杀死它,而没有任何通知显示。
该/etc/X11/xinit/xinitrc.d/30-dbus.sh文件的内容:
#!/bin/bash
# launches a session dbus instance
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && type dbus-launch >/dev/null; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi
Run Code Online (Sandbox Code Playgroud)
这是我的journalctl:
18:57:43 arch-thinkpad systemd[562]: Starting Dunst notification daemon...
18:57:43 arch-thinkpad dunst[49939]: CRITICAL: Cannot open X11 display.
18:57:43 arch-thinkpad systemd[562]: dunst.service: Main process exited, code=exited, status=1/FAILURE
18:57:43 arch-thinkpad systemd[562]: dunst.service: …Run Code Online (Sandbox Code Playgroud) 在我的 vim 状态行的右侧,它显示“获取 ../”并以黄色突出显示。为什么会这样说?
:set 的结果是:
:set
--- Options ---
cpoptions=BceFs history=1000 incsearch nomodeline pastetoggle=<F2> ruler shiftwidth=4 tabstop=4 ttymouse=xterm2
helplang=en ignorecase laststatus=2 number report=10000 scroll=30 smartcase ttyfast
backspace=indent,eol,start
fileencoding=utf-8
fileencodings=ucs-bom,utf-8,default,latin1
formatprg=astyle -A2T4pDU
printoptions=paper:letter
runtimepath=~/.vim,/var/lib/vim/addons,/usr/share/vim/vimfiles,/usr/share/vim/vim73,/usr/share/vim/vimfiles/after,/var/lib/vim/addons/after,~/.vim/after
statusline=%f %h%m%r%=%9*Obtaining ../
suffixes=.bak,~,.swp,.o,.info,.aux,.log,.dvi,.bbl,.blg,.brf,.cb,.ind,.idx,.ilg,.inx,.out,.toc
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个通过通知发送发送通知的 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
我正在使用 OpenSSH 连接到 Linux 服务器,在那里我有一个tmux会话,我在其中执行某些需要很长时间的编译工作。现在,一旦某个需要很长时间的命令最终完成,我想立即在我的 Linux 客户端(我正在连接的计算机)上收到通知。
在本地,我知道如何使用弹出窗口、播放某些内容…… (1)、(2)通过运行某个命令来获得通知。现在我需要远程做同样的事情。一个完美的解决方案是某种反馈渠道,ssh但我不知道任何此类功能。
并且请不要使用(3) 中建议的基于电子邮件的解决方案。我已经收到太多的工作电子邮件,我正在尝试减少电子邮件的数量,只是为了确认而不是为了阅读、存储、转发或回复(为此,我什至创建了一个单独的电子邮件帐户,我不要收到实时通知)。
我正在尝试使用 cron 作业查看电池何时低于给定阈值,然后发送电池严重通知。但是,当我让 cron 作业每分钟执行一个脚本,并让脚本向我发送通知时,它不起作用。
为了确保这不是脚本的权限问题或导致 cron 作业无法运行的问题,我让脚本创建了一个文件,并且它起作用了。这是 crontab 条目:
* * * * * /home/aravk/test.sh
Run Code Online (Sandbox Code Playgroud)
而且,为了简化问题,这些是以下内容test.sh:
* * * * * /home/aravk/test.sh
Run Code Online (Sandbox Code Playgroud)
但是,没有显示通知。当我手动执行该脚本时,它确实有效。我还尝试通过将 crontab 条目更改为DISPLAY来设置环境变量,但它仍然不起作用。如何从 cron 作业执行的脚本发送通知?如果相关,我在 Arch Linux 上。:0* * * * * export DISPLAY=:0 && /home/aravk/test.sh