私はマシンでi3wm(Sudo apt-get install i3
を実行し、ログイン画面からi3を選択しました)をテストしていましたが、しばらくしてからUnityに切り替えることにしました。元に戻すと、Unityを使用していても、i3と同様に右上隅に通知が表示されることに気付きました。
代わりに、通常の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を維持しながら、通常の通知に変更することは可能ですか?
注:これは Notify-osd通知が左上隅にテーマなしで表示される の複製ではありません。そこでの解決策は、dunstを削除することです。i3を選択すると、dunstを保持して動作し、Unityを選択すると、notify-osdが動作します。
私はパーティーに2年遅れていることに気づきましたが、他の誰かがこの問題に遭遇した場合、Unityにログインするときにnotify-osdを使用し、i3を実行するときにわからないソリューションを紹介します。
ダンストをインストールしたままにするだけで、DBus経由で自動起動しない場合は、「クイックハック」セクションに進んでください。
/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
サービスファイルを作成する必要があります。
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
I-3が実行中の場合はdunstを呼び出すD-BUSファイルで参照されるスクリプトを作成し、それ以外の場合は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
それであるはずです。ログアウトしてから再度ログインします。実行してUnityとi3の両方でテストします
notify-send foo bar
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
Sudo apt-get purge dunst
それはそれを削除する必要があります。