Получайте уведомление при завершении длительных команд терминала
Некоторое время назад мы опубликовали, как получать уведомление о завершении активности терминала. Сегодня я обнаружил аналогичную утилиту под названием "undistract-me", которая уведомляет вас о завершении длительных команд терминала.
Представьте себе этот сценарий. Вы запускаете команду, выполнение которой занимает некоторое время. Тем временем вы проверяете свой Facebook и очень активно участвуете в этом.
Через некоторое время вы вспомнили, что несколько минут назад выполнили команду. Вы возвращаетесь в Терминал и замечаете, что команда уже завершена. Но вы понятия не имеете, когда команда будет завершена. Вы когда-нибудь были в такой ситуации?
Могу поспорить, что большинство из вас неоднократно оказывались в такой ситуации. Здесь на помощь приходит untract-me. Вам не нужно постоянно проверять терминал, чтобы узнать, выполнена команда или нет.
Утилита Undistract-me уведомит вас о завершении длительной команды. Он будет работать на Arch Linux, Debian, Ubuntu и других производных Ubuntu.
Установите «Не отвлекать меня»
Undistract-me доступен в репозиториях Debian и его вариантов, таких как Ubuntu, по умолчанию. Все, что вам нужно сделать, это запустить следующую команду, чтобы установить его.
sudo apt-get install undistract-me
Пользователи Arch Linux могут установить его из AUR с помощью любой вспомогательной программы, например YaY.
yay -S undistract-me-git
Затем выполните следующую команду, чтобы добавить «untract-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, выполните следующую команду:
echo "source /usr/share/undistract-me/long-running.bash\nnotify_when_long_running_commands_finish_install" >> .zshrc
Наконец обновите изменения:
Для Баша:
source ~/.bashrc
Для Зш:
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.
Помните, что вам необходимо запустить следующую команду, чтобы обновить внесенные изменения.
Для Баша:
source ~/.bashrc
Для Зш:
source ~/.zshrc
Пришло время проверить, действительно ли это работает.
Получайте уведомление при завершении длительных команд терминала
Теперь запустите любую команду, которая занимает более 10 секунд или времени, определенного вами в скрипте Undistract-me.
Я выполнил следующую команду на своем рабочем столе Arch Linux.
sudo pacman -Syu
Выполнение этой команды заняло 32 секунды. После выполнения вышеуказанной команды я получил следующее уведомление.
Помните, что скрипт Undistract-me уведомляет вас только в том случае, если выполнение данной команды заняло более 10 секунд. Если команда будет выполнена менее чем за 10 секунд, вы не будете уведомлены. Конечно, вы можете изменить настройки этого временного интервала, как я описал выше в разделе «Конфигурация».
Я считаю этот инструмент очень полезным. Это помогло мне вернуться в бизнес после того, как я полностью потерялся в некоторых других задачах. Я надеюсь, что этот инструмент будет полезен и вам.
Ресурс:
- Репозиторий GitHub Untract-me