Fluxbox

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Fluxbox and the translation is 100% complete.


Fluxbox は、Blackbox からフォークした、オープンソースの X11 用スタック型ウィンドウマネージャです。このガイドは X11 向けに Fluxbox ウィンドウマネージャを設定する方法についての説明を提供します。

はじめに

Linux のデスクトップモデルに馴染みの無い方向けに説明しておくと、ウィンドウマネージャ (WM) は X11 によって実行され、他のグラフィカルプログラムを管理するためのアプリケーションです。WM はそれぞれのウィンドウの場所、サイズと、どのデスクトップからそれにアクセスできるかを制御します。これはユーザ定義のルールによって自動的に行われるか、特定の WM によっては、マウスとキーボードショートカットによってで実行時に行われます。

しかしながら、一部の WM は単なるウィンドウ管理よりも多くの機能を引き受けています。Fluxbox は、アプリケーションを起動するためのプラットフォーム、キーボードショートカットと壁紙の設定、スリットによる情報表示も提供します。GNOME のデフォルト WM である Metacity はこれらのものを含んでいませんが、他の GNOME プログラムを通じて利用可能です。そのため、Fluxbox は真に軽量な WM とは呼べないと言う人もいます。しかしながら、Fluxbox は基本的なデスクトップに必要なものをすべて含んでいるため、より大きい GNOME または KDE のようなデスクトップスイートの代わりに、多くの人々が使用しています。

しかしながら、更に事態を混乱させることに、Fluxbox は GNOME または KDE のデフォルトの WM を置き換えることができます。例えば、GNOME のウィンドウマネージャである Metacity は求める柔軟性を持ち合わせておらず、一方で Fluxbox には組み込みアプリケーションや、完全なデスクトップ環境に求められる統合を備えていないとします。その場合、ウィンドウを管理するのには Fluxbox を使い、その他の部分については GNOME を使うということができます。しかし、この構成を利用する場合、重複する機能によって問題が発生することに注意してください。

Fluxbox はサードパーティソフトウェアによって拡張することもできます。これはハードウェア資源が限られている状況で、あるいは個人の好みとして、しばしば理想的です。

この記事は Fluxbox 初心者、興味を持っている人、あるいは Gentoo/Fluxbox の経験から多くを得たいと思っている人を対象としています。この記事はまた、Fluxbox とともに動作するサードパーティプログラムによって、さらなる (しかし必須ではない) 機能性を得る方法についても示します。

インストール

まず、X サーバの設定記事に書かれている通り、動作する X 環境がインストールされていることを確認してください。

USE フラグ

USE flags for x11-wm/fluxbox X11 window manager featuring tabs and an iconbar

bidi Enable bidirectional language support
imlib Add support for imlib, an image loading and rendering library
nls Add Native Language Support (using gettextGNU locale utilities)
slit Enables the Fluxbox slit (or dock)
systray Enables the system tray in the Fluxbox toolbar
toolbar Enables the Fluxbox toolbar
truetype Add support for FreeType and/or FreeType2 fonts
vim-syntax Pulls in related vim syntax scripts
xinerama Add support for querying multi-monitor screen geometry through the Xinerama API

Fluxbox をインストールする前に、利用可能な USE フラグ (上記) をいくつか確認してみてください。

後の設定を容易にする vim-syntax フラグがあります。このフラグは、vim テキストエディタのための特別な Fluxbox カラースキームである、 fluxbox-syntax をインストールします。これはユーザが Fluxbox の init ファイルとキーの内容を迅速に理解できるようにします。これは vim にとってごく小さい拡張であり、Fluxbox を設定するのであれば強く推奨されます。

Fluxbox の機能をカスタマイズする 3 つのフラグがあります: slitsystray そして toolbar です。これらのフラグは、スリットまたは ツールバーが不要なユーザが、それらを含めずに Fluxbox をコンパイルできるようにするために提供されています。これは、極めて小さな環境で動かす必要がある場合や、これらの機能を提供する別のアプリケーション、例えばスタンドアロンのパネルやドック等を使用する場合に、有用です。

USE フラグを決定いたら、それらを /etc/portage/package.use ファイルに追加してください。例えば、次のコマンドは Fluxbox が truetypevim-syntax を使うように構成します:

root #echo "x11-wm/fluxbox truetype vim-syntax" >> /etc/portage/package.use

Emerge

fluxbox のインストールは単なるシステムへの emerge です:

root #emerge --ask x11-wm/fluxbox

これだけです; Fluxbox はインストールされました!しかしながら、これらのツールだけでは効率的には使えないでしょう。以降のセクションでは、他の必要かもしれないパッケージをインストールして、Fluxbox と、ユーザにとってより良く働くサードパーティプログラムを構成する手助けをします。これらのステップを行うかどうかはすべて任意ですので、最も適したものになるように、以下に紹介するものから自由に選んでください。

設定

X11 の準備

Fluxbox は単なる X11 上で動作するプログラムのひとつに過ぎません。望みであれば、startx した後、xterm ウィンドウ内で fluxbox を入力することでも起動できます。しかしこれは控え目に言っても面倒です。ブート直後に GUI 環境に直接入らず、X11 を手動で開始したいという場合は、通常の (root でない) ユーザとして以下を実行することで、X に自動で Fluxbox をロードさせることができます:

user $echo "exec startfluxbox" > ~/.xinitrc

上のコマンドは、デスクトップ環境を常に使用したい、つまり、システムが起動するたびに GUI を使うために startx を入力するのが面倒な大部分のユーザにとって、理想的ではありません。また、これは気付かないうちにセキュリティリスクを晒します。X11 ディスプレイが xlock を使ってロックされていても、X11 がコンソールから起動されていた場合、システムに対して物理的アクセスを持っている人であれば、そのコンソールに切り替えて、X11 を殺し、ログインしているユーザを使用することができてしまいます。これを防ぐには、X11 をバックグラウンドで開始するか、X11 を screen で開始し、screen セッションを切り離し、コンソールからログアウトするしかありません。このような退屈な手順を踏まないといけない事態は避けるべきです。グラフィカルログインマネージャがあれば、この問題は発生しません。しかしながら、グラフィカルログインマネージャを使う場合は X11 を root として実行する必要があり、これは悪いことかもしれません。これを書いている時点で、現行バージョンでこれを利用した攻撃は筆者の知る限りありませんが、心配な場合は、X11 を一切使用しないか、上述のscreen を使用した手法を使ってください。これは Fluxbox の問題ではなく、X11 自体の問題であることに注意してください。

グラフィカルログインマネージャの選択肢は複数あります。どれを選択するかはユーザの裁量によりますが、この記事の目的から SLiM を使用します。SLiM は Fluxbox とともによく動作しますが、他の環境をインストールすることもできます (GNOME、KDE、または Xfce など)。

root #emerge --ask x11-misc/slim
root #rc-update add xdm default
Important
slim を emerge してから、xdm をブートスクリプトに追加していること、そしてこの順で行っていることを確認してください!順番を逆にすると失敗するでしょう。システム全体の設定ファイルをひとつだけ変更する必要があるでしょう:
FILE /etc/conf.d/xdmディスプレイマネージャを SLiM に設定する
DISPLAYMANAGER="slim"

ディスプレイロック

WM を扱うときになくてはならないのは、システムへの承認されていないアクセスを防ぐために X ディスプレイをロックするプログラムです。Fluxbox をインストールするときは、vlock または x11-misc/xlockmore を emerge して、システムをロックできるようにするのが賢明です。x11-misc/xautolock は指定したタイムアウトの後に xlock を実行するために使用できます。大部分のユーザはデスクトップの背景画像も設定できるようにしたいでしょう; x11-terms/eterm を emerge することでデスクトップの背景画像を設定できるようになります。eterm は優れた X11 ターミナルでもあります。media-gfx/feh はスリムダウンした画像ブラウザで、さらに軽量なソリューションとなります。

root #emerge --ask x11-misc/xlockmore x11-misc/xautolock x11-terms/eterm media-gfx/feh

自動ロックを有効化させるには、以下の内容を ~/.fluxbox/startup ファイルの exec fluxbox の行より上に追加してください:

FILE ~/.fluxbox/startup
xautolock -time 15 -locker "xlock -mode blank" -secure &

テーマとアートワーク

このセクションは最小限の構成でいい場合はスキップできますが、ユーザが WM の外観をカスタマイズできるようにするのは良いことです。Fluxbox 固有のテーマ、どの WM でも使用できる Gentoo のアートワーク、そしてどの *box WM でも使用できるテーマがインストールされます。

root #emerge --ask x11-themes/commonbox-styles x11-themes/commonbox-styles-extra x11-themes/fluxbox-styles-fluxmod x11-themes/gentoo-artwork

Fluxbox を初めて実行する

これで Fluxbox を初めて実行する準備ができました。初回起動時には各ユーザのホームディレクトリに ~/.fluxbox/ というディレクトリを作成します。ここは Fluxbox は設定を保存する場所で、デフォルト値によって内容が埋められます。

user $startx

SLiM またはその他のディスプレイマネージャがインストールされている場合は、root になって以下を実行することで、忘れずにディスプレイマネージャを開始してください:

root #/etc/init.d/xdm start

セッションとして Fluxbox を選択し、一般ユーザでログインしてください。

Fluxbox が起動したところ、かなりまっさらに見えるでしょう。空白のデスクトップと、下にあるツールバーが見えるはずです。デスクトップのどこかで右クリックすると、メニューが表示されるでしょう。ここから X アプリケーションを開始できるほか、コンソールプログラムを実行するためにターミナルを開くことができます。

Fluxbox ホットキー

Fluxbox はデフォルトではとても少ないキーセットしか設定されていません。デフォルトのキーセットはウィンドウ間とデスクトップ間の切り替えだけで、他にはありません。変更する前に、いくつか知っておく必要があることがあります。Fluxbox の keys ファイルでは、見慣れない修飾キーが存在します。Mod1 は一般に Alt キーとして知られているキーで、Mod4Super (またの名を Windows) キーです。Control と Shift は CtrlShift ですが、Control と Shift は他の X11 プログラムが自身のショートカットのために使用することが多いので、通常は Mod1 または Mod4 を使用するのがベストです。

ここでの設定はすべて独立していますので、好みでないものは除外したり、特別な需要を満たすために与えられた例を変更するのは自由に行って構いません。このガイドでは筆者が一般的なプログラムに期待するものを使用しますので、使用するバイナリの名前がここで書いたものと異なる場合は置き換えてください。さらなる情報については、Fluxbox の man ページをお読みください (man fluxbox)。

それはさておき、テキストエディタを (非 root ユーザで) 起動し、~/.fluxbox/keys を開き、ショートカットキーの強化を始めましょう!

FILE ~/.fluxbox/keysキーボードショートカットを変更する
# X11 ディスプレイを現在のユーザでロックします:
Mod4 l   :ExecCommand xlock
  
# いくつかのプログラムをクイックキーで開く。これらはただの例です。
# どういう意図かは分かっていただけると思います……
Mod1 f   :ExecCommand firefox
Mod1 t   :ExecCommand thunderbird
Mod1 o   :ExecCommand oowriter
Mod1 v   :ExecCommand gvim
  
# Fluxbox には音量調整がありません; それを行うためのハックです
# (ALSA を使用していると仮定します; OSS の場合は自分でがんばってください :P)
Mod1 e   :ExecCommand Eterm -name alsa -e alsamixer
  
# これは fbrun を起動します。fbrun はさらに他のプログラムを起動します:
Mod1 r   :ExecCommand fbrun
  
# プログラムの制御。いろいろと楽になります……
Mod1 4   :Close
Mod1 m   :Minimize
  
# aterm (emerge x11-terms/aterm) を使用している場合、次の設定はかっこいい
# aterm を開きます。透明で、枠がなく、1024x768 の解像度にフィットし、
# conky のために場所を空けた aterm です。繰り返しになりますが、
# 自由に変更して構いません。
Mod1 a   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg \
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57
  
# 上とほぼ同じですが、root でターミナルを開きます。これを使うには
# root パスワードを知っている必要があります:
Mod1 s   :ExecCommand aterm -name aterm -sl 3000 -tr +sb -sr -sk -bg black -fg \
white -fade 90 -bl -tn xterm -fn \
-misc-fixed-medium-r-normal-*-*-120-*-*-c-*-iso8859-15 -g 116x57 -e su -
  
# print ボタンでスクリーンショットを撮ります。media-gfx/imagemagick が必要です
None 107 :Exec tm=$(date +%F,%T) && import -window root /tmp/screenshot$tm.png \
&& display /tmp/screenshot$tm.png
Mod1 107 :Exec tm=$(date +%F,%T) && import -frame -window $(xprop _NET_ACTIVE_WINDOW \
-root | awk '{print $5}') /tmp/screenshot$tm.png && display /tmp/screenshot$tm.png
Control 107 :Exec import png:- | display png:-

システムモニタ

デスクトップシステムの X11 に対してシステムモニタを設定するのは一般的な需要です。Gkrellm (app-admin/gkrellm) は広く使われているモニタですが、Fluxbox の最小限主義の思想から、もっとシンプルなモニタを使用します。conky の出番です。お望みであれば、他のモニタを使用してください; wiki 上にはいくつもの操作説明が書かれています。

root #emerge --ask app-admin/conky

Conky のデフォルトの設定ファイルはあまり細かく設定されていませんが、man ページまたは Conky ガイドを読むことでさらなる情報を見つけられます。

アイコン

Fluxbox には、デスクトップにアイコンを描画するユーティリティまたはプログラムは含まれません; キーボードショートカットまたは右クリックメニューですべてを操作します。iDesk はこの需要を満たすために使用できるプログラムです。Fluxbox のような最小限の WM のユーザで、ルートウィンドウにアイコンを表示したいという人に向けて作られており、さらに透過などのイカした視覚効果もサポートしています! その名前に反し、iDesk は Apple や Mac とは提携していません。iDesk は以下のように簡単にインストールできます:

root #emerge --ask x11-misc/idesk

インストールが完了したら、iDesk を設定して、アイコンを表示できるようにする必要があります。設定ファイルは ~/.ideskrc で見つけられます。これは比較的時間のかかる作業であり、この記事内では網羅しきれません。iDesk を設定するために以下の資料が役立つかもしれません: man ideskiDesk の使い方ガイド、そして Gentoo Forums のこのスレッド

グラフィカルファイルマネージャ

Gentoo にはファイルマネージャが必須ではないということは、重要なので特筆しておきます。これは何の問題も無く可能であり、コマンドラインでファイル操作を行うだけなら (個人的な意見ですが) もちろんより簡潔になります。しかしながら、誰もが同意はしないでしょう……。

Gentoo/Fluxbox を使い始めの多くのユーザにとって、GNOME の nautilus のようなグラフィカルファイルマネージャが欠けていることは、意欲を失わせることでしょう。Fluxbox 自体はそのようなプログラムを提供しませんが、いつものように、後から手に入れるのは簡単です。たくさんの選択肢がありますが、この記事では以下の 3 つだけを紹介しましょう:

  1. Gentoo ファイルマネージャ はテキストのみの UI を好むミニマリスト向けです。
  2. rox はテキストグラフィックスの UI を好む人向けです。
  3. thunar は完全にグラフィカルなファイルマネージャを好む人向けです。

何がいいか分からない人は、ひとつずつ試すために 3 種のファイルマネージャすべてをインストールすることもできます。

Gentoo ファイルマネージャ

Gentoo は最小限主義的なファイルマネージャであり、GUI インターフェースの利点を、通常つきまとう肥大化を伴わずに提供することを探求しています。

root #emerge --ask app-misc/gentoo
Note
Gentoo ファイルマネージャは Gentoo Linux ディストリビューションとは別のプロジェクトです。この点に関するさらなる情報については、Gentoo の Name and Logo Usage Guidelines をお読みください。

Gentoo ファイルマネージャは GUI による完全なカスタマイズ性を目標としているので、気兼ねなく自由に調整してください。

Rox Filer

Rox Filer はアイコンとテキストを使用するファイルマネージャで、Windows のエクスプローラとよく似ています。

root #emerge --ask app-misc/rox-filer

Rox は "伝統的な" ファイルマネージャのような振る舞いを持っているので、インターフェースは直観的なはずです。もしそうでなくても、詳しい情報については常に man ページがあります。

Thunar ファイルマネージャ

Thunar は Rox のように "伝統的な" ファイルマネージャのような振る舞いを持っている、軽量で高速なファイルマネージャです。アイコンとテキストを含んでおり、使いやすいです。本来は Xfce に向けて設計されていますが、Fluxbox ベースのシステムをうまく補完します。

root #emerge --ask xfce-base/thunar

画像表示ソフト

多くの WM にはディレクトリ内の写真 (画像) を表示するユーティリティが付属しています。これらのアプリケーションは小さくて軽量で、編集はできません (それは gimp 等のツールで行われることを想定します)。これはコマンドライン、gentoo、または rox をファイルマネージャとして使用している場合に必要になります。thunar は画像のサムネイルを表示できますが、個別の軽量な画像ビューワを用意するのは良い考えです。

root #emerge --ask media-gfx/gqview

gqview はどのディレクトリでも起動でき、サポートされている画像フォーマットであれば閲覧できます。

テーマ、背景、開始スクリプトを設定する

Fluxbox には右クリックメニューからアクセスできるいくつかのテーマが含まれています。Fluxbox menuSystem Styles へ移動してください。これらのテーマは通常、それぞれに固有の背景を、単色かある種のグラデーションに設定します。多くのユーザは自分で背景を設定して、どのテーマが選ばれようとその背景のままであることを好むでしょう。それを実現するには、Fluxbox の設定ファイルのうち、Fluxbox の起動時の振る舞いを制御するものを変更する必要があります。テキストエディタを再度起動して、今度は ~/.fluxbox/startup を開いてください。

このファイルが既に存在する場合は、削除してください。新しく作成されたファイルに次の内容を、必要に応じてコメントを解除して、大文字の部分は値を埋めて、追加してください。

FILE ~/.fluxbox/startupFluxbox のスタートアップスクリプトを編集する
# Gentoo's Fluxbox startup script
  
# 一回限りの実行ではなく、常に実行し続ける必要があるプログラムは、
# コマンドの末尾に "&" (アンパサンド) を付ける必要があります。
  
# Fluxbox のスプラッシュスクリーンを表示します
#fbsetbg -C /usr/share/fluxbox/splash.jpg
  
# デスクトップの背景画像を設定します。これを行うためのプログラムを
# セットアップしておく必要があります (x11-terms/eterm がおすすめです)
#fbsetbg -f PATH_TO_IMAGE
  
# カスタムフォントディレクトリ
#xset +fp PATH_TO_FONT_DIRECTORY
  
# アイコンプログラムを開始します
#idesk &
  
# これは最後のコマンドである必要があります!
exec /usr/bin/fluxbox -log ~/.fluxbox/log

polkit を介した特権操作を有効化する

Fluxbox は、システムのシャットダウンなどの特権操作を許可するために、D-Bus を介してコアシステムサービスと通信することができます。これらの操作に対する承認を扱うために、polkit (以前は policykit の名で知られていました) を使用することができます。

polkit を使用するためには、エージェントが必要です。利用可能な polkit エージェントは複数あり、もしデスクトッププロファイルを使用しているのなら、そのうちのひとつが既にインストールされているでしょう。それぞれのスタートアップファイルは /etc/xdg/autostart に保存されますが、fluxbox はこれを考慮しません。代わりに、fluxbox の startup ファイルに追加のエントリを作成するべきです:

FILE ~/.fluxbox/startup起動時に polkit 認証エージェントを開始する
/usr/libexec/polkit-gnome-authentication-agent-1 &

メニューの生成

筆者はメニューを作成するのにテキストエディタを使用しています。これを聞いて魅力的に感じるなら、このセクションを飛ばしてメニューを手動で編集するに進んでください。

自動生成を使用した後で、パッケージを追加したり、使用しないものを削除したりするために、~/.fluxbox/menu を手で編集することも可能です (次のセクションを見てください)。このメニューから何かを削除しても、パッケージがシステムから削除されるのではなく、各ユーザのメニューからリンクが削除されるだけであることに注意してください。コマンドラインまたはその他の方法 (ホットキー等) によって、まだプログラムを実行することができます。

Fluxbox がインストールされているなら、fluxbox-generate_menu というプログラムもインストールされているはずです。このプログラムはメニューを生成するために使用することができます。メニューを生成するためには、非 root ユーザとして、次のオプションを付けて、このプログラムを実行してください:

user $fluxbox-generate_menu -is -ds

同様の作業を実現する他のプログラムではなく、(上記の) fluxbox-generate_menu を使用することをおすすめします。その理由は、他のプログラムは Gentoo のファイルシステムディレクトリ構造を理解していない可能性がある一方、fluxbox-generate_menu はそれを理解しているからです。

これは Fluxbox のメニューそれ自身からも行えます。通常、Fluxbox メニューの中に Regen Menu というエントリがあり、これは前回の実行以降にインストールされた新しいアプリケーションを探すこのスクリプトを再実行するでしょう。

Note
メニューの自動生成のためにこの方法を使いつつ、同時に手動でのメニューの管理を行うことができます。~/.fluxbox/usermenu ファイルを作成し、手で編集する (文法については次のセクションを見てください) ことで、スクリプトの次回実行時に削除されない、かつ個人用に特化されたメニューを得ることができます。

メニューを手動で編集する

Fluxbox のメニューは、このセクションで説明する、簡潔な文法に従うテキストファイルです。デフォルトのメニュー定義は ~/.fluxbox/menu ファイルにあります。

アプリケーションを実行するためのメニュー項目は、[exec] 要素によって定義されます。項目は [begin] 定義 (メニューのルート) の下か、[submenu] とそれに対応する [end] 行の間 (サブメニュー定義) に定義することができます。

FILE ~/.fluxbox/menu新しいメニュー項目を定義する
# Custom fluxbox menu
[begin] (Fluxbox)
  (...)
  [exec] (XTerm White on Black) {xterm -ls -fg white -bg black}
  (...)
  [submenu] (More terminals)
    [exec] (Aterm default) {aterm}
    [exec] (Rxvt default) {rxvt}
  [end]
  (...)
[end]

ルートメニューの定義は [begin] タグで始まり、次にその名前が丸かっこで囲われて続き、対応する [end] タグで終わります。すべてのメニューコマンド (ここではタグと呼びます) は角かっこで囲まれ、メニューの名前は丸かっこで囲まれ、実際のコマンドは波かっこで囲まれます。このファイル中に、コメントは # で始まる行によって書くことができます。

上で示した例では、最初の [exec] 行は "XTerm White on Black" という名前の項目を定義し、これは xterm -ls -fg white -bg black をコマンドラインから実行したときと同様に実行します。次は [submenu] タグを使って定義されるサブメニューで、その後 "More terminals" と呼ばれるセクションがあり、それには 2 個の [exec] サブコマンドが伴っています。すべてのサブメニュー定義には、それに対応する [end] タグが必要です。

~/.fluxbox/menu ファイル内で使用できるメニューコマンドは他にもあります。さらなる情報については、オンラインで利用できる公式ドキュメントを読んでください。

デフォルトアプリケーションを設定する

Default applications の記事をお読みください。

使い方

ウィンドウをリサイズするには、ウィンドウ端のリサイズツールをクリックして、好きなサイズにドラッグするか、Mod1 キーを押したまま境界付近のどこかを右クリックして、マウスをドラッグしてください。

まとめ

おめでとうございます! これで Fluxbox のインストールと設定が完了し、使い始める準備ができました。何か疑問や提案がある場合は、このページ (訳注: の英語版の原文) を編集したり、関連する議論ページに提案を追加したり、Gentoo の Bugzilla にバグレポートを送信したり、遠慮無く行ってください。

外部の情報

  • Fluxbox ウィキ
  • Libera Chat 上の #fluxbox (webchat) にいる Fluxbox 開発者とユーザ。
    This page is based on a document formerly found on our main website gentoo.org.
    The following people contributed to the original document: Jonathan Smith, Alin Dobre, Joshua Saddler, lack
    They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.