我最近从 Elementary OS 转到了 UBUNTU 20.04 LTS。Elementary OS 上一个非常有用的功能是终端铃声。当终端中的命令执行完毕后,会发出铃声并在通知区域中显示通知。
notify-send "Task Complete" && printf '\a'
这可以通过与原始命令一起使用来实现&&
。
但这里有个问题:
1. 这个命令很长,每次都需要输入。alias
可以使用,但每次仍然需要输入。2
. 即使终端处于焦点状态,它也会响铃。
所以我的问题是,我希望每次都执行一个特定的命令,该命令notify-send "Task Complete" && printf '\a'
仅在终端失去焦点时执行。而且不需要每次都输入这个命令。
编辑1
有人建议如何在过程完成后发出声音?
但我的问题是,如何在不输入任何额外命令的情况下响铃。有没有办法将一些脚本或其他东西集成到终端本身中,这样它就可以自行发出蜂鸣声,而无需任何额外命令。
答案1
我找到了一个令人满意的解决方案。它使用oh-my-zsh
。有一个名为的插件bg-notify
可以完全满足问题的要求。它甚至会在通知栏中发送通知以及音频提示。
答案2
有趣的问题!
xdotool
我使用( sudo apt-get install xdotool
) 和pstree
( )制作出了自己的混合物sudo apt-get install psmisc
。
#! /bin/bash
ACTIVE_WINDOW_PID=$(xdotool getactivewindow getwindowpid)
if [ ! $(pstree -spA $PPID | grep "(${ACTIVE_WINDOW_PID})") ]; then
notify-send "Task Complete" && printf '\a'
fi
我有这个~/bin/ring
并且我使用以下命令来验证它是否有效:sleep 3 ; ~/bin/ring
。
使用xdotool
您甚至可以获取窗口标题并使用报告它notify-send
,或者在命令存在时聚焦终端窗口。