Я создал скрипт (и ярлык .desktop, ведущий к этому скрипту) для запуска и остановки xampp ...
Он проверяет состояние xampp и, соответственно, запускает или останавливает xampp.
Теперь я назначил уведомление, как только скрипт запускается для отображения «Запуск xampp ...» или «Остановка xampp ...», а затем, когда xampp запускается или останавливается, он отображает «Xampp начался ...» «или« Xampp остановлен ... »
Я использовал notify-send для отображения уведомления, как показано в скрипте ниже
Теперь дело в том, что здесь, второе уведомление ожидает исчезновения первого сообщения, а затем всплывает, даже если xampp запущен / остановлен.
Я хочу, чтобы новое уведомление появилось немедленно, заставив предыдущее выйти до завершения его жизненного цикла.
Видно, что это происходит при немедленной активации / деактивации беспроводной сети / сети ...
Например, «Включено беспроводное соединение» появляется при выборе «Включить беспроводное соединение», и если вы сразу же выбираете «Отключить беспроводное соединение», уведомление «Беспроводное соединение отключено» появляется без ожидания завершения уведомления «Беспроводное соединение включено».
Так как мне этого добиться?
#!/bin/sh
SERVICE='proftpd'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "Stopping XAMPP..." &&
gksudo /opt/lampp/lampp stop && notify-send -i /opt/lampp/htdocs/xampp/img/logo-
small.gif "XAMPP Stoped."
else
notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "Starting XAMPP..." && gksudo /opt/lampp/lampp start && notify-send -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP Started."
fi
На странице man для уведомления-отправки я нашел - срочность = УРОВЕНЬ [ 115] или -u , где уровни низкие, нормальные, критические.
Это какая-то польза? сделать его критичным?
Также я попробовал это с командой- notify-send -u=critical"Testing"
, но эта работа не работает ... она выдает ошибку- Неизвестная срочность критического заданного тестирования. Известные уровни срочности: низкий, нормальный, критический.
или, если я даю команду notify-send -u=LOW"Testing"
, выдается ошибка , отсутствует аргумент -u
Любое отношение ??
Информация из комментариев,
по какой-то причине это работает странным образом! вместо диалогового окна «Запуск xampp ..» и «Остановка xampp ..» отображается диалоговое окно, а затем выводится уведомление «xampp начат» или «xampp остановлен» ...: / диалоговое окно справляется с кнопками ОК и Отмена!
X-ref:
Как я использую, 'уведомляют - отправляют' для непосредственной замены существующего уведомления?
без патчей можно просто сделать
#!/bin/bash
for i in {0..100..10}
do
killall notify-osd
notify-send "testing" $i
sleep 0.5
done
Закладки:
Как вызвать новое Уведомление в, уведомляют-osd для разоблачения, не ожидая более раннего для выхода?
Как я использую, 'уведомляют - отправляют' для непосредственной замены существующего уведомления?
Вы можете использовать notify_notification_update, а затем notify_notification_show, чтобы обновить существующее уведомление.
Вот пример с Python и PyGObject:
from time import sleep
from gi.repository import Notify
Notify.init(app_name = 'notification-update-example')
notification = Notify.Notification.new("Notification", "Original message", None)
notification.show()
sleep(3)
notification.update("More notification", "Updated message", None)
notification.show()
Патч для этой ошибки находится по адресу - https://bugs.launchpad.net/ubuntu/+source/libnotify/+bug/257135?comments=all
@ izx сделал ppa-версию для патча, поэтому установка теперь проста (спасибо izx!) - Как использовать «уведомить-отправить», чтобы немедленно заменить существующее уведомление?
[ 1112] Чтобы установить, откройте терминал и:
sudo apt-add-repository ppa:izx/askubuntu sudo apt-get update sudo apt-get install libnotify-binblockquote>Теперь вы должны были установить исправленную версию notify-send, которая теперь может заменять и печатать номера идентификаторов, так что вы можете использовать только один окно уведомления для вашего сценария оболочки. Теперь в программе есть опции
-p
и-r
или длинный синтаксис:--print-id
и--replace-id
. Я написал скрипт на основе вашего оригинала, который будет использовать это, уведомления о запуске и остановке отображаются до тех пор, пока не отобразится остановлено и запущено, и он использует одно и то же окно уведомлений, если вы установили исправленную версию, создайте файл с именем
config.txt
и поместите число 0 внутрь, затем поместите этот файл в тот же папка как ваш файл lampp.sh.#!/bin/sh SERVICE='proftpd' if ps ax | grep -v grep | grep $SERVICE > /dev/null then notify-send -t 0 -p -r `cat config.txt` -i /opt/lampp/htdocs/xampp/img/logo-small.gif "Stopping XAMPP ..." >config.txt && gksudo /opt/lampp/lampp stop && notify-send -r `cat config.txt` -t 5000 -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP Stoped." else notify-send -t 0 -p -r `cat config.txt` -i /opt/lampp/htdocs/xampp/img/logo-small.gif "Starting XAMPP ..." >config.txt && gksudo /opt/lampp/lampp start && notify-send -r `cat config.txt` -t 5000 -i /opt/lampp/htdocs/xampp/img/logo-small.gif "XAMPP Started." fi
Редактировать Вот как это показано на моем ...