LINUX.ORG.RU

Как передать символ «&» через notify-send?

 , ,


0

1

При переключении треков в ncmpcpp у меня срабатывает:

notify-send -t 5000 --hint=int:transient:1 "$title" "by <b>$artist</b> from <b>$album</b> ($date)"

Где переменные $title, $artist и т.д. получены от mpc и могут содержать символ «&». notify-send (или демон) этот символ понимает как-то по-своему и не показывает содержащую его строку вообще. Подтверждается попытками скормить напрямую:

notify-send "a & b" "a \& b"
Показывает пустой прямоугольник без текста (\ не спасает).

Что можно сделать?

Где переменные $title, $artist и т.д. получены от mpc и могут содержать символ «&».

тут даже если кавычки забыть ВР. Смотри внимательно, попробуй

echo "$title" | hexdump -C
скорее всего там у тебя что-то ещё. невидимое.

emulek
()
Ответ на: комментарий от emulek

Так у меня не работает:

notify-send "a & b"

Без кавычек - тем более не работает.

moonshine@moonpc: ~ $ notify-send a & b
[1] 13855
bash: b: command not found
Moonshine
() автор топика

notification демоны, показывающие всплывашки, основанные на gtk, умеют в pango разметку, но тупо не умеют в фолбэк, когда парсер ломается.

На лицо данная проблема. Решений, собственно, два:

1) Поменять демон.

2) Экранировать entity. Например & надо посылать как

&amp;
baverman ★★★
()
Последнее исправление: baverman (всего исправлений: 1)
Ответ на: комментарий от Moonshine

ну я не думал, что есть разница.

есть. Эти значки парсятся ДО раскрытия переменных. Т.е. сначала раскрывается $VAR, и всё. Если в $VAR лежит $VAR1, то будет $VAR1, а не то, что там внутри.

emulek
()
Ответ на: комментарий от Moonshine

да, передать ты передал, а дальше я не знаю уже. Я помнится сталкивался с похожей проблемой, «решил» её заменой некоторых символов на похожие utf-8. У меня вроде такой был: ```.

emulek
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.