网站搜索

Ntfy - 长时间运行的命令完成时获取桌面或电话警报


Ntfy 是一个简单但可用的跨平台 Python 实用程序,使您能够根据需要或在长时间运行的命令完成时自动获取桌面通知。一旦特定命令完成,它还可以向您的手机发送推送通知。

它支持与流行的Linux shell(例如bashzsh)集成;默认情况下,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 实用程序的信息。