<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ka2n</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ka2n"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Ka2n"/>
	<updated>2026-04-14T00:24:49Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Dunst&amp;diff=25451</id>
		<title>Dunst</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Dunst&amp;diff=25451"/>
		<updated>2022-05-17T01:12:50Z</updated>

		<summary type="html">&lt;p&gt;Ka2n: /* インストール */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:X サーバー]]&lt;br /&gt;
[[en:Dunst]]&lt;br /&gt;
[[pl:Dunst]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|デスクトップ通知}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://dunst-project.org/ Dunst] はデスクトップ環境に同梱されている通知デーモンを置き換える軽量な代替デーモンです。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
{{Pkg|dunst}} パッケージを[[インストール]]してください。&lt;br /&gt;
&lt;br /&gt;
サンプル設定ファイルは {{ic|/etc/dunst/dunstrc}} に存在します。&lt;br /&gt;
ファイルを {{ic|~/.config/dunst/dunstrc}} にコピーして適宜編集してください。&lt;br /&gt;
&lt;br /&gt;
{{ic|/usr/bin/dunst}} を起動して、ウィンドウマネージャやデスクトップ環境がスタートアップ時やログイン時に起動できるようにしてください。&lt;br /&gt;
&lt;br /&gt;
{{Note|プログラムが D-Bus を通じて通知を送った時に dbus-daemon によって dunst は自動で起動される得て、手動で起動する必要はないこともあります。しかし、環境によっては通知サービスが複数インストールされていることがあり、その場合どのデーモンが自動で起動されるか知るすべはありません。dbus-daemon のメンテナは明示的に、複数のプロバイダサービスについて自動起動について警告しておきます。}}&lt;br /&gt;
&lt;br /&gt;
== 外観 ==&lt;br /&gt;
&lt;br /&gt;
Dunst では HTML のマークアップを使って通知を表示できます。例えば太字・斜体・取り消し線・下線のサンプルが存在します。完全なリファレンスは [https://developer.gnome.org/pygtk/stable/pango-markup-language.html] を参照してください。{{ic|markup}} を {{ic|none}} に設定することで、通知から HTML を取り除くこともできます。&lt;br /&gt;
&lt;br /&gt;
通知のフォーマットを指定できます。使用できるオプションは以下の通りです:&lt;br /&gt;
 %a  アプリ名&lt;br /&gt;
 %s  概要&lt;br /&gt;
 %b  本文&lt;br /&gt;
 %i  アイコン名 (パスを含む)&lt;br /&gt;
 %I  アイコン名 (パスは含まない)&lt;br /&gt;
 %p  進捗率 ([  0%] から [100%])&lt;br /&gt;
上記のオプションは HTML と組み合わせて使うことができます。例えば {{ic|format}} を {{ic|&amp;lt;nowiki&amp;gt;&amp;lt;b&amp;gt;%s&amp;lt;/b&amp;gt;\n%b&amp;lt;/nowiki&amp;gt;}} と設定することで、太字の概要に、改行の後に本文を表示します。&lt;br /&gt;
&lt;br /&gt;
=== アイコンセット ===&lt;br /&gt;
&lt;br /&gt;
アイコンはオプション {{ic|icon_path}} で設定されます。 ステータスとデバイス、レガシーアイコンが必要です。 デフォルトでは、 Dunst は {{Pkg|gnome-icon-theme}} アイコンを探します。 たとえば、代わりに {{Pkg|adwaita-icon-theme}} (gnome-icon-theme の後継) を使用するには、次のようにします。&lt;br /&gt;
&lt;br /&gt;
 icon_path = /usr/share/icons/Adwaita/16x16/status/:/usr/share/icons/Adwaita/16x16/devices/:/usr/share/icons/Adwaita/16x16/legacy/&lt;br /&gt;
&lt;br /&gt;
== ショートカット ==&lt;br /&gt;
&lt;br /&gt;
Dunst は dunstctl で制御できます。dunstctl を実行する任意のキーボードショートカットを登録して使用してください。&lt;br /&gt;
&lt;br /&gt;
例:すべての通知を閉じる&lt;br /&gt;
&lt;br /&gt;
 $ dunstctl close-all&lt;br /&gt;
&lt;br /&gt;
例:履歴リストを表示する&lt;br /&gt;
&lt;br /&gt;
 $ dunstctl history-pop&lt;br /&gt;
&lt;br /&gt;
== ルール ==&lt;br /&gt;
&lt;br /&gt;
特定の通知に一致するルールをdunstrcファイルに作成し、スクリプトの実行などのアクションを実行できます。&lt;br /&gt;
&lt;br /&gt;
=== フィルタリング ===&lt;br /&gt;
&lt;br /&gt;
新しいルールを作成するには、構成ファイルにカスタム名を使用して新しいセクションを作成します。&lt;br /&gt;
そのセクションでは、属性 appname、 summary、 body、 icon、 category、 match_transient、および msg_urgency を使用して、&lt;br /&gt;
notification、 Globbing がサポートされています。例については、 [[#Scripting|Scripting]] を参照してください。&lt;br /&gt;
{{ic|-print}} オプションから始めて、適切なルールを作成するための通知に関する有用な情報を見つけてください。&lt;br /&gt;
&lt;br /&gt;
=== 変更 ===&lt;br /&gt;
&lt;br /&gt;
通知が一致すると、フォーマット文字列の変更など、特定のアクションを実行できます。これは特に&lt;br /&gt;
特定の通知を完全に無視したい場合に便利です。&lt;br /&gt;
その場合は、 {{ic|1=format=&amp;quot;&amp;quot;}} 行をルールに追加するだけです。&lt;br /&gt;
&lt;br /&gt;
もう1つの便利な機能は、たとえば、Dunst を使用している場合など、特定の通知を履歴から除外したい場合です。&lt;br /&gt;
[[#dunstifyを音量/明るさレベルインジケーターとして使用|音量インジケーター]] として。&lt;br /&gt;
これを実現するには、ルールに {{ic|1=history_ignore=yes}} を追加するだけです。&lt;br /&gt;
&lt;br /&gt;
=== スクリプト ===&lt;br /&gt;
&lt;br /&gt;
Dunst を設定することで特定の通知が表示されたときにスクリプトを実行することができます。以下は [[Pidgin]] から誰かがサインオンしたという通知がきたときにスクリプトを実行する例です:&lt;br /&gt;
&lt;br /&gt;
 [signed_on]&lt;br /&gt;
    appname = Pidgin&lt;br /&gt;
    summary = &amp;quot;*signed on*&amp;quot;&lt;br /&gt;
    urgency = low&lt;br /&gt;
    script = do_something.sh&lt;br /&gt;
&lt;br /&gt;
指定されたスクリプトには、appname、 summary、 body、 icon、 urgency の順にパラメーターが渡されます。&lt;br /&gt;
&lt;br /&gt;
== Dunst を一時的に無効にする ==&lt;br /&gt;
&lt;br /&gt;
Dunst を一時的に無効にするには、2つの方法があります。&lt;br /&gt;
&lt;br /&gt;
;{{ic|dunstctl}} を使用します&lt;br /&gt;
:{{ic|dunstctl set-paused true/false/toggle}} を使用して、一時停止通知を無効化/再有効化または切り替えることができます。 そして、{{ic|dunstctl is-paused}} を使用して、 dunst が現在実行中か一時停止中かを確認します。&lt;br /&gt;
&lt;br /&gt;
;{{ic|killall}} を使用する&lt;br /&gt;
:{{ic|killall -SIGUSR1 dunst}} を使用して無効にし、 {{ic|killall -SIGUSR2 dunst}} を使用して再度有効にします&lt;br /&gt;
&lt;br /&gt;
一時停止すると、 Dunst はすべての通知を保留します。&lt;br /&gt;
再び Dunst を有効にすると、すべての保留通知が表示されます。&lt;br /&gt;
&lt;br /&gt;
== Dunstify ==&lt;br /&gt;
&lt;br /&gt;
Dunstify は、 [[デスクトップ通知#プログラミングでの使い方|notify-send]] コマンドの代替手段です。&lt;br /&gt;
これは notify-send と完全に互換性があり、一緒に使用できますが、さらにいくつかの機能を提供します。&lt;br /&gt;
Dunstify は、 [[Dunst]] 通知デーモンでのみ機能します。&lt;br /&gt;
&lt;br /&gt;
通知送信で利用可能なオプションに加えて、dunstifyはIDやアクションなどのいくつかの機能を提供します。&lt;br /&gt;
&lt;br /&gt;
=== 通知の置き換え ===&lt;br /&gt;
&lt;br /&gt;
{{ic|-r ID}} オプションを指定して dunstify を呼び出すことにより、通知に ID を割り当てることができます。ここで、{{ic|ID}}は整数である必要があります。&lt;br /&gt;
そのIDの通知がすでに存在する場合は、新しい通知に置き換えられます。&lt;br /&gt;
{{ic|1=dunstify -C ID}} を使用して通知を閉じることもできます。&lt;br /&gt;
&lt;br /&gt;
ただし、ほとんどのユースケースでは、IDのマイクロ管理よりもタグの実装が推奨されます。後者のオプションには、多くの隠れた落とし穴があるためです [https://github.com/dunst-project/dunst/issues/672] ID の置き換えは、一般的な方法ではなく、デバッグや非常に複雑な通知送信者に対して検討される場合があります [https://github.com/dunst-project/dunst/issues/672#issuecomment-554530659]&lt;br /&gt;
&lt;br /&gt;
同じタグ(この例では &#039;&#039;test&#039;&#039;) を持つ通知は、 ID を気にすることなく置き換えられます。&lt;br /&gt;
&lt;br /&gt;
 $ dunstify -h string:x-dunst-stack-tag:test Test -A &#039;tested,default&#039;&lt;br /&gt;
 $ dunstify -h string:x-dunst-stack-tag:test Testing&lt;br /&gt;
&lt;br /&gt;
=== アクション ===&lt;br /&gt;
&lt;br /&gt;
1つ以上の {{ic|1=--action=action,label}} パラメータを指定することにより、通知から直接呼び出すことができるアクションを定義できます。&lt;br /&gt;
例えば:&lt;br /&gt;
 dunstify --action=&amp;quot;replyAction,reply&amp;quot; &amp;quot;メッセージを受信しました&amp;quot;&lt;br /&gt;
&lt;br /&gt;
その後、ユーザーは Dunst のコンテキストメニューから指定されたアクションにアクセスできます。 dunstify の呼び出しは、通知が消えるか、アクションが選択されるまでブロックされます。前者の場合、 dunstify は、通知がタイムアウトした場合は1を返し、手動で却下された場合は2を返します [https://developer.gnome.org/notification-spec/#signals]。 後者の場合、Dunst のコンテキストメニューで選択されたアクションを返します。&lt;br /&gt;
&lt;br /&gt;
コンテキストメニューを使用してアクションを呼び出すことに加えて、マウスイベントがアクションを呼び出す方法を定義することもできます [https://github.com/dunst-project/dunst/blob/3f3082efb3724dc​​d369de78dc94d41190d089acf/dunstrc#L237] これにより、 [https://github.com/dunst-project/dunst/issues/163#issuecomment-573191650] で提案されているように、Dunstをインタラクティブに使用できます。通知にアクションが1つしかない場合、またはアクションの名前が &#039;&#039;default&#039;&#039; の場合、そのアクションは、通知をミドルクリックすることで呼び出すことができます(デフォルト、または {{ic|dunstrc}} が {{ic|&amp;lt;nowiki&amp;gt;mouse_middle_click = do_action&amp;lt;/nowiki&amp;gt;}})。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
reply_action () {}&lt;br /&gt;
forward_action () {}&lt;br /&gt;
handle_dismiss () {}&lt;br /&gt;
&lt;br /&gt;
ACTION=$(dunstify --action=&amp;quot;default,Reply&amp;quot; --action=&amp;quot;forwardAction,Forward&amp;quot; &amp;quot;メッセージを受信しました&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
case &amp;quot;$ACTION&amp;quot; in&lt;br /&gt;
&amp;quot;default&amp;quot;)&lt;br /&gt;
    reply_action&lt;br /&gt;
    ;;&lt;br /&gt;
&amp;quot;forwardAction&amp;quot;)&lt;br /&gt;
    forward_action&lt;br /&gt;
    ;;&lt;br /&gt;
&amp;quot;2&amp;quot;)&lt;br /&gt;
    handle_dismiss&lt;br /&gt;
    ;;&lt;br /&gt;
esac&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
=== ボリューム/明るさレベルのインジケーターとして dunstify を使用 ===&lt;br /&gt;
&lt;br /&gt;
ID の置換機能を使用して、この画像 [https://i.postimg.cc/j2CDkS1H/screen1712.png] のような単純な音量または明るさインジケーターの通知を実装できます。&lt;br /&gt;
&lt;br /&gt;
ボリュームインジケーターを実現するには、次のスクリプトを {{ic|PATH}} のどこかに配置します。&lt;br /&gt;
&lt;br /&gt;
{{bc|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# changeVolume&lt;br /&gt;
&lt;br /&gt;
# Arbitrary but unique message id&lt;br /&gt;
msgId=&amp;quot;991049&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Change the volume using alsa(might differ if you use pulseaudio)&lt;br /&gt;
amixer -c 0 set Master &amp;quot;$@&amp;quot; &amp;gt; /dev/null&lt;br /&gt;
&lt;br /&gt;
# Query amixer for the current volume and whether or not the speaker is muted&lt;br /&gt;
volume=&amp;quot;$(amixer -c 0 get Master | tail -1 | awk &#039;{print $4}&#039; | sed &#039;s/[^0-9]*//g&#039;)&amp;quot;&lt;br /&gt;
mute=&amp;quot;$(amixer -c 0 get Master | tail -1 | awk &#039;{print $6}&#039; | sed &#039;s/[^a-z]*//g&#039;)&amp;quot;&lt;br /&gt;
if [[ $volume == 0 || &amp;quot;$mute&amp;quot; == &amp;quot;off&amp;quot; ]]; then&lt;br /&gt;
    # Show the sound muted notification&lt;br /&gt;
    dunstify -a &amp;quot;changeVolume&amp;quot; -u low -i audio-volume-muted -r &amp;quot;$msgId&amp;quot; &amp;quot;Volume muted&amp;quot; &lt;br /&gt;
else&lt;br /&gt;
    # Show the volume notification&lt;br /&gt;
    dunstify -a &amp;quot;changeVolume&amp;quot; -u low -i audio-volume-high -r &amp;quot;$msgId&amp;quot; \&lt;br /&gt;
    -h int:value:&amp;quot;$volume&amp;quot; &amp;quot;Volume: ${volume}%&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Play the volume changed sound&lt;br /&gt;
canberra-gtk-play -i audio-volume-change -d &amp;quot;changeVolume&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
{{ic|changeVolume 2dB+ unmute}} などをホットキーにバインドするだけで、完了です。また、 dunst に履歴内のこれらのタイプの通知を無視させることもできます。 [[#変更]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== 以前の通知を上書きする ===&lt;br /&gt;
&lt;br /&gt;
一部の通知(音や明るさなど)では、前の通知を上書きしたい場合があります。より一般的な例については、 [[#通知の置き換え]] で Dunst メソッドを使用するか、 [https://wiki.archlinux.org/index.php/Desktop_notifications#Replace_previous_notification Replacepreviousnotification] を参照してください。&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== Dunst は systemd 経由で開始できません ===&lt;br /&gt;
&lt;br /&gt;
ディスプレイマネージャなしで dunst を使用すると、 {{ic|DISPLAY}} 環境変数が正しく設定されない場合があります。 [https://github.com/dunst-project/dunst/issues/347]&lt;br /&gt;
&lt;br /&gt;
これを修正するには、 {{ic|.xinitrc}} に以下を追加します。&lt;br /&gt;
 systemctl --user import-environment DISPLAY&lt;br /&gt;
&lt;br /&gt;
{{Tip|これは、最近の [[systemd]] の機能によって、{{ic|/etc/X11/xinit/xinitrc.d/50-systemd-user.sh}} の一段階で自動的に行われます。}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 一致しないフォントサイズ (テキストよりもはるかに大きい絵文字) ===&lt;br /&gt;
&lt;br /&gt;
これは、{{Pkg|fontconfig}} がビットマップフォントを再スケーリングしないことが原因です。 これは通常、特定の絵文字フォントでのみ認識されます (例:{{Pkg|noto-fonts-emoji}})&lt;br /&gt;
&lt;br /&gt;
解決するには、次のコマンドを実行します。&lt;br /&gt;
 # ln -s /etc/fonts/conf.avail/10-scale-bitmap-fonts.conf /etc/fonts/conf.d/&lt;br /&gt;
&lt;br /&gt;
Dunst を再起動します。&lt;/div&gt;</summary>
		<author><name>Ka2n</name></author>
	</entry>
</feed>