Есть ли способ заставить Ubuntu считывать уведомления?

В Ubuntu очень классная система уведомлений. Есть ли способ заставить Ubuntu считывать уведомления, когда они появляются?

Или можно связать текст в уведомлениях с espeak?

8
задан 31 October 2013 в 12:03

2 ответа

У меня возникла проблема с дополнительным «в моих адресах электронной почты, поэтому я добавил это в строку кода выше, так как espeak не нуждается ни в каком» для чтения;)

| sed 's / \ "// g' |

=>

| grep --line-buffered -v '^ \ s * $' | sed 's / \" // г '| xargs -I '{}' espeak {}

COOL работает. Лучше, чем просто настроить уведомления-отправьте саму библиотеку 4 «Привет! Я Саурав Кумар». Обновление

: не работает стабильно. Я буду использовать | tee -a $ file |

0
ответ дан 31 October 2013 в 12:03

Этот вопрос действительно интересен в качестве ответа.

dbus-monitor, когда исполняется, ждет сигнала, а когда прибывает, он ловит и дает соответствующую информацию о нем. Точно так же это может быть выполнено, чтобы получить информацию о Уведомлениях . При выполнении:

dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"

Он будет ждать уведомлений, а когда приходит любое уведомление, он сообщает информацию об уведомлениях.

Например, при увеличении / уменьшении звука или изменении любой дорожки песни или любой другой, которая выдает сообщение. Я вручную создаю уведомление на рабочем столе, используя команду notify-send на любом другом терминале:

notify-send "Hello How are you?"

Тогда первый терминал, на котором выполняется команда dbus-monitor, выдаст следующее сообщение:

saurav@saurav-P4I45Gx-PE:~$ dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "member=Notify\|string"
   string ":1.473"
method call sender=:1.474 -> dest=:1.475 serial=7    path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications;  member=Notify
   string "notify-send"
   string ""
   string "Hello How Are You?"
   string ""
         string "urgency"

Теперь вышеприведенный вывод может быть легко передан в espeak для чтения сообщения. Например,

Если заменить приведенную выше команду dbus-monitor на следующую, будет прочитано уведомление:

Проверьте, как это работает: [ 1135]

  • Выполните эту команду в терминале и оставьте его запущенным:

    dbus-monitor "interface='org.freedesktop.Notifications'" | grep --line-buffered "string" | grep --line-buffered -e method -e ":" -e '""' -e urgency -e notify -v | grep --line-buffered '.*(?=string)|(?<=string).*' -oPi | grep --line-buffered -v '^\s* 

    Я знаю, что это стало очень долго, но другого способа сделать оно маленькое, потому что фильтрация фактического уведомления сделала его длинным.

  • Затем запустите уведомление на рабочем столе, как я описал выше, используя notify-send или что-то еще. Я использую notify-send. Таким образом, выполнив следующую команду в другом терминале:

    notify-send "Hello! I am Saurav Kumar."
    

    Как только вы выполните команду, она произнесет (прочитает) уведомление.

Хотя это съело мои 4-5 часов, но я счастлив теперь заставить это работать.

Вы также можете создать свою собственную команду, например saynoti , и выполнять ее каждый раз, когда вам нужно уведомление о чтении. Следуя этим шагам, вы можете сделать это:

  • Сначала сохраните фактическую команду в файл с именем saynoti. Вы можете использовать любое имя файла, которое станет вашим фактическим именем команды.

  • Затем сделайте файл исполняемым и переместите или скопируйте его в /bin:

    chmod +x saynoti
    sudo cp saynoti /bin
    
  • Теперь вы можете просто выполнить новую команду, чтобы запустить Говоря Уведомление :

    saynoti
    
  • Чтобы убить запущенный процесс, вы можете выполнить эту команду:

    pkill dbus-monitor
    

    или просто нажмите Ctrl + C на терминале, где работает saynoti.

  • Вы также можете запускать saynoti каждый раз, когда ваша система запускается, превращая ее в запускаемое приложение .

Я хотел бы поблагодарить вас за этот вопрос. Из-за этого вопроса я многому научился. :)

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

| xargs -I '{}' espeak {}

Я знаю, что это стало очень долго, но другого способа сделать оно маленькое, потому что фильтрация фактического уведомления сделала его длинным.

  • Затем запустите уведомление на рабочем столе, как я описал выше, используя notify-send или что-то еще. Я использую notify-send. Таким образом, выполнив следующую команду в другом терминале:

    notify-send "Hello! I am Saurav Kumar."
    

    Как только вы выполните команду, она произнесет (прочитает) уведомление.

  • Хотя это съело мои 4-5 часов, но я счастлив теперь заставить это работать.

    Вы также можете создать свою собственную команду, например saynoti , и выполнять ее каждый раз, когда вам нужно уведомление о чтении. Следуя этим шагам, вы можете сделать это:

    • Сначала сохраните фактическую команду в файл с именем saynoti. Вы можете использовать любое имя файла, которое станет вашим фактическим именем команды.

    • Затем сделайте файл исполняемым и переместите или скопируйте его в /bin:

      chmod +x saynoti
      sudo cp saynoti /bin
      
    • Теперь вы можете просто выполнить новую команду, чтобы запустить Говоря Уведомление :

      saynoti
      
    • Чтобы убить запущенный процесс, вы можете выполнить эту команду:

      pkill dbus-monitor
      

      или просто нажмите Ctrl + C на терминале, где работает saynoti.

    • Вы также можете запускать saynoti каждый раз, когда ваша система запускается, превращая ее в запускаемое приложение .

    Я хотел бы поблагодарить вас за этот вопрос. Из-за этого вопроса я многому научился. :)

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

    0
    ответ дан 31 October 2013 в 12:03

    Другие вопросы по тегам:

    Похожие вопросы: