如何发送自定义桌面通知?

Jan*_*ary 125 notification notify-send

我有一个自定义脚本,我想发送带有自定义消息的桌面通知(出现在屏幕右上角的通知)。我怎么做?

dev*_*av2 186

还有许多其他很酷的功能 notify-send

我们可以运行一个命令并使其显示在通知中:

notify-send <title> <`command`>
notify-send Date "`date`"
notify-send Disk "`df / -H`"
Run Code Online (Sandbox Code Playgroud)

我们可以在通知中使用图标

notify-send -i <icon> <Message>
notify-send -i face-wink "Hello! January"
Run Code Online (Sandbox Code Playgroud)

弹出真的很烦

notify-send  -t 0 "Bringing down the system"
Run Code Online (Sandbox Code Playgroud)

notify-send <title> <message>
notify-send "who am i" "I am January"
Run Code Online (Sandbox Code Playgroud)

有关更多选项,请查看此处

  • 使用`--urgency=critical` (5认同)
  • 查看我的回答 [这里](http://askubuntu.com/questions/189231/where-are-the-stock-icon-names-defined-for-the-unity-panel-service-indicators-an/189262# 189262) (3认同)
  • 谢谢。我们在哪里可以获得图标列表,例如您使用的“face-wink”? (2认同)
  • 在 debian 上安装“sudo apt install libnotify-bin”。 (2认同)

Cel*_*ven 19

只是为了添加其他答案,当从 cron 本地运行命令时,我使用

DISPLAY=:0.0 /usr/bin/notify-send "TITLE" "MESSAGE"
Run Code Online (Sandbox Code Playgroud)


Jan*_*ary 16

我偶然发现了那个。答:使用程序notify-send

notify-send "Hello world!"
Run Code Online (Sandbox Code Playgroud)


Yah*_*hya 5

我创建了一个简单且几乎是原生的脚本,该脚本播放声音并为 Ubuntu ( Gist )显示带有给定消息和时间的通知:

#!/bin/sh

# https://gist.github.com/John-Almardeny/04fb95eeb969aa46f031457c7815b07d
# Create a Notification With Sound with a Given Message and Time
# The Downloaded Sound is from Notification Sounds https://notificationsounds.com/

MSSG="$1"
TIME="$2"

# install wget if not found
if ! [ -x "$(command -v wget)" ]; then 
    echo -e "INSTALLING WGET...\n\n"
    sudo apt-get install wget
    echo -e "\n\n"
fi

# install at package if not found
if ! [ -x "$(command -v at)" ]; then
    echo -e "INSTALLING AT...\n\n"
    sudo apt-get install at
    echo -e "\n\n"
fi

# install sox if not found
if ! [ -x "$(command -v sox)" ]; then
    echo -e "INSTALLING SOX...\n\n"
    sudo apt-get install sox
    sudo apt-get install sox libsox-fmt-all
    echo -e "\n\n"
fi

# download the noti sound if this is first time
# add alias to the bashrc file
if ! [ -f ~/noti/sound.mp3 ]; then
    echo -e "DOWNLOADING SOUND...\n\n"
    touch ~/noti/sound.mp3 | wget -O ~/noti/sound.mp3 "https://notificationsounds.com/wake-up-tones/rise-and-shine-342/download/mp3"
    sudo echo "alias noti=\"sh ~/noti/noti.sh\"" >> ~/.bashrc
    source ~/.bashrc        
    echo -e "\n\n"
fi

# notify with the sound playing and particular given message and time
echo "notify-send \""$MSSG\"" && play ~/noti/sound.mp3" | at $TIME
Run Code Online (Sandbox Code Playgroud)

如何使用?

首次运行 - 设置:

  1. 在您家中创建一个新目录并调用它 noti

    mkdir ~/noti
    
    Run Code Online (Sandbox Code Playgroud)
  2. 下载noti.sh并解压到上面的noti目录。

  3. 打开终端并将目录更改为 noti

    cd ~/noti
    
    Run Code Online (Sandbox Code Playgroud)
  4. 通过发出以下命令使 noti.sh 可执行:

    sudo chmod +x noti.sh
    
    Run Code Online (Sandbox Code Playgroud)
  5. 像这样运行测试:

    sh ~/noti/noti.sh "Test" "now"
    
    Run Code Online (Sandbox Code Playgroud)

例子

noti "Hello From Noti" "now +1 minute"
noti "Hello From Noti" "now +5 minutes"
noti "Hello From Noti" "now + 1 hour"
noti "Hello From Noti" "now + 2 days"
noti "Hello From Noti" "4 PM + 2 days"
noti "Hello From Noti" "now + 3 weeks"
noti "Hello From Noti" "now + 4 months"
noti "Hello From Noti" "4:00 PM"
noti "Hello From Noti" "2:30 AM tomorrow"
noti "Hello From Noti" "2:30 PM Fri"
noti "Hello From Noti" "2:30 PM 25.07.18"
Run Code Online (Sandbox Code Playgroud)

用于通知流程完成(示例)

sudo apt-get update; noti "Done" "now"
Run Code Online (Sandbox Code Playgroud)