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 "$@"
}