поясните за notify-send & xfce4-notifyd

grayich
похоже щас всё через dbus идёт
Не похоже, а так и есть.
indeviral
а при чём тут notify-send
при том, что тема про неё ваще-то.
grayich
при том, что тема про неё ваще-то.
извините, но notify-send сам по себе ничего никуда не выводит.
Ошибки в тексте-неповторимый стиль автора©
вообщем notify-send мёртв и альтернативы по сути тоже и всем пофик
нужно пользоваться более низкоуровневыми методами?
grayich
вообщем notify-send мёртв
нет, всё норм периодически обновляется.

если вы не в состоянии разобраться со своим менеджером уведомлений.
попробуйте так, должно работать в не зависимости от него.
$ notify-send 'volume: $var' -h string:x-canonical-private-synchronous:name
Ошибки в тексте-неповторимый стиль автора©
indeviral
должно работать
не должно и не работает
grayich
не должно и не работает
ну значит, вы какой-то не интересный используете(((
Ошибки в тексте-неповторимый стиль автора©
grayich
не должно и не работает
Должно и давно работает:
a=`amixer -Mc 0 sset Master $1 | egrep -o '[0-9]{1,3}%' | tr -d %`
notify-send -h int:value:$a ALSA "Master volume: "
Привязано к хоткеям, в первом позиционном параметре - изменение громкости микшера: 1-, 1+, 3-, 3+ и т.д.

grayich
нужно пользоваться более низкоуровневыми методами?
А это всегда пожалуйста. Про dzen2 уже говорили.
grayich
не должно и не работает
Раньше xfce4-notifyd этого и не умел, может поправили а может и нет
Проверьте на https://aur.archlinux.org/packages/?O=0&K=notify-osd-customizable у меня он нормально работает.
скрипт для регулировки громкости
путь до скрипта up или down mute
#!/bin/sh
# created by abarilla
usage="usage: $0 -c {up|down|mute} [-i increment] [-m mixer]"
command=
increment=5%
mixer=Master
while getopts i:m:h o
do case "$o" in
    i) increment=$OPTARG;;
    m) mixer=$OPTARG;;
    h) echo "$usage"; exit 0;;
    ?) echo "$usage"; exit 0;;
esac
done
shift $(($OPTIND - 1))
command=$1
if [ "$command" = "" ]; then
    echo "usage: $0 {up|down|mute} [increment]"
    exit 0;
fi
display_volume=0
if [ "$command" = "up" ]; then
    display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
if [ "$command" = "down" ]; then
    display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
icon_name=""
if [ "$command" = "mute" ]; then
    if amixer get Master | grep "\[on\]"; then
        display_volume=0
        icon_name="notification-audio-volume-muted"
        amixer set $mixer mute
    else
        display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
    fi
fi
if [ "$icon_name" = "" ]; then
    if [ "$display_volume" = "0" ]; then
        icon_name="notification-audio-volume-off"
    else
        if [ "$display_volume" -lt "33" ]; then
            icon_name="notification-audio-volume-low"
        else
            if [ "$display_volume" -lt "67" ]; then
                icon_name="notification-audio-volume-medium"
            else
                icon_name="notification-audio-volume-high"
            fi
        fi
    fi
fi
notify-send " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume
здаётся мне, что мы каждый о своём говорим ))

с xfce4-notifyd всё впорядке
для примера вот этот скриптик отрабатывает нормально и не плодит балоны

#!/usr/bin/env python3

import gi
gi.require_version("Notify", "0.7")
from gi.repository import Notify
import time

Notify.init("test")
notification = Notify.Notification.new("test")

for i in reversed(range(11)):
	notification.update(str(i))
	notification.show()
	time.sleep(1)

проблема именно в обёртке-посылателе notify-send
впринципе можно на него забить, но с dbus пока не разберусь, непонятно как-то

gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify 'appname' 0 dialog-information "Title" "Message" \[\] {} 5000
выводит месадж и возвращает id сессии, но как опять написать в эту сессию, непонятно
 
Зарегистрироваться или войдите чтобы оставить сообщение.