别名会自动在 ~/.bashrc 中创建

别名会自动在 ~/.bashrc 中创建

alias当我昨晚发现时,我遇到了一个叫做的alert程序notify-send,它应该在桌面上弹出一个 GUI 气泡消息。在我的情况下,它是多显示器,电视在虚拟屏幕上定义为内置笔记本电脑。因此,通知气泡(例如音量控制)显示在电视上。

昨晚我测试时:

alert "Weather Update: It's raining Red States"

什么都没出现。起初,另一个 AU 用户和我都认为这是因为 Youtube 全屏运行,而 Google Chrome 窗口被定义为“始终在最上面”。结果发现,这不是真正的问题,而是一个时断时续的问题。

我怎样才能使alert别名始终有效?

附言:我搜索了类似的问题,但它们要么没有得到解答,要么没有引用alert我想要使用的别名,因为本机命令很难记住,尤其是对于必要的控制参数。

答案1

别名会自动在 ~/.bashrc 中创建

当您查看 ~/.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)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

代码的问题在于--urgency=low标志。有时消息会弹出,有时则不会。毕竟它的优先级很低,对吧?

要使消息始终显示,请将紧急程度设置为critical。我没有更改系统默认设置,而是为自己的目的创建了一个新行:

# Add a "redalert" alias to pop-up on GUI desktop screens.  Use like so:
#   redalert "Weather update: It's raining Red States"
alias redalert='notify-send --urgency=critical -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'

现在您可以使用:

redalert "Weather Update: It's raining Red States"

而且运行完美!

答案2

alert不打算以与 相同的方式使用notify-send。如果您想要一个更吸引人的名字notify-send,请创建一个函数,因为别名已被弃用。例如:

popup(){
    notify-send "$@"
}

相关内容