fc2ブログ

本を読む

読書やコンピュータなどに関するメモ

xdg-openの中身

 LinuxなどのX環境では、コマンドラインで「xdg-open url」のように実行することにより、WebブラウザでURLを開ける。Freedesktop.orgのPortlandプロジェクトで開発されているもので、わりと汎用的らしい。以下、xdg-openの中身のメモ。

xdg-open

 xdg-openはシェルスクリプト。判断ロジックは以下のとおり。

  • 環境変数KDE_FULL_SESSIONがtrueならKDEと判断し、kfmclientを呼ぶ
  • 環境変数GNOME_DESKTOP_SESSION_IDが設定されていればGNOMEと判断し、gnome-openを呼ぶ
  • 「xprop -root _DT_SAVE_MODE」の値が"xfce4"であればXfce4と判断し、exo-openを呼ぶ
  • そうでなければ、次項以降へ。OSによって実装が違うようだ

Red Hat系Linuxで条件に合わない場合

 Red Hat系Linuxではxdg-open内で処理が続く(Fedoraで確認)。これがオリジナルっぽい。

  • 環境変数BROWSERが設定されていればそれを呼ぶ
    • ":"区切りで複数指定も可(最初に実行できたところで終了)

Debian系Linuxで条件に合わない場合

 Debian系Linuxではdpatchな独自パッチが入っていて、sensible-browserを呼ぶ。sensible-browserもシェルスクリプトで、判断ロジックは以下のとおり。

  • 環境変数BROWSERが設定されていればRed Hat系に同じ
  • 環境変数DISPLAYが設定されていれば(Xが動いていれば)
    • 環境変数GNOME_DESKTOP_SESSION_IDが設定されていれば(GNOMEであれば)
      • gnome-www-browserがあればそれを呼ぶ
      • x-www-browserがあればそれを呼ぶ
      • gnome-terminalとwww-browserがあればそれを呼ぶ
    • x-www-browserがあればそれを呼ぶ
    • x-terminal-emulatorとwww-browserがあればそれを呼ぶ
  • www-browserがあればそれを呼ぶ

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

https://emasaka.blog.fc2.com/tb.php/771-4c616b7f

 | HOME | 

Categories

Recent Entries

Recent Comments

Recent Trackbacks

Appendix

emasaka

emasaka

フリーター。
連絡先はこのへん

Monthly