*BSD/PC-UNIX/Linuxにおいては、ログインシェルでCLIもよいですが、それにしても仮想ターミナルを複数利用出来た方が便利な場合もあるでしょうし、積極的にGUIを好む場合もあるでしょう。
ここでは、NetBSDにおけるX Window Systemとtwm、jwm、Openboxといった各種ウィンドウマネージャやKDE/GNOME/Xfce/LXDEといった統合デスクトップ環境、これらの設定方法などについて記します。
NetBSDの公式リポジトリには、既にGNOME2、KDE3.5、KDE4、Xfce4といった統合デスクトップ環境の他、数多くのウィンドウマネージャがあります。
また、後述のように、ちょっとやってみたところ、非公式ながらwipにあるLXDEも本家からPCManFMの最新版を持ってくるなどすれば、NetBSDで使用するにあたっても、ほぼ、仕上がっているようにも見受けられますし、GTK採用のLXDEからQTへの移行に伴い、後継となるLXQTも収録されています。
NetBSDでは未だ非公式なLXDEを試用、というか、使用している内、気づけば、wipには、一通り揃っていそうなMATEと仕掛かり始めた感じのCinnamonも追加されています。
後日(2016年01月〜02月)、更に、気づけば、wipに、LXQt、Luminaが。。。何れも後述していますが、LXQtはインストールできておらず、Luminaは、とりあえずインストールはできたものの、ライブラリに起因して起動できず、一方、前回あったCinnamonはなくなっていましたが、MATEはインストールでき、条件付きではあるものの、起動や利用もできるようになっていました。
dynabookのOSをあれこれやった後、HDDを既にNetBSD+Xfce4をクローニングしてあったSSDに入れ替え、後述の方法でwipにあるLXDEを入れようかと思いつつ、何気なくバイナリのリポジトリをのぞいたら、LXDEがある。。。
調べてみると2016年07月12日リリースされた模様のpkgsrc-2016Q2でLXDE 1.0やMATE 1.14.0などが正式登録されたとのこと。
両方とも入れてみたところ、後に入れたMATEはインストールしただけですんなり利用できましたが、LXDEは、先走ったりした影響もあったりでPCManFMの日本語化以外にも、いくつか追加作業が。これについては、別ページにアップ予定下記リンク先参照。
X Window Systemは、1980年代に開発されたUNIXにおいてウィンドウマネージャやこれをベースとして機能する統合デスクトップ環境を使用する際には必須の基盤で*BSD/PC-UNIX/Linuxでは、これを利用しています。
過去の経緯からX.orgとXfree86という2つの実装があり、バイナリエミュレーションの為など、場合によっては、併用するケースもあるようです。
先のインストール手順6で[a: Full installation]を選択していれば、X Window Systemも含まれているのでログインシェルのコマンドライン上で[xinit]やそのラッパである[startx]として[Enter]キーを押せば、デフォルトのtwmが起動、表示された内の[login]と表記のある方の端末(仮想ターミナル)で(/bin/shの場合、)[exit]すれば終了してシェルプロンプトに戻ります。
twmは、縦横にウィンドウを並べるタイル型ウィンドウマネージャの1つで他にもこのようなタイプのウィンドウマネージャは、dwmなど複数あり、仮想ターミナルを複数開くことができ、もちろん、インストールしてあってマシンスペック上、無理がなければ、端末から実行コマンドをタイプすることでGIMPやLeafpad等々といったソフトウェアも起動させ、利用することができます。
ウィンドウマネージャには、タイル型の他にも、近年、より、一般的なOpenboxやFluxboxなどのウィンドウを重ねることができるスタック型、更により近代的で一般的となったコンポジット型と呼ばれるウィンドウマネージャは、Linux/*BSD/PC-UNIX用のGNOMEやKDEといった統合デスクトップ環境のベースとしても使われており、Windows VistaやMac OS Xもコンポジット型ウィンドウマネージャが採用されています。
ウィンドウマネージャよりも、これをベースに機能増強している統合デスクトップ環境の方が、何をするにしても簡単なのは言うまでもありません。
よってNetBSDに限りませんが、どのウィンドウマネージャ、もしくは、デスクトップ環境にするかは、好みや用途、または、マシンスペックに応じて選択すると良いでしょう。
ただ、既に気づいたかもしれませんが、インストール時には日本語キーボードを指定及び使用できたし、ログインシェルでもwscons関連で日本語キーボードに設定したにも関わらず、(シェルの上にのっている汎用的な別物なので)X上では、別途キーボードの設定が必要となります。
Xのキーボードの設定は、次のように行なうことができます。
この時点では、英語キーボードであるはずなので[=](イコール)を入力したい場合には、[^]、ダブルクォーテーションを入力したい場合には、[*](アスタリスク/[Shift]+[:](コロン))、[:](コロン)を入力したい場合には、[Shift]+[;](セミコロン)とします。
その後、(システムでもよいですが、そこまでしなくても)デスクトップを再起動すれば、デスクトップ上で日本語キーボードを使える状態になっているはずです。
先ほど「[Identifier "Keyboard0"]と[driver "kbd"]の2行から成る方に」と書きましたが、これは、[xorg.conf]の冒頭[Section "ServerLayout"]にある設定値が、各[Section]の["Screen"]や["InputDevice"]の["Idetifier"]の設定値にあたるようで、これが一致していないとディスプレイやキーボード、マウスの設定が反映されない仕様に変更となった模様(少なくとも2015年03月時点)だからです。
ついこの間までは。。。というくらいのスパン、そしておそらく6.1.5からだと思われますが、以前は、["Screen"]や["InputDevice"]の各[Section]において["Idetifier"]を任意の名称で追記することも[/etc/X11/xorg.conf.d/keyboard.conf]を作成してキーボード用の[Section]を追記することも可能でしたが、現在、それを行なうには、[Section "ServerLayout"]にある設定値も併せて変更する必要があるようです。
こうした挙動になってからは、["Idetifier"]の設定値が一致しない状態で編集してあるとエラーも出ずに反映されないか、[Cannot open display "default display"]などのエラーが出て途方に暮れることになるので注意が必要です。
NetBSDのパッケージ管理システムは、バイナリベースとソースコード情報ベースの両方についてパッケージのインストールやアンインストールを含むパッケージ管理を簡単に行なうことができるpkgsrcです。
ただ、ここでは、以降の説明における便宜上、コンパイル済みのバイナリパッケージのインストール方法のみを記すものとし、インストール以外の方法やソースコード情報ベースのパッケージ管理については後述するものとします。
NetBSDのコンパイル済みバイナリパッケージ用のパッケージ管理システムには、pkg_*とpkginがあり、pkg_*もいろいろな管理コマンドを追加インストールすれば、多機能ですが、pkginは、これをインストールするだけで豊富な機能を即実行できる点でより重宝するので適宜、使い分けるなりするとよいでしょう。
それぞれ詳細は、リンク先を参照いただくとしてpkg_*の内、インストールには、[pkg_add]を、pkginでは、[pkgin install]/[pkgin in]を使います。
NetBSD/i386のインストーラ[sysinst]を使ったインストールで[Full installation]を選択した場合やXを含め、tarballをFTPなどからダウンロードして展開した場合などX Window Systemがインストールされていれば、すぐにウィンドウマネージャや統合デスクトップ環境を使用することができます。
他のウィンドウマネージャや統合デスクトップ環境を利用したい場合には、まず、好みのものをインストールします。
尚、NetBSDとCUPSにあるようにNetBSDにおいてGNOME2/Xfce4/(執筆時点では、まだ非公式のlight-desktop、いわゆる)LXDEやウィンドウマネージャなどで印刷にCUPSを利用しようという場合、デスクトップ環境自体、もしくは、各種ソフトウェアの印刷ダイアログを対応させる為に、インストールは、バイナリでなく、若干の修正を加えた上でpkgsrcのソース情報から行なう必要があり、KDE4では、この点については、その必要はありませんが、執筆時点では、別の理由でpkgsrcのソース情報からインストールする方が無難でした。
次にX Window System用の構成ファイル[/etc/X11/xinit/xinitrc]を[~/.xinitrc]としてコピーし、[~/.xinitrc]のデフォルトのtwm部分含む以下の数行をコメントアウトするなりして代わりに先にインストールしたウィンドウマネージャやデスクトップ環境を起動するコマンド(JWMならjwm、Openboxならopenbox-session、Xfce4ならstartxfce4、GNOMEならgnome-session、KDEならstartkde...etc.)を追記しておきます。
その上でログインシェル上で[xinit]や、このラッパである[startx]と入力して[Enter]を押せば、[~/.xinitrc]で指定したウィンドウマネージャや統合デスクトップ環境が起動します。
尚、ログイン後、そのまま、すぐにデスクトップを開きたい場合には、[/bin/sh]の場合、ログイン時に読み込まれる構成ファイルの1つ[~/.profile]の最後の行などに[startx]と追記しておきます。
このようにしておくとログイン後[~/.profile]を読み込み、[startx]され、Xウィンドウシステム起動時に[~/.xinitrc]が読み込まれ、指定したウィンドウマネージャや統合デスクトップ環境が起動するようになります。
一方、グラフィカルログインを使いたい、複数のデスクトップ環境を切り替えて使いたいという場合には、これらの設定の代わりに後述のログインマネージャ・ディスプレイマネージャを使います。
JWM/Joe's Window Managerを起動した場合、画面左下の[JWM]と書かれたボタンをクリックし、[Exit]メニューを選択すると[Exit JWM]、[Are you sure ?]といったポップアップが表示されるので[OK]をクリックすれば、シェルプロンプトに戻ります。
Openboxを起動した場合には、デスクトップ上で右クリックすれば、メニューが表示されるので[Exit]を選択、ポップアップが表示されたら、[OK]でシェルプロンプトに戻ります。
(尚、Openboxのスクリーンショットは、手作業で日本語に書き換えた後なのでメニューが日本語になっていますが、インストール直後は、英語ですし、仮に日本語にしていても後述の設定をしないと日本語は正しく表示されません。)
ただし、デフォルトのtwmやJWM、Openboxなどのウィンドウマネージャ、また、統合デスクトップ環境でもXfceでは不要ですが、GNOME、KDEでは、[xinit]や[startx]とする前に[dbus]と[hal]というデーモンが必要となります。
[/etc/rc.d]に[/usr/pkg/share/examples/rc.d]から[hal]と[dubs]をコピー、次回以降のマシン起動時に常にこれらのデーモンを実行するように[/etc/rc.conf]に[dbus=yes]、[hal=yes]を追記、今回再起動せずに済むように[/etc/rc.d/dbus onestart]、[/etc/rc.d/hal onestart]として一時的に、これらのデーモンを起動します。
NetBSDにおいては、そうしておかないとGNOMEもKDEもエラーとなり、例えば、KDEの場合、[$DISPLAY is not set or cannot connect to the X server.]のようなエラーが表示され、起動できません。
複数の統合デスクトップ環境やウィンドウマネージャをインストールした場合、起動するデスクトップを変更する度に、いちいち~/.xinitrcを書き換えるのは手間なので何れも汎用でデスクトップの切り替えにも便利なxdm、lxdm、gdm、kdm...etc.といったログインマネージャ/ディスプレイマネージャを利用するとよいでしょう。
xdm以外のlxdmはLXDE、gdmはGNOME、kdmはKDEのオリジナルかつ標準採用しているディスプレイマネージャですが、汎用なので相応のライブラリ群はインストールされる場合もあるものの、それらデスクトップ環境自体をインストールしていないケースでも利用可能です。
NetBSDにおいては、少なくともFull Installしてあれば、xdmは標準でインストールされており、lxdmは、今のところリポジトリにはなく、gdm、kdmは、必要に応じてインストールして利用します。
後からインストールしたログインマネージャのデーモンは、[/usr/pkg/share/examples/rc.d/]から[/etc/rc.d/]にコピー、[/etc/rc.conf]に、[xdm=yes]、[gdm=yes]、[kdm=yes]の内、必要に応じて、いずれかを追記し、マシンを再起動するか、ログインシェルからなら[/etc/rc.d/*dm start](*には、適切な文字列を入れる)とします。
ちなみにデスクトップ上で[/etc/rc.d/*dm start]とするとエラーとなります。
xdm、lxdmは、まだ使ったことがありませんが、gdmはこれだけで利用できるようになる一方、既にインストール済みのKDEがセッションメニューに自動登録されず、kdmでは、後述のように、それ以外のちょっとした設定が必要とはなるものの、インストール済みのウィンドウマネージャやデスクトップ環境全てが自動登録されました。
(実害はないので放置していますが、kdmのセッションメニューに起動できないMetacityや見慣れないMWMもあります。)
ひょんなことから、後日、xdmを使ってみることに。
xdmは、既に/etc/rc.d以下に存在するため、利用にあたっては、/etc/rc.confに[xdm=yes]を追記(もちろん他のdmはあっても無効に)してマシンを再起動、もしくは、ログインシェル上で[/etc/rc.d/xdm onestart]/[/etc/rc.d/xdm start]するだけでグラフィカルログイン可能です。
追加のライブラリなども不要なため、xdmは、gdmやkdmと違ってリソースや他との兼ね合いなども気にすることなく、すぐに利用することができます。
ただし、gdmやkdmと違い、xdmには、/etc/X11/xdm以下の各種ファイルを使ってスクリプトを仕込むことができる可能性はありますが、少なくともデフォルトでは、デスクトップの選択メニューやマシンの再起動、停止メニューはありません。
セッション設定については、/etc/X11/xdm/Xsession、~/.xsessionなどで行なうことができます。
この時、少なくともユーザーごとなら~/.xsessionを使うわけですが、単に~/.xinitrcのシンボリックリンクとしてしまうとちょっとした不都合があるので他にも方法はあるかもしれませんが、例えば、~/.xsessionを新規作成の上、~./profile(などの利用シェルの初期設定ファイル)と~/.xinitrcを読みこませるのが賢明でしょう。
当然、管理者がいるとか、個人所有のPCなのかなど環境にもよるわけですが、通常、環境変数PATHの設定はしないものと思われる~/.xinitrcのシンボリックリンクにしてしまうと、/sbinにあるshutdown、poweroff、rebootなどを端末から実行する場合もフルパス指定する必要があり、グラフィカルなログアウトメニューなどにおいても、これに起因して機能しない可能性があったりとシェルの設定ファイル内容も反映させておく方が無難と思われるからです。
尚、前述のようにxdmの利用自体は、とても簡単なわけですが、デフォルトでは、グラフィカルログイン時とログイン後のデスクトップ上に端末(XConsole)が表示された状態になっています。
これを表示させない方法もいくつかあるかもしれませんが、最も素直で標準的な方法と思われるものとしてここにある/etc/X11/xdm/xdm-configと/etc/X11/xdm/Xresourcesの設定を一部コメントアウトする方法があります。
この場合、[!](エクスクラメーションマーク)はコメントアウト用の記号です。
よって自身は、再起動やシャットダウンの運用も加味して以下の対策を講じた上、kdmを使用することにしました。
kdmにおいては、ログインシェルからstartx/xinitした時と異なり、kdm経由だと日本語表示されず、日本語キーボードもきかなくなる(~/.xinitrcを読み込んでいない模様)で~/.xinitrcのシンボリックリンクとして、もしくは新たにインプットメソッド関連やLANGを設定するか、~/.xinitrcのシンボリックリンクとして~/.xprofileを作成(して解決)する必要がありました。
さらに各デスクトップのログアウト後、素直にkdmに戻れず、ログインシェルに落ちて/etc/rc.d/kdm restart、時には、ログインシェルもログアウトしてしまい、再ログインする必要に迫られたことがあり、この対処として[/usr/pkg/etc/kdm/kdmrc]の[#TerminateServer=true]のコメント記号([#])を外して当該設定を有効にして(ここ重要)マシンを再起動しておく必要がありました。
尚、個人用途の場合、半ば当たり前のように思われることも珍しくないであろうデスクトップ(のグラフィカル画面)上からのリブートやシャットダウンは、実はセキュリティ上、芳しくないこと、また、リモートログインで複数人がマシンを使う場合には、ありえないことなどから、一般ユーザーアカウントによるこれら操作をデフォルトでは行えないように(設定しようにも難しく、または、わかりにくく)なっていたり、バージョンによって使用する機能が異なるためにその方法も異なり、調べるにも不明瞭なケースなどがあったりしますが、少なくとも検証時点においては、gdm、kdmともにログインマネージャでは、デフォルトでリブート、シャットダウンができるようになっています。
ちなみにKDE4は、デフォルトで一般ユーザーアカウントによる再起動・シャットダウンができるようになっており、GNOME 2/Xfce4/LXDEでは、何らかの設定を要しますが、何れも仮想ターミナルからsudo(やsu)を使えば(これらを導入できる・rootパスワードを知っている人であれば)、これらを行うことはできるようになっています。
よって個人所有のPCにNetBSDをインストールした場合、gdmやkdmなどのディスプレイマネージャを使えば、GNOME/Xfce/LXDEでは、端末から、もしくは、ログアウト後、ディスプレイマネージャから再起動やシャットダウン、KDEでは、これに加え、KDE自体からマシンのリブートやシャットダウンを行なうことができるわけですが、ひと手間かかるものの、ログアウト後、ディスプレイマネージャからリブート・シャットダウンする方法は、デスクトップの種類に関わらず、かつ、GUIとして統一感ある方法で運用できます。
さてデスクトップ。。。といきたいところですが、あとちょっとだけ我慢。
というのも、この時点では、日本語表示に必要なフォントがなく、日本語があると、いわゆる豆腐文字化けした状態になり、表示されない場合があるので念の為、(NetBSDのリポジトリにもフォントのバイナリパッケージも結構ありますが、)[ipafont]や[ipaexfont]などをインストールしておくとよいでしょう。
更に日本語を使うことをXに伝えるために環境変数[LANG]に[ja_JP.UTF-8]を設定します。
GNOMEやXfce(は、これだけで日本語表示され)、JWMやOpenbox(などのウィンドウマネージャではメニューを日本語化したい場合、手作業で行なう)などは、これでよいのですが、KDEについては、KDE3.xならkde-i18n-ja-3.x....(アイ18エヌ)、KDE4ならkde4-l10n-ja(エル10エヌ)などバージョンごとの言語パックを併せてインストールしておく必要があります。
また、日本語入力するためには、インプットメソッドと日本語辞書を含む日本語変換パッケージが必要となります。
これもNetBSDのリポジトリには、いくつか該当するパッケージがありますが、ここでは、scim-anthy(SCIMというインプットメソッドとAnthyという日本語変換パッケージ)をインストールしておくことにします。
この時、[~/.xinitrc]ファイルにscimなどのインプットメソッドを使用するにあたり、[XMODIFIERS]、[GTK_IM_MODULE]、[QT_IM_MODULE]といった各種環境変数及びscimデーモンをバックグラウンドで起動する([scim -d &])設定をしておく必要もあります。
この[scim -d &]の[-d]オプションはデーモンとして起動する為のものですが、このオプション付きでこれを実行するプロセス自体をバックグランドで実行する為に[&]をつけています(、が、twmでは[&]を付けてもjwmのように付けるとエラーとなるものもあるので注意が必要です)。
これでログインシェルから[xinit]や[startx]を起動すれば、日本語環境を利用可能な(ウィンドウマネージャや)デスクトップを起動することができるようになります。
前述のようにログインマネージャにkdmを使う場合、特にKDE以外のデスクトップ環境を日本語対応させるには、相応の~/.xprofileを作成する必要があります。
ウィンドウマネージャについては、以前、やってみたJWMとOpenboxのスクリーンショットを載せてみました。(Fluxboxも試したものの、元もスクリーンショットも今はありませんが、Openbox同様使い勝手は良かったです。)
統合デスクトップ環境については、GNOME2を、Xfceは、バージョン4を、KDEは、4と併せて再確認の為、(他の仮想マシンに)3.5もインストールしてみました。
KDE4は、基本構成以外にKDE4用アプケーションも数多くインストールされますが、GNOME2、Xfce4(、KDE 3.5)は、何らかのアプリがまとまったパッケージがあるのかは未確認も先のパッケージのインストールにおいては基本構成であり、各デスクトップ環境標準採用のアプリが全て入るわけではありません。
よってKDE4/GNOME2/Xfce4を全てインストールした場合、Xfce4用のアプリケーションファインダなど一部入りますが、GNOME2用の追加アプリはなく、KDE4に追加でインストールされるものは限られる一方、GNOME2/Xfce4には、それぞれKDE4の相当数の標準アプリケーションパッケージもメニューに登録され、DolphinやKonsoleなど一部を除き、利用可能です。
尚、NetBSDで以前も今回も導入してみたGNOME2/Xfce4は、何れもバイナリだけでインストールが完了しました。
KDE 3.5も、これを再確認するため、他の仮想マシンで改めてインストールしたところ、やはり、バイナリだけで完了しますが、これも前回同様、KDE 3.5については、言語パックkde-l18n-ja...を入れても何かフォント系のパッケージが別途必要なのか、スクリーンショットにはないものの、今となっては?言語パックの限界なのか?エディタやブラウザ上の文字は完全対応していますが、メニューやメッセージなどにおいて「漢字」の部分だけがことごとく、いわゆる豆腐文字化けしています。
ソースからコンパイルした場合、これが解消されるのか否かについては、未確認です。
KDE4は、仮想マシンでバイナリから、物理マシンでは、(GNOME2、Xfce4はバイナリ、KDE4は)ソースからコンパイルしてみました。
KDE4をソースからインストールすると無事完了するものの、起動に数分(3分くらい)、起動後も数分、CPU100%、RAM70%強(conky)を消費し、その間、操作ができず、操作できるようになった後も右クリックなどは軽快、KDEアプリケーションメニューを含むステータスバー(KDEパネル?)上のデフォルトのランチャなどが開くまでに長いと数十秒かかる(が開いてからは軽快)などKDEパネルが今のところ実用に耐えません。(右クリックで[コマンドを起動]からKDEの[検索と起動]を選べば、代用は可能。)
ただ、前回確認した際は、バイナリからインストールしてもソースからインストールしても、こんなことはなかったし、同じ物理マシンでマルチブート構成として入れているFedora(Linux)にもKDEは入っており、当初、こうした著しいリソース消費はありましたが、なぜか、作業しつつ、再起動しているうちに改善され、以後、そうした状況は起きず、各種入れているデスクトップ環境の中で作りが豪華な分、最もリソースは消費するものの、軽快に動作しており、ネット検索してみても同じような事象は確認できませんでした。
一方でログインマネージャとして使っていたgdmには、セッションのメニューにKDE4が登録されませんでした。
Fedoraでは、kdmを使っていて過不足なく、自動的にメニューに追加されていたこと、リソースの異常な消費がレアケースである模様、何らかの環境上の過不足があるにしても、kdmに変更すれば、解消されるかもしれないと思い、やってみたところ、期待通り、セッションのメニューも一通り表示され、リソースの異常消費問題も解消しました。
当初、KDE4もGNOME 2、Xfce4同様、仮想マシンで検証した際には、バイナリをインストールしてみました。
すると多くのパッケージが入る一方、肝心なkde4パッケージを含むいくつかが、リポジトリ上にあるにも関わらず「リポジトリ上のバイナリが利用不可」としてエラーとなった一方、機能が利用できたりできなかったりという状況はあるものの、KDE自体は、起動するという状況に。
しかし、その後、単に後述するソースコード情報からコンパイル(/usr/pkgsrc/meta-pkgs/kde4に移動してmake install clean)したら、依存関係上、バイナリではじかれた全てのパッケージがインストールされました。
pkginをupすべきだったのか、はたまた、フラグ設定か何かを見落としていたなど自身の使い方の問題か、もしくは、ライセンス上、バイナリ配布が許容されないか、コンパイルオプション用の設定ファイル[/etc/mk.conf]はデフォルトのままながら、デフォルト設定のコンパイルオプションが必要だったのかも?しれません。
ただ、KDE4ではKWriteやKCalcなどが動作する一方、KonsoleやDolphinが起動しない、パネルやウィジェットの追加もできない、右クリックによるショートカットメニューにある[コマンドを実行]はできるので常にそこから操作。。。という状況は相変わらず、再ログインしてもマシンを再起動しても同じ、Akonadi関連のプログラムのいくつかがエラーを吐くので[akonadictl stop]で止めてみるも意味はないようでホームディレクトリはcore dumpの嵐。。。
もしかすると仮想マシンのCPU(シングルコア)やRAM(768MB)、ディスク容量不足(残り3GB強)か?、はたまた、KDE4は、初めから[/usr/pkgsrc/meta-pkgs/kde4]で[make install]した方が良のか?と思い、LVMを試そうとして手違いで失敗、パーティションを壊してしまい、当該仮想マシンでの検証が不能に。
既にNetBSDマシンは2台あるものの、メインマシンにも入れる予定だったので、これを機にインストールし、前述の検証も踏まえてやってみることにしました。
一方、以前から、NetBSDにLXDEはないのかな?なんて、うすらぼんやり思ってはいたのですが、テストは行われていたようです。
執筆時点も尚、次に挙げるドキュメント自体の更新は2年ほど動きはない模様もNetBSDにLXDEの実装を試みるこれらのページを見つけました。
最初からガッツリ読む気にはならず、バイナリを見るとlxsessionだけはあり、極々淡い期待からそれだけで起動したらラッキーと思いましたが、そう簡単にいくはずもなく、しばらく放置していたものの、後日、やっぱり、やってみることに。
とりあえず、Openboxのバイナリもあるし、lxsessionに加えて、これをインストールしたら、何かの魔法がかかってできちゃったらラッキー。。。なんてまたもや淡い淡い期待を寄せてみましたが、当然、それだけじゃだめということで、もう少しちゃんと向き合ってみることに。
というわけで、wipってどこにあるの?というところから始めたらイレギュラーというべきか、正攻法というべきか、[netbsd-light-desktop-default-settings]、[netbsd-light-desktop-artwork]、[netbsd-icon-theme]などを使わず、先のリンクの方法とはズレた?いや、むしろ原点に戻った?感じに。。。
PCManFMの不具合で壁紙設定ができず、fehを使ったものの、とりあえずながら、意外とあっさり、できました。
そこでこれを含め、どこに公式に至らない問題があるのかと、いろいろやってみた結果、単にPCManFMの不具合が全ての原因なんではないかとバージョンを調べてみるとバイナリもpkgsrc(wip)からmake installしても、なんとも古いPCManFM 0.1.8.9(2006年01月30日リリースの模様)という初版リリース間もないベータ版が使われていました。。。
そりゃ仕方ないでしょベータ版だもんね。。。
そんなPCManFM 0.1.8.9を当初使うに至るまでの具体的な流れと課題は、次の通りです。
スクリーンショット(あえて壁紙は、lxde-blue.jpgやlxde-green.jpgにはしなかった)のように見栄えはそれなりにできたものの、PCManFM 0.1.8.9に起因すると思われる要因により、いくつか、課題が残る結果に。
ここまでに追加で壁紙設定用にfeh、デスクトップアイコン用にxdg-utilsのバイナリ、ゴミ箱の処理などにgvfs、別途、模索中に必要なのかも?とlibfmをソースからインストール。
pkg_selectは、make installもmake updateもキーを1つ押すだけ、pkgsrcの検索もできてとても便利です。
また、既にdbusは有効になっており、famは近年、これを改善したgaminを使う方が賢明なようなのでgaminを使っていますが、これはデーモンの起動指定をする必要はない模様、famに関連していたと思われるrpcbindもgaminには不要なようです。
autostartの件については、LXDEの標準ウィンドウマネージャであるOpenboxの仕様上、[~.xinitrc]で[openbox]ではなく[openbox-session]とすれば、Openbox用の[autostart]が有効にはなるのですが、当然、lxde-sessionが起動するわけではなく、lxdeののautostartも機能せず、これを機能させるにはどうすればいいのか。。。
ちなみにLXDEではウィンドウマネージャを変更することも簡単にできます。
今回の件とは別に過去、PCManFMのバイナリのpkg_addもソースコードのmake installもできず、諦めたことがありますが、今回はmake installもmake updateもpkg_addもなんの問題もない一方、インストールできたらできたでハマる。。。
ただ、pcmanfmを検索してみるとPCManFM 0.1.8.9は、相当古いらしいことが今更ながら判明。。。これを最新にするだけで解決するんじゃないか?(後述のように、まさにそのとおり)。
また、LXDEに限らず、よくわからないけど、KDEの問題だよねというのが、これ。
ThunarやNautilusは良好、DolphinとPCManFMが不調。。。しかも、DolphinもPCManFMのオプション付き同様、一瞬表示されて消える現象は同じ。。。なんだろ?やっぱり、単に仮想マシンのスペック不足?
尚、先の構成ファイルがどれかがわかり、正常に機能すれば、なんとかなるんじゃないかと思えるものは、これ。
ちょっと調べれば、なんとかなるんじゃないかと思えるものは、次の通り。
これは、状況的にもしようがないよねと思うのは、これ。
というわけで執筆時点最新のPCManFM 1.2.3をsourceforge.netからダウンロードして[/usr/local]に展開、[./configure --sysconfdir=/etc](/usr/pkg/etcにすべき?それとも今回の場合、/usr/local/etc?)、[make]、[make install]したら、あっさり、数々の不具合が解消しました。
これに際し、仮想マシンも新たに改めてNetBSDをインストール、wipをダウンロードして/usr/pkgsrcに展開、LXDE関連もインストールし直すことに。
LXDEの標準パッケージは入れておこうということで、これらをwipからインストールしました。
lxmusicのインストールにおいて/etc/mk.confにNO_CHECKSUM=yesを追記しました。
更にLXDEが標準採用するXfburnをwipから、/usr/pkgsrc/editorsにあるLeafpadをmake install。
尚、実際には、[make install]もボタン1つで済み、どれがインストール済みか一目瞭然で便利なのでpkg_selectを使いました。
ちなみに[lxde-common]のインストールで少なくとも、これらのパッケージが依存関係上、インストールされました。
=> 後日、物理マシンに入れようと直近のスナップショット[pkgsrc-wip-20150512-snapshot.tar.gz]を展開したら追加されたパッケージが1つ、パッケージ名が変更されていたものが1つ、インストールできなくなっているものが1つありました。
=> 逆に[pkgsrc-wip-20150512-snapshot.tar.gz]では、lxmenu-dataもlxde-commonの依存関係上、インストールされたので、これを改めてインストールする必要はありませんでした。
次にhttp://lfsbookja.sourceforge.jp/のページに張られたリンクの標準らしき、lxde-icon-theme-0.5.0.tar.bz2をダウンロード。
これを[/usr/local]に展開、パスに移動後、[./configure]、[make]、[make install]してみるとLinux用ソースだったのか、cpのオプションがエラーとなった為、NetBSDのcpのオプションに合わせ[-r]を[-R]に変更、[--no-preserve=ownership]を外した上、改めて[make install]してみると無事完了、アイコンテーマとして認識されるようにする為、[nuoveXT2]ディレクトリのシンボリックリンクを[/usr/pkg/share/icons]に張りました。
=> 後日、物理マシンに入れる際に確認してみたら(以前から既に)lxde-icon-theme-0.5.1があったので、こちらをダウンロードしました。
最後にPCManFM 1.2.3をsourceforge.netからダウンロード、[/usr/local]に展開、[./configure --sysconfdir=/etc]、[make]、[make install]。
=> [pkgsrc-wip-20150512-snapshot.tar.gz]では、最新ではないものの、PCManFM 1.1.0にバージョンアップされていたので物理マシンでは、敢えて、これを使ってみようと思いましたが、いくつかエラーがあり、やはり、sourceforgeから取得することに。
大丈夫だとは思いますが、kdmのセッションのメニューに(同時にLXDEの基盤のWMであるOpenboxがある一方で)LXDEが含まれていない場合、[/usr/pkg/share/kde/apps/kdm/sessions/]に[lxde.desktop]を他からコピー、なければ、そこにある内、似たような.desktopファイルをコピー・編集するなどして[lxde.desktop]として保存後、マシンを再起動すれば、kdmのセッションのメニューの選択肢の1つにLXDEも表示されるはずです。
また、LXDE上のパネル(タスクバー?)のアイコンが表示されない、機能しない場合には、右クリックして["Application Launch Bar" Settings]で表示されるパネルから適切なものを選択、そこにもない場合(lxde-logout/lxsession-logoutなど)は、[/usr/pkg/share/applications/]に当該コマンドなどを設定した.desktopファイルを作成し、マシンを再起動すれば、そのパネルから設定できるようになります。
NetBSDにLXDEを入れるにあたって、これら一通りの作業は、せいぜい1〜2時間もあれば、できたように思います。
とある事情からLXDEを改めて入れてみるにあたり、前回設定していなかったPKGSRC_COMPILER= ccache gcc、MAKE_JOBS= 4を設定した環境だと、なんだかんだ含めても30分程度でインストールが完了しました。
尚、pcmanfm-1.2.3をインストールする際、libfmのとあるヘッダファイルがないと言うエラーでmakeが通らないと思ったら、wip/libfmがインストールされておらず、これをインストールしようとするとPLISTのbin/lxshortcutが干渉するというエラーが出た為、コメントアウト[@comment bin/lxshortcut]、make clean後、make install、その後、pcmanfmをmake && make installすることで無事インストール完了しました。
現時点では、gdmを使っていますが、メニューリストにセッションは自動的に追加されていました。
というわけでNetBSD上でLXDEを動かしてみるきっかけになった先のNetBSD WikiのTODOで残っていたバグは一通り解消している模様ですし、あとは、TODOリストの"The key tasks to do now are:"を残すのみでしょう。
ただ、この内、Xfburnはwipには、ありますし、PCManFMのアップデートについてもバージョン1.2.3なら問題なし、[netbsd-icon-theme]、[netbsd-light-desktop-artwork]、artwork?あ、そう言えば入れてない。。。、でも、なんとかなるでしょう?から今となっては問題ないでしょう。
また、Linuxで標準化の動きがある?simple-scanも実装候補に挙がってますが、NetBSDには、既にsane-backendsとsane-frontendsから成るXSaneが公式リポジトリにあり、これらをそれぞれインストールするか、sane-frontendsに代わる新たなフロントエンドxsaneパッケージ(sane-backendsも依存関係上、インストールされる)をインストールすればよく、simple-scanを必須とすることもないでしょう。
SANEは、JWMでも簡単なスキャナ設定の手順で接続を確認することができ、各種ウィンドウマネージャはもちろん、統合デスクトップ環境でも、少なくともXfce、LXDEの場合、依存関係上インストールされるGIMPはメニューにも登録されますが、SANEについては、手作業でメニューに登録する必要があります。
アプリケーションをメニューに追加したい場合は、拡張子が[.desktop]のファイルを[/usr/pkg/share/applications]や[~/.local/share/applications]ディレクトリに、デスクトップ上にアイコンを表示させたい場合は、[~/Desktop]ディレクトリに置きます。
LXDE含め、統合デスクトップ環境ならメニューにある当該ソフトウェア上で右クリックすれば、[デスクトップに追加]/[Add to Desktop]といったメニューからデスクトップアイコンをおくこともできます。
パッケージソフトウェアをインストールすると多くの場合、[/usr/pkg/share/applications]に拡張子[.desktop]のファイルが置かれますが、これが生成されないものもあり、当該ディレクトリ下の管理が面倒になることもあるので追加で必要なものは、[~/.local/share/applications]に入れておくとよいでしょう。
今回のXSaneのように[.desktop]のファイルが自動作成されないパッケージソフトウェアがある場合には、設定値など内容が全く同じというわけでもないので既存の似たようなソフトウェアの[.desktop]ファイルをコピーして編集するのがよいでしょう。
尚、ファイル名は、自身が識別さえできればよく、任意です。
pkginのGUIは、他のデスクトップ環境用としても存在しないので、とりあえず、おいておき、guvcviewは、あってもよいとは思いますが、必須というほどでもないでしょう。
ネットワークマネージャは、LXDEプロジェクトでは、GNOMEのその名もNetworkManagerを推奨している模様。
何に使うことを想定しているのか、よくわからず、判断できないのが、gnome-system-tools及びnautilus-extensions、software-properties-gtk。。。、もしかしてGNOMEのNetworkManager用?
パワーマネージャは、TODOの中でxfce4-power-managerか代替とあり、他方、lxdmのテストが必要という課題がありますが、まず、今のところリポジトリにもwip含め、pkgsrcにもlxdmはない模様もxdm/gdm/kdmはあり、また、前述のように一般ユーザーアカウントによるデスクトップからの再起動やシャットダウンについてはセキュリティ上の議論もあって実装も容易そうで実はそうでもない状況からしてデスクトップからログアウト(機能しないボタンの存在は無視、依存パッケージが膨らむという話には目を瞑り)、gdm、kdmなどのログインマネージャから再起動、シャットダウンという運用にすれば、問題ないかと。
改めてLXDEを入れてみたところ、lxde-session-logout/lxsession-logoutによるGUIからシャットダウンや再起動ができるようになっていました。
chromiumは、wipには、ありますが、執筆時点では、make installが通らず。。。しかし、これも必須とする必要はないでしょう。(。。。と思いきやppapiもあるならという条件付きで2015年03月以降、Linuxや*BSDでGyao!を視聴したい人にとっては、wineや仮想マシン上の。。。という手もありますが、chromium+ppapiがあった方がよいかもしれません。)
よって、これらを除くと残るは、プリンタ管理と実装、加えて言うなら、PCManFMとlxsession-logoutの日本語化くらいでしょうか。
PCManFMは、国際化に対応済みで展開したディレクトリの[po/]ディレクトリ内に既に[ja.po]があるので[msgfmt]コマンドで[pcmanfm.mo]を生成、pcmanfmを展開したディレクトリ階層(今回の例では、/usr/local/直下)の[share/locale/ja/LC_MESSAGES/](なければ作成)に[pcmanfm.mo]を移動するなり、コピーするなりして再ログインすれば、PCManFMも日本語表示されるようになります。
(最近は特に問題ないとは思いますが、これは、システムのエンコードがUTF-8、パス[ja/LC_MESSAGES/]にある[*.mo]がUTF-8でエンコードされている場合の話です。)
ただ、今回、NetBSDに標準で入っているmsgfmtコマンド(/usr/bin/msgfmt)が古かったようで「msgctxt」云々という警告が出て生成された.moファイルでは日本語化に失敗したため、[/usr/pkg/bin/msgfmt](なければgettextをインストール)を使用しました。
また、稀にLXTerminalが何かの折りにフリーズすると別途、LXTerminalを起動できる一方、プロンプトが表示されず利用できないという現象がありますが、これはLXTerminal単体の話と考えて良いでしょう。
とある事情で改めてLXDEをインストールしてみたところ、以前あったようなLXTerminalの不具合は解消しており、再現しなくなっています。
プリンタ管理についても何れのデスクトップ環境を使うかに関わらず、CUPSを入れれば、各ソフトウェアにおけるGTKなどの[印刷]用ポップアップ画面で自動的にプリンタが認識され、印刷もできるでしょう。
というわけでNetBSDでLXDEが公式採用される日も近い?
と思ったら、GTKを採用したLXDEは、QTへの移行に伴い後継はLXQTとのこと。
そんなLXQTもwipにあるので試してみましたが、QTがC++で書かれており、C++はコンパイルが遅い。。。ということでMAKE_JOBS(make -jの引数を設定するNetBSDの環境変数)、ccache、distccを使ってだいぶコンパイルも速くなった気がするものの、まだ、完了できていません。(検証時点では、既存インストール済みパッケージやPLISTの干渉、ヘッダファイルのリンク漏れなど比較的単純なエラーのみでしたが、時間的に断念したものの、割とすんなりいけそう?)
あれ、いつの間にやら。。。wipにMATEが追加されてる。。。Cinnamonも追加されかけてる。。。どっちも自身としては、甲乙つけがたい最も好みのデスクトップ環境(。。。「ならMintを使え」は禁句!?)。
とはいえ、いくつかエラーの対処もしてmk.confにオプション追加もしてみたけど、Caja、Engrampa Archive Manager、Eye of MATE、Atril Document Viewer。。。などはインストールされたものの、polkitのところでコケ、パッチも作ってみたけど、三筋縄から五筋縄!?くらいは必要そうなので深追いするのはやめました。
が。。。polkitに関係ないパッケージは入るだろうと思ってやってみました。
この時、mate-mediaか何かうろ覚えですが、入れる際に、gnome系のものと干渉すると言われたため、一時的に[pkg_delete -f]で強制削除、mate-mediaだかをインストール後、改めて[pkg_add]することになったものの、他は、順調にインストールできました。
これに加え、テキストエディタPlumaもインストールできました。
残るは、これ。。。
まだ、MATEのセッションマネージャが入ってないから、このままだと起動はできない。。。
pkgsrc wipを更新、久しぶりにMATE、Cinnamonをmakeしてみようと確認してみたら、MATEはあるも、Cinnamonはなくなっている模様。
そこでMATEをインストールしてみることに。
依存関係にあるパッケージの最新版を求められるケース含め、いろいろあったものの、今回は、依存関係にあるパッケージもバイナリを生成しつつ、PKGSRC_COMPILER=ccache gcc、MAKE_JOBS=4で約2時間、割と素直にインストール完了。
早速、MATEを起動してみるとCaja含むファイルマネージャ、Pluma含むテキストエディタ、MATE Calculator含む計算機、コントロールセンター、GIMPや画像エディタなどが機能する一方、FileZillaや各種ターミナル(端末)類は一切開かず、ログアウトメニューも機能しない状態、ログを見ると主要因ではないようですがscimでつまづいている模様。
調べてみるとPKG/50294がドンピシャ、MATEだけでなくXfce4にも影響があるようで、暫定措置ではあるものの、/etc/rc.confでdbus=noとするとあり、やってみると確かに解消。
また、mate-power-managerが起動しないなと思っていたら、暫定的にdbus=noとしたことに起因したもので、これの実行には、Linuxでは、udevdとupowerdが必要、NetBSDでは、dbusとhal、たぶんupowerdが必要、upowerdについてはマシン起動時に実行されているし、halも実行されるように設定してあるも暫定的にDBUSを止めざるを得ない為、結果的にhalも実行されず、mate-power-managerを起動できないという状況に。(ただし、/etc/rc.d/hal onestartはできるので/etc/rc.d/dbus onestartと併せて実行すれば、dbus、hal、upowerdが起動済みとなり、mate-power-managerも起動し、機能させることはできます。)
よってdbusを起動させられるようになったらデスクトップ環境の中で最もお気に入りのMATEをメインにしようと思いますが、そうなるまでの間は、基本的にはMATEを、長時間使う場合でかつ頻繁に席を外すことがあるような場合は、KDEやLXQtなどQt系はどうも馴染めないのでGNOME(GNOME2)やLXDE、Xfceを使おうと思います。
尚、前述のとおり、NetBSDにおいては、現行仕様上は、dbus(とhal)が起動していないとGNOME、KDEを正常に起動することができません(ただし、GNOMEセーフティモードなどなら、起動することは可能)。
ちなみにFedoraにおいては他のデスクトップではなんともないのにMATEだけFileZillaのリモートホストのリストが表示されないのですが、NetBSDにおけるMATEではFileZillaも正常に機能します。
他方、Xfce4/LXDEでは遜色ないものの、FedoraとNetBSDをマルチブートしているマシン側のFedora/MATEとNetBSD/MATEを他のNetBSDマシンでVNC越しに操作してみるとNetBSD/MATEの方が明かに重く、遅い。。。更にオーバーヘッドがあってしかるべとは言え、Fedora/MATEでは、その違いも実感できるほどではないが、NetBSD/MATEでは、vncserver/vncviewerだと画面の更新があからさまでちょっと遅い、sshポートフォワーディングだとVNC越しに作業することは避けたいと思う程に結構遅いという状況に。。。MATEだけなのでTightVNCとTigerVNCの違いというわけでもなさげ、となると先の件も考え併せるとDBUS関連の影響なのか、それともMATEのセッション関連とNetBSDとの相性に起因するものなのか。。。?
後にDebian/MATEを試したら、やはり、重い。。。逆になんでFedora/MATEは軽いのか。。。?DebianもNetBSDもTightVNCでFedoraはTigerVNCだが、何れもクライアント(viewer)側はNetBSDのTightVNCだから、あるとしたらTightVNCサーバだとLXDE/XfceあたりがギリギリでMATEだと厳しいということなのだろうか。。。?
ふとwipにLuminaを発見。
PC-BSDプロジェクトによる初めてのBSD*発のデスクトップ(GUIはQtベース、デフォルトのウィンドウマネージャはFluxbox)ということもあり、さっそくLuminaのインストールを試してみることに。
make installしてみるとpkgsrc/x11/xtermで標準の正規表現用ヘッダファイルがないといった旨のエラーが。。。regex.hのことか?と思ったが、これのあるパスはリンクされているっぽく、regexxパッケージをいれてみたが、ダメ、次にxtemのパスでmake show-optionsするとprceがあるのでPKG_OPTIONS.xterm+=prceとしてみたが、ダメ、よくわからないが、prceにはbuildlink3.mkがあるのでこれをxtermのMakefileで.includeしてみたが、やはりダメなので、とりあえず通るものならとluminaのMakefileでxtermをコメントアウト、すると今度は、qt5-qttoolsにおいてsub-src-allというwork内のMakefileのmakeターゲットでつまづき、その後も強引にやってみましたが、諦めることに。
使用感を探る為、リポジトリを追加してLuminaをFedora 23にインストールしてみたら、バージョンが0.8.8-develということもあり、まだ未完成感はあるものの、前述のとおり、どうもQtに馴染めない自身でも全くと言ってよいほど抵抗なく利用でき、結構気に入ったので現時点でNetBSDのLuminaは0.8.7のようですが、Fedora上で見られた基本的なところのバグが解消されたら、現在のマシンにおけるリソース消費量など含め、個人的にお気に入りのMATE、LXDEに替えて常用するデスクトップとしてもよいかなと思いました。
ただし。。。Fedoraでは、Lumina 0.8.8-develはシステムに影響するほど不安定、その後、ダウングレードされていたLumina 0.8.7は安定し、システム共に正常に機能しています。
NetBSDでも起動はできていないまでもLuminaをインストールできた後に一時的な不調があった気がしました。(気のせいだったのか、NetBSDでは、再現はありません。)
というわけで、何れにしても現時点でLuminaを入れるなら、仮想マシンで検証してからの方がよいかと。
と、ふと再度LXQtのインストールを試してみようと思い、前回エラーで止まったところが、Luminaと同じqt5-qttoolsのmakeターゲットsub-src-allだったことを思いだし、改めて.work以下の当該Makefile内のsub-src-all部を眺めてsrcディレクトリやMakefileの存在確認部分は、問題なさげだし、ということで次の$(MAKE) src/src.pro -f Makefile allでエラーが出れば何かわかるかも?と思い、直接実行してみると、なんと、あっさり、完了しました。(ということはディレクトリやファイルの存在確認で失敗してたってことか。。。)
ここで、もしかしてLumina通るかも?と思い、LXQtを中断、Luminaをmake installしてみると、これまた、あっさりmake installできました。(あ、xtermで先のエラーが出ないと思ったら、Makefileのxterm .include行をコメントアウトしたままだった。。。)
ログアウトしてみるとgdmにもLumina-DE.desktopというメニューが既に追加されており、これを選択してログインしようとするとポップアップが出て、そこから参照できるログを見ると共有ライブラリ(*.so.*)が見つからないエラー。
ポップアップを閉じるとgdmに戻るので、そこから適当にJWMを起動してfindで探すと/usr/X11R7/libにあったので/usr/libにシムリンク、ログアウトしてLumina起動、また、ポップアップが出て違うライブラリが見当たらない。。。と何回か同じように繰り返したところ、今度は、[Cannot mix incompatible Qt library (version 0x50400) with this library (version 0x50501)]という互換性のないQtバージョンの混在はできない旨のエラーが。
Debian系のOSにおける解決策らしきものがあり、libxi-devやlibxmu-dev(NetBSDだとlibXiやlibXmu?)が必要らしいとか、当該パッケージ内にQtlibディレクトリを作って。。。とかあり、バイナリはエラーとなったのでlibXi、libXmuをmake install、Qtlibをどこに作っていいのやら思いつかなかったので、何の根拠もなく/usr/pkg/qt5/lib/libQt5*を/usr/libにシムリンクしてみたものの、結局同じエラーで起動できず、Qtのライブラリを参照させればよさそうだけどどうやるんだろ?せっかくインストールできたのになと思いつつ、気力も萎えて中断。
ちなみに/usr/pkg/bin/lumina*としたら、いくつかコマンドがあったので実行してみたら、先のものを含むエラーが出力されました。