Помощь в настройке: notify-send

Aivar
Ребята, а кто мне объяснит логику исчезновения сообщения? По истечению expire-time бывает исчезает само, а бывает только по клику мыши или смене фокуса...
Если добавить опцию
--urgency=critical
,
то само оно не исчезнет, пока не кликнешь. Вообще, почитайте man — там много интересного. Например, можно иконки добавлять в сообщение.
konstantinov-ms, вы меня не поняли.

notify-send -t 5000 -u normal "`cal -m`"
в одних случаях через 5 секунд исчезает самостоятельно, в других - нет, например, если после запуска этой же команды провести мышью по активным кнопкам kcalc. Если провести по неактивным - исчезает как полагается.

i3, демон нотификации - dunst. Настройки там потрясные - геометрия, пороги, в т.ч. и время/цвет для каждого уровня назойливости:
~/.config/dunst/dunstrc
—————
...
[urgency_low]
    background = "#222222"
    foreground = "#888888"
    timeout = 10
[urgency_normal]
    background = "#285577"
    foreground = "#ffffff"
    timeout = 10
[urgency_critical]
    background = "#900000"
    foreground = "#ffffff"
    timeout = 0
...
Други словами, время в конфиге - дефолт, если иное не указано в параметре -t, --expire-time notify-send

Меня интересует, почему запуск одной и той же команды в разных случаях имеет разный результат?
Вообще, нагуглил багрепорт, где человек жалуется на нерабочий параметр -t:
https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508
Баг, очевидно, закрыт, но комментарии затянулись на 4 года.

add
konstantinov-ms
Вообще, почитайте man
Кстати, мана у notify-send нет, только хелп.
В общем, включил удаление сообщений, даже если пользователь находится в режиме ожидания - таймаут стал отрабатывать корректно:
~/.config/dunst/dunstrc
—————
idle_threshold = 0
Всем спасибо за внимание. )
naszar
Хм.. мамой клянусь работало.. щас проверил - не работает.. вот так наверняка:
/usr/local/bin/myscript
#!/bin/sh
export DISPLAY=:0.0
export XAUTHORITY="/home/<user>/.Xauthority"
sudo -u <user> notify-send -u low -t 60000 -i /usr/share/icons/Faience/apps/96/gnome-unknown.png "Привет"
<user> - имя пользователя от которого у вас запущены иксы.
Не не работает, даже в терминале
sudo -u archie notify-send -u low -t 60000 -i /usr/share/icons/Faience/apps/96/gnome-unknown.png "Привет"
не заводится
так работает
sudo notify-send -u low -t 60000 -i /usr/share/icons/Faience/apps/96/gnome-unknown.png "Привет"
и без sudo тоже, но только в терминале...
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
кстати на хабре, по ссылке с первого поста, рекомендуют так:

Насчет DISPLAY=:0.0. Жестковбитый DISPLAY — не хорошо. Он время от времени может меняться, даже, если всего один пользователь за компьютером. Кроме того, если ты закрыл сессию и ушел, крон будет все равно работать и ошибки будут сыпаться тебе в почту.

Лучше определять его автоматом, например, с помощью вот такой вот функции:

# get_display [USER] — Returns $DISPLAY of USER.
# If first param is omitted, then $LOGNAME will be used.
get_display () {
who \
| grep ${1:-$LOGNAME} \
| perl -ne 'if ( m!\(\:(\d+)\)$! ) {print ":$1.0\n"; $ok = 1; last} END {exit !$ok}'
}
И в скрипте поправить вот так (в одной строчке нельзя, так как export сбивает $?):
DISPLAY=$(get_display) || exit
export DISPLAY
только не знаю куда это прикручивать...
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
palpalych
Жестковбитый DISPLAY — не хорошо.
Ну вы определитесь, вам чтобы работало или правильно.. там собственно не нужен пользовательский дисплей, а нужна пользовательская сессия Dbus'a. Как ее добыть я показывал. Прикрутить можно в скрипт вызывающий notify-send.
naszar
Ну вы определитесь, вам чтобы работало или правильно..
Да пока никак не работает ни правильно ни не правильно, вот в чем проблема, неужели придется воспользоваться кроном...
Арчи ~]$ ...as always want ready-made solutions that would make even tastier
 
Зарегистрироваться или войдите чтобы оставить сообщение.