JWMで作る快適Raspberry Pi OSデスクトップ環境

Raspberry Pi OSのJWM環境のスクリーンショット

Raspberry Pi は安価なシングルボードコンピュータで、私はちょっとSPIを喋ってほしい時に使ったり、ArmhfまたはAarch64でプログラムの動作確認をしたかったりするときに使っている。 こういう状況で、簡単なウインドウシステムが使えてターミナルが横に並べて日本語も入力できると便利なので、グラフィカルな環境をインストールしたい気持ちになる。

私のよく使うRaspberry Pi はメモリ1 GBで、元々グラフィカルな環境は少々荷が重かった。 特に、Bullseye 世代でWayland が標準化されてから標準環境ではかなり動作が遅く感じていた。 そんな中、Raspberry Pi OS Trixie がリリースされた。 Raspberry Pi OS はインストール済みのカードを新しいリリースに更新するインプレースアップグレードは非推奨で、リリース更新時はまっさらなカードに新しいイメージを書き込むのがオススメされている。 これを期に、軽量なデスクトップ環境のレシピを確立してRaspberry Pi の旧機種も最大限活用しようというのがこの内容だ。

使うもの

できること

手順

  1. 公式サイト [raspberrypi.com]からRaspberry Pi OS Lite のイメージを入手、カードに書き込む。
  2. 実機で起動。 X Window System を使うために /boot/firmware/config.txtから
    dtoverlay=vc4-kms-v3d
    
    の先頭に#をつけてコメントアウトして保存。
  3. sudo raspi-configで以下項目を設定。
    1. keymap
    2. Locale
    3. Timezone
    4. RF country (無線がある機種のみ)
  4. パッケージのインストール。
    apt-get install \
    xdm \
    xserver-xorg \
    x11-apps \
    xfonts-100dpi \
    xfonts-100dpi-transcoded \
    xfonts-75dpi \
    xfonts-75dpi-transcoded \
    xfonts-a12k12 \
    xfonts-base \
    xfonts-encodings \
    xfonts-intl-asian \
    xfonts-intl-japanese \
    xfonts-intl-japanese-big \
    xfonts-jisx0213 \
    xfonts-kaname \
    xfonts-kappa20 \
    xfonts-marumoji \
    xfonts-mplus \
    xfonts-naga10 \
    xfonts-scalable \
    xfonts-shinonome \
    xfonts-terminus \
    xfonts-terminus-dos \
    xfonts-terminus-oblique \
    xfonts-unifont \
    fonts-xfree86-nonfree \
    jwm \
    rxvt-unicode \
    fcitx5-anthy \
    network-manager-applet \
    blueman \
    emacs-lucid  \
    git 

    この中で、blueman はBluetooth搭載機種でのみ必要。 emacs-lucidはGTK+版のemacs よりかなり軽量なのでemacs が必要な人にはおすすめ。 Anthy は最近は使ってる人が少なくて、変換効率も以前と同じ感じになるので、Mozc でもいいかもしれない。

  5. /etc/X11/xdm/Xserversにて、
    :0 local /usr/bin/X :0 vt7 -nolisten tcp
    となっているところを
    :0 local /usr/bin/X :0 vt7 -retro -nolisten tcp
    に変更。 これでログイン画面の背景が伝統的なX Window Systemのパターンになる。
  6. ~/.Xsessionを作成。
    export LANG=ja_JP.UTF-8
    fcitx5 &
    export GTK_IM_MODULE=fcitx
    export QT_IM_MODULE=fcitx
    export XMODIFIERS=@im=fcitx
    nm-applet &
    blueman-applet &
    rxvt-unicode &
    jwm
  7. ~/.Xresources作成。
    URxvt.font: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-*
    URxvt.boldFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-*
    URxvt.italicFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-*
    URxvt.boldItalicFont: -sony-fixed-*-*-*-*-24-*-*-*-*-*-*-*,-jis-fixed-*-*-*-*-24-*-*-*-*-*-*-*
    URxvt.colorBD: yellow
    URxvt.colorIT: green
    URxvt.background: black
    URxvt.foreground: ivory
    URxvt.cursorColor: green
    XTerm*font: -mplus-*-*-r-*-*-12-*-*-*-*-*-*-*
    XTerm*geometry: 132x40
    UXTerm*font: -mplus-*-*-r-*-*-12-*-*-*-*-*-*-*
  8. 起動時にxdm が動くようにする。
    sudo systemctl set-default graphical.target
    そして再起動。

得るもの

こうすると、冒頭のスクリーンショットのような地味なものの古いRaspberry Piでも十分グラフィカルな使い方ができる環境が手に入る。 ちゃんとXdm の段階でBluetooth キーボードも使えた。 とくにrxvt の24ドットフォントの表示は雰囲気が結構気に入っている。

スクリーンショットのテキストはw3mで 青空文庫の ワインバウム スタンリー・G, ぬめり海 [aozora.gr.jp]を表示していて、 右下のローグ的なゲームは最近リリースされた conornallyさんのDiabaig [itch.io] だ。