試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

GNU/Linux上のFirefoxのユーザインターフェースをできるだけ軽くする

GNU/Linux向けのFirefoxGTK+ 2を使用し、既定のテーマでもこの外観が使用される

GNU/Linux上のFirefoxは(バージョン3/3.5系の時点では)ユーザインターフェースにGTK+ 2を用いていて、既定のテーマ「Default」もこのGTK+ 2の外観を用いている。
つまり、GTK+ 2のテーマが重いものだと「Default」テーマ使用時のFirefoxのユーザインターフェースにおけるタブの操作を含めた各種操作を行う際の応答性(体感的な軽さ)は悪くなり、逆に「GtkPerfについてと幾つかのGTK+ 2エンジンの速度比較」で確かめたような動作の軽いエンジンに基づくテーマを使用していれば(ある程度)軽くなる。

GTK+ 2を用いたデスクトップ環境でFirefoxだけ軽いGTK+テーマを用いる

GNOME2,Xfce4,LXDEといったGTK+ 2を使用したデスクトップ環境では、GTK+ 2アプリケーションにおいてデスクトップ環境上で設定されているGTK+のテーマが用いられる。しかし、環境変数GTK2_RC_FILESを指定して起動したアプリケーションはそれとは別のテーマを用いることができるため

(システムのテーマ)
env GTK2_RC_FILES=/usr/share/themes/[テーマ名]/gtk-2.0/gtkrc firefox
(一般ユーザが自分用にインストールしたテーマ)
env GTK2_RC_FILES=~/.themes/[テーマ名]/gtk-2.0/gtkrc firefox

のように起動することでFirefoxだけ別の軽いGTK+ 2テーマで使用することができる。*1
デスクトップ環境のメニュー向けとしては
[任意]ファイル名: ~/.local/share/applications/firefox-light.desktop

[Desktop Entry]
Name=Mozilla Firefox (lightweight)
Name[ja]=Mozilla Firefox (軽量)
Comment=Web Browser
Comment[ja]=ウェブブラウザ
Exec=env GTK_IM_MODULE=xim GTK2_RC_FILES=/usr/share/themes/Bluecurve/gtk-2.0/gtkrc firefox
Icon=firefox3
Terminal=false
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml
Categories=Network;WebBrowser;

このような形の.desktopファイルを作成して

update-desktop-database ~/.local/share/applications

を端末や「アプリケーションの実行」などから実行する。「Exec」行には必要に応じてオプション指定を追加してもOK(-no-remote*2-P [プロファイル名]*3など)。「GTK_IM_MODULE=xim」はuim使用時にflashのあるページで落ちないようにするための回避策*4で、使用している入力メソッドによっては不要。「GTK2_RC_FILES」の指定はシステム上にある最も軽いGTK+ 2のテーマに合わせる。*5その他、アイコン名やfirefoxコマンドのパスなども、必要に応じて環境に合わせる。
これでデスクトップ環境のメニューからこの(軽量GTK+ 2テーマに基づいた)Firefoxが起動できるようになる。

外部テーマの使用について

Firefoxの外観は「テーマ」として自由に変更できるが、外部テーマを用いるとユーザインターフェースが重くなることも多く、せっかくGTK+のテーマが軽くても、重いGTK+のテーマを用いているのと一緒になってしまう場合もある。
幾つか試した中で以下のテーマは軽い印象がある(特に「Full Flat」)が、軽さを感じるかどうかは人それぞれなので、「絶対にこれらを使えば軽くなる」という保証をするものではない。

  • Full Flat 3.5.1
  • Chromifox Basic 1.1.3
  • FoxWorld 0.4.9
  • iFox 3.5
  • Naver 0.2.15

これらのテーマを使用する場合にも一部GTK+ 2のテーマが用いられる部分が存在する*6ため、GTK+ 2のテーマは軽いエンジンに基づいたものであることが好ましい。
また、(この「テーマ」とは別に)外観の変更箇所が限られ、切り替えの度に再起動を要さない軽量テーマを扱う「Personas」という拡張をインストールすると、GTK+のテーマの軽さを最大限活かせる「Default」テーマを用いながら外観が変更できるので、これを用いるのも手ではあるのだが、GTK+のテーマとうまく合わない部分が出る場合がある。

関連:内部動作のチューニング

ユーザインターフェースではなく内部の動作に関するチューニングに関しては

などが参考になる。
設定は${HOME}/.mozilla/firefox/[使用しているプロファイルのディレクトリ]/user.jsに記述する(ファイルが無ければ作成)。

その他

(2009/10/8)もちろん、拡張を入れすぎるとFirefoxが重くなるというのは広く知られているため、できる限り拡張は少なめにし、用途に特化した拡張がある場合はプロファイルを分けるといった工夫はできる。拡張の一時的な無効化も場合によっては役に立つかもしれない。

関連記事:

使用したバージョン:

*1:同様にOpenOffice.orgでも「env OOO_FORCE_DESKTOP=gnome GTK2_RC_FILES=/usr/share/themes/[テーマ名]/gtk-2.0/gtkrc ooffice」のようにすると軽いGTK+ 2のテーマを用いることが可能だが、こちらは、軽さを求めるなら多少見栄えの劣る「OOO_FORCE_DESKTOP=none」指定をする方法もある

*2:firefoxコマンドでURLを開いてもこのブラウザ上では開かないようにする

*3:任意のプロファイルを指定して起動

*4:別途uim-ximを実行しつつ環境変数XMODIFIERSを「@im=uim」にしておく

*5:ここで書いている「Bluecurve」は最も軽いGTK+ 2向けのエンジンを用いたテーマの1つだが、ディストリのパッケージでインストールできないディストリもある

*6:GTK+ 2のテーマの軽さを活かせるFirefoxテーマとも言える