Org-modeからhtml変換してブラウザで開く場合にFirefoxではなくChromeが開かれてしまう件


-追記あり- 2016年11月9日 : 初めに書いた記事の方法だけではChromeで開く動作に戻ってしまう模様なので、続きにそちらへの対処を書いておきます。


Ubuntu16.04.1(Xfceデスクトップ環境)での話。以前Unity環境でも同じ現象だったので、デスクトップ環境には依存しない問題かも知れないです。

Org-modeでは独自のマークアップにより記述ができ、それをhtmlとして出力する機能があります。これは直にhtmlを記述するよりも人間寄りの記述や表示が出来るので、簡単なhtmlを書く分には便利に使えます。

ただEmacsでOrg-modeからhtmlを出力してブラウザ確認するとき、デフォルトブラウザにFirefoxを指定していてもGoogle Chromeでhtmlファイルが開かれてしまいます。
まぁhtml出力までで留めて後はファイルブラウザなどからhtmlファイルを開けばFirefoxで開いてくれます。
またEmacsでURLをブラウザで開く操作をした場合はFirefoxで開いてくれます。
現状確認してる範囲では
Org-mode → html出力 → ブラウザで開く
(C-c C-e h o)
という操作に限ってGoogle Chromeで開いてしまう模様です。
おそらくこのhtml出力を提供しているパッケージが何を見て開くブラウザを決定しているのかが分かれば問題解決の糸口になりそうです。

そこでネットで検索してみると、解決方法の書かれているサイトがいくつか見つかりました。
Emacs自体のデフォルトブラウザ認識を変更するという解決策は多かったけど、そちらでは解決せず。
どうもOSなどの環境依存も考える必要がありそうです。
で、以下のサイトにLinux環境下での解決方法が提示されていました。
browser - How to make emacs org-mode open links to sites in Google Chrome - Stack Overflow
いくつか回答があるうちのUbuntu12.04での解決方法がそれでした。
簡単に書くとbashの設定で環境変数を
export BROWSER=firefox
と指定して読み込ませることで、firefoxで開くようにできました。
(参考リンクにはもう一つの方法が書かれているが、そちらは試しません)

これはGUIでEmacs使う場合でもこの方法が使えました。
とりあえずこれでOrg-modeからhtmlへ出力する環境の準備が一つ整いました。


追記 : 2016年11月9日
どうもorg-modeのhtml出力では
/usr/bin/sensible-browser
を呼び出しているようです。

これはスクリプトファイルで中身を読むと環境変数でBROWSERがあればそれを使うようだけど、.bashrcにBROWSERとしてfirefoxを指定していてもchromeで開いてしまうことがありました。
そこで、もう少し読んでみると
・gnome-www-browser
・x-www-browser
も関与している模様です。
で、ネットの検索してみると上記の設定は
$ sudo update-alternatives --config gnome-www-browser
または
$ sudo update-alternatives --config x-www-browser
でそれぞれ変更できます。とりあえず両方ともfirefoxを指定することで、いまのところはfirefoxで開くことに固定化できたようです。
とりあえずこれで使っていってみることにして、また何か分かったら追記していきます。

参考サイト↓
gnome-www-browser, x-www-browser を firefox にしておいた - わからん
XのデフォルトWebブラウザを設定する - Akionux-wiki

コメント