The X Window User HOWTO by Ray Brigleb, ray@aracnet.com v2.0, 1 September 1999 The Linux Japanese FAQ Project v2.0j, 13 September 1999 本ドキュメントは、X ウィンドウ環境の設定についての情報の解説で、X ウィ ンドウの数多くの設定オプションや詳細事項を整理しようとしているシステム 管理初心者と Linux ユーザを対象にしています。本ドキュメントでは、読者 がソフトウェアの設定とインストールの基礎知識を持っていることと、ユーザ のシステムに X が入っていることを想定しています。 ______________________________________________________________________ 目次 1. はじめに 1.1 他の情報源 1.2 このドキュメントのバージョン 1.3 フィードバックと訂正 1.4 謝辞 1.5 著作権表示 1.6 日本語訳について 2. はじめてみよう 2.1 X ウィンドウシステム:その歴史と構造様式 2.2 デスクトップの解剖 2.3 X ウィンドウを起動する 2.4 X ディスプレイマネージャー 3. ウィンドウマネージャーの選択 3.1 FVWM とその祖先 3.2 ウィンドウシステムの広い世界 3.3 X のグラフィカルインターフェース 3.4 X のデスクトップ環境 3.5 かっこいいウィンドウマネージャー 4. X 上での作業 4.1 コマンドラインオプション 4.2 ディスプレイ名 4.3 XTerm 対 Rxvt、もしくは、あなたのターミナルエミュレーター 5. X の起動 5.1 最初の設定例 5.2 もっと賢い起動方法 5.3 ウィンドウをあなたの好きな場所に置く 6. ウィンドウマネージャーの設定 6.1 FVWM2 の基本的な設定 6.2 FVWM2 のより高度な設定 6.3 FVWM2 設定の近道 6.4 FVWM2 のテーマ 7. フォントと色について 7.1 フォント指定の怪 7.2 フォントの別名と設定 7.3 X で Type 1 フォントを使う 7.4 X で TrueType フォントを使う 7.5 色について 8. X のリソース 8.1 X のリソース: 基本編 8.2 editres で見る X リソースデータベースの内部 8.3 X のリソースの解剖 8.4 .Xdefaults への変更を反映させたままにする方法 8.5 ユーザ専用のリソースディレクトリ 9. クライアントとアプリケーションについての Tips 9.1 X のスクリーンセーバ 9.2 Emacs と XEmacs 9.3 いくつかの役に立つプログラムとトリック 10. 進んだ X の使い方 10.1 ライブラリと X アプリケーションのコンパイル 10.2 X セキュリティの基礎 10.3 X の許可に関する詳細 11. 関連図書とその他の情報源 ______________________________________________________________________ 1. はじめに X ウィンドウシステムは、先進的かつネットワーク透過で、ウィンドウを利用 できるグラフィカル環境です。これは マサチューセッツ工科大 学(Massachusetts Institute of Technology)で開発され、1984 年に初めてリ リースされました。このドキュメントでは、X は既にインストールされ、ちゃ んと動作しているものと想定します。本ドキュメントの目的は、プログラムの コンパイルの方法ではなく、X の生産的な使い方を身につけることだからで す。Linux ディストリビューションのほとんどには X が付属しており、イン ストール時にオプションとして選ぶことができます。これは既にコンパイル済 みで、すぐに実行できます。 1.1. 他の情報源 まるっきり最初から始める場合には、XFree86 HOWTO と XFree86 Video Timings HOWTO の方が役に立つかもしれません。これらはこのドキュメントと 同じ場所にあるはずです。このドキュメントの最後には、もっと詳しい情報を 探すための「関連図書とその他の情報源」セクションがあります。おっと、そ れからオンラインマニュアルを読むのも忘れないでくださいね。 1.2. このドキュメントのバージョン この HOWTO の最新版は定期的にcomp.os.linux.help に投稿されます。これは Linux 関係のさまざま な WWW サイトや FTP サイトにもアップロードされます。その中には Linux Documentation Project のウェブサイトも含 まれます。最新版は普通、 にあります が、公式の配布場所は Metalab のリポジトリです。 バージョン 1.1 における変更点は、rxvt の説明の追加、X リソースの説明の 追加、X のちょっとした歴史の追加、SunSite への参照を MetaLab への参照 に修正したこと、X で Type 1 フォントを使う手順の説明です。 バージョン 1.2 における変更点は、要望の多かった、X で TrueType フォン トを使う方法の説明、xdm の設定に関するより詳しい説明の追加、リソースい くつかの追加です。画面ブランク機能に関する説明への修正も行いました(訂 正してくださった Heinrich Langos さんに感謝します)。 バージョン 1.3 における変更点は、修正いくつか、最近のディストリビュー ションの一部におけるフォントパスの不具合に関する情報、X の基本的なセ キュリティに関する多くの情報の追加です。KDE に関する小技いくつかの追加 や、電子メールアドレスの更新も行いました。 バージョン 1.4 における変更点は、Anthony J. さんによる追加・訂正と、 Tomasz Motylewski からのとても素晴らしいセキュリティに関する情報です。 このバージョン(2.0)における変更点は、Guus Bosch さん、Brian J. Miller さん、筆者自身による訂正と、たくさんの新しい更新と情報、それから新しい メンテナ募集のお願いです! 1.3. フィードバックと訂正 このドキュメントに関する質問やコメントがあれば、 Ray Brigleb 宛(現在の アドレスである ray@aracnet.com またはずっと使えるアドレスである rayola@mindless.com) に気軽にメールを送ってください。筆者はどんな提案 や批判も歓迎します。このドキュメントの誤りを見つけた場合には、次の版で 修正できるように筆者にお知らせください。将来の版で見たい情報がある場合 や、将来の版に貢献していただける場合には、筆者までご連絡ください。ま た、筆者は本文や参考文献に追加できる、より多くの情報を探しています。そ れはそれとして、筆者はこのドキュメントの管理を引き継いでくれる方を探し ています。もし興味をお持ちでしたら、筆者にお知らせください。筆者が最新 の状態を追えていないこのプロジェクトに、別の管理者の方が息を吹き込むこ とができるかもしれないと筆者は考えています。筆者が受け取るフィードバッ クから判断すると、この文書はまだ使えてしかも役に立ちます。 1.4. 謝辞 援助や意見をしてくださった、HOWTO 世話役の Tim Bynum さんに深く感謝し ます。また、XFree86 付属のオンラインマニュアルやヘルプファイルを作成し た XFree86 グループの皆さんに深く感謝します。過去に作成したものに付属 ドキュメントや説明を書いてくださった全ての方々にも本当に感謝しなければ なりません。筆者はこのドキュメントを作成するに当たって、これらの材料か ら関係ありそうな項目を集めただけなのですから。またウェブサイト「Window Managers Guide」の作者である Matt Chapman さん、FVWM2 用テーマに関する 小技やテクニックを借用させていただいた Scott Scriven さんに感謝しま す。進行中であるこの HOWTO の執筆に対して大変貴重なインターネットサー ビスを提供してくださった Joe Croft さん、励ましてくれたり様々な小技を 教えてくださった Claire Galper さんにも感謝します。最後に――ですが決 して軽んじているわけではありません――全てにおいて GNU/Linux コミュニ ティ全体に感謝し、このテキストエディタ(と思想)を与えてくださった Stallman 氏に感謝します。 1.5. 著作権表示 Copyright (c) 1998, 1999 by Ray Brigleb. Unless otherwise stated, Linux HOWTO documents are copyrighted by their respective authors. Linux HOWTO documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies. Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions. All translations, derivative works, or aggregate works incorporating any Linux HOWTO documents must be covered under this copyright notice. That is, you may not produce a derivative work from a HOWTO and impose additional restrictions on its distribution. Exceptions to these rules may be granted under certain conditions; please contact the Linux HOWTO coordinator for more information. In short, we wish to promote dissemination of this information through as many channels as possible. However, we do wish to retain copyright on the HOWTO documents, and would very much like to be notified of any plans to redistribute the HOWTOs, this one in particular! Many of the terms mentioned in this document are trade names. Unless otherwise stated, all trademarks are property of their respective owners. 訳注: 著作権表示の日本語訳も参考までに挙げておきますが、これはあくまで 参考です。正式には上記英文の内容に従ってください。 特に断り書きをしない限り、Linux HOWTO ドキュメントはそれぞれの作者の著 作物です。Linux HOWTO ドキュメントは、この著作権表示が全ての複製物に残 されている限り、全体または一部を、任意の物理的または電子的メディアに複 製および配布することができます。商業的な配布は許可していますし、推奨し ています。ただし、このような配布の場合には筆者にお知らせくださると幸い です。 全ての翻訳物、派生物、Linux HOWTO ドキュメントを集めた編集物は、この著 作権表示に従わなければなりません。つまり、HOWTO を元に派生物を作成し、 その配布に当たって追加的な制限を加えることはできません。特定の条件の下 では、この規則には例外が認められます。詳しくは Linux HOWTO 世話役まで 御連絡ください。 簡単に言うと、我々はできるだけ多くの経路を通してこの情報の普及を進めた いと考えています。しかし、HOWTO ドキュメントの著作権は保持したいと考え ていますし、できれば HOWTO 再配布の計画について知っておきたいと考えて います。このドキュメントについては特にそう考えています! このドキュメントに現われる用語の多くは登録商標です。特に断らない限り、 全ての登録商標はそれぞれの権利者の所有物です。 1.6. 日本語訳について 日本語訳は Linux JF プロジェクトが行いました。翻訳に関する訂正・ご意見 などは当プロジェクト() までお知らせください。また、翻 訳に関する権利は当プロジェクトにあるものとし、配布については原文のライ センスに従うものとします。 作業を行ったメンバー(50音順)を以下に示します: 東洋昌 (10章), 遠藤明 (5章), 大西圭一 (3章), 川島浩 (6章), 小松弘幸 (校正), 佐藤 亮一 (校正), 武井伸光 (校正), 田中雄一郎 (4章), 中谷千絵 (2章), 奈古屋広昭 (9章), 長谷川靖 (校正), 服部慎 (訳 注), 早川仁 (校正), 藤原輝嘉 (1, 8章), 松浦方昭 (7章) 2. はじめてみよう 2.1. X ウィンドウシステム:その歴史と構造様式 X ウィンドウシステム は 、DEC との共同研究で、Athena プロジェクトの一 環として MIT(マサチューセッツ工科大学のコンピュータサイエンス研究所で 開発され、 1984 年に初めて発表されました。開発の先頭にたったのは Robert Scheifler で、最初の X は スタンフォードの Paul Asente によって 開発された "W" というウィンドウパッケージに負うところが大きいものでし た。1987 年 9 月、MIT は今日われわれが知っていて使用している X11 の最 初の版を発表しました。X11R2 以降、管理は MIT から1988年1 月に発足した X コンソーシアムに移行しています。 X ウィンドウに盛り込まれたたくさんのアイディアもまた、70 年代後半の PARC の予言者たちのように、コンピュータに関わる仕事をしていた Xerox 社 のパロアルトリサーチセンター(Palo Alto Research Center,PARC)の研究に由 来するものでした。これらのコンピュータは売りものになるものはほとんどあ りませんでしたが、Xerox が Smalltalk 80 を動かすために構築したウィンド ウシステムを実演した時、人々はすっかりとりこになってしまいました。WIMP (複数のウィンドウ、アイコン、メニュー、ポインタ)インターフェースを実演 した 3 種類のコンピュータのシリーズは大変すばらしいものだったので、ほ とんど一夜にして革命を引き起こしてしまいました。数年のうちに多くのコン ピュータユーザはウィンドウ操作システムの味をしめ、もはやあと戻りはでき ないと言うようになったのです。 現在では X コンソーシアムが X ウィンドウの開発・配布を行っていますが、 自由なライセンス制度があるのでフリーのものや低価格のものがあります。 Linux で使われている X のバージョンは、XFree86 で、XFree86 は インテル x86 プラットホーム上での UNIX 類似の OS 類のための X サーバコレクショ ンです。この仕事は、x386 の時代に由来しており、そのほとんどは、 X11R6 以降に戻って配布されました。事実上、別の X サーバを使わないなら、 XFree86 は Linux の X ウィンドウになるべきものだと考えて良いでしょう。 X ウィンドウは多くのツールキットとライブラリ群からなりたっています。そ れは、X Toolkit Intrinsics と Athena Widgets からなるものです。多くの プログラムは XView と Motif ツールを使用しています。さらにウィンドウ操 作やコミュニケーションシステムを統合した GNOME や KDE のような新しいも のもあります。お使いの多くのプログラムがコンパイルしなくてもよい、ある いは不思議で不可解なエラーを出すなら、正しく X をインストールしたかど うかを確かめたと思うかもしれません。なぜなら、これらほとんどのライブラ リ( Motif を除いて)はフリーのもので、お使いのシステム上で X とともにプ レインストールされるからです。 覚えておいてください。X Window であって、X Windows ではありません。 (校正者註: X Consortium が要求する名称は man X の出力にある通り「 X, X Window System, X Version 11, X Window System, Version 11, X11 」のいず れかなのですが、原文の表記を尊重し X の呼称については変更しません) 2.2. デスクトップの解剖 X をもっとわかりやすく使うために、知っておいたほうがよい基本的な原則と 用語がいくつかあります。これらの用語は必要なときにはいつでも使えるマ ニュアルページやヘルプファイルのなかに繰り返しでてきます。 スクリーン(screen) は、お使いの "デスクトップ(desktop)" 全体のことです が、その言葉は 2 つのものをどちらも指すように使われているかもしれませ ん。技術的に言うと、まずはあなたが X を見ているビデオディスプレイのこ とを指し、あなたはひとつ以上のスクリーンを見ることができます。実際、ひ とつの X サーバも走らせていない 1 台のコンピュータよりももっと多くを見 ることができます。これはこの文書で書く範囲を超えたことですが、違いはわ かるはずです。 ルートウィンドウはお使いのスクリーンの背景のことです。名前だけウィンド ウと呼ばれていますが、他のウィンドウのように働くわけではありません。ル ートウィンドウでアプリケーションを動かしたり、あるいはその上に絵を貼り 付けたり、あるいは単にある色で塗りつぶすこともあります。 ウィンドウマネージャーは X ウィンドウシステムとユーザ間でのメインイン ターフェースです。ウィンドウマネージャーがないと、システムを使うのはよ り難しくなり、たぶん生産的なツールにはならないでしょう。ウィンドウマネ ージャーはウィンドウ枠、メニュー、アイコン、さまざまなデスクトップ、ボ タンバー、ツールバーなどをユーザがカスタマイズできるようにし、場合に よっては作業中にその機能を追加して、より機能的なものを提供します。 ポインターとは矢印のことですが、スクリーン上で対応するマウス (あるいは 別のポインティングデバイス)の位置を表す何かきまった形の印です。ポイン ターはしばしばスクリーン上のその位置で、マウスを使えば引き起こされるさ まざまなことに関してあなたの注意をうながすために形を変えます。 ウィンドウは、ウィンドウマネージャーによって "管理されている" さまざま なアプリケーションに与えられている窓わくのことです。これにはいわゆるル ートウィンドウ以外のこまごましたものを含んでいます。フレームやタイト ル、あるいは通常の枠を持たないウィンドウ類でさえ、ウィンドウマネージャ ーによって管理されています。アクティブウィンドウというのは、現在使用し ているウィンドウのことです。入力したテキストを受け取るウィンドウであ り、これはいつもそうであるとは限らないのですが、伝統的にマウスカーソル がそこにあるということでわかります。アクティブウィンドウは "フォーカ ス"になっていると呼ばれ、使ってないウィンドウは"アンフォーカス"である と言います。 メニューとアイコンは、別のウィンドウシステムでの動きと同様に X でも動 き、同様の一般的な原則が適用されます。テキストのみのウィンドウはターミ ナルエミュレータと言われ (たとえば xterm がそうです) 、これらは基本的 にテキストのみをディスプレイにエミュレートしますが、複数の仕事をこな し、同時に 1 つ以上を使用します。さらに X で利用できる多くの利点を持っ ています。 この件についてはあとの章で述べます。 2.3. X ウィンドウを起動する X を起動するにはいくつかの方法があります。お使いのシステムで自動的に起 動するように設定できるなら、このセクションを読まなくても良いでしょう。 しかし、ほとんどの Linux システムは、いまのところは、ログインしたらコ マンドラインで起動しますから、あなたは自分でこれを解読しなければなりま せん。 X を起動するもっとも基本的な方法は xinit です。これは、ウィンドウマネ ージャーを持っておらず、デフォルトではデスクトップの空いた場所に開きま す。クライアントプログラムがコマンドラインで特定されていなけれ ば、xinit は、シェルスクリプトとして実行してクライアントプログラムを起 動させるために .xinitrc ファイルを探します。このファイルがなけれ ば、xinit はデフォルトで次のようなコマンドを使います。 xterm -geometry +1+1 -n login -display :0 ごらんのように、これはあまり親切なものではありません。X を起動するもっ とも普通の方法は、startxというコマンドで行います。これはウィンドウシス テムを起動するもっとも一般的な形ですが、テキストシェルから入って、自分 でウィンドウシステムを起動します。多くの Linux ユーザにとってこれが X を起動するもっとも普通の方法で、それがもっとも自在な方法なのです。次の ようなコマンドを使うことができます。 startx -- -bpp 8 #start x in 256 color mode startx -- -bpp 32 #start x in true color mode 2 つ続くダッシュ(--) はxinit に直接に数値を渡し、これであなたが求める 解像度で X を起動できます。さらに設定ファイルを使う方法についてはこの 文書の最後で述べます。 2.4. X ディスプレイマネージャー xdmというプログラムはユーザをシステムにログインさせ、基本シェルを起動 する getty と login と同様の働きをします。 xdm で X を起動すると、見慣 れたプロンプトでユーザはユーザネーム(username)とパスワード(password) だけを入力します。そうすればユーザは直接的にグラフィック環境に入りま す。このようなやり方はシンプルで簡単にできますから、大学やサイバーカ フェやビジネスの分野、あるいはある広い範囲で Unix を知る必要のないユー ザがいるところでときどき見かけます。 xdm はお使いの Linux システム上の /usr/X11R6/lib/X11/xdmにある設定ファ イルで設定することができます。xdm-config というファイルはログインスク リーンがどのようにユーザに現れるかについての設定をします。そし て、Xsetup_0は、 X が起動するときにどのようなプログラムを配置したら良 いかを xdm に知らせるために使います。 xdm が標準として使われるなら、 一般のユーザについてについての設定は.xinitrcファイルに書くのも良いで しょう。 以下のものはお使いのシステムの設定の参考になるかもしれない Xsetup_0 ファイルの例です。xfstt というプログラムは、 TrueType フォントサーバ で、この文書のあとの章で述べられています。また、ここでシェルスクリプト を使っていることに注意してください。ちょっと素敵な画像(モノクロの背景 のかわりに)をバックグラウンドに設定するために xv を呼び出します。もし うまくいかないなら、 xsetroot が呼びだされ、少なくとも背景を素敵なブル ーに設定するようにします。 #!/bin/sh xconsole -geometry 480x100-0-0 -daemon -notify -verbose -fn \ '-schumacher-clean-medium-r-*-*-10-*-*-*-*-*-*-*' -exitOnFail /usr/X11R6/bin/xfstt & /usr/X11R6/bin/xv -quit -root \ /usr/local/share/WindowMaker/Backgrounds/InDreams.jpg \ || xsetroot -solid darkblue xset fp+ unix/:7100 多くの Linux ディストリビューションはこの処理を自動的に行います。もし お使いの Linux システムのランレベルを見ることができる場合、起動してそ のまま xdm などが立ち上がらなければ、ランレベル 3 が通常の起動であるこ とが分かるでしょう(/etc/rc.d 以下を参照)。 xdm が立ち上がる場合には、 ランレベル 5 で起動しています。これは Linux (および類似の)システムの標 準のようなものです。 linuxconf やこれと同じ機能を持つプログラムは、こ の設定を行えるはずです。 新しい Linux システムの多くは、gdm や kdm といったプログラムがありま す。これは xdm に対応する GNOME や KDE のプログラムです。基本的には、 これはデスクトップのルック & フィールをユーザの好みに合わせて変えるだ けですが、このような別バージョンのプログラムはもっと多くの機能を持つこ ともしばしばあります。例えば、最後にログインした時のデスクトップ環境を 記憶することや、コンソールからシャットダウンや再起動を行う機能などで す。 3. ウィンドウマネージャーの選択 ここでは X ウィンドウのユーザーが利用できるウィンドウマネージャーにつ いて議論します。優れたものをいくつか列挙し、それらを比較します。この文 書が巨大になるのを防ぐために(それに比例して維持するのが難しくもなりま すしね)、人気があり有名なウィンドウマネージャーだけについて議論しま す。選んだものはこの文書の目的に相応しいものだと思っていますし、一度い くつかのウィンドウマネージャーで基本的な概念を理解してしまえば、他のも のにもだいたい通用するでしょう。 ウィンドウマネージャーの選択は、あなたのコンピュータ生活が楽しいものに なるかどうかに非常に強く影響を及ぼします。X を使っている時、ウィンドウ を扱うのに費やす時間が多いので、押しつけがましいもの、邪魔になるような ものを使いたくはないでしょう。いくつかのウィンドウマネージャーは、全く 新しいオペレーティングシステムを使っているかのような感覚になれるほど、 極度にカスタマイズ可能です。アイコンが嫌いなら、取り除いちゃえばいい! ツールバーが懐かしくなったら、もっといいものを作ることができますし、そ の上それはとても簡単でやりがいがあります。 3.1. FVWM とその祖先 今日よく使われているウィンドウマネージャーのほとんどは、Robert Nation による FVWM ウィンドウマネージャーをルーツにしています。これに は、FVWM, FVWM2, FVWM95 やその他諸々が含まれます。FVWM 自身は、部分的 に TWM に由来しています。TWM は X Window をインストールすると付いてく るものですが、ここでは扱わないことにします。TWM の構文や使い方は FVWM に似ていますが、より多くのメモリを使いますし、扱いにくく不格好だと感じ ている人が多いからです。 FVWM は Linux の初期から頼りにされ愛されたウィンドウマネージャーです。 現在は FVWM のバージョンが 2.0 になり、安定に動作し、より一般的な使い 方ができるため、新しいバージョンの方が好まれます。構文がより直接的に簡 略化され、柔軟にもなったからです。しかし、FVWM は長い間愛され、標準で あったために、多くの人が未だにオリジナルの FVWM を自分のシステムに持っ ています。この文書の用例のほとんどは、古いバージョンにも同様に適用でき ます。もしあなたにとって古いバージョンが満足のゆくものなら、アップグレ ードの必要はないでしょう。あなたの設定ファイルをいくらか壊してしまうか もしれませんし、構文のいくつかは実際に変わり、全体として後方互換性がな いからです。これは進歩の性質ですね。 FVWM の F が何を表しているか断言できる人はいないようです。(作者にさえ わからないのに、私がいえることではないですよね!) しかし、VWM が仮想 ウィンドウマネージャー(Virtual Window Manager)を(正確に)表しているよう です。実際 FVWM シリーズは仮想ウィンドウマネージャーですし、それが特長 のひとつです。仮想デスクトップ間の移動のような任意の機能を、キーに割り 当てて簡単に利用することができます。 FVWM2 は、前のバージョンに見られなかった多くの改良点、機能をもつ新しい 標準です。より新しいウィンドウマネージャーと違って、8 ビット、 256 色 のディスプレイで快適に動きます。現在私が使っているものです。あなたが望 むか望まないかは分かりませんが、小さなアイコンを使って Win98 のインタ ーフェースに似せるという目標があるので改良のテンポはゆっくりとしたもの です。FVWM2 は FVWM より比べて機能をより拡張できるようになっていて、テ ーマやダイナミックメニューが使用できます。FVWM2 は技術的にはまだβ版で すが、非常によく動作し、私はまだ一つも問題を感じたことはありません。 リソース: 公式 FVWM ,FVWM2 のサイトは です。 最新バージョンは から入手できま す。 3.2. ウィンドウシステムの広い世界 他のオペレーティングシステムで他のウィンドウ環境に親しんだユーザーのた めに、使い慣れたデスクトップをエミュレートするウィンドウマネージャーは たくさんあります。 icewm ウィンドウマネージャ ーは統一のとれたルック & フィールを持つことを目指しています。そして、 多くの他のウィンドウシステムの標準、ホットキーのバインディングなどをエ ミュレートできます。OS/2 のエミュレートは特によくできています。AmiWM は、Amiga Workbench 型の ウィンドウマネージャーで、mlvwm は、MacOS のエミュレータです。これらの ウィンドウマネージャに、dfm という OS/2 Workplace シェルに嬉しいくらいそっくりなデスクトップとファイルの マネージャーを付け加えるといいでしょう。 リソース: The Window Managers のウェブサイトは にあります。ここは、利用可能ないろ んなウィンドウマネージャーを発見するための統一感のあるリソース で、特に他のウィンドウ環境をうまくエミュレートするウィンドウマネ ージャーを見つけるには絶好のサイトです。前述のリンクと同じ作者に よる で、より多くが列 挙されています。ここには、実に膨大で完全なリストがありま す。Linux で使用できる人気のあるウィンドウマネージャー は、metalab アーカイブからダウンロードできます。 3.3. X のグラフィカルインターフェース Open Look や Motif は X Window を標準化するために、早い時期から始まっ た試みで、非常に多くのワークステーションで主流となっている環境で X Window を使えるようにしました。この二つの試みはある程度の成功を(公式の 標準となったわけではないですが、ルック & フィールの点で)収めていて、最 近の Linux システムでも使うことができます。OpenLook、Motif にはそれぞ れ専用のライブラリが必要です。各専用ライブラリは OpenLook あるいは Motif 用に設計されたアプリケーションをコンパイルするためのもので、それ ぞれ用のプログラムがどれも類似したルック & フィールをしているのも専用 ライブラリを使用しているからです。 X11 のリリース 5 から、Sun Microsystem の OpenWindowsグラフィカルイン ターフェースを X のユーザーが利用できるようになりました。これに はolwmとolvwm(仮想デスクトップつき)という OpenLook を用いたウィンドウ マネージャーの二つのバージョンがついています。Sun が標準のウィンドウ環 境とするべく開発し、実際に Solaris においては何年もの間標準でした。も しお使いの Linux のディストリビューションにこのウィンドウシステムがイ ンストールされていないのなら、それを動作させるためにはXView ライブラリ をインストールし、/usr/openwin/... ディレクトリをあなたのサーチパスに 加えなければいけないことを覚えておきましょう。 あなたが本物の Linux 用の OSF/Motif Toolkit を欲しいのなら、プログラム やツールキットは無料ではないので、お金を払わなければいけません。しか し、Hungry Programmers は、ツールキットを持っているかのように Motif の プログラムを大体コンパイルできる、 LessTif を書きました。LessTif は Motif ツールキットのクローンです。今のところ LessTif はほとんどの API が、部分的ではありますが適切に実装されています。ツールキットのフリーな バージョンの下で、すでに多くのプログラムが動作します。FVWM のコードか ら派生したものですが、Motif ウィンドウマネージャと言い切れるようなウィ ンドウマネージャーさえ付いてきます。 しかしながら、このツールキットの最も便利な特徴は、システムに Motif ラ イブラリを持っていないとコンパイルできないプログラムがコンパイルできる ことです。ウィンドウマネージャーは目をみはるようなものではないので、主 に有用なのは、オリジナルの Motif から移ってきて、設定ファイルをそのま ま使いたい時くらいなものです。どの点からみても、FVWM の方が機能が揃っ ていて便利であることに気がつくでしょう。FVWM はほとんど同じような見栄 え、振る舞いをしますし、Motif ツールキットで作られたプログラムが提供す るウィンドウヒントですら理解します。 リソース: Hungry Programmers LessTif は、 にあり ます。 3.4. X のデスクトップ環境 第二世代の Linux のウィンドウマネージャーは KDE によってもたらされ、そ の後すぐ GNOME が加わりました。両者は、よく似ている部分もいくつかあり ますが、全く異なっている部分もあります。ここではそれらをカバーするつも りです。現時点で記憶しておくべき最も重要なことは、両者ともいかなる意味 においても、完全な製品だとは言えないことです。両者は長い開発サイクルの 入口に立ったばかりで、まだ完全には安定していないので、現時点ではミッ ションクリティカルな仕事には向きません。 The KDE Desktop Environment (ホームページからの引用:) ``KDE は、多くの Unix ワークステーション用の アプリケーションをふんだんに組み込んだ、全く新しいデスクトップです。 KDE はウィンドウマネージャー、ファイルマネージャー、パネル、コントロー ルセンター、そして現代のデスクトップ環境の一部として期待されるほかの構 成要素の多くを含んでいますが、この類を見ない環境の真の長所は、構成要素 の相互運用性にあります。'' The KDE Desktop Environment は、ウィンドウマネージャーだけでなく、デス クトップ環境を作成する試みです。KDE のツールが協調してとてもうまく動く ので、KDE は完全なオペレーティングシステムじゃないのかとだまされてしま うかもしれません。ウィンドウシステムで作業するための全てのツールは含ま れていますし、KDE の環境にはさらに多くのツールが移植されています。KDE は既に驚くべきレベルまで成熟していますが、多くの人が KDE がベースとし ている Qt ツールキットのライセンス規約のために、自分のデスクトップにイ ンストールするのに乗り気ではありません。これは最近変更があり、現在のラ イセンスは定義上はオープンソースと認められますが、GNU ソフトウェアのも のと同一ではありません。 本気で取り組むことを探している人には、KDE はしばしば良い題材です。この プロジェクトは今まで活発でしたし、能力のある人を活躍させてきました。 KDE は色々な点で、Windows の良い部分に極めてよく似た製品を使っていると 錯覚することがあります。これは良いことです。しかし、これはいくぶん失望 することでもあります。そのためしばらくすると KDE がしっかりと基づいて いるパラダイムから少し離れた何かを求めることになります。 GNOME: The GNU Object Model Environment (ホームページからの引用:) ``GNOME とは "G"NU "N"etwork "O"bject "M"odel "E"nvironment(GNU ネットワークオブジェクトモデル環境)のことで す。GNOME プロジェクトは完全でユーザーフレンドリーなデスクトップを全く のフリーソフトウェアとして実現しようとしています。GNOME は GNU プロ ジェクトの一部で、OpenSource(tm) 運動の一部でもあります。デスクトップ は小さいユーティリティと統一のとれたルック & フィールを共有したより大 きいアプリケーションから構成されます。GNOME はそのアプリケーションの GUI ツールキットとして GTK+ を使用します。'' GNOME プロジェクトは、多くの部分で KDE と同じものを目指していますが、 ほんの少しだけ上を狙っています。例えば、GNOME は特定のウィンドウマネー ジャーにあまり依存していないこともあって、アプリケーション間だけでな く、コンピュータ間、プラットフォーム間で相互運用が可能です。これ は、CORBA (Common Object Resource Broker Architecture)を使っているから です。また、多くの人にとってより重要なのは、GNOME は、KDE の基礎となっ ているツールキットとは違って、フリーでオープンソースである GTk+ ツール キットをベースとしているので、Linux そのものの哲学に沿っています。 リソース: KDE の公式ウェブサイトは です。GNOME の公 式ウェブサイトは です。GNOME を取り巻く 問題に関するより詳細な情報は で見つかるでしょ う。CORBA のホームページは にあり、GTk+ ツールキットのホームページは です。 3.5. かっこいいウィンドウマネージャー 最新世代のウィンドウマネージャーは、マジでめちゃめちゃかっこいいです。 思いつく限りの便利な使いかたをみせびらかしたり、かつて世の中で最も豪華 なワークステーションで使われた最も美しいオペレーティングシステムをエ ミュレートできたりするので、充分なメモリーがあり、CPU が火を吹いても構 わないくらい回せるのならば、使ってみたいウィンドウマネージャーです。 Window Maker (ホームページからの引用:) ``Window Maker は GNUstep のアプリケーション も使えるように設計された X11 のウィンドウマネージャーです。これは、 NEXTSTEP(tm) の GUI の上品なルック & フィールをエミュレートします。比 較的軽く、機能が豊富で、簡単に自分用の設定を行なうことができます。'' このウィンドウマネージャーの大きな利点は、GNU のデスクトップをサポート しているということです。これの意味するところは、GNOME の素晴らしくかっ こいいフロントエンドであるということです。さらに最も設定し易いウィンド ウマネージャーのひとつでもあり、グラフィカルなインターフェースから設定 ができます。ドラッグ & ドロップのための OffiX プロトコルをサポートして いますし、デスクトップテーマを簡単に変更できます。さらに、今では普及し ている Red Hat ディストリビューションに含まれていますので、最終的に雰 囲気が気に入らなくても FVWM に簡単に乗り換えられます。0.50 リリースか ら、Window Maker は KDE の下でも動作します。 AfterStep (ホームページからの引用:) ``AfterStep は当初 NEXTSTEP のルック & フィ ールをエミュレートすることを目的に作り始めた X のウィンドウマネージャ ーですが、様々なユーザーの要求によって全く変わったものになっています。 達人たちは NEXTSTEP は見た目の奇麗なインターフェースを持つだけでなく、 機能的で直観的だといいます。AfterStep は NEXTSTEP インターフェースのい いところを取り込み、さらに便利な特徴を付け加えることを狙っていま す。AfterStep の開発者は、安定性とプログラムの足跡を小さくすることにも 努力しています。 Enlightenment は単なるウィンドウマネージャーであるだけでなく、非常に細 かく設定できる環境であり、特にどんな変な形にでも完全にカスタマイズでき るウィンドウが使えるのが魅力的です。デザインはオープンなので、ポリシー で縛り付けるのではなく、ユーザーが自分自身のポリシーに従って機能の定義 から見栄えに至るまでを細かい部分まで決めることができるようになっていま す。 GNOME をお使いであれば、Enlightenment がデフォルトのウィンドウマネー ジャーであることに気づくと思いますが、これを GNOME を機能させるために インストールしなければなりません。これは基本的に、統合のための GNOME の機能の実装の事実上の標準であり、そのためこの状況ではデスクトップの選 択としてもっとも現実的なものになっています。他の多くのウィンドウマネー ジャーも GNOME 上で正しく動作しますが、その中でも Enlightement が秀で ていることが分かるでしょう。残念ながら Enlightement はまだ開発中であ り、動作は遅い上、不完全な動作をすることも時々あります。 リソース: Window Maker の公式ウェブサイトは です。AfterStep の公式ウェブサイトは、 です。Enlightenment は、名前からある 程度予想できるように、 にありま す。 4. X 上での作業 この章では X Window 上で動作しているクライアントとシステムにかかわる基 礎的な手続きについて親しんでいきたいと思います。 X はそれ自体が直感的 なインターフェースではないので、ウィンドウマネージャーがなければ、コマ ンドラインから 起動されるプログラムのためのディスプレイとして最もよく 使用されています。 最も共通ともいえる X の使用例は、単純に同時に複数の xterm のウィンドウ を開くことです。コンピューターの描画能力を向上させているわけではありま せんが、まずは素晴らしい特徴であるといえるでしょう。 コマンドラインの柔軟さと簡便さはとても素晴らしく、実際、ウィンドウマネ ージャーが必要とは思わないかもしれません。その素晴らしさ故に、とにかく 速く操作したいと思うでしょう。しかし実際は、コマンドラインかマウスのど ちらかだけで、うまくやっていけるのです。少し動かしてみれば、クライアン トとウィンドウマネージャーの間に存在する厳密な相違点について驚くことで しょう。しかしながら、そういったことを持て余しそうなら、困ったときには Ctrl-Alt-Backspace というキーの組み合わせで X Window から脱出できるこ とを覚えておいてください。 4.1. コマンドラインオプション ほとんどの X プログラムはコマンドラインオプション用に同一の基本的な名 称を使おうとします。MIT X Toolkit Intrinsics を使用して書かれた全ての アプリケーションは、自動的に以下のオプションを受け付けます: -display ディスプレイ このオプションは使用する X サーバーを指定します。詳細はディスプ レイ名の章(訳者注:4.2章)を参照のこと。 -geometry サイズと場所 幅x高さ+水平オフセット+垂直オフセット、もしくは +水平オフセッ ト-垂直オフセット、のような形式で書かれるウィンドゥの初期サイズ と場所のことです。マイナスの水平もしくは垂直オフセットを入力した 場合には、ウィンドウがそれぞれ画面の右もしくは下から遡って計算さ れて配置されることに注意してください。 -font フォント ウィンドウの中でテキストを表示するために使用するフォント。 -bg 色 ウィンドウの背景に使用する色。 -fg 色 ウィンドウの前景に使用する色。 -name リソース名 アプリケーションのためのリソースを見つけられない状況下においてそ の名前を特定することに役立ちます。これは同一アプリケーションを呼 び出した際に両者を見分けるために役立ちます。例えば 2つの xterm は、リソースデータベースの中でリソース名に基づいた異なるリソース を受け継ぐために、異なる名前をつけられるのです。 -title 文字列 これはディスプレイ上のウィンドウ用に使われるタイトルです。一般的 には、ウィンドウの一番上に説明的なタイトルをつけるためにウィンド ウマネージャーによって使用されます。-name オプションと混同しない ようにしてください。 -iconic ウィンドウをアイコンとして起動します。 -xrm リソース文字列 このオプションは既に設定されているであろう、あらゆる初期設定をも 上書きしてしまうようなリソース名と値を特定します。はっきりとした コマンドラインオプションを持たない X リソースを設定する際にも有 用です。例えば、コマンドライン xterm -xrm "xterm*background: blue" は機能上 xterm -bg blue のように入力することと同一です。 4.2. ディスプレイ名 全ての X サーバーは以下の形式でディスプレイ名を保持しています。 ホスト名:ディスプレイ番号.スクリーン番号 ホスト名はディスプレイが実際に物理的に接続されているマシンの名前を特定 しています。ホスト名は省略可能であり、もし省略されるなら、同じマシン上 のサーバーが選ばれるでしょう。実際、もしもマシン上で X を使っているの があなた1人だけなら、ディスプレイの特定の必要はないと思うことでしょ う。ディスプレイ番号はおそらくゼロとされるでしょう。これは X サーバー が複数のキーボードとモニターのユニット、例えば X ターミナルのネットワ ークを制御している際に使われます。スクリーン番号は、セットアップされた 複数のモニターの中からどのモニターが使われるべきかを特定します。この特 定に基づけば、-display :0.0 というオプションを用いた際、ローカルマシン 上に xterm のウィンドウが開くでしょう。これはオプションからホスト名を 省略したために、現在使用中のマシンが引き受けたということです。 Linux システムにおいて、DISPLAY 変数は自分自身のディスプレイ名を :0.0であるとして保持します。これは通常 xterm もしくは X ウィンドウを開 始するスクリプトのうちのどれか一つによって設定されます。がしかし、それ を自分で設定することもできますし、これまでにお話ししてきたように、アプ リケーションを呼び出す際に -display のコマンドラインオプションを使うこ ともできます。 もしも xterm あるいは rxvt ウィンドウを開いていて、 su コマンドを経由 してスーパーユーザーとしての作業をしているのであれば、X アプリケーショ ンを起動させようとする際に、それを起動するディスプレイが 存在しないこ とが気づくでしょう。それは変だと思うかもしれません。だって、あなたは自 分のディスプレイ上で作業をしているわけですから。しかしこのことを動作さ せている仕掛けがプログラムへ -display :0.0 のようなコマンドラインのオ プションを引き渡すのです。そしてそれは正常に動作することでしょう。 4.3. XTerm 対 Rxvt、もしくは、あなたのターミナルエミュレーター ターミナルエミュレーターの選択は、ウィンドウマネージャーとほとんど同様 に あなたの X 体験に影響する問題です。ですから、最良のオプションについ て少々のお話をしてみましょう。 xterm のようなターミナルエミュレーター は、すでにお話してきたように X 上で Linux の単純なコンソールをエミュレ ートさせるプログラムです。選ぶにあたって、このプログラムには多くを頼る ことになります。だからこそ最初は、賢明な選択が求められます。 もしもお持ちのビデオカードが低速のものなら、考慮すべき第一のことは rxvt に移行することでしょう。xterm を使うことは出発点としてはよい選択 でしょう。主な理由としては、全ての X ディストリビューションにおいて標 準になっているからです。しかし xterm は常に最善の選択とはいえませ ん。xterm は伝統的なコードを大量に含んでいて、単なるターミナルエミュレ ーターにしてはかなり肥大化しています。これは部分的には、ただのプレーン テキスト用のターミナルエミュレーターではなく、まず使うことはないと思わ れるグラフィックモードをもエミュレートしている、という事実によるもので す。このことが原因で rxvt に移行したいと思うかもしれませんし、xterm が 極度に遅いことが原因になるかもしれません。なぜ xterm がとても遅いのか についての確信はありませんが、お持ちのビデオカードが遅くて、この文章が 意味することを理解してくださるなら、xterm の使用をやめたときに、その違 いに驚愕することでしょう。 rxvt のその他の利点としては、背景に画像を貼りつけたり、より優れたスク ロールバーといったものを含んでいます。-pixmap オプションをコマンドライ ンで指定するなら(使用するバージョンでサポートするようにコンパイルされ ている必要があるけどね!)、背景にどんな .xpm 形式の画像でも使うことが できるでしょう。非常に素晴らしい特徴としては、出力が遅くなることは驚く ほどにはありませんし、xterm のウィンドウよりも高速に再描画してくれま す。考えてみれば、最近まで rxvt を周りでは見かけることはありませんでし たけど、 metalab でも見かけられるようになっています。 5. X の起動 これから示す例では、FVWM2 のような比較的安定したウィンドウマネージャー を使って設定例を示すものとします。この章以降で習うことはどんなマネー ジャーにもあてはまりますが、FVWM2 を使って示すのがもっとも易しそうです ので、試してみてください。 5.1. 最初の設定例 まず最初にやることは、X 自身の初期化ファイルを自分で書くことです。この ファイルは、システム全体で使うものなら /var/X11R6/lib/xinit/xinitrc の ような場所に置かれますし、ユーザー毎に変えようと思うなら、ホームディレ クトリに .xinitrc として置かれます。一般的に基本的なデフォルトのファイ ルがシステム全体で使われる場所に置かれ、セキュリティのためにそれを使用 することが強制されることもありますが、たいていはユーザーがそのファイル を自分用に設定したくなるでしょう。 まず、あなたのホームディレクトリに .xinitrc という名前のファイルを作り ましょう。あなたの「好きな」テキスト・エディタで、 .xinitrc に次の例を 貼り付けるか、あるいは似たようなものを書いてください。 #!/bin/sh # バックスペースとデリートキーが逆になっているなら、 次のようにしてください。 xmodmap -e "keysym BackSpace=Delete" -e "keysym Delete-BackSpace" xsetroot -solid darkslateblue # 基本的なアプリケーションを起動します。 xclock -geometry 96x96+2+2 -bg grey40 -fg black -hl white & xload -geometry 120x96+2+147 -bg grey40 -fg white -hl darkred -update 4 & xterm -sb -ls -geom 80x25-2+2 -title "shell" & xterm -sb -ls -geom 80x25-2-2 & # ウィンドウマネージャーを起動します。 /usr/X11R6/bin/fvwm2 この例から多くのことを学ぶことができます。まず、このファイルは最初の 1 行が示すようにシェル・スクリプトです。次に xsetroot コマンドで、デスク トップの背景色を明るい青色にします。ほとんど 1 日中この色を見なければ いけませんので、悪くないアイディアです。 次の 2 行は、仕事に熱中している間走らせておくのが好きなプログラムで す。オプションによって色やスクリーン上の位置などを指定しているのに気づ くでしょう。これについて理解するためのヒントを後で述べます。その次の 2 行は、後で間違いなく必要になる 2 つの手軽な xterm ウィンドウを開きま す。 最後の行は非常に重要です。この行によってあなたのウィンドウマネージャー が起動します。& を後ろに置くとバックグラウンド・プロセスになります が、xsetroot、xmodmap、 fvwm2 の 3 つはフォアグラウンドになっているこ とに注意してください。このうち、最初の 2 つはすぐ終了しますので、バッ クグラウンドでもフォアグラウンドでも関係ありません。これ以外のプログラ ムは、バックグラウンドにしないと、終了させた時に X ウィンドウ・セッ ションも同時に終了してしまいます。それは困ったことですし、意図している ことでもありません。上に示したように、fvwm2 を終了させると X も終了し ます。 5.2. もっと賢い起動方法 私たちの原始的な起動ファイルに多くのものを付け加えることが可能です。た とえば、X を不注意に root 権限で起動した時に注意を喚起するのはよいこと です。Red Hat を使っている人がよくそうしているのは、root 権限で動かさ なければならない各種の設定プログラムが X 上で動くようになっているから です。これを避けるには、普通のユーザーで X を起動し、su コマンドで root になり、root で起動する必要のあるプログラムを、すでに述べた -display :0.0 オプション付きで実行します。 # root の背景色を変える。 if [ "$USER" = "root" ]; then xsetroot -solid darkred else xsetroot -solid darkslateblue fi こうすると、ユーザー名が root かどうかチェックし、もしそうなら背景を通 常の親しみやすい青ではなく、どぎつい赤にして警告してくれます。次に示す コードも、あなたの .xinitrc ファイルに入れることを念頭に書いたもので、 まずファイルが存在するかどうか確認してから、ユーザー定義のリソースとシ ステム全体のリソースを読み込みます。 userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap # デフォルトのリソースとキーマップを読み込む。 if [ -f $sysresources ]; then xrdb -merge $sysresources; fi if [ -f $sysmodmap ]; then xmodmap $sysmodmap; fi if [ -f $userresources ]; then xrdb -merge $userresources; fi if [ -f $usermodmap ]; then xmodmap $usermodmap; fi 5.3. ウィンドウをあなたの好きな場所に置く スクリーン上のすべてのものを -geometry オプションで置くのは、頭の中で そらんじてやるには難しい仕事です。特にあなたが X 上で動かすほとんどす べてのプログラムに -geometry オプションをつけようとしているならやっか いです。このオプションで正確に場所を指定できますが、そのためには多くの オプションを設定しなければなりません。 そこで、FVWM ウィンドウマネージャーには素敵な機能がつけられました。デ フォルト状態のままスクリーン上でウィンドウを動かすと、位置情報が現れま す。左ボタンでウィンドウを動かしてみてください。次にサイズを変えてみま しょう。そうすればサイズ情報が得られます。しかし、この方法も少し面倒で すので、ウィンドウの詳細情報を一度に得られるといいと思うでしょう。 そこで、xwininfo というプログラムを導入しましょう。このプログラムを使 うには、xterm ウィンドウでこのプログラムの名前をタイプします。そうする と、情報の欲しいウィンドウをクリックするよう要求されます。クリックする とそのウィンドウに関する情報がみんな表示されます。スクリーン上に必要な ウィンドウを配置した上で、このプログラムを動かし、ウィンドウ上でクリッ クし、そこで得られた情報を起動ファイルに書けば、それ以降変わらぬ正確さ で同じ状態のウィンドウが得られるようになります。 6. ウィンドウマネージャーの設定 さて、ウィンドウマネージャーの設定ファイルに関して見ていきましょう。設 定ファイルはウィンドウマネージャーごとに異なりますが、ここではユーザご との設定ファイルについて述べます。FVWM2 を例としていますので、設定ファ イル名はユーザのホームディレクトリの.fvwm2rcです。 6.1. FVWM2 の基本的な設定 初期のバージョンの FVWM のウィンドウマネージャーリソースファイルを設定 するのはかなり骨の折れる仕事でした。というのも、ファイル中に記述する項 目の順序に厳しいルールがあったからです。でも大丈夫。現在のバージョ ン(訳注: FVWM2 を指す)では、かなり緩やかになっていますから。私の知る限 りでは、順序に関して厳しい部分はメニューの関連付けのところだけです。こ れについては後ほど触れます。 FVWM2 には、例としてリソースファイルが付 属しているはずです。このファイル は、/var/X11R6/lib/fvwm2/system.fvwm2rcにあるでしょう。これは、デフォ ルトではシステム全体に対して有効な設定ファイルです。これをあなたのホー ムディレクトリに、.fvwm2rcという名前でコピーするのがいいと思います。コ ピーした後は、先ほどのシステム全体の設定ファイルは無効になり、 FVWM2 は、あなたのホームディレクトリのこのファイルを読んで立ち上がります。 さて、以上の操作で、ちゃんと動作する個人設定ファイルを用意できました。 このファイル(訳注: /.fvwm2rc)をお好みのエディタで開いて眺めてみましょ う。もし X が起動されていれば、設定ファイルの中身と、今あなたがデスク トップ上に見ているものとの関連を見ることができますね。これはとても参考 になります。 (設定ファイルの)内容を書き換えて、それがどんな風に影響を 与えるかを見ることができますから。恐らく、ファイルの中で、コメント 行(#で始まる行)を除いた最初の行は、とっても奇々怪々なフォント名を記述 した、WindowFontの設定行だと思います。もしこれらのフォントや色の設定を したい場合には、次の章の「X のフォントと色」を読んでください。 6.2. FVWM2 のより高度な設定 FVWM2 の設定は、非常に複雑で難解なものになることもあります。以下のコー ドは、fvwm2gnome というセットアップコマンドからとってきたものです: # 設定ファイルを読み込む Echo -Styles- Read .fvwm2gnome/config/styles/app.styles Read .fvwm2gnome/config/styles/window.styles Echo -Buttons & Keys- Read .fvwm2gnome/config/buttons.config これは、他の設定を読み込む方法のひとつの例です。このようなやり方 で、.fvwm2rc をモジュール化することができます。ひとつの巨大なごちゃご ちゃした設定ファイルを書くことを考えると、これは悪いアイデアではありま せんね。デバッグや変更が楽になりますから。また、このやり方によってテー マ と呼ばれる設定をするのも楽になります。テーマについては、すぐ後に触 れます。 6.3. FVWM2 設定の近道 FVWM2 用のスクリプトを設定する (そして、 FVWM や、 bash や、そのほかた くさんのプログラムの! ) 楽な方法は、 Dotfile Generator というものを使 うことでしょう。これは、Jesper K. Pedersen によって書かれ、次の URL で アクセスできるはずです 。こ れを使うには、最近のバージョンの Tcl/Tk が必要です (ほとんどの Linux ディストリビューションにあるはずです)。このプログラムは、すでにあなた が設定済みの設定はそれを使い、そうでない部分はあらかじめ用意された設定 を初期値として設定を開始し、たくさんの構造化されたオプションをメニュー から変更することができます。 でも私は注意しておきますけれど、設定ファイルを自分自身で記述するほうが いいと思います! それがUnix 流だ、というだけではなく、その方がはるかに 設定ファイルを小さくできますし、少しづつ .fvwm2rc ファイルを変更してい くことで、正確にあなたの好みを設定に反映させていくことができるからで す。そして、Tcl/Tk プログラムなので、ちょっとばかり遅いですしね。それ でもやはりあなたが、そこそこの設定を楽にしたいのならばこれは確かに試し てみる価値があります。 6.4. FVWM2 のテーマ FVWM2 のたくさんの新しい可能性の中で特筆すべきは、一般にテーマと呼ばれ ているものでしょう。これは、基本的にはウィンドウやデスクトップの基本的 な「見た目」を「その場」で変更するという機能です。ここでちょっとご注 意。あなたがウィンドウマネージャーの機能とアプリケーションの機能を区別 できているなら、ウィンドウマネージャーのテーマは、アプリケーションそれ 自身のルック & フィールには影響を与えないことはご承知のとおりです。 KDE や GNOME などの統合化されたツールキットは、まさにこの (テーマとい う) 機能を持っています。とはいえ、これら 2 つは一緒に使うととても効果 的ですよね。 新しいテーマを作るには...まず腕まくりしましょう。そして、ホームディレ クトリの .fvwm2rc を少しばかり変更します。以下に示すのは私の設定ファイ ルの最初の方に付け加えた例です。あなたの設定ファイルのStyle 定義のすぐ 後ろに付け加えてください。 # Blue Theme DestroyDecor Blue AddToDecor Blue + WindowFont -b&h-lucida-bold-r-*-*-*-140-*-*-*-*-*-* + TitleStyle ActiveDown (Solid DarkSteelBlue)\ ActiveUp (Solid SteelBlue) Inactive (Solid Grey) + HilightColor white blue + ButtonStyle 1 -- UseBorderStyle Style Blue UseDecor Blue, BorderWidth 5, HandleWidth 5,\ MWMborder, MWMbuttons # Function to change all windows to a new style. DestroyFunc ChangeStyle AddToFunc ChangeStyle + "I" Style $0 $1 + "I" Recapture わかってます。一息で理解するにはちょっと多すぎますね。基本的には、まず 最初に、``Blue,''というテーマを定義しています。半分より前の部分は、あ なたが他のテーマを作るときにひな型として役立つと思います。テーマは、こ こで記述しているのよりもはるかに多くの機能を持っており、それぞれお互い に非常に異なっています。後半は、全てのウィンドウが新しいスタイルに変わ るように、ファンクションを定義しています。上にあげた例の両方の部分で、 オブジェクトを新しく作る前に削除 (destroy) していることに注意してくだ さい。恐らくいろいろなスタイルを試すために、何度も FVWM2 を再起動する ことになると思いますので、こうすることでよりスムーズに新しい設定を試す ことができると思います。(訳注: 古い設定を完全に消去することで、予期し ない古い設定をひきずるのを防ぐことができるという意味ですね) さて、以上で定義したスタイル定義を呼び出すためのインターフェースが必要 ですね。これは以下のように、メニューからファンクションを呼び出すことで 実現できます: DestroyMenu "Themes" AddToMenu "Themes" + "Choose a theme..." Title + "" Nop + "Blue" ChangeStyle "*" "UseStyle Blue" + "Mwm" ChangeStyle "*" "UseStyle Mwm" + "Flat" ChangeStyle "*" "UseStyle Flat" ここでは少々簡単なメニュー定義を示すにとどめましたが、実際にはもっとた くさんあるでしょうね。この例でやっていることは、ChangeStyle 関数から、 私たちが定義したスタイルを呼び出して、(そのスタイルで)定義した設定に従 うようにしているわけです。新しくメニューを作る前に削除(destroy)してい ることにもう一度注意してくださいね。さて、FVWM2 を再起動すれば(おそら くメニューに再起動するための項目があると思いますが!)、新しいテーマ選択 メニューが表示され、別のテーマに切り替えることができるはずです。 もっといろいろな FVWM2 用テーマの例は、 をアクセ スしてみてください。 7. フォントと色について X 上でフォントと色を使うにあたっては、たくさんの、そしてちょっと込み 入ったやり方があります。多くのシステムのように簡単にはいきません。例え ば、フォントは長い文字列で指定しなければなりません。フォントのリソース を完全な形で指定しなければならず、最初は少々複雑に感じることでしょう。 でもちょっと解説を読むだけで、あなたもすぐにエキスパートになれるはずで す。 7.1. フォント指定の怪 X 論理フォント記述(XLFD: X Logical Font Description)はフォントの完全な 名前です。これは以下に示す項目で構成されます。 o fndry - フォント作成者。フォントを作成した企業もしくは個人 o fmly - フォントファミリー。フォントの一般的な呼称 o wght - 太さ。bold(太字)、medium(中肉)、regular(普通) など o slant - 傾き。イタリック体、斜体、ローマン体など o sWdth - 単位あたりの幅。normal(普通)、condensed(狭い) extended(広 い)など o adstyl - スタイルに関する付加情報。sans serif(ひげ無)、serif(ひげ 有)など o pxlsz - 文字の大きさ。文字の縦方向のピクセルサイズ o ptSz - テキストのおおよそのポイントサイズ(pxlsz と同様) o resx - 水平方向の解像度。dpi で指定 o resy - 垂直方向の解像度。dpi で指定 o spc - 文字間隔。シューマッハフォントでのみ有効らしい o avgWidth - 全文字の幅の平均(scalable フォントでは 0) o rgstry - 登録した組織もしくは標準名 o encdng - 文字セットのエンコーディング これでは混乱してしまうので、xfontsel プログラム (X ウィンドウのフォン ト選択プログラムとして通常使われます) が用意されています (実に便利)。 試しに今すぐ起動してみましょう。メインウィンドウに訳のわからないものが 現れてきます。しかし、そこで fndry ボタンの上でマウスの左ボタンを押 しっぱなしにしてみましょう。もしフォントが正しくインストールされていれ ば、メニューに adobe やら b&h, bitstream が出てくると思います。b&h で も何でも一つだけ選択し、下部のウィンドウに見慣れたものが出てくることに 注目してください。普通 xfontsel は一番左の項目から始めて、だんだん右へ 指定しながら絞っていきます。fndry オプションを選択する前にその右の項目 を選択してもかまいません。各々のオプションは互いの依存関係により普通は 勝手に選択されてしまうからです。 fmly の項目まで来たときには、ほとんどのオプションがグレーになってい て、3 項目だけが残されているのがお分かりいただけると思います。これは指 定されたフォント作成者に対応するフォントファミリーは 3 つしかありませ んよということです。いくつかのフォントファミリーは別のフォント作成者の 下にも現れます。例えば、 Adobe も Bitstream も Courier フォントを作っ ています。次は wght へ進みましょう。長い道程を経て望みのフォントに近づ いてきました。必ずしも一つのフォントを指定するためにすべての項目を埋め なければならないわけではありません。あなたのシステムにそんなにたくさん のフォントはありませんから! 選択しない代わりに * 印がついているオプ ションはそれらのうちのどれでも良いことを表します。 フォント選択で一番うれしい機能が select ボタンでしょう。select ボタン を押すと選択されたフォント名が X のクリップボードにコピーされ、書いて いるドキュメントの中や作業中の何かにペーストすることができます。例え ば、 xterm ウィンドウで xterm - font の後にフォント名を " の後に打ち込 みたいと思ったとします。そこでマウスの真ん中ボタン (または、真ん中ボタ ンが無ければ右ボタンと左ボタンを同時に押します) を押してください。そう するとクリップボードから選択されたフォント名がペーストされることでしょ う。あとは " を入力して括弧を閉じ、Enter を押すだけです。具体的には、 Courier フォントを使った大きくて格好良い xterm を開くには以下のように 指定すれば良いでしょう。 xterm -font "-adobe-courier-medium- r-*-*-14-*-*-*-*-*-*-*" 選択したフォントを使った新しい xterm が開いた はずです。 xfd はフォントを調べるのにとても役に立つユーティリティです。コマンドラ インで xfd -fn fixed のように起動すると、そのフォントに対する文字集合 を表示します。さしずめ Macintosh の keycaps ユーティリティのような感じ です。 コマンドラインオプションの -pattern を使って xfontsel で表示す るためにフォントの数を制限することもできます。続けて上で述べたように フォント指定を引用符で囲って指定します。 7.2. フォントの別名と設定 時々、あの長いフォントの名前にうんざりし、実用的じゃないよなあと思うこ ともあるでしょう。幸運にも、百回もキーを叩いたりする必要はありません。 X はフォントのエイリアス (別名) と呼ばれる機能を提供しています。 /usr/X11R6/lib/fonts/misc/fonts.alias ファイルを見れば、たくさんのフォ ントのショートカットを見つけることができるでしょう。例えば 8x16 は -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1 へのショー トカットです。そして、X フォントリソースやコマンドラインでフォント名を 指定するところなどのどこでも 8x16 を長い表現のフォント名の代用として使 うことができます。ディレクトリ 75dpi と 100dpi 内には同様のエイリアス があり、ほとんどのシステムには Lucida Sans フォントのナイスなショート カットがあります。 システムにフォントを追加したりエイリアスを作るときは、(大抵は root で) コマンドをいくつか実行する必要があるでしょう。フォントを追加するときは 以下の二つのコマンドを実行する必要があります (下記はサンプルです。フォ ントを正しく再読み込みさせるには、正しいディレクトリに書き換えるか、ま たは外す必要があるでしょう)。 mkfontdir /usr/lib/X11/fonts/misc xset fp rehash あるフォントのエイリアスを変更したいときは、上の二つ目のコマンドを実行 するだけで良いでしょう。しかし、それが確実に行われるためのもっと良い方 法もあります。xset コマンドを使えば、サーバが使いたいフォントのパスを 明確に指定したり、フォントパスから特定のディレクトリを削除することがで きます。詳しくはオンラインマニュアルを参照してください。 もうひとつの一般的な問題は、いくつかのディストリビューション (特に RedHat 5.2, 現行のバージョン) が間違った順序でフォントを設定しているこ とです。/etc/XF86Config を見てください (他のディストリビューションでは 違うところにあるでしょう。不幸なことに、そして私は RedHat においてそれ がどこにあるのか知りません。だから locate コマンドを使うことになるかと …)。X 上のフォントが汚ないと思ったのならなおさらです (サイズが大きい ファイルをきちんと読むのは非常に大変でしょう)。下記のような一群の記述 が見つかるはずです。 FontPath "/usr/X11R6/lib/X11/fonts/misc/" FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/X11R6/lib/X11/fonts/Type1/" FontPath "/usr/X11R6/lib/X11/fonts/Speedo/" ここで記しておくべき重要なことは unscaled なビットマップフォント (misc, 75dpi, 100dpi ディレクトリ) が scaled なフォント (Type1 と Speedo のような) の前に記述されていることです。ビットマップフォントは X Server 向きです - 普通の使用においては scaled なフォントがあまり奇麗 に見えないからです。これら scaled なフォントはおそらく Gimp や Netscape に向いているでしょう。そしてすべてのディレクトリについてもま た、実際に存在する正しいディレクトリかどうかのチェックをすべきです。そ して後で変更したなら fonts ディレクトリの中で (root で) mkfontdir * コ マンドを実行する必要があるでしょう。 かなり新しいディストリビューション (RedHat 6.0 以降などに基づくもの) をお使いであれば、これを気にする必要はない点に注意してください。という のも、xttfs TrueType サーバがデフォルトであり、フォントを見つけるため にパスの機構を使わないからです。 7.3. X で Type 1 フォントを使う X ウィンドウシステムのフォントは、 X 自身でしか使われていないことを考 えると、 X が通常使用するフォント形式はあまり便利とは言えません。更に 不幸なことに、メディアの連中やフォントマニアの多くは、他のフォント形式 に則ったオペレーティングシステムを使用しています。 Type 1 フォント (PostScript 文書と共にもっとも一般的に使われています) は、フリーなもの がインターネットにかなりたくさんあります。まず手始めに を覗いてみましょう。 これらのフォントを利用するのは難しいことではありません。そして GIMP の ようなグラフィックプログラムにとって非常に有効です。また、最善なのは Linux の X サーバが「何もしなくてもそのまま」 Type 1 フォントを理解す ることです。これらのフォントを使うために、最初に適切なコマンドを使って アーカイブを解凍し、拡張子が .pfb のフォントをシステムの /usr/X11R6/lib/X11/fonts/type1/ ディレクトリに置きます。そして、これら のフォントについて記したファイル fonts.scale をそのディレクトリに追加 します(もしすでにあるなら他のフォントのフォーマットを流用します)。 更新を X サーバに知らせるために mkfontdir を実行しなければなりません。 それから、フォントパスを再読み込みさせるために xset fp rehash とコマン ドを実行します。これで効果がないなら、変更を確認するために X を再起動 する必要があるかもしれません。 たくさんの Type 1 フォントを自分が使っていると分かったなら、X 以外でも (例えば GhostScript はこの形式のフォントをうまく扱うことができます) 、 James Macnicol さんが作った type1inst ユーティリティを使うとよいでしょ う。このプログラムは GhostScript と X で Type 1 フォントを設定できるよ うにしたり、フォントのサンプルシートを出力すること等、いろいろな使い方 ができます。これは を探 せば見つけることができるでしょう。 7.4. X で TrueType フォントを使う Windows や MacOS のようなオペレーティングシステムを使っているなら、た くさんの TrueType フォントがコンピュータに居座っていることでしょ う。TrueType フォントは、あなたが現に使っているコンピュータのモニタの ような、小さく、解像度の低いディスプレイでも最適化できるように考慮され ています。また、影付きやアンチエイリアスのような非常に優れた技術の提供 も試みられています。大量の TrueType フォントを安価で手に入れることもで き、コンピュータストアに行けば 500 以上の TrueType フォントが納められ た CD を買うことができます。 X は TrueType フォントを理解できません。そして理解できるための本質的能 力を (今のところ) 持ち合わせていません。ですから、フォントのレンダリン グには別のプログラムが必要になります。それをするために FreeType ライブ ラリが存在しますが、それを使おうと思うと、xfstt と呼ばれる TrueType の ための X フォントサーバプログラムが必要になります。このプログラムは にあります。 インストールは非常にわかりやすく簡単です。アーカイブを展開し、 make, make install を実行してください。 2 つ目のコマンドの後のエラーは意味が ないので無視してください。次にすることは /usr/ttfonts と呼ばれる書き込 み可能なディレクトリを作成し、 .ttf フォントをそこに置きます。これだけ です! その後 xfstt --sync コマンドを実行してフォントサーバとの同期を取 ります。 エラーが出なかったら、 xfstt & コマンドを実行してフォントサーバーを バックグラウンドで走らせ、 xset fp+ unix/:7100 コマンドで X11 サーバに フォントサービスについて問い合わせます。エラーが返ってこなけれ ば、Netscape や GIMP, xfontsel などによってフォントが使えるかどうか確 かめることができるでしょう。最大の問題は欲しいフォントをどうやって見つ けるかということですが、これは大したことではありません。 ごく最近のバージョンの xset は、このコマンドの少し修正されたバージョン を必要とすることに気づきました。なぜなら xset のコードが変更されたから です。RedHat 6.0 以降に基づくディストリビューション、あるいはこれと同 等のディストリビューションをお使いであれば、最初に xset fp+ unix/:7101 を実行するとよいでしょう。 何もかもがうまくいっているようなら、X を起動したときにフォントが使える ようにシステムを設定し直したいと思うでしょう。コマンドラインから X を 起動したのなら簡単です。二つのコマンドを前の段落から .xinitrc ファイル にさっきの順番通りに追加するだけです。次に X を起動するときから幸せに なれるでしょう。もし xdm 経由で X を起動しているなら、 /usr/X11R6/lib/X11/xdm/Xsetup_0 ファイルに /usr/X11R6/bin/xfstt & とい う記述を加える必要があるでしょう。できましたか? そうしたら xset fp+ unix/:7100 を追加してお幸せに。 TrueType フォントサーバのインストールは手の込んだ作業となることを心に 留めてください。上記のコマンドを順番通りに発行することが大切であること を覚えておきましょう。フォントサーバは X が起動する前に起動する必要が あります。そうしないなら問題が起きます。ディストリビューションに付いて くる FAQ ファイルを読んで確かめてみましょう。xfstt のオンラインマニュ アルも読みましょう。新しいバージョンのディストリビューションの多くでは 最初から xfstt が動作するようになっているので、深く気にする前にそうで ないかどうかを調べましょう。 7.5. 色について 端末ウィンドウに戻ってもうちょっと試してみましょう。コマンドラインで以 下のように指定して xterm を開いてください。 xterm -fg darkslateblue -bg red3 & ウィンドウがかわいくない、仕事がはかどらないとお悩みの方、上記の例は X の非常に興味深い分野の一つであるカラーネームについてのデモとなっていま す。あまり厳密ではありませんが、色を 16 進数で覚えるよりはずっと簡単で 良い方法です。カラーネームには大文字・小文字の区別が無いことを覚えてお きましょう。 もし血みどろの詳細について興味がおありなら、もしくはサンプルを見たい、 はたまたあなた自身のもつ未知のアイデアによりばかげたカラーネームをそっ くり廃止してやる! という方は、システムの /usr/X11R6/lib/X11/rgb.txt に 書かれているすべての色のリストと 16 進数についての説明が書かれています ので見てください。 xcolorsel といった名前の、実に使えるユーティリティ もあります。これは や他のおなじみ の場所にあるでしょう。 形式ばった色指定の方法は、数字で指定することです。これはカラースペース 名 (color-space-name) と数値を下記の構文に従って指定することからなりま す。 :<数値>/.../<数値> RGB デバイスにおいては (一番よく使う方法でしょう) 、 "rgb:" を使って以 下の構文で指定します。 rgb:// ※上記の は 1 桁から 4 桁の 16 進数で す。 例えば、red (赤) と指定する代わりに rgb:ffff/0/0 とすることもできま す。後方互換性を保つために、赤を指定するのに #ff0000 もしくは #ffff00000000 などおそらくよく見かけるであろう (古い) 構文を使うことも できます。 8. X のリソース ここでは、お使いのシステムを変えて良くすることを少し考えてみましょう。 今のところ説明したのはウィンドウマネージャーの設定だけです。ウィンドウ マネージャを使えば、ウィンドウの外で起こることは何でも (ウィンドウ、 枠、境界、ボタン、デスクトップ等) カスタマイズできますが、ウィンドウの 内部を良くすることについてはどうでしょう? これを行うためには、システム の X リソースを修正するしかありません。 X リソースは、プログラムのリソースのデフォルト値を格納し、ウィンドウ環 境のルック & フィールをユーザの好みに合わせるための機構です。リソース はテキスト文字列として指定され、アプリケーションが実行されたときに様々 な場所から読み込まれます。プログラムの要素には、クラス名とインスタンス 名で識別される階層内のオブジェクトを使って、階層的に名前が付けられま す。階層のトップレベルは、アプリケーションそのもののクラス名とインスタ ンス名です。慣習的にアプリケーションのクラス名はプログラム名と同じにな りますが、最初の文字だけは大文字になります (例: Bitmap, Emacs) 。ただ し、名前が「 X 」で始まる一部のプログラムは、歴史的経緯により 2 番目の 文字も大文字になります (例: XTerm)。 8.1. X のリソース: 基本編 リソースの世界に楽に入るため、例をいくつか試してみましょう。まずは xterm のウィンドウを開きます。たぶん既に 1 つは開いてあるでしょうし、 メニュー選択で開くこともできます。あるいは、進路を確かめるためにこのド キュメントの少し前に戻ってみてもよいでしょう! xterm のウィンドウへ以下 のようなコマンドを入力してみましょう: xterm -background blue & このコマンドを実行すると別の xterm が画面上に現われますが、今回の xterm は背景が青いはずです。「あれ、どうして」と思うかもしれません。し かし実際にそうなるのです。 次の例を試す前には、少し背景となる知識が必要です。さっき開いた xterm で 「 exit 」と入力し (これでウィンドウが閉じます)、コマンドを入力した 元のウィンドウに戻ります。そして次の操作を行います: Ctrl キーを押し、 そのままマウスの左ボタンを押します。次は中ボタンを試してください。それ から右ボタンも。xterm のウィンドウは全て、実行中にオプションを試すこと ができます。例えば右ボタンの場合には、ウィンドウのフォントを変えること ができます。このメニューの色に注意しておいてください。その上で、この例 を試してみましょう: xterm -xrm 'xterm*fontMenu*background: green' & 今回は、ごく普通の xterm のウィンドウに見えます。しかし、Ctrl キーを押 したままでウィンドウ内部でマウスの右ボタンを押すと、このメニュー (先ほ どの例で「 fontMenu 」と言ったものです) は緑色になります。いったい何が 起こったのでしょうか? xterm のオンラインマニュアルを見ると、 -background や -font といったコマンドラインオプションがあると思いま す。このオプションは X 上でウィンドウを立ち上げるときに設定できるもの で、xterm 専用のオプションの後に列挙します。このような特別なオプション は X ツールキットオプションと呼ばれ、 X のほとんど全てのアプリケーショ ンに適用されます。 8.2. editres で見る X リソースデータベースの内部 本当に X のリソースの内部に立ち入るには、editres を実行する必要があり ます。さあ、前に進んで editres (および遊ぶ対象にするサンプルプログラ ム)を実行しましょう: xclock & editres & たぶん、表示されるのは何の変哲もない見栄えのシンプルな時計と、ほとんど 何も表示されていない editres のウィンドウでしょう。メインウィンドウに 表示されるのは、デスクトップ上の指定されたウィンドウのリソースツリーで あり、プログラムの起動時には何もありません。したがって、まずはツリーを 与えてみましょう。「 Commands 」メニュー上で左ボタンを押し、「 Get Tree 」を選択します。すると、ウィンドウの最上部に「 Click the mouse pointer on any toolkit client (任意のツールキットクライアント上でマウ スポインタをクリックしてください) 」と表示されるはずです。このメッセー ジには見た目以上の意味があって、X アプリケーションが全てツールキットク ライアントというわけではないことを示しています (基本的なアプリケーショ ンの大部分はツールキットクライアントですが、そうでない場合にも普通、オ ンラインマニュアルには説明はありません) 。マウスのカーソルは細い十字形 にかわり、他のウィンドウでのクリックを待つ状態になります。 この例では、まずは xclock をクリックしてみましょう。 editres のウィン ドウに 2 つの項目が表示されるはずです。これらはツールキットが認識して いる設定可能なブランチ (枝) です。右下のブランチ (clock) をクリックし てみましょう。すると反転するはずです。ここで ``Commands'' から ``Show Resource Box'' を選択してください。すると上の方に ".xclock.clock.unknown" と表示された別のウィンドウが現われるはずです。 どうだい! これ以降、 xclock のメインウィンドウの設定オプションで遊ぶことができま す。このリソースの一部をテストしていることを示すため、まずは一番下の ``Set Save File'' をクリックし、 /home/yourname/resources のようなファ イル名を入力してください。ここで ``foreground'' をクリックし、その隣の ``Enter Resource Value:'' プロンプトに ``blue'' を入力してください。 それから一番下の ``Apply'' をクリックします。時計の回りの細い刻み目が 青くなるはずです。 ``background'' に行き、 ``navajowhite'' (あるいは好 みの色) を入力してください。これも反映するはずです。ご覧になったよう に、このようにしてウィンドウ全体を格好良く設定することができます。しか し、別の xclock を起動した場合、これは変更をする前のただの xclock にし か見えないでしょう。このような変更を保存する必要があるのです。 まず ``Save'' を、その次に ``Popdown Resource Box'' (機能は ``Close'' なので、実際のところ変な名前ですね)をクリックしてください。たった今生 成したファイルを (cat /home/yourname/resources あたりで) 見てみると、 便利なことにこれらのリソースが正しい X ツールキットのフォーマットで書 き出されているのが分かるかと思います。しかし、これだけでは嬉しくありま せん。というのも、新しく xclock を起動してみればわかりますが、立ち上 がった xclock はすっぴん (デフォルト設定) のままなのです。つまり、リ ソースをロードするという最後の仕上げが残っているのです: xrdb -merge /home/yourname/resources このコマンドは、たった今書き出したリソースを現在の X セッションの X リ ソースデータベース (xrdb) にマージします。すなわち、修正を行った X ア プリケーションをこれ以降に呼び出すと、変更が適用され、結びつけられたま まになります。したがって、別の xclock を実行すると、いつ実行しても今 さっき設定したように格好良くなります。ただ、xrdb は複雑なプログラムな ので、次に進んだり、もう少しこれで遊ぶ前には、オンラインマニュアルを見 るとよいでしょう。本ドキュメントで前に挙げた、 X の起動時に自動的にリ ソースをロードするための変更を .xinitrc に行っている場合には、 X セッ ションの途中に変更を行ったとき以外には xrdb のことを意識する必要はあり ません。 8.3. X のリソースの解剖 ご覧のように、ここで設定オプションが多すぎることに気付かれたと思いま す。このような X の設定方法は、既に述べたように、ほとんど無限の可能性 を与えますが、同時に同じだけの混乱をもたらしてしまいます。X ツールキッ トイントリンシクス単独でのリソースの適用範囲のイメージをつかむために は、 viewres プログラムを実行し、これで少し遊んでみましょう。このプロ グラムは Xt ライブラリのリソースのツリーをグラフィカルに表示します。 X のオンラインマニュアルを読むと、 X が理解するリソースを定義するため の正確な文法についての定義が比較的不明瞭なことに気付かれるでしょう。こ れはかなり簡略化し、本質的な文法定義に分割することができます: <プログラム><結合子><ウィジェット><結合子><ウィジェット><...><リソー ス>:<値> これは本当に簡単なようには見えないかもしれませんが、実は簡単なのです。 さてここで、たった今説明したことに関して何か定義してみましょう。そうす れば、言っていることが結局分かるかと思います。もしそうしたければ、この セクションを読みながら次のセクションの例を眺めてもいいでしょう。 この定義における プログラム はリソースデータベース内でのアプリケーショ ンの呼び出しです。これは xterm の呼び出しの場合は XTerm となり、emacs テキストエディタの呼び出しの場合には emacs となります。あるいは、アプ リケーションが -name コマンドラインオプション付きで起動された時に与え られた、ユーザ定義の名前になることもあります。このようにすると、異なる 使われ方をする複数の xterm に対して別々のリソースを定義することができ ます。これは実に素晴らしいことです。 結合子 は、ウィジェット等を区切るための 2 種類の文字のどちらかになりま す。. (ピリオド) を使った場合には、強い結合 (tight binding) が得られま す。これはあるウィジェットがウィジェット階層内で他のウィジェットのすぐ 上か下になることを意味します。これは指定方法の中でも最も高い優先度を 持っています。 * (アスタリスク) を使った場合には、緩い結合 (loose binding) が得られます。これは階層内で任意の数のウィジェットを飛ばし、 マッチすることができる次の定義されているウィジェットにマッチしようとし ます。 ウィジェット エントリはウィジェットツリー内の要素であり、特定されてい るものから、されていないものの順に並んでいます。要素はウィジェットツリ ー内に現われ、 editres で見ることができます。任意の単独のウィジェット エントリは ? (疑問符) で置換えることができ、 1 つのウィジェット定義を 飛ばしたり、可能な任意のウィジェット要素とマッチさせることができます。 リソース 要素は必ず指定しなければならず、? 文字で置き換えることはでき ません。これは階層内で最も特定されている要素であり、定義する実際の色や 定義する実際のフォント等のような要素を通常は含んでいます。実際、この定 義中でリソースより前の要素は全て取り除き、アスタリスク 1 つで置き換え ることができますが、定義する実際のリソースはなければいけません。アスタ リスクと最も特定されているリソース名だけを指定した場合(*background: blue 等)、可能であれば X は全てのクライアントに対してそのリソースをグ ローバルに定義しようとします。 コロンの後は値エントリです。このエントリにはリソースに設定するもの (フォント名や色の値など) を定義します。この値は (文脈に従って) 真偽値 や数値、テキストデータ型として指定することができます。正しいリソース定 義においては、この値エントリも省略することはできません。 8.4. .Xdefaults への変更を反映させたままにする方法 .Xdefaults と呼ばれる、ホームディレクトリに置くことができる魔法のファ イルがあります。リソースファイルの行を最後の例から抜き出してホームディ レクトリの .Xdefaults にコピーすると、 xclock をもう二度と設定しなくて もよくなります! これはこのユーティリティのとても良い例ではないかもしれ ませんが、的を射ているとは思います。このファイルには X で実行する全て の種類のプログラムに対して、思いのままのオプションを詰め込むことがで き、適切に注意すれば、必要な時に簡単に元の状態に戻り、少しだけ変更を行 うこともできます。しかし、大量の変更を行うことと、 editres を使って細 々としたオプションをたくさん見つけ出すことは、大変面倒で苦痛を伴う作業 です。実際のところ、これは大変すぎる作業であることが多いです。また、シ ステムに用意されているリソースの大部分はすぐに使える状態ですし、きちん と整理されており、プログラムごとにまとめられています。 /var/X11R6/lib/app-defaults ディレクトリには、X ツールキットプログラム にちなんだ名前が付いているファイルがたくさんあります。これらのファイル を調べれば、それぞれに非常にたくさんの設定オプションがあることが分かる と思います。非常にたくさん! これらののファイルからオプションの全てを .Xdefaults に入れたいとは思わないでしょう。これらを全部扱うのは実に面 倒な作業です。これらの値はデフォルト値なので、これらの値から特定の設定 について何を変えたいのか決めることができます。 以下に .Xdefaults ファイルから抜き出した例を示します。リソース定義ファ イルについてまだ説明していないことがいくつかあるので注意してください。 行が「 ! 」 (感嘆符) で始まる場合、その行はコメントとして扱われ、その 行の残りの部分は無視されます。行が「 #include ファイル名」で始まる場 合、その行はインクルードディレクティブであり、リソースをロードすると き、リソース中のこの位置に別のファイルがマージされます。これを使って、 リソースファイルが膨れあがるのを防ぐことができます。以下に例をいくつか 示します: ! Default resources for me@localhost xterms ! start with the generic, move to the specific... *Dialog*Text*font: -b&h-lucida-medium-r-*-*-12-*-*-*-*-*-*-* *dialog*value*background: white *Dialog*Label*font: -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* *MenuButton*font: -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* *MenuButton*background: grey80 *MenuButton*foreground: black *Label.font: -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-* *Label*shadowWidth: 1 *SmeBSB.font: -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-* *SimpleMenu*font: -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-* *OptionMenu*font: -adobe-helvetica-medium-r-*-*-10-*-*-*-*-*-*-* *Command.font: -linotype-helvetica-bold-r-narrow-*-12-*-*-*-*-*-*-* *commandBox*font: -b&h-lucida-bold-r-*-*-12-*-*-*-*-*-*-* *Toggle.font: -adobe-helvetica-bold-o-*-*-12-*-*-*-*-*-*-* *Form.background: grey70 *TransientShell*Dialog.background: grey70 *Scrollbar.Foreground: grey80 *Scrollbar.Background: grey50 *Scrollbar*cursorName: top_left_arrow *Scrollbar*width: 16 *shapeStyle: Rectangle *XlwMenu.shadowThickness: 1 *shadowWidth: 1 ! xterm stuff xterm*scrollbar.background: grey40 xterm*foreground: grey90 xterm*background: grey25 xterm*cursorColor: white xterm*visualbell: on ! rxvt stuff (a quicker, better xterm) rxvt*color12: steelblue rxvt*color15: white rxvt*color9: rgb:ff/7f/5f rxvt*foreground: grey90 rxvt*background: grey10 rxvt*cursorColor: white rxvt*font: lucidasanstypewriter-12 rxvt*loginShell: false rxvt*saveLines: 1024 rxvt*title: shell rxvt*geometry: 80x25 ! Make Xman just a little bit more sane xman*topBox: false xman*background: lightsteelblue xman*foreground: black ! xcalc is too bland by default... xcalc*Command.font: -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* xcalc*customization: -color ! Disallow the tag in Netscape Netscape*blinkingEnabled: False ! Merge other resources (example) # include $HOME/.otherXresources KDE のユーザに対して、X のリソースに関する注意を一言述べておきます。コ ントロールパネルに設定がありますが、これはアプリケーションにおける X のリソース設定を全て上書きします。これは便利な機能でもありますが、リソ ースを苦心して設定した人にとってはうっとうしい機能でもあります。コント ロールパネルを開き、``Fonts etc.'' セクションを探してください。ここに ``Apply style to non-KDE apps'' というオプションがあります。これをオン にすると、KDE が設定したルック & フィールが全てのプログラムに適用され ます (これを通知するために X を再起動する必要はありません)。この機能を オフのままにしていれば、リソースは以前に設定した状態のままとなります。 8.5. ユーザ専用のリソースディレクトリ 先に述べたシステム全体用の app-defaults ディレクトリとちょうど同じよう に、ユーザもリソースファイルのディレクトリを作成することができます。プ ログラムごとにリソースファイルは 1 つです。単にディレクトリを作成し (このドキュメントの例ではホームディレクトリの app-defaults ディレクト リを使います)、環境変数 XAPPLRESDIR がこのディレクトリを指すように設定 します。この変数は .xinitrc の先頭部分で設定するのが良いでしょう。設定 では、 export XAPPLRESDIR=$HOME/app-defaults のような行を追加します (リソースファイルをホームディレクトリ下の app-defaults ディレクトリに 置く場合)。 これにより、X のプログラムを起動すると必ず、プログラムのリソース名と同 じ名前を持つファイルが、システム全体用のディレクトリとちょうど同じよう にこのディレクトリから検索されます。この名前は .Xdefaults ファイルで使 われているクライアント名です。 例えば、XTerm というファイルに *background: gold という行があると、全 ての xterm の起動時の背景色はデフォルトで金色になります。これは .Xdefaults だけを使うのとは別の選択肢で、どの設定を後で行うか決めよう としている時や、特定のプログラムの設定を探す時には分かりやすい方法で す。しかし、.Xdefaults にもまだ使い道はあります。このファイルは 1 つの プログラムに限定されないリソースを設定する際に便利です。これは例えば、 アプリケーションに関係なく特定の種類のボタンを全て青色に変える修正をし たい場合です。 9. クライアントとアプリケーションについての Tips すでにいくつかの X のクライアントについて触れましたが、この節では他の クライアントについても、もうすこし紹介します。ここでの議論はもっとも基 本的で重要なアイテムについてに限ります。それらは X といっしょに、ある いは X を利用していればすぐに見つけられるものです。もしあなたが KDE や GNOME のような統合デスクトップ環境を導入しているならば、同様の機能を持 つクライアントを他にいくらでも選ぶことができます。とはいえ、X の基本的 なプログラムたちについて知って、そして理解することは重要です。なぜなら ば、それらはいろいろな環境の上で仕事をするときにとても役に立ち得るから です。また X は通常のコンソールアプリケーションでも利用できるたくさん の新しいオプションも提供します。 9.1. X のスクリーンセーバ 多くのオペレーティングシステムには指定しておいた時間の経過後に画面をブ ランクにし、そしてオプションとして気のきいたデモ画像を表示する機能が あって、これはスクリーンセーバと呼ばれます。もちろん X にもこの機能を 使う 2 通りの方法があります。 この機能を使うもっとも基本的な方法はあなたのスタートアップファイル .xinitrc に xset dpms 2400 3600 4800 のようなコマンドを加えることで す。 xset コマンドは X サーバのスクリーンセーバ機能を設定します。テキ ストコンソールでのカーネルのスクリーンブランク機能とは混同しないでくだ さい。 dpms オプションにより X はモニタのパワーセーブ機能 (power saving feature) も利用できます。最初のオプションは何秒後に画面をブラン クにするかを設定し、 2 番目のオプションはパワーセーブ機能を開始するま での秒数を設定し、 3 番目のオプションは「オフ」モード ("off" mode) に ついて設定します。これらのオプションを設定すると暗黙のうちに対応する機 能が有効になり、また 0 に設定するとその機能が無効になります。 たいていの Linux ディストリビューションには xlock がはじめから、あるい はオプションとして入っています。これはとても基本的な、そしてとてもすて きなスクリーンセーバです。 -nolock オプション付きで実行すると、このプ ログラムが提供しているいくつかのモード (デモ画像) を眺めることができま す。またこのオプションなしで実行すると、マウスを動かすかキーを押したと きに、パスワードを尋ねてくるというセキュリティ機能になります。これは本 当のセキュリティにはならないことに注意してください。 Linux のコンソー ルでユーザがコンピュータを再起動したりコンビネーションキー (Ctrl-Alt- BS) を使って X を終了することができるからです。とはいえ後者は無効にで きます。またあなたが xdm を使っているならば、xdm はログイン時の認証と 同程度のセキュリティを提供するので、たぶん再起動しないと他の人はロック を解除できないでしょう。 より新しくてよりよいプログラムは Jamie Zawinski さんによる xscreensaver です。このプログラムはとてもたくさんのすてきな機能を提供 しています。たとえば、それ自身のプロセスを低い優先順位で実行できますの で実行中のシステムへの負荷を減らせますし、 xset により画面がパワーダウ ンしているかどうかを自動的に検出するのでプロセッサ時間を浪費しません。 その上、すべてのグラフィックルーチンはモジュール化されたデモとして呼び 出されるのでパッケージ全体を更新することなくルーチンを追加できますし、 xearth や xdaliclock のような他のプログラムもモジュールのように呼び出 せます。 xscreenserver の最新版は で見つける ことができます。いったんインストールして動かす準備ができたならば、こん な記述をあなたの .Xdefaults ファイルに加えたくなるでしょう。 !!! XScreenSaver のデフォルト設定の例 ! 3分たったらタイムアウトして、2分ごとにデモを切り換える xscreensaver.timeout: 3 xscreensaver.cycle: 2 ! とても低い優先度で走り、モードの切り換えの間にフェードする xscreensaver.nice: 12 xscreensaver.fadeSeconds: 2 9.2. Emacs と XEmacs あなたがテキストエディタ Emacs のファン、あるいはヘビーユーザであるな らば、 X 上ではより容易に仕事ができることに気づくでしょう。 XEmacs を 使っていないならば、 X で使うためにそれを欲しくなるでしょう。たとえ X を使わないにしても XEmacs にはすてきな機能があります。たとえば、あなた が編集しているマークアップ言語のスタイルに応じて文章を自動的に着色する ことができます。ためしに以下の修正を .emacs ファイルにおこない、他のオ プションについての info ページを読んでみるべきです。それからメニューか らフェースを編集するオプションも探してみてください。 (global-font-lock-mode t) (setq font-lock-maximum-decoration t) 9.3. いくつかの役に立つプログラムとトリック appres appres は指定されたクラスとインスタンス名でアプリケーション (あ るいはアプリケーションのサブ階層) に参照されるリソースをプリント します。これは特定のプログラムがどんなリソースをロードするのかを 決めるために使うことができます。X defaults などをデバッグするの に役に立ちます。 rclock 多くのディストリビューションでは xlock のよりよい置き換えユー ティリティとされています。メモリを節約し、メイルが届いたときに通 知したり、メッセージをポップアップウィンドウに表示してプログラム を起動することができます。 Battery-Powerd Mini-HOWTO にはラップ トップマシンのバッテリー残容量を表示するためのこのユーティリティ へのパッチが含まれています。 rxvt xterm についてのよりよい置き換えアプリケーションです。より少ない メモリで、速く動作し、バックグラウンドに pixmap を表示できて、メ ニューからだけでなくキーボードのホットキーでもフォントを変更でき ます。 xcpustate イーサネット情報と同じように、CPUの状態 (idle,nice,system,kernel) の統計を表示します。 xearth あなたのルートウィンドウに地球を表示します。たくさんのオプション があります。 xscreensaver はこれをスクリーンセーバモジュールとし て使うことができます、冗談として。 xfig ベクトル描画プログラムで、とくに図表や文章の編集に役に立ちます。 とても便利ですが、最初はとっつきにくいです。 xfontsel X のフォント選択ユーティリティです。フォントを選んでそのフォント を使って xterm のウィンドウを開くには xterm -fn `xfontsel -print` & を試してください。 xload メモリの使用状況を動くグラフやキーボードのLEDでモニタします。 Window Maker を使っているならば同じ機能でよりちいさな wmmon を捜 してみてください。 xmag X の拡大鏡で、便利な機能が組み合わせられています。 xman X 上でのマニュアルページブラウザです。起動時に表示されるちいさい ボックスウィンドウがわずらわしいようでしたら -notopbox オプショ ンを付けて立ちあげてください。 xmodmap キーボード修飾マップ (keyboard modifier map) とキーマップテーブ ル (keymap table) を編集・表示します。このマップテーブルはクライ アントアプリケーションによってキーコード番号を KeySym 名に変換す るために使われます。たいていはユーザのスタートアップスクリプトか ら実行されます。ひとつの例がこの文章の始めの方にあります。詳細は オンラインマニュアルを参照してください。 xpaint 簡単なビットマップペイントプログラムです。実用的には GIMP を使ったほうがよいでしょう。 xset X のユーザ設定ユーティリティです。これによりすべての設定を変更で きます。たとえば、xset s 600 は 10 分後に画面をブランクにするよ う設定します。 xsetroot あなたのデスクトップの色を変更します。もし xcolersel のような色 選択プログラムを導入してあるならば、 xsetroot -solid `xcolorsel` といったコマンドを実行して、あなたのデスクトップを選択した色に設 定してみましょう。 xwininfo このプログラムを実行して好きなウィンドウ上でクリックすると、その ウィンドウについての役に立つ情報を得られます。 インテリマウス ほとんどのアプリケーションといっしょに X でインテリマウスを使え ます。すばらしいリソースページが にありま す。 10. 進んだ X の使い方 X について学ぶことはたくさんあり、不可思議なオンラインマニュアルの大地 の下にたくさんの情報が埋まっており、多くの人々はわざわざ読まないことが たくさんあります。読んでない情報のどこかに比較的重要であり、間違いやす いものがあれば、完全にはまってしまうことになります。プログラムを X 上 で構築することや、 X のセキュリティをチェックすること、その他の多くの ことはもっと難しいかもしれません。なぜなら、 X と X 上で動作するものは 非常にたくさんあるからです。このセクションでは、比較的上級者向けで紛ら わしい状況をいくつか押えます。 10.1. ライブラリと X アプリケーションのコンパイル あなたがよくできた Linux のディストリビューションをインストールしてい て、現状に満足しているのならば、より後に、またいじくりまわしてインスト ールするのが好きならば、より早くはなりますが、いつかはあなた自身でアプ リケーションのコンパイルをしなくてはならなくなる時が来るでしょう。これ は権利ではなく特権だということを忘れないで楽しみましょう! はじめに、 X といっしょにプログラムをコンパイルするときのポインタをい くつか述べます。ほとんどの新しいアプリケーション、とくに GNU のものに は configure というスクリプトがルートディレクトリにあります。もちろん あなたがソースコードをそこへ展開していたと仮定しています。このプログラ ムを ./configure として実行するとあなたのシステムについてのいろいろな 情報を自動検出します。そのあとで単に make を実行してから root になって make install すれば、プログラムをあなたのシステムに組み込めます。 configure がなかったらもうちょっといじくる必要があります。たいていの X のプログラムは Makefile を生成するために xmkmf というプログラムの実行 を必要とします。もし Makefile がディレクトリの中に見あたらなかったら、 たぶんこれを実行することで適当な設定を生成して make を実行できます。 ときには congigure スクリプトを実行するとそのアプリケーションの実行に 推奨・必要なライブラリがないと警告を受けることがあります。たとえばわた しは先日 xscreensaver をインストールして、 Mesa ライブラリがインストー ルしてあれば 3D モードがサポートされることに気づきました。このようなと きに、そのライブラリをインストールしたければ、まずあなたの Linux ディ ストリビューションの CD などのインストールメディアの中でそのライブラリ を探してみましょう。ライブラリをコンパイルしようとしたときに起きるたく さんのトラブルを避けられるかもしれません。 ライブラリをコンパイル・インストールして利用できるようにしたら X プロ グラムのインストール元のディレクトリに戻り config.cache ファイルを消し て、configure スクリプトを再び実行することができます。うまくいけばあな たがインストールしたライブラリを検出してくれるでしょう。ときにはうまく いかないときもあり、そのときは動作するようにいじくる必要があります。こ のような事態は Linux ファイルシステム標準をきちんとサポートしていない ライブラリをネットからダウンロードしてきたときにときどき起こります (た いていのライブラリはサポートしています)。 10.2. X セキュリティの基礎 X は All or Nothing という非常に単純なセキュリティモデルにもとづいてい るとしばしばいわれます。そのとおりなのです。 X は暗号化によってある程 度洗練されたセキュリティを使うように設定できますが、これはこの HOWTO の範囲外です (いまのところは)。以降の議論ではユーザはいかなる暗号化も 利用していないと仮定します。 まず第一に、 X のプログラムをコンパイルするとき (に限らず他の場合にも) 単純なルールに従うよう努めなければなりません。必要ないかぎり root にな らないようにしてください。一般ユーザで ./configure && make (configure スクリプトがなければ make だけ) を実行します。そして root 権限でインス トールするために su -c "make install" とタイプしてコマンドを実行し、プ ロンプトに root のパスワードを入力します。この方法ならば root でログイ ンする必要はなく、たったひとつのコマンドを root で実行するだけで、通常 のユーザプロンプトに戻ります。これがスマートに、安全にソフトウェアをイ ンストールする方法です。 第二に X のソフトウェアを root で実行することについて考えます。 X は本 質的にあまりセキュアではありません。ですから特定の Linux ボックスのセ キュリティが主要な関心であるならば X は一切インストールするべきではあ りません!そうはいっても、かなりの人々はおしゃれな設定プログラムやパッ ケージ管理ツールを X 上で動かしたがります。 X を root で起動することは 勧められません。それはよくない考えです。もっともっとよい方法がありま す! もし X のアプリケーションを root で実行したいのならば、ますあなたの通 常のユーザアカウントでログインして、そこでそのアプリケーションを起動し てください。いままでに述べたように、本当に必要でなければ root でログイ ンしようとしてはなりません。root ユーザはシステム上で、無数の方法でそ のシステムを完全に破壊することを含め、あらゆることができます。単にあな たの xterm といったアプリケーションの中で su -c "glint -display :0.0" のようなコマンドをタイプすればデスクトップ上にウィンドウが開きます。こ のときひとつのウィンドウだけが root 権限で動いています。デスクトップ全 体ではありません。よりセキュリティを高めるために、root で実行するプロ グラムについては絶対パス名を使うことも考えてください。 ssh と ssh-agent の愛好者のためのテクニックを Tomasz Motylewski から教 えていただきました。以下の行を /usr/X11R6/lib/xinit/Xclients ファイル に追加してください: eval "exec ssh-agent fvwm${FVWMVER} ${FVWMOPTIONS}" > "$HOME"/.FVWM${FVWMVER}-errors 2>& つまり、標準の fvwm${FVWMVER} ${FVWMOPTIONS} コマンドを先程のものと置 き換えてください。これはウィンドウマネージャーを ssh-agent の子プロセ スとして起動するための指定です。それから、 ( /.ssh/identity ファイルに RSA 識別鍵をお持ちであれば) ssh-add > /dev/null を xterm のセッション から実行してください。これが動作すれば、全ての X のウィンドウにおいて そのユーザは認証されているはずです。 これは読者からの提案であり、現時点では筆者は ssh を使った経験はない点 に注意してください。したがって、これは読者の皆さんの責任において試して ください! 最近の Linux ディストリビューションでは setup やその類のプロ グラムで ssh の設定を自動的に行えます。つまり、 ssh の設定についてはあ まり心配する必要はなく、どのように動作するのかを理解すればかまいませ ん。 10.3. X の許可に関する詳細 X のユーザ認証における謎の代表例は、多くのユーザが X で出会うセキュリ ティの問題でしょう。Tomasz Motylewski さんが以下の説明を説明してくれま した。これは問題をとてもうまくまとめています。 「…XFree86 のデフォルトの設定では、``startx'' で始まる X セッションは ローカルホストから接続している全てのユーザからのコマンドを受け付けま す。もしあなたがユーザ 1 として X を起動しており、ユーザ 2 としてリモ ートログインしていれば、ユーザ 2 はキーボードとデスクトップに完全にア クセスすることができます (以前、私の友人が冗談で cron コマンドを設定 し、1 時間ごとに私の X のデスクトップのダンプを彼に送ったことがありま した。私は 2 週間もそれに気づかないままでした!)」 これはあまりいいことではありませんが、不幸なことにほとんどの読者がまさ にこの問題を抱えています。Tomasz さんは単に startx を実行するのではな く、xdm を使ってログインしているのならば (この HOWTO の前の部分で詳し く説明しています) これはあまり問題にならないことを指摘しています。とい うのも、 xauth プログラムがアクセスを制御しているからです。 xhost コマ ンドを実行することにより、あなたの X セッションに誰がアクセスできるの かを調べることができます。 xhost コマンドの出力に含まれるホストの全て のユーザは、あなたのキーボードとスクリーンにフルアクセスすること許可さ れます。 コマンドラインから X を安全な形で起動したいなら、設定に以下の修正を加 える必要があります。まず startx (たぶん /usr/X11R6/bin/startx にありま す) を修正し、最後の行の xinit $clientargs -- $serverargs を exec xinit $clientargs -- $serverargs -auth ~/.Xauthority に変更します。 また、次に .xinitrc またはシステム全体用の /usr/X11R6/lib/xinit/xinitrc (このうち実際に使われている方。たぶんホー ムディレクトリにある方でしょう)を編集し、ファイルの最初に以下の記述を 加える必要があります: # if Xserver has been run with "-auth ~/.Xauthority" option this will # prevent other users on your machine to connect to your X server # unless you allow it explicitly using xhost +host or give them # your ~/.Xauthority file. xauth generate $DISPLAY . trusted 常に気を配り、自分が設定したセキュリティを xhost を実行して確認し、全 てが正しく動作していることを確かめてください。 11. 関連図書とその他の情報源 X に関しては、豊富な情報が色々なところにあります。あなたが今使っている コンピュータの中、インターネット、お気に入りの本屋さんに並んでいる優れ た書籍などです。以下に記した情報源をいくつか試してみてください。私が 使ってみてとても便利だったものですから、おそらく皆さんにとっても、大変 役に立つと思います。 o Linux や X 、その関連項目についてさらに情報が必要な方は以下のサイト をあたってみてください。 Linux Documentation Project o は X に関するありとあらゆる情報が集まるところ です。 o は各種ウィンドウマネージャー用のテーマの総 本山です。 o X コンソーシアムのサイトは ですが、もしかする と、以下の URL に移動しているかもしれません。 o XFree86 は にあります。 o オライリー社の X シリーズ。 X に関する決定的な書籍については以下の サイトを見てください。 o X 上で TrueType フォントを使うときの情報がさらに必要なときは、 を見てください。 o X, xterm, XFree86 や、皆さんがいつも使っているその他のクライアント に関するオンラインマニュアルはとても役に立つし、たくさんの情報が詰 まっているので、強くお勧めします。「人に聞く前に、マニュアルを読 め」とは、よく言われることです。 o Remote X Apps MINI-HOWTO は、ローカルクライアントやリモートクライア ントの、X 上での実行方法を知るには大変役立ちます。 o Linux での統合デスクトップ環境については を忘れずに見てください。これらはだんだん 一般的になってきています。