Ntfy - 长时间运行的命令完成时获取桌面或电话警报
Ntfy 是一个简单但可用的跨平台 Python 实用程序,使您能够根据需要或在长时间运行的命令完成时自动获取桌面通知。一旦特定命令完成,它还可以向您的手机发送推送通知。
它支持与流行的Linux shell(例如bash和zsh)集成;默认情况下,ntfy 只会发送持续时间超过 10 秒的命令且终端处于焦点状态的通知。它还提供流程、emjoi、XMPP、Telegram、Instapush 和 Slack 通知支持功能。
请观看以下视频,该视频演示了 ntfy 的一些功能:
第1步:如何在Linux中安装Ntfy
可以使用 Python Pip 安装 Ntfy 软件包,如下所示。
sudo pip install ntfy
安装 ntfy 后,可以使用位于 ~/.ntfy.yml
或标准平台特定位置 ~/config/ntfy/ntfy.yml
中的 YAML 文件对其进行配置在 Linux 上。
它通过 dbus 运行,并且适用于大多数(如果不是全部)流行的 Linux 桌面环境,例如 Gnome、KDE、XFCE 和 libnotify。请确保在使用之前安装了所需的依赖项,如图所示。
sudo apt-get install libdbus-glib-1-dev libdbus-1-dev [On Debian/Ubuntu]
sudo yum install dbus-1-glib-devel libdbus-1-devel [On Fedora/CentOS]
pip install --user dbus-python
步骤 2:将 Ntfy 与 Linux Shell 集成
ntfy 支持在 bash 和 zsh 中完成长时间运行的命令后自发发送通知。在 bash 中,它使用 rcaloras/bash-preexec 重现了 zsh 的 preexec 和 precmd 功能。
您可以在 .bashrc
或 .zshrc
文件中启用它,如下所示:
eval "$(ntfy shell-integration)"
与 shell 集成后,nfty 会在您的桌面上发送任何持续时间超过 10 秒的命令的通知(只要终端处于焦点状态),这是默认设置。
请注意,终端焦点适用于 X11 和 Terminal.app。您可以通过 --longer-than
和 --foreground-too
标志来配置它。
忽略不必要的通知
可以想象,您可以在运行交互式程序时消除不必要的通知,这可以使用 AUTO_NTFY_DONE_IGNORE 环境变量进行配置。
例如,使用下面的export命令,您将阻止命令“vim screen meld”生成通知:
export AUTO_NTFY_DONE_IGNORE="vim screen meld"
第三步:如何在 Linux 中使用 Nfty
安装并配置 ntfy 后,您可以使用以下示例对其进行测试:
ntfy send "This is TecMint, we’re testing ntfy"
下面的示例显示了如何运行命令并在完成时发送通知:
ntfy done sleep 5
要使用自定义通知标题,请按如下方式设置 -t
标志。
ntfy -t 'TecMint' send "Using custom notification title"
下面的示例将显示所使用的特定代码的表情符号。
ntfy send ":wink: Using emoji extra! :joy:"
要在指定 ID 的进程完成后向桌面发送通知,请使用以下示例:
ntfy done --pid 2099
您可以使用通知指示器查看所有通知,运行以下命令来安装最近的通知指示器。
sudo add-apt-repository ppa:jconti/recent-notifications
sudo apt update && sudo apt install indicator-notifications
安装完成后,从 Unity Dash 启动指示器,运行一些 ntfy 命令,然后单击面板中的图标以查看所有通知。
要查看帮助消息,请运行:
ntfy -h
第 4 步:安装附加 Ntfy 功能
您可以安装其他功能,但这需要额外的依赖项:
ntfy did -p $PID – 需要安装为ntfy[pid]。
pip install ntfy[pid]
emjoi 支持 – 需要安装为 ntfy[emoji]。
pip install ntfy[emoji]
XMPP 支持 – 需要安装为 ntfy[xmpp]。
pip install ntfy[xmpp]
Telegram 支持 – 需要安装为 ntfy[telegram]。
pip install ntfy[telegram]
Instapush 支持 – 需要安装为 ntfy[instapush]。
pip install ntfy[instapush]
Slack 支持 – 需要安装为ntfy[slack]。
pip install ntfy[slack]
要使用单个命令安装多个额外功能,请用逗号分隔它们,如下所示:
pip install ntfy[pid,emjoi,xmpp, telegram]
有关详尽的使用指南,请查看:http://ntfy.readthedocs.io/en/latest/
就这样!在本文中,我们向您展示了如何在主流 Linux 发行版中设置和使用 ntfy。使用下面的反馈表分享您对本文的看法,或者与我们分享有关任何类似 Linux 实用程序的信息。