notify-osd заменен на dunst после переключения обратно на единство с i3wm

Я тестировал i3wm (sudo apt-get install i3 - это то, что я запускал, и выбрал i3 на экране входа в систему) на своей машине, и через некоторое время решил вернуться к Unity. После переключения я заметил, что уведомления приходят в верхнем правом углу, как и в i3, хотя я использовал Unity.

Мне бы очень хотелось, чтобы вместо этого использовались обычные пузыри уведомлений Unity.

Я посмотрел на это и оказалось вместо notify-osd, dunst используется.

Я пытался использовать sudo vim /usr/share/dbus-1/services/org.freedesktop.Notifications.service и редактировать файл, но он имеет правильную строку (т.е. Exec=/usr/lib/x86_64-linux-gnu/notify-osd), как и ожидалось.

Я также пытался unity-tweak-tool --reset-unity, но ничего не сделал.

Могу ли я вернуться к обычным уведомлениям? Любая помощь будет принята с благодарностью. Спасибо:)

Редактировать: я смог вернуться к обычным уведомлениям, удалив сам i3wm (и dunst). На самом деле я спрашиваю: можно ли перейти к обычным уведомлениям, сохраняя при этом i3 и dunst в моей системе?

Примечание. левый угол . Существует решение для удаления dunst, и я хотел бы сохранить dunst и выполнять эту работу, когда я выбираю i3, и работать с уведомлением-osd, когда я выбираю Unity.

8
задан 13 April 2017 в 15:25

2 ответа

Я понимаю, что опаздываю на вечеринку на два года, но если кто-то еще столкнется с этой проблемой, вот решение, которое будет использовать notify-osd при входе в Unity, и dunst при запуске i3.

Если вы просто хотите оставить dunst установленным, но не запускать его автоматически через DBus, перейдите в раздел Quick Hack.

Dunst в i3, notify-osd в Unity

Шаг 1

Мы хотим, чтобы переопределить поведение /usr/share/dbus-1/services/org.freedesktop.Notifications.service и, что более важно, /usr/share/dbus-1/services/org.knopwob.dunst .service .

Поскольку Dbus смотрит на $ XDG_DATA_HOME при поиске служебных файлов, а Ubuntu по какой-то причине не устанавливает эту переменную среды, нам нужно сделать это самостоятельно:

echo 'export XDG_DATA_HOME=${XDG_DATA_HOME:="$HOME/.local/share"}' >> ~/.profile 

Шаг 2

Нам нужно создать наш служебный файл :

mkdir -p $HOME/.local/share/dbus-1/services
nano $HOME/.local/share/dbus-1/services/usernotify.service

Сделайте файл похожим на это:

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/bin/my_notifier

Шаг 3

Создайте сценарий, упомянутый в вашем файле D-BUS, который вызывает dunst, если i3 запущен, иначе notify-osd:

sudo nano /usr/bin/my_notifier

Сделайте его похожим на это:

#!/bin/bash
set -euo pipefail
if pgrep -x i3 >/dev/null; then
    /usr/bin/dunst
else
    /usr/lib/x86_64-linux-gnu/notify-osd
fi

Сделать исполняемым:

sudo chmod a+x /usr/bin/my_notifier

Шаг 4

Вот и все. Выйдите из системы, а затем войдите снова. Протестируйте его как в Unity, так и в i3, запустив

notify-send foo bar

Quick Hack

. Если вы хотите использовать только notify-osd, достаточно отредактировать /usr/share/dbus-1/services/org.knopwob.dunst. service соответственно:

[D-BUS Service]
Name=org.freedesktop.Notifications
#Exec=/usr/bin/dunst
Exec=/usr/lib/x86_64-linux-gnu/notify-osd
8
ответ дан 14 April 2017 в 01:25
  • 1
    Так как ответ работал на Вас, примите его как ответ (нажмите, он отсчитывает), – jawtheshark 9 September 2016 в 04:21
sudo apt-get purge dunst

Это должно убрать его.

0
ответ дан 14 April 2017 в 01:25
  • 1
    Добро пожаловать в , Спрашивает Ubuntu! В моей системе, /var/run символьная ссылка на /run. Это должен действительно быть автономный каталог? – Melebius 10 October 2018 в 19:37

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

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