Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

NsCDE 2.0 - CDEの皮をかぶったモダン・デスクトップ環境、Ubuntuへのインストール

f:id:espio999:20211230193753p:plain
今時のLinuxデスクトップ環境と言えばGNOMEだろうが、90年代からゼロ年代はMotif、CDEだった。Sun Microsystems時代のSolarisも搭載していた。
反フラット・デザインで、あえてCDEをインストールしようというユーザーがどれだけいるだろうか。端的に古いだけでなく、導入のための情報も少なく、選択肢になりえないのが実際のところだと思う。

NsCDE (Not so Common Desktop Environment)の見た目はCDEでありながら、実際にはヘビー級のFVWM拡張テーマ、とでも呼ぶべき存在だ。「羊の皮をかぶった××」という表現に倣えば、CDEの皮をかぶったモダン・デスクトップ環境、と言えば通じるだろうか。
その見た目、挙動はYouTubeにアップロードされた一連のデモ動画で確認することができる(投稿末尾参照)。

この投稿では、NsCDEのインストール手順を紹介する。紹介する手順は、素のUbuntuでも、Hyper-Vでも、そしてWSLでも、ほぼ共通に適用できる。特にWSLに対するポイントを、必要に応じて書き添えている。

前提

この投稿では、次の環境を前提としている。

  • Ubuntu 20.04.2 LTS
  • NsCDE 2.0

WSLの場合、次の段階まで整っている環境で作業することを想定している。

  • WSL2、Ubuntu 20.04 LTS、X serverを導入済み
  • Ubuntuのユーザー、パスワードの設定まで終えた

必要に応じて、次の投稿を参照してほしい。

  • Ubuntuの初期化→イメージの「リセット」*1
  • X server*2

インストール

github.com
基本的には、GitHubに掲載されているインストール手順通りに作業する。Ubuntuへのインストールを前提にすると、大まかな手順は次のようになる。

  1. 「Known system specific package dependencies」に記載されたパッケージのインストール
  2. 追加パッケージのインストール
  3. 「Installation」に記載されたダウンロードとインストール
  4. 再起動、初期設定(WSLの場合は不要)

まずは、どの環境でも共通の手順として、次のコマンドを実行する。

sudo apt update -y
sudo apt upgrade -y

依存パッケージのインストール

「Known system specific package dependencies」に指定されているパッケージは多い。そして「Installation Dependencies」に記載されているパッケージを網羅していない。
さらに使用環境次第では、記載されていないパッケージを追加インストールしなければならない。私は次のパッケージもインストールした。
ちなみに「WSL」の欄に”x”が付いているパッケージは、WSLの場合にインストールする必要がある。

追加パッケージ

パッケージ名 WSL
dunst 「Installation Dependencies」で指定されている
gcc コンパイルに必要 x
firefox NsCDEのヘルプ参照に必要 x
gettext msgfmtのために必要
ksh93 「Installation Dependencies」で指定されている
libx11-dev cursorfont.hのために必要
libxext-dev shape.hのために必要
libxpm-dev xpm.hのために必要
make WSLの場合、コンパイルに必要 x
python3-psutil "./configure"の実行結果の指摘から

まずはインストール済みのパッケージを確認し、不足パッケージを特定したうえで、それらだけをインストールするコマンドを実行するのが良いだろう。
次のコマンドは、インストール済みパッケージの特定に利用したコマンドだ。”apt list”を”sudo apt install -y”に書き換えれば、インストール・コマンドとしても機能する。

apt list gcc make ksh ksh93 xterm xdotool xscreensaver xsettingsd xclip xutils x11-utils x11-xserver-utils python3 python3-xdg python3-yaml python3-pyqt5 python3-psutil qt5ct qt5-style-plugins fvwm fvwm-icons dunst gettext imagemagick stalonetray gkrellm rofi libx11-dev libxext-dev libxpm-dev libstroke0 libfile-mimeinfo-perl firefox xfe rox-filer

インストール作業の最終段階で、希望するファイル・マネジャー、テキスト・エディタのコマンドを選択することができる。
実際のところ、これに正しく対応したからと言って、適切に設定反映してくれるわけではないのだが、ひとまず付き合っておくことにする。前述の”apt list”コマンドの末尾に記載されている「xfe」(xfwriteが収録されている)、「rox-filer」は、この対応のための施策だ。ユーザーの好みに応じて書き換えればよいし、不要と思えば削除して構わない。

NsCDEのダウンロードとインストール

「Installation」の指示通りに作業するのだが、私のUbuntuにはコマンド"umask"がインストールされていないため、該当箇所のコマンドは実行していない。コマンド"wget"でダウンロードする前提では、一連のコマンド実行は次のようになるだろう。
ちなみに、GitHub中で指定されている「<version>」を、「2.0」へ置換していることに注意。

cd /tmp

wget https://github.com/NsCDE/NsCDE/archive/2.0.tar.gz
tar xpzf 2.0.tar.gz
cd NsCDE-2.0

./configure
sudo make
sudo make install

"./configure"の実行結果には一通り目を通しておいた方が良い。前述の追加パッケージは、その指摘に基づいてインストールした。特に"No"と指摘されている項目について、パッケージ導入で解決できるものであれば、"sudo make"を実行前に対応しておくと良い。

再起動、初期設定

WSLの場合

必要に応じて展開
WSLの場合、再起動は不要だ。
まずX serverが起動していることを確認しておくこと。起動していたら、次のコマンドを実行する。

nscde -r

コンソールで次の進捗が表示される辺りで、
f:id:espio999:20220103203843j:plain

X serverの画面が表示される。
f:id:espio999:20220103203858j:plain

そして初期設定へ。


WSL以外の場合

必要に応じて展開
"sudo make install"まで対応したら、Ubuntuを再起動する。再起動後のログイン画面では、次のように「Fvwm」と「NsCDE」が選択できるようになっているだろう。
f:id:espio999:20211230211035p:plain

「NsCDE」を選択してログインすると、splash windowが表示された後、初期設定の確認が繰り返される。
f:id:espio999:20211230211053p:plain


初期設定

ここからはNsCDE上のTerminalで作業する。初期設定の確認事項に、Y/Nでの回答を繰り返していく。分からなければ、全て”Y”で構わない。
初期設定の最後2つは、前述したファイル・マネジャー、テキスト・エディタのコマンドを入力する必要がある。分からなければEnterキーを押すだけで良い。
f:id:espio999:20220103204110j:plain

一連の確認を終えたら、インストール完了だ。この投稿冒頭の画面が表示される。

NsCDEのヘルプ

パネル右端のアイコンをクリックすると、
f:id:espio999:20220103204144j:plain

Firefoxにヘルプ文書が表示される。
f:id:espio999:20220103204154j:plain

日本語表示、入力

あらかじめUbuntuが日本語入力に対応していれば、その入力方法がそのまま引き継がれている。私の場合は「Ctrl + Insert」で入力モードを切り替えている*3。同じく操作すれば、NsCDEでも日本語が入力できる。

f:id:espio999:20211230211122p:plain

基本的に問題なく日本語表示できるのだが、一部のWindow枠が適切に日本語を表示できないでいる。これはシステム側のフォント設定の問題だ。

f:id:espio999:20211230211135p:plain
f:id:espio999:20211230211147p:plain
f:id:espio999:20211230223308p:plain
f:id:espio999:20220103204216j:plain