moOde audio8.2.4 ウィンドウマネージャ JWM

これまでmoOde audioにウィンドウマネージャDWMをインストールしていましたが新たにスタック型のJWMを追加してみました。vncのxstartupで選択することが出来ます。dwmは気に入っていて今後も使い続けるつもりですがもう一つの選択肢としてjwmを設定してみます。特に問題なければPi4のウィンドウマネージャにする予定。


moOde audio8.2.4をダウンロード。通常通りカードを作成インストール。

主な追加パッケージ(ファイルマネージャrangerは外しています。導入する際はpulseaudioの制御設定が必須です(過去記事どっか)

echo "--- update ---"
apt update

apt -y install lv vim xterm tree rename
apt -y install tigervnc-standalone-server xbindkeys xdotool feh
apt -y install pulseaudio pavucontrol ncmpcpp
apt -y install mpv mplayer streamlink
apt -y remove youtube-dl
curl -L https://yt-dl.org/downloads/latest/youtube-dl -o /usr/local/bin/youtube-dl
chmod a+rx /usr/local/bin/youtube-dl

echo "--- jp ---"
apt -y install fonts-ipafont fonts-ricty-diminished
apt -y install uim uim-anthy uim-mozc uim-xim uim-gtk2.0

echo "--- themes ---"
apt -y install lxappearance gnome-accessibility-themes gnome-themes-extra

echo "--- autoremove ---"
apt -y autoremove

pulseaudio /etc/pulse/default.paは適宜設定追加

今までのmoode8.2.2からコピー

/etcのパスワード関連(コピーすることでwww-dataの設定不要)
/var/www/html (cp -Rp /var/www/html コピー先)
/home/pi (設定済のユーザーディレクトリ)
/etc/init.d/vncboot (# systemctl enable vncboot)
/usr/local/bin/dwm (使う場合)
/etc/fonts (インストールしたipafontなどの設定(過去記事参照)

JWM(新たにインストール、ユーザーディレクトリに.jwmrcをコピー)

$ sudo apt install jwm
$ cp /etc/jwm/system.jwmrc ~/.jwmrc

~/.vnc/tigervnc.conf

$geometry     = "1800x840";
$depth        = 24;
$desktopName  = "moOde audio";
$localhost    = "no";

~/.vnc/xstartup

#!/bin/sh
xrdb $HOME/.Xresources
export GTK_IM_MODULE='uim'
export QT_IM_MODULE='uim'
uim-xim &
export XMODIFIERS='@im=uim'
xbindkeys &
devilspie2 &
sleep 1
sudo killall -q pulseaudio
echo "" > /tmp/moode_id
echo "1" > /tmp/test_id
sleep 1
~/bin/radio_menu.py &
sleep 1
uim-toolbar-gtk &
sleep 3
#exec /usr/local/bin/dwm
exec /usr/bin/jwm

末尾のjwm( or dwm)を有効にすることで切り替えます。
dwmを有効 Pi4から接続(パスワードはコピーしてリネーム)いつもの画面

$ vncviewer -passwd /home/db650/.vnc/moode moode:1

jwmを有効にして接続。ラジオメニュー起動(xstartupで指定)
jwmの初期設定はパネル下部、右クリックメニューのターミナルはルート(/)起点(vncserver?)になるのでパネル上部(好み)及びユーザーディレクトリに取り敢えず変更。Pi4から実行するsurfのmoOde playerもY軸を小さくするとボリューム表示が隠れるようです。正確なボリューム値はncmpcppの右上に常にリアルタイムで表示されます。Simulラジオから実行する際は混乱が無くていいですね。
~/.jwmrc

8行目 "cd ; を追記" <Program icon="terminal.png" label="Terminal">cd ; xterm</Program>
37行目 "y= -1を1" <Tray x="0" y="1" height="25" autohide="off">

ラジオメニューから各アプリケーションを実行するだけですがサイズ変更や並び替えが地味に面倒です。dwmのタグはXの仮想デスクトップとは違いますがjwmはxdotoolやdevilspie2が使えます。

$ sudo apt install devilspie2

~/.config/devilspie2/applications.lua (ファイル名は任意)

----------------------------------------------------
-- devilspie2 - Lua-based window matching utility --
----------------------------------------------------
-- get_window_name()
-- get_application_name()
-- get_class_instance_name()
-- pin_window()
-- shade()
-- minimize()
-- make_always_on_top()
-- set_window_workspace(1)
-- undecorate_window()
-----------------------------------------------------
-- Simul Radio menu
if (get_window_name()=="moOde audio Simul Radio") then
  set_window_geometry2 (0,10,460,160)
  -- pin_window()
  -- undecorate_window()
end

-- htop
if (get_window_name()=="htop") then
  set_window_geometry2 (550,20,607,145)
  undecorate_window()
end

-- Simul moOde Radio
if (get_window_name()=="Simul moOde Radio") then
  set_window_geometry2 (550,170,607,583)
  undecorate_window()
end

-- Simul mms Radio
if (get_window_name()=="Simul mms Radio") then
  set_window_geometry2 (3,198,460,308)
  undecorate_window()
end

-- Radiko Player
if (get_window_name()=="Radiko Player") then
  set_window_geometry2 (3,512,460,286)
  undecorate_window()
end

-- CD MPlayer
if (get_window_name()=="CD MPlayer") then
  set_window_geometry2 (1270,80,458,135)
  undecorate_window()
end

-- pavucontrol
if (get_application_name()=="pavucontrol") then
  set_window_geometry2 (1220,515,560,250)
end

-- ncmpcpp
if (get_application_name()=="ncmpcpp 0.9.2") then
  set_window_geometry2 (1220,240,560,250)
end

起動はxstartupに記載しています。サイズ、位置はxwininfoでも確認できます。メニューから実行すると記載した位置、サイズで起動しますが最初は微妙にずれています。ラジオメニューのナチュレボタンを実行するとdevilspie2を再起動、記載した位置にピタリと行くはずです。但しncmpcppだけは1回目は認識しません。またmpd再生中も認識しません。停止中(タイトルバー ncmpcpp 0.9.2) のときのみ正常に認識動作します。
ラジオメニュー radio_menu.py

jwmは軽量、シンプルなウィンドウマネージャです。moode audio + raspberry pi2では問題無く動作すると思います。メニューは編集が必要ですが今回の用途ではほとんど必要ないと思います。編集次第ではかなり雰囲気も変わりそうです。
操作感としてはdwmがキビキビ動作しますが基本タイル型また設定はコンパイルが必要とあって敬遠する向きがあるかもしれません。いずれも非力なSBCのX環境+vncの特定用途、実験環境にはベストな選択と言えそうです。