Dunst

提供: ArchWiki
2020年12月21日 (月) 12:38時点におけるKgx (トーク | 投稿記録)による版 (ルールの項目を追加)
ナビゲーションに移動 検索に移動

関連記事

Dunst はデスクトップ環境に同梱されている通知デーモンを置き換える軽量な代替デーモンです。

インストール

dunst パッケージをインストールしてください。dunst を起動・有効化する必要はありません。プログラムが dbus で通知を送信したときに systemd によって呼び出されます。

サンプル設定ファイルは /usr/share/dunst/dunstrc に存在します。

ファイルを ~/.config/dunst/dunstrc にコピーして適宜編集してください:

$ cp /usr/share/dunst/dunstrc ~/.config/dunst/dunstrc

設定

外観

Dunst では HTML を使って通知を表示できます。太字・斜体・取り消し線・下線のサンプルが存在します。詳しくは [1] を参照してください。markupno に設定することで、通知から HTML を取り除くこともできます。

また、通知のフォーマットを指定できます。使用できるオプションは以下の通り:

%a  アプリ名
%s  概要
%b  本文
%i  アイコン名 (パスを含む)
%I  アイコン名 (パスは含まない)
%p  進捗率 ([  0%] から [100%])

上記のオプションは HTML と組み合わせて使うことができます。例えば format<b>%s</b>\n%b と設定することで、太字の概要に、改行の後に本文を表示します。

アイコンセット

アイコンは icon_folders オプションで設定できます。ステータスとデバイスアイコンは必須です。

# Paths to default icons.
icon_folders = /usr/share/icons/Arc/status/16/:/usr/share/icons/Arc/devices/16/

ショートカット

Dunst は dunstctl で制御できます。dunstctl を実行する任意のキーボードショートカットを登録して使用してください。

例:すべての通知を閉じる

$ dunstctl close-all

例:履歴リストを表示する

$ dunstctl history-pop

ルール

特定の通知に一致するルールをdunstrcファイルに作成し、スクリプトの実行などのアクションを実行できます。

フィルタリング

新しいルールを作成するには、構成ファイルにカスタム名を使用して新しいセクションを作成します。 そのセクションでは、属性 appname、 summary、 body、 icon、 category、 match_transient、および msg_urgency を使用して、 お知らせ。 グロブがサポートされています。例については、 Scripting を参照してください。 -print オプションから始めて、適切なルールを作成するための通知に関する有用な情報を見つけてください。

変更

通知が一致すると、フォーマット文字列の変更など、特定のアクションを実行できます。これは特に 特定の通知を完全に無視したい場合に便利です。 その場合は、 format="" 行をルールに追加するだけです。

もう1つの便利な機能は、たとえば、ダンストを使用している場合など、特定の通知を履歴から除外したい場合です。 音量インジケーター として。 これを実現するには、ルールに history_ignore=yes を追加するだけです。

スクリプト

Dunst を設定することで特定の通知が表示されたときにスクリプトを実行することができます。以下は Pidgin から誰かがサインオンしたという通知がきたときにスクリプトを実行する例です:

[signed_on]
   appname = Pidgin
   summary = "*signed on*"
   urgency = low
   script = do_something.sh

指定されたスクリプトには、appname、 summary、 body、 icon、 urgency の順にパラメーターが渡されます。

ヒントとテクニック

スクリプト

Dunst を設定することで特定の通知が表示されたときにスクリプトを実行することができます。以下は Pidgin から誰かがサインオンしたという通知がきたときにスクリプトを実行する例です:

[signed_on]
   appname = Pidgin
   summary = "*signed on*"
   urgency = low
   script = do_something.sh