タイル型ウィンドウマネージャー dwm を導入

日本タイル型ウィンドウマネージャ推進委員会 Wiki - 日本タイル型ウィンドウマネージャ推進委員会 - OSDN

タイル型ウィンドウマネージャは以下のような方にオススメです。
・ウィンドウの下にウィンドウが隠れてしまうのは我慢がならない
・ウィンドウが重ならないように綺麗に配置している
・マウス操作が煩わしい
・GUI環境でもキーボードのショートカットだけで生きていきたい
・軽快なウィンドウマネージャを使いたい
・Emacsにどっぷりハマってる
・GNU screenにどっぷりハマってる
・ディスプレイの解像度が低いので画面を有効に使いたい
・ディスプレイの解像度が高いが画面を有効活用できていない
・1台のパソコンに複数のディスプレイを接続している(マルチディスプレイ環境)

7個ぐらい当てはまったのでベストマッチであることは明らか。


いくつかある中からdwmを選択。
dwm (ウィンドウマネージャ) - Wikipedia

  • 無駄な装飾が少ない
  • シンプルであるためにC言語で2000行程度までという基準がある
  • 設定画面すら無駄としてすべてヘッダファイルにハードコーディング&再コンパイルという割り切った仕様
  • 他のウィンドウマネージャがスクリプト言語などを覚える必要があるのに対してC言語だけで済む



インストール

1. dnfでインストール

dnf install dwm

2. なんか重い気がしたのでGNOMEをやめてLXDMをインストールして有効化
   (先にGDM(GNOME)を止める必要あり)

dnf install lxdm
systemctl disable gdm
systemctl enable lxdm
systemctl stop gdm

3. 再起動するとログイン画面が変わるので、画面下のデスクトップ選択ドロップダウンから"dwm"を選択

4. 左上に数字が並んでいる何もない画面が出たらdwmが起動している。
   とりあえずShift+Alt+Enterでターミナルが起動する。




上記まででウィンドウマネージャの導入は終わったが、今までデスクトップ環境だったGNOMEからウィンドウマネージャしかなくなったので色々足りなくなる。
とりあえず最低限設定する。

マルチディスプレイの順序を変更する

1. 私はプライマリを右、セカンダリを左に置いているのだが逆になっていた。
   xrandr -qで接続されているディスプレイを確認、xrandr --output~で設定する。

$ xrandr -q
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
VGA-1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 509mm x 286mm
   1920x1080     60.00*+
   1280x1024     75.02    60.02  
   1152x864      75.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    59.94  
   720x400       70.08  
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 1600mm x 900mm
   1920x1080     60.00*+  59.94    30.00    24.00    29.97    23.98  
   1920x1080i    60.00    59.94  
   1280x1024     60.02  
   1360x768      60.02  
   1280x768      74.89    59.87  
   1280x720      60.00    59.94  
   1024x768      75.03    70.07    60.00  
   800x600       72.19    75.00    60.32  
   720x480       60.00    59.94  
   720x480i      60.00    59.94  
   640x480       75.00    72.81    60.00    59.94  
DP-1 disconnected (normal left inverted right x axis y axis)
$ xrandr --output VGA-1 --right-of HDMI-1

2. ~/.xprofileに書き込むとXorg起動時に読み込まれるようになる。

$ vim ~/.xprofile
#!/bin/sh
/bin/xrandr --output VGA-1 --right-of HDMI-1
$ chmod -x ~/.xprofile

CapsLockをCtrlにする

1. localectlで設定する。空欄の部分は元々空欄だったのでそれを維持。
   (Xorgでなく/etc/sysconfig/に居るから?)

$ localectl set-x11-keymap jp "" "" "ctrl:nocaps"

※この辺に設定されるらしいが、直接編集はよくないらしい。


/etc/X11/xorg.conf.d/00-keyboard.conf

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "jp"
        Option "XkbOptions" "ctrl:nocaps"
EndSection

日本語入力

1. ibus-daemonを実行することでibusによる日本語入力が可能になるので、~/.xprofileに以下を追記する。
   (-xb:XIMサービス起動&バックグラウンド起動)

/bin/ibus-daemon -xb

※未設定で起動中の場合、とりあえずAlt-pでdmenuを出して"ibus-daemon"を起動すれば入力可能になる。



感想

最初LXDE全部入れてみたが、結局ウィンドウマネージャのdwmとランチャのdmenu以外ほとんど使わなかったので削除。というかパネル(Windowsで言うとタスクバー)を通そうとすると、そちらにコントロールを吸われて画面に出てこなくなる…。
使用感としては中々良好。ウィンドウサイズが自動的に決定されて動かす必要がないというのは感動的。あとカーソル移動が長くなりがちなマルチウィンドウ間の移動も一瞬。

  • 残りの問題
    • 画面から音量が変更できない
    • 画面で時間や通知を確認する方法がない
    • 時間経過で画面ロックやスリープがされない
    • 縦分割時、ウィンドウ高さを手動変更する方法がない(横分割の幅は変更可能)
    • コントロール移動にマウスカーソルがついてこないせいで見失う、特にウィンドウ間移動時