Undistract-me:长时间运行的终端命令完成时收到通知

不久前,我们发布了如何 终端活动完成时收到通知. 今天,我发现了一个类似的实用程序,叫做 “让我分心” 当长时间运行的终端命令完成时通知您。 想象一下这个场景。 您运行一个需要一段时间才能完成的命令。 与此同时,您查看您的 Facebook 并参与其中。 过了一会儿,你想起了几分钟前你运行了一个命令。 您回到终端并注意到命令已经完成。 但你不知道 命令完成时. 你有没有遇到过这种情况? 我敢打赌,你们中的大多数人都曾多次遇到这种情况。 这是哪里 “让我分心” 进来帮忙。 您不需要经常检查终端以查看命令是否完成。 当长时间运行的命令完成时,Undistract-me 实用程序会通知您。 它将适用于 Arch Linux、Debian、Ubuntu 和其他 Ubuntu 衍生产品。

内容

  1. 安装 Undistract-me
  2. 配置 Undistract-me
  3. 长时间运行的终端命令完成时获取通知
    1. 帮助我们帮助您:

安装 Undistract-me

Undistract-me 在 Debian 及其变体(例如 Ubuntu)的默认存储库中可用。 您所要做的就是运行以下命令来安装它。

$ sudo apt-get install undistract-me

Arch Linux 用户可以从 金子 使用任何帮助程序,例如 .

$ yay -S undistract-me-git

然后,运行以下命令将“undistract-me”添加到您的 Bash。

$ echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc

或者,您可以运行此命令将其添加到您的 Bash:

$ echo "source /usr/share/undistract-me/long-running.bashnnotify_when_long_running_commands_finish_install" >> .bashrc

如果你在 Zsh 外壳,运行以下命令:

$ echo "source /usr/share/undistract-me/long-running.bashnnotify_when_long_running_commands_finish_install" >> .zshrc

最后更新更改:

对于重击:

$ source ~/.bashrc

对于 Zsh:

$ source ~/.zshrc

配置 Undistract-me

默认情况下,Undistract-me 会考虑任何需要 超过 10 秒 作为一个长时间运行的命令来完成。 您可以通过编辑更改此时间间隔 /usr/share/undistract-me/long-running.bash 文件。

$ sudo nano /usr/share/undistract-me/long-running.bash

寻找 “LONG_RUNNING_COMMAND_TIMEOUT” 变量并将默认值(10 秒)更改为您选择的其他值。

Save 和 close 文件。 不要忘记更新更改:

$ source ~/.bashrc

此外,您可以禁用特定命令的通知。 为此,请找到 “LONG_RUNNING_IGNORE_LIST” 变量并添加以空格分隔的命令。

默认情况下,仅当活动窗口不是运行命令的窗口时才会显示通知。这意味着,仅当命令在后台终端窗口中运行时才会通知您。 如果命令在活动窗口终端中运行,您将不会收到通知。 如果您希望 undistract-me 在终端窗口可见或在后台发送通知,您可以设置 IGNORE_WINDOW_CHECK1 跳过窗口检查。

Undistract-me 的另一个很酷的功能是您可以在命令完成时设置音频通知和视觉通知。 默认情况下,它只会发送视觉通知。 您可以通过设置变量来更改此行为 UDM_PLAY_SOUND 到命令行上的非零整数。 但是,你的 Ubuntu 系统应该有 pulseaudio-utils无声音主题桌面 安装实用程序以启用此功能。

请记住,您需要运行以下命令来更新所做的更改。

对于重击:

$ source ~/.bashrc

对于 Zsh:

$ source ~/.zshrc

现在是验证这是否真的有效的时候了。

长时间运行的终端命令完成时获取通知

现在,运行任何花费超过 10 秒或您在 Undistract-me 脚本中定义的持续时间的命令。

我在 Arch Linux 桌面上运行了以下命令。

$ sudo pacman -Syu

此命令需要 32 秒才能完成。 完成上述命令后,收到如下通知。