Next: File Notifications, Previous: Session Management, Up: System Interface [Contents][Index]
Emacsはfreedesktop.orgのDesktop Notifications
Specificationをサポートするシステムでは、通知(notifications)を送ることができます。この機能を使用するには、EmacsがD-Busサポート付きでコンパイルされていて、notifications
ライブラリーがロードされていなければなりません。D-Bus in D-Bus integration in Emacsを参照してください。
この関数は引数paramsで指定された構成したパラメーターによりD-Busを通じてデスクトップに通知を送信する。これらの引数は交互になったキーワードと値のペアーで構成されていること。以下はサポートされているキーワードと値:
:bus bus
D-Busのバス。この引数は:session
以外のバスを使用する場合のみ必要。
:title title
通知のタイトル。
:body text
通知のbodyのテキスト。通知サーバーの実装に依存して‘"<b>bold text</b>"’のようなHTMLマークアップ、ハイパーリンク、イメージをテキストに含むことができる。HTML特殊文字は‘"Contact <postmaster@localhost>!"’のようにエンコードしなければならない。
:app-name name
その通知を送信するアプリケーション名。デフォルトはnotifications-application-name
。
:replaces-id id
この通知が置換する通知のid。idはnotifications-notify
の以前の呼び出し結果でなければならない。
:app-icon icon-file
通知アイコンのファイル名。nil
ならアイコンは表示されない。デフォルトはnotifications-application-icon
。
:actions (key title key title ...)
適用されるアクションのリスト。keyとtitleはどちらも文字列。デフォルトのアクション(通常は通知クリックで呼び出される)は‘"default"’という名前であること。実装がそれを表示しないようにするには自由だがtitleは何でもよい。
:timeout timeout
timeoutは通知が表示されてからその通知が自動的にクローズされるまでのミリ秒での時間。-1なら通知の有効期限は通知サーバーのセッティングに依存して、通知のタイプにより異なるかもしれない。0なら通知は失効しない。デフォルト値は-1。
:urgency urgency
緊急レベル。low
、normal
、critical
のいずれか。
:action-items
このキーワードが与えられるとアクションのtitle文字列はアイコン名として解釈される。
:category category
通知の種類の文字列。標準のカテゴリーのリストはDesktop Notifications Specificationを参照のこと。
:desktop-entry filename
これは‘"emacs"’のようにプログラムを呼び出すデスクトップファイル名の名前を指定する。
:image-data (width height rowstride has-alpha bits channels data)
これはそれぞれwidth、height、rowstride、およびalpha channel、bits per sample、channels、image dataの有無を記述するrawデータのイメージフォーマット。
:image-path path
これはURI(現在サポートされているのはURIスキーマは‘file://’のみ)、または‘$XDG_DATA_DIRS/icons’にあるfreedesktop.org準拠のアイコンテーマ名のいずれかを表す。
:sound-file filename
通知ポップアップ時に再生するサウンドファイルのパス。
:sound-name name
通知ポップアップ時に再生する、‘$XDG_DATA_DIRS/sounds’にあるfreedesktop.orgサウンド命名仕様準拠の、テーマに対応した名前付きサウンド。アイコン名と同様、サウンドにたいしてのみ。例としては‘"message-new-instant"’。
:suppress-sound
それが可能ならサーバーにすべてのサウンドの再生を抑制させる。
:resident
セットした場合、アクション呼び出し時にサーバーはその通知を自動的に削除しない。ユーザーか送信者により明示的に削除されるまで、その通知はサーバー内に常駐し続ける。恐らくこのヒントは、そのサーバーが:persistence
能力をもつときのみ有用。
:transient
セットするとサーバーはその通知を過渡的なものとして扱い、もしそれが永続的であるべきならサーバーのpersistence能力をバイパスする。
:x position
:y position
その通知がポイントすべきスクリーン上のXとYの座標を指定する。これらの引数は併せて使用しなければならない。
:on-action function
アクション呼び出し時に呼び出す関数。通知idとアクションのkeyは引数としてその関数に渡される。
:on-close function
タイムアウトかユーザーにより通知がクローズされたときに呼び出す関数。通知idとクローズ理由reasonは引数としてその関数に渡される。:
expired
。
dismissed
。
notifications-close-notification
呼び出しにより通知がクローズされたら
close-notification
undefined
。
通知サーバーがどのパラメーターを受け入れるかのチェックはnotifications-get-capabilities
を通じて行うことができる。
この関数は整数の通知idをリターンする。このidはnotifications-close-notification
や別のnotifications-notify
呼び出しの:replaces-id
引数で通知アイテムの操作に使用できる。たとえば:
(defun my-on-action-function (id key) (message "Message %d, key \"%s\" pressed" id key)) ⇒ my-on-action-function
(defun my-on-close-function (id reason) (message "Message %d, closed due to \"%s\"" id reason)) ⇒ my-on-close-function
(notifications-notify :title "Title" :body "This is <b>important</b>." :actions '("Confirm" "I agree" "Refuse" "I disagree") :on-action 'my-on-action-function :on-close 'my-on-close-function) ⇒ 22
A message window opens on the desktop. Press "I agree" ⇒ Message 22, key "Confirm" pressed Message 22, closed due to "dismissed"
この関数は識別子idの通知をクローズする。busはD-Bus接続を表す文字列でありデフォルトは:session
。
通知サーバーの能力をシンボルのリストでリターンする。busはD-Bus接続を表す文字列でありデフォルトは:session
。以下は期待できる能力:
:actions
サーバーはユーザーにたいする指定されたアクションを提供する。
:body
bodyのテキストをサポートする。
:body-hyperlinks
サーバーは通知内のハイパーリンクをサポートする。
:body-images
サーバーは通知内のイメージをサポートする。
:body-markup
サーバーは通知内のマークアップをサポートする。
:icon-multi
サーバーは与えられたイメージ配列内のすべてのフレームのアニメーションを描画できる。
:icon-static
与えられたイメージ配列内の正確に1フレームの表示をサポートする。この値は、:icon-multi
とは相互に排他。
:persistence
サーバーは通知の永続性をサポートする。
:sound
サーバーは通知のサウンドをサポートする。
これらに加えてベンダー固有の能力は:x-gnome-foo-cap
のように:x-vendor
で始まる。
通知サーバーの情報を文字列のリストでリターンする。busはD-Bus接続を表す文字列でありデフォルトは:session
。リターンされるリストは(name
vendor version spec-version)
。
サーバーのプロダクト名。
ベンダー名。たとえば‘"KDE"’や‘"GNOME"’。
サーバーのバージョン番号。
サーバーが準拠する仕様のバージョン。
spec_versionがnil
ならサーバーは‘"1.0"’以前の仕様をサポートする。
Next: File Notifications, Previous: Session Management, Up: System Interface [Contents][Index]