Уведомления и демон уведомления, не работающий над менеджером окон

Вы могли бы попытаться заменить дисплея немного:

DISPLAY=:0.1 notify-send [options] "summary" "body"

Обычно, Ваши настольные экраны:0, и основное:0.0, второй:0.1, и т.д.

Если я помню правильно, это должно поместить его на другой экран.

Вы, возможно, должны были бы иметь сценарий обертки или такой для изменения значения ДИСПЛЕЯ, когда выполнение уведомления - посылает заявление. Пока в пути перед реальным, это будет работать приятно ни с кем замечающим действительно.

13
01.09.2013, 08:52
4 ответа

Наконец я решил проблему сам.

Я оставлю инструкции, что я сделал.

Проблема состоит из двух частей:

  1. К Dbus нельзя получить доступ из диспетчера Windows
  2. Демон уведомления не может получить сообщения от dbus

1-е проблемное решение:

Настоящая проблема была, что мой диспетчер Windows был запущен от lxdm, который по некоторым причинам не делает файлов конфигурации слияний от /etc/X11/xinit/xinitrc.d за исключением lxde сессии (в LXDE dbus работы, в потрясающем wm не делает). В этой папке существует названный файл 30-dbus со следующим содержанием:

#!/bin/bash

# launches a session dbus instance
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && type dbus-launch >/dev/null; then
  eval $(dbus-launch --sh-syntax --exit-with-session)
fi

Эта часть кода определяет $DBUS_SESSION_BUS_ADDRESS переменная, которая определяет dbus порт для использования для различных приложений. echo $DBUS_SESSION_BUS_ADDRESS может использоваться в качестве простой проверки работоспособности, чтобы видеть, существует ли dbus сессия (она должна возвратить dbus файл сессии).

Файлы конфигурации от этой папки могут быть объединены с простым сценарием оболочки на сессии, запускаются (код, взятый от .xinitrc):

#!/bin/bash

if [ -d /etc/X11/xinit/xinitrc.d ]; then
  for f in /etc/X11/xinit/xinitrc.d/*; do
    [ -x "$f" ] && . "$f"
  done
  unset f
fi

2-е проблемное решение:

В то время как выполнение dbus и доступно другим программам, все еще требуется больше доступа для уведомлений для работы правильно, таким образом, я должен был выполнить polkit агент, потому что Потрясающий WM не имеет того. Я выбрал lxpolkit, потому что у меня уже была почти полная lxde среда. В моем случае, просто добавленном к моему ~/.config/awesome/rc.lua файл: awful.util.spawn_with_shell("dex /etc/xdg/autostart/lxpolkit.desktop") , по некоторым причинам без этой строки это отказалось запускаться по умолчанию с lxdm.

Я думаю, что гном polkit агент должен хорошо работать также.

6
27.01.2020, 19:53
  • 1
    : Ваш менеджер по оформлению не делает и ничего не должен делать с .xinitrc/I забудьте то, чем называют другую разновидность. те файлы эквивалентны (какой используется, варьируется дистрибутивом), и только используются, когда Вы вызываете startx или xinit от консоли. вероятно, причина, что системный файл загружается, состоит в том, потому что это происходит в LXDE, не LXDM. –  strugee 05.09.2013, 05:56
  • 2
    Спасибо за разъяснение. Кажется, что я должен сделать дополнительную конфигурацию, загружающую меня. –  IBr 05.09.2013, 06:50
  • 3
    да, как необходимо сделать, который зависит от настольной среды/wm. –  strugee 05.09.2013, 07:13
  • 4
    обычно все Вы выполнили бы .xinitrc запуск любые второстепенные демоны, которые не были бы включены позже (Вы сделали бы это, если бы Вы не имели, например. gnome-session выполнение его для Вас), затем в самой последней строке, exec безотносительно среды WM/desktop Вы используете. спасибо –  strugee 05.09.2013, 07:15

Это не ответ, просто большое разъяснение, чтобы, возможно, помочь генерировать следующий вопрос.

Спасибо за добавление дополнительной детали. У Вас, вероятно, есть проблема полномочий, но к сожалению это вероятно в полномочиях, должен был соединиться с сокетом домена DBus Unix.

Подтвердить это выполнение как некорневое:

$ strace -o /tmp/ns.out notify-send "why will this not connect"
$ grep '^connect' /tmp/ns.out
connect(4, {sa_family=AF_FILE, path=@"/tmp/dbus-6AIOJVWzCC"}, 23) = 0

кроме Вы, вероятно, получите что-то как

connect(…) = -1 ECONNREFUSED  (Connection refused)

Почему?Понятия не имею. Я действительно знаю, что подсистема уведомления привлекла намного больше внимания в сообществе разработчиков GNOME, чем я когда-нибудь думал, что такая поверхностно простая функция должна. Я подозревал бы некоторый конфигурационный файл приблизительно в огромном количестве местоположений конфигурации GTK, но я знаю, что это не слишком полезно.

0
27.01.2020, 19:53
  • 1
    Действительно я добрался connect(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/dbus-WC3XySChb5"}, 23) = -1 ECONNREFUSED (Connection refused) connect(4, {sa_family=AF_LOCAL, sun_path=@"/tmp/dbus-b3oei13hP2"}, 23) = -1 ECONNREFUSED (Connection refused) –  IBr 02.09.2013, 09:32

Мне помогло установить notify -osd и dunst на i3wm.

1
27.01.2020, 19:53

Dunst довольно прост, если вы отредактируете файл конфигурации.

Я использую оконный менеджер jwm, и мне пришлось закомментировать все сочетания клавиш, поскольку они конфликтовали с сочетаниями клавиш jwm.

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

0
12.04.2021, 17:01

Теги

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