notify-osd substituído por dunst depois de voltar para a unidade do i3wm

4

Eu estava testando o i3wm ( sudo apt-get install i3 é o que eu corri e escolhi o i3 da tela de login) na minha máquina e depois de um tempo, decidi voltar para o Unity. Ao voltar, notei que as notificações vieram no canto superior direito, semelhante ao i3, embora eu estivesse usando o Unity.

Eu realmente gostaria que ele usasse as bolhas normais de notificação do Unity.

Eu olhei para ele e acabou em vez de notify-osd , dunst está sendo usado.

Eu tentei usar sudo vim /usr/share/dbus-1/services/org.freedesktop.Notifications.service e editar o arquivo, mas ele tem a linha correta (ou seja, Exec=/usr/lib/x86_64-linux-gnu/notify-osd ) conforme o esperado.

Eu também tentei unity-tweak-tool --reset-unity , mas isso não fez nada.

É possível que eu retorne às notificações normais? Qualquer ajuda seria muito apreciada. Obrigado :)

Edit: Eu consegui retornar às notificações normais removendo o próprio i3wm (e dunst). O que eu estou realmente perguntando é: é possível mudar para notificações normais enquanto ainda mantém o i3 e o dunst no meu sistema?

Nota: Esta não é uma cópia de Notify-osd as notificações aparecem sem temas no canto superior esquerdo . A solução é remover o dunst e eu gostaria de manter o dunst e ter esse trabalho quando escolho o i3, e tenho o notificar-osd quando eu escolho o Unity.

    
por Jay Bosamiya 10.06.2015 / 20:16

2 respostas

2

Eu percebo que estou dois anos atrasado para a festa, mas se alguém encontrar esse problema, aqui está uma solução que usará o notify-osd quando conectado ao Unity, e o dunst quando rodando o i3.

Se você quer apenas manter o dunst instalado, mas não invocar automaticamente via DBus pule para a seção Quick Hack.

Dunst no i3, notifique-os em Unity

Etapa 1

Queremos substituir os comportamentos de /usr/share/dbus-1/services/org.freedesktop.Notifications.service e, mais importante, /usr/share/dbus-1/services/org.knopwob.dunst.service .

Como o Dbus analisa $ XDG_DATA_HOME ao procurar por arquivos de serviço, e o Ubuntu, por algum motivo, não define essa variável de ambiente, precisamos fazer isso por conta própria:

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

Etapa 2

Precisamos criar nosso arquivo de serviço:

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

Faça o arquivo parecer assim:

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

Etapa 3

Crie o script mencionado em seu arquivo D-BUS que invoca dunst se o i3 estiver em execução, caso contrário, notifique-osd:

sudo nano /usr/bin/my_notifier

Faça com que pareça:

#!/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

Torne-o executável:

sudo chmod a+x /usr/bin/my_notifier

Etapa 4

Deve ser isso. Efetue logout e, em seguida, efetue login novamente. Teste-o em Unity e em i3 executando

notify-send foo bar

Corte rápido

Se você quiser usar exclusivamente o notify-osd, basta editar /usr/share/dbus-1/services/org.knopwob.dunst.service de acordo:

[D-BUS Service]
Name=org.freedesktop.Notifications
#Exec=/usr/bin/dunst
Exec=/usr/lib/x86_64-linux-gnu/notify-osd
    
por imolit 20.09.2017 / 10:31
0
sudo apt-get purge dunst

Isso deve removê-lo.

    
por user467364 01.11.2015 / 14:40