LINUX.ORG.RU

Хочу перенаправлять выхлоп программ в нотификации.

 ,


0

1

В продолжение топика. Я тут подумал, что запускать терминал для софта, выхлоп которого нужен только в начале, как-то костыльно. Хотелось бы решение, которое показывает выхлоп в виде нотификаций или чего-либо подобного. Чем их вообще можно посылать? Пробовал notify-send - не пашет.

//И кстати, хотелось бы некий лоток уведомлений по типу маковского или Android'ного. А то они вылезают поверх всего - напрягает.

Можно все перенаправлять в файл, а с файлом уже потом уже что хочешь делай: хоть через notify-send, но лучше открыть терминал на 2-3 сек, показать выхлоп, потом закрыть (естественно, все это автоматически, никаких мышек/клавиатур).

Kroz ★★★★★
()

перенапрявлять в файл и root-tail в помошь

ananas ★★★★★
()
Ответ на: комментарий от qux

Да я уже понял, почему он не работал - я его под рутовой консолью запускал :3 Но как выхлоп прикрутить, всё никак не пойму. $(bash_command) не пашет. Костыль, что ли, действительно выхлоп в файл и его отображение через tail. Вот только как: по таймеру или по изменениям... Так, мне нужна мониторилка изменения файлов :D

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

мониторилка изменения файлов

inotifywait / inotifywatch

Но вообще кое-как можно и без файла:

w | while read -r; do notify-send subj «$REPLY»; done

w - программа для примера. Здесь только для stdout, можно и для всего вместе через 2>&1. Флудить, правда, может немерено. Можно сделать чтобы выводило только по несколько строк за раз, но тогда неполные группы могут долго висеть незамеченными.

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

Подпилил. С subj не пашет.

#!/bin/bash
${1} 2>&1 | while read -r; do notify-send "$REPLY"; done
Ещё бы галочкой к xfrun4 прикрутить, и будет вообще прелесть 8-) Но флудит сильно, да, хочу маковский лоток теперь :D Пороюсь в репах, может, найду подходящее что-то.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

С subj не пашет.

У меня первый параметр notify-send — заголовок, второй — собственно текст. Работает и с одним, но понятно как (текст пустой). Кеды-плазма.

Ещё бы галочкой к xfrun4 прикрутить

Можно общий алиас для шелла, типа такого: «alias n=/usr/local/bin/что-то.sh». Запускать как «n имя_программы». Или не создавать скрипт вообще, а всё в функцию, использование такое же. Телодвижений не сильно больше, по сравнению с галкой, а в плюсах универсальность — из терминала тоже будет работать.

Убрать флуд в общем случае имхо нельзя теоретически, кроме вышеописанного костыля. Категорий сообщений у программ нет, каждая пишет сколько хочет...

Можно правда попробовать возвести костыль в квадрат, добавив flush по таймауту...

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

У меня первый параметр notify-send — заголовок, второй — собственно текст.

Ну не знаю, наверно, там скобки/кавычки нужны.

Можно общий алиас для шелла

Да на длину команды мне пофиг, просто хочу одни и те же команды запускать с и без, не меняя их текст. Ну тут без редактирования исходников не обойтись, как я понимаю, вряд ли это открыто сделано.

Убрать флуд в общем случае имхо нельзя теоретически

Что, совсем-совсем никаких аналогов Notification Center нет? Все обёртки для libnotify всплывающими окошками отображают?

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

Ну не знаю, наверно, там скобки/кавычки нужны.

Именно в данном примере не должны вроде. Он, кстати, может поломаться, если в выхлопе будет знак $ или еще какие спецсимволы, распознаваемые как таковые внутри двойных кавычек.

Да на длину команды мне пофиг, просто хочу одни и те же команды запускать с и без, не меняя их текст.

Можно симлинками, чтобы например по firefox запускалось «скрипт.sh firefox», но это еще один костыль, специфичный конкретным программам.

Что, совсем-совсем никаких аналогов Notification Center нет? Все обёртки для libnotify всплывающими окошками отображают?

/me ж не модератор, в чем отличия — не в курсе :) В кедах эти уведомления отображаются выплывающей панелью, которая через несколько секунд скрывается обратно, фокус не перехватывает. Уведомление надо вручную сбрасывать, или все вместе. Во всплывшем состоянии как-то так выглядит: http://news.opensuse.org/wp-content/uploads/2013/03/KDE-Notifications.png

Что-то похожее наверное можно сделать через виджет слежения за содержимым файла/-ов на рабочем столе, но без изменения кода вряд ли. О готовых решениях не в курсе.

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

Про убрать флуд имел в виду, что нельзя тонко настроить частоту получения информации и её содержимое. Если вариант «смотреть весь std*** построчно» не подходит (а он неоптимален, если программа очень много пишет), то начинаются костыли^W компромиссы.

Как именно и куда это информация отображается это другой вопрос.

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

Как именно и куда это информация отображается это другой вопрос.

У меня, кстати, идейка появилась. Можно сделать ещё одну панель и в ней indicator plugin разместить со скриптом, который выхлоп из файла читает. Правда, он вроде не умеет в перенос, если сделать боковой, ничего хорошего не выйдет (можно в скрипте перенос делать, но тут уже покорпеть надо). Просто я хотел одним махом и от остальных уведомлений избавиться, но раз уж всё вкусное, как всегда, в кедах...

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от qux

Он, кстати, может поломаться, если в выхлопе будет знак $ или еще какие спецсимволы, распознаваемые как таковые внутри двойных кавычек.

OH, SHI--

Можно симлинками, чтобы например по firefox запускалось «скрипт.sh firefox»

И когда надо без этой флудилки запустить, симлинк убирать?

в чем отличия — не в курсе :)

Боковая панелька, в неё уведомления складываются.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от MiniRoboDancer

У меня, кстати, идейка появилась. Можно сделать ещё одну панель и в ней indicator plugin разместить со скриптом, который выхлоп из файла читает.

С файлом будут другие вопросы:

1) Несколько одновременных запусков. Один файл или несколько? Как разделять и читать (из файла и глазами) именно то, что надо?

2) Очистка прочитанного. На панельке это кнопка для каждого сообщения и для всех сразу, а тут?

OH, SHI--

Хм, похоже зря панику нагнетаю. Только что проверил, вроде содержимое переменной только раз разворачивается.

И когда надо без этой флудилки запустить, симлинк убирать?

Пускать по полному пути. Или в скрипте / функции проверять флажок на ФС / нажатую клавишу <демонический смех>.

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

Быстродействие тут вряд ли будет проблемой, во всяком случае с сотней. Регулярки в файл и заставить греп их оттуда читать. И использовать самый простой синтаксис (по возрастанию сложности: -F, -G, -E, -P).

Но для общего случая /me бы не решился, нуегонафиг.

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

Ужас, простыня. И что оно умеет, чего не умеет notify-send?

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от qux

Но для общего случая /me бы не решился, нуегонафиг.

Вот и я не такой задрот.

MiniRoboDancer ★☆
() автор топика
Ответ на: комментарий от qux

Несколько одновременных запусков.

Да не планируется. Вроде.

Очистка прочитанного.

Так без очистки, просто tail лога. Как я их вообще сохранять буду, этот плагин просто выхлоп скормленного ему скрипта раз в n секунд показывает. И да, это для каждого лога отдельный плагин, получается, да ещё и настраивать новые постоянно/убирать ненужные. Хм-хмм...

Пускать по полному пути.

Да ну, костыль.

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