Raspberry Pi ZERO W (dwm コンパイル)

Pi ZERO Wにインストールしたデスクトップ環境はNexus7からも操作可能な7インチ相当の画面サイズですがタイル型WMにはどうかと思ったのですが思った以上に好結果を得ることができました。画面を有効に活用できるタイル型は小さな画面にも最適と思います。

今後ローカル内で運用するサーバー、実験環境にもX + tightvncを導入する予定でいます。

さて実際使ってみるとやはり若干気になる箇所もあります。

バーの文字が小さい
バーの色も変更したい
ウインドウ同士の間に妙な隙間ができる。中央では出ない
一部キーを変更したい

dwmの設定を変更するにはソース(config.h)を編集してmakeしなければいけません。
開発元のsuckless.orgにはdwm 6.2がリリースされています。

ライブラリのインストール

# apt install make gcc libx11-dev libxinerama-dev libxft-dev

ソースのダウンロード、編集

適当なディレクトリにダウンロード、展開

$ wget https://dl.suckless.org/dwm/dwm-6.2.tar.gz
$ tar -xvf dwm-6.2.tar.gz
$ cd dwm-6.2
$ cp config.def.h config.h

config.hの編集をするのですがエラーが出てしまうのでdrw.cの編集をします。

FC_COLORなんたらでエラーになります。
当サイトのスキルでは理解不能なのでなんちゃってコンパイルになってしまいますがこの項目をパスすることにします。

drw.c 以下コメントにします

142 /*
143   FcBool iscol;
144   if(FcPatternGetBool(xfont->pattern, FC_COLOR, 0, &iscol) == FcResultMatch && iscol) {
145     XftFontClose(drw->dpy, xfont);
146     return NULL;
147   }
148 */

354 //      FcPatternAddBool(fcpattern, FC_COLOR, FcFalse);

config.hの編集
参考サイト https://wiki.mma.club.uec.ac.jp/clear/dwm

フォントサイズ
  8 static const char *fonts[]          = { "monospace:size=11.5" };
  9 static const char dmenufont[]       = "monospace:size=11.5";
バーカラー
 14 static const char col_cyan[]        = "#3259A8";
ウィンドウ比率 0.55 から 0.50
 35 static const float mfact     = 0.50;
resizehints 1 を 0
 37 static const int resizehints = 0;
モードキー Mod1Mask から Mod4Mask
 47 #define MODKEY Mod4Mask
moodekey +d を moodekey +u
 70   { MODKEY,                       XK_u,      incnmaster,     {.i = -1 } },
moodekey + shife +c を moodekey +c
 75   { MODKEY,                       XK_c,      killclient,     {0} },

コンパイル実行

# make clean install

Pi ZERO Wで20秒位 エラーなくmake通りました
実行ファイルは/usr/loca/bin/dwm
パッケージからインストールしたdwmは/usr/bin/dwmなのでalternativesに登録します。

$ sudo update-alternatives --install /usr/bin/dwm dwm /usr/local/bin/dwm 90
$ sudo update-alternatives --config dwm
  0            /usr/bin/dwm.default      100       自動モード
  1            /usr/bin/dwm.default      100       手動モード
  2            /usr/bin/dwm.maintainer   50        手動モード
  3            /usr/bin/dwm.web          50        手動モード
* 4            /usr/bin/dwm.winkey       50        手動モード
  5            /usr/local/bin/dwm        90        手動モード

5 /usr/local/bin/dwm を選択


一通り試しましたが特に問題無さそうです。


mod4+f フロートでアプリケーションを起動すると通常のサイズで起動
mod4+mouseで移動可能 終了はq


ウインドウ同士もピッタリくっつきました。
キーはお好みで。
縦分割、横分割はmod4+iに対して隣のmod4+uに変更。自分にとってはわかりやすい

作成した3個の色違いは再利用できるようalternativesに登録しておきます。
コンパイルが完了したら都度わかりやすいファイル名でコピーを取ります。

# cp dwm /usr/local/bin/dwm_B
---
# update-alternatives --install /usr/bin/dwm dwm /usr/local/bin/dwm_B 80
# update-alternatives --install /usr/bin/dwm dwm /usr/local/bin/dwm_G 80
# update-alternatives --install /usr/bin/dwm dwm /usr/local/bin/dwm_R 80

呼び出す時は

$ sudo update-alternatives --config dwm


再コンパイル時は
5 /usr/local/bin/dwm を選択しておきます。

右隅に簡易な時計を表示(表示フォーマット、sleepは適当に)
~/bin/date.sh (chmod 755)

#!/bin/sh
while true; do
  xsetroot -name "$(date +"%R")"
  sleep 10
done

~/.vnc/xstartup 適当に追記

date.sh &