elementaryOS имеет следующую функцию для уведомления пользователя относительно законченного терминального процесса.
Действительно ли возможно использовать эту функцию в Ubuntu?
Рисунок 1: Пример уведомления о терминале ЭОС
Что Вы хотите, по всей вероятности уже доступно через Ваш ~/.bashrc
любезность это и это :
Примечание: это предполагает, что Вы имеете libnotify-bin
установленный. Если это не, просто работайте sudo apt-get install libnotify-bin
для получения его.
Проверка, что Ваш ~/.bashrc
имеет строки как это:
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "Task finished" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
Примечание, что "Задача, законченная", не присутствует в исходном коде.
Так, в Вашем определенном примере, Вы будете работать
sudo apt-get update; alert
, Если Вы захотите, чтобы уведомление осталось на экране немного длиннее, используйте -t 3000
(в миллисекундах). Или, если Вы хотите, чтобы уведомление отобразилось, пока Вы не отклоняете его, используйте --urgency=critical
.
Вот то, что я вижу:
не отвлекают - меня , предоставляет уведомления для терминальных команд, которые занимают больше времени, чем 10 секунд для завершения.
sudo apt install undistract-me
echo 'source /etc/profile.d/undistract-me.sh' >> ~/.bashrc
Можно установить $PROMPT_COMMAND
для инициирования notify-send
команда после завершения команды в ~/.bashrc
:
PROMPT_COMMAND='notify-send --icon=/usr/share/icons/Adwaita/256x256/apps/utilities-terminal.png "Task finished" "$(history | sed -n "\$s/^ [0-9]\+ //p")"'
протест, это может стать довольно раздражающим скоро, потому что он отправит уведомлению каждый раз, когда команда выполняется.