Undistractme-me:长时间运行的终端命令完成时获取通知
undistract-me实用程序会在长时间运行的终端命令完成时通知我们。
想象一下这种情况。
我们运行需要一段时间才能完成的命令。
同时,我们检查自己的facebook并参与其中。
一段时间后,我们还记得几分钟前运行了一个命令。
我们返回到终端,并注意该命令已经完成。
但是我们不知道命令何时完成。
我们是否曾经遇到过这种情况?
我敢打赌你们大多数人都处于这种情况下很多次。
这是“ undistract-me”的帮助所在。
我们无需经常检查终端以查看命令是否完成。
当长时间运行的命令完成时,Undistract-me实用程序将通知我们。
它可以在Arch Linux,Debian,Ubuntu和其他Ubuntu衍生物上运行。
安装我的分心
Undistract-me在Debian及其变体(例如Ubuntu)的默认存储库中可用。
我们所要做的就是运行以下命令进行安装。
$sudo apt-get install undistract-me
Arch Linux用户可以使用任何帮助程序(例如YaY)从AUR安装它。
$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.bash\nnotify_when_long_running_commands_finish_install" >> .bashrc
如果我们在Zsh Shell中,请运行以下命令:
$echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .zshrc
最后更新更改:
对于Bash:
$source ~/.bashrc
对于Zsh:
$source ~/.zshrc
配置我不受干扰
默认情况下,Undistract-me将把花费超过10秒才能完成的任何命令视为长时间运行的命令。
我们可以通过编辑/usr/share/undistract-me/long-running.bash文件来更改此时间间隔。
$sudo nano /usr/share/undistract-me/long-running.bash
找到“ LONG_RUNNING_COMMAND_TIMEOUT”变量,并将默认值(10秒)更改为我们选择的其他值。
保存并关闭文件。
不要忘记更新更改:
$source ~/.bashrc
另外,我们可以禁用特定命令的通知。
为此,找到“ LONG_RUNNING_IGNORE_LIST”变量,并添加以空格分隔的命令。
默认情况下,仅当活动窗口不是命令正在运行的窗口时,才会显示通知。
这意味着,仅当命令在后台“终端”窗口中运行时,才会通知我们。
如果命令在活动窗口“终端”中运行,则不会通知我们。
如果要让我分散注意力以发送通知,无论是“终端”窗口还是在后台,都可以将IGNORE_WINDOW_CHECK设置为1以跳过窗口检查。
Undistract-me的另一个很酷的功能是,我们可以在完成命令后设置音频通知和视觉通知。
默认情况下,它将仅发送视觉通知。
我们可以通过在命令行上将变量UDM_PLAY_SOUND设置为非零整数来更改此行为。
但是,Ubuntu系统应安装pulseaudio-utils和sound-theme-freedesktop实用程序才能启用此功能。
请记住,我们需要运行以下命令来更新所做的更改。
对于Bash:
$source ~/.bashrc
对于Zsh:
$source ~/.zshrc
现在是时候验证这是否真的有效了。
长时间运行的终端命令完成时获取通知
现在,运行任何花费超过10秒或者我们在Undistract-me脚本中定义的持续时间的命令。
我在Arch Linux桌面上运行了以下命令。
$sudo pacman -Syu
此命令花费了32秒完成。
完成以上命令后,我得到以下通知。
请记住,仅当给定命令花费了10秒钟以上的时间时,Undistract-me脚本才会通知我们。
如果命令在不到10秒的时间内完成,则不会通知我们。
当然,我们可以按照上面“配置”部分中所述更改此时间间隔设置。