サイズ: 8345
コメント:
|
サイズ: 7242
コメント: ごちゃごちゃしていたので箇条書きの項目を減らした
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 2: | 行 2: |
dwm (dynamic window manager)<<BR>> ウィンドウマネージャです。 |
dwm (dynamic window manager) - 最小主義的なウィンドウマネージャ |
行 9: | 行 8: |
* 敷き詰めるようにウィンドウを配置してくれるので、ウィンドウ配置に悩まなくてよい。画面を最大限に活用できる | * 敷き詰めるようにウィンドウを配置してくれるので、画面を最大限に活用できる |
行 21: | 行 20: |
* OKボタン一つだけのメッセージボックスが画面の半分を占める状況を想像してみよう | |
行 23: | 行 21: |
* 特にgimpが悲惨だった。小さなウィンドウをたくさん出すものは大変なことになる。スキンを使うメディアプレーヤー系も同様 * フローティング(いわゆる普通のウィンドウマネージャと同じ)モードにもできるのでそちらを使う * 特定のものに対して特別扱いする設定を書けるので、それを活用して常にフローティングで表示するようにすると若干幸せ |
* 小さなウィンドウをたくさん出すものは大変なことになる * フローティング(いわゆる普通のウィンドウマネージャと同じ)モードにもできるのでそちらを使う |
行 27: | 行 24: |
* ちょっと設定を変えたくなったらmakeする作業が待っている * 特に色周りに凝り出すと非常に面倒 * ウィンドウごとに特別扱いしたくなったときもmake。新しいGUIアプリを導入するたびにちゃんと使えるか確認する必要がある * 名前はdynamicだが設定は非常にstatic |
* ちょっと設定を変えたくなったらmakeする作業が待っている。特に色周りに凝り出すと非常に面倒 |
行 32: | 行 26: |
* 利点と取るか欠点と取るか * 「特定のキー」は変えられるが、一つに依存する面は避けられない * 仮にもそのキーが使えない(そもそもキーボード上に存在しないとか…)ようなことがあれば非常に残念なことになる(なった) * 具体的にはウィンドウマネージャの終了ができない。killするしかない |
|
行 38: | 行 28: |
上記のURLにアクセスしてソースコードを持ってくる。下の方の"Download"のところ<<BR>> デフォルトの設定のまま使うなら、展開してできるディレクトリ内に入ってmakeし、できた実行ファイルを適当な場所に配置するだけ。とりあえず起動してみて雰囲気を掴むといいかもしれない。<<BR>> manは[[http://man.suckless.org/dwm/1/dwm|こちら]]<<BR>> グラフィカルログイン時にdwmを起動するには、.xinitrcや.xsessionの最後に"exec dwm"とでも書いておけば良い |
上記のURLにアクセスしてソースコードを持ってくる。下の方の"Download"のところ。デフォルトの設定のまま使うなら、展開してできるディレクトリ内に入ってmakeし、できた実行ファイルを適当な場所に配置するだけ。とりあえず起動してみて雰囲気を掴むといいかもしれない。 * manは[[http://man.suckless.org/dwm/1/dwm|こちら]]<<BR>> * グラフィカルログイン時にdwmを起動するには、.xinitrcや.xsessionの最後に"exec dwm"とでも書いておけば良い |
行 52: | 行 41: |
仮想デスクトップ「のようなもの」。<<BR>> 何が「のようなもの」なのかというと、このタグは「個々のウィンドウに対して」設定されるもの。「このウィンドウは1番と3番」のようにタグ番号を設定しておいて、操作に応じて「n番が設定されているウィンドウを表示」しているに過ぎない。 |
仮想デスクトップ「のようなもの」。何が「のようなもの」なのかというと、このタグは「個々のウィンドウに対して」設定されるもの。「このウィンドウは1番と3番」のようにタグ番号を設定しておいて、操作に応じて「n番が設定されているウィンドウを表示」しているに過ぎない。 |
行 56: | 行 44: |
dwmに対する操作は"修飾キー + 別のキー"という形で行う。修飾キーは初期設定ではMod1。Mod1がどのキーかは、xmodmapをオプションなしで実行すればわかる(AltとかMetaのはず)。<<BR>> 初期設定でのキーバインドは以下のとおり。 |
dwmに対する操作は"修飾キー + 別のキー"という形で行う。修飾キーは初期設定ではMod1。Mod1がどのキーかは、xmodmapをオプションなしで実行すればわかる(AltとかMetaのはず)。初期設定でのキーバインドは以下のとおり。 |
行 68: | 行 55: |
||Mod1-j|k||ウィンドウのフォーカスを移動|| ||Mod1-h|l||(タイル配置時)ウィンドウの幅を変更|| |
||Mod1-j, Mod1-k||ウィンドウのフォーカスを移動|| ||Mod1-h, Mod1-l||(タイル配置時)ウィンドウの幅を変更|| |
行 82: | 行 69: |
行 98: | 行 86: |
先に述べた通り、タイル型ウィンドウマネージャとの相性が悪いアプリケーションも存在する。ツールボックスウィンドウを大量に表示するものやスキンを使うメディアプレーヤー系統が当てはまる。そういったものは常にフローティングで表示するように設定しておくと幸せになれる。<<BR>> | タイル型ウィンドウマネージャとの相性が悪いアプリケーションも存在する。小さなウィンドウを大量に表示するものやスキンを使うメディアプレーヤー系統が当てはまる。そういったものは常にフローティングで表示するように設定しておくと幸せになれる。<<BR>> |
行 101: | 行 89: |
=== 今使っている.xsession(のdwmに関わる部分) === | === 今使っている.xinitrc/.xsession(のdwmに関わる部分) === |
なにこれ
dwm (dynamic window manager) - 最小主義的なウィンドウマネージャ
利点
- タイル型である
- 敷き詰めるようにウィンドウを配置してくれるので、画面を最大限に活用できる
- 「何かを見ながら何かを書く」ときにすごく強い
- シンプルで軽い
- ソースコードは単一のファイルで2000行ほど、それに設定を記したヘッダファイルが一つ
- minimalistにはおすすめ
- 設定がヘッダファイル
- 使い方が良く分からないGUIのインターフェースとかそんなものはない
- 仮想デスクトップ「のようなもの」が使える
欠点
- タイル型である
- 小さなダイアログや設定ウィンドウがタイル化された結果残念な気持ちになることがある
- そもそもタイル型が適していない(ほとんど使い物にならない)アプリケーションもある
- 小さなウィンドウをたくさん出すものは大変なことになる
- フローティング(いわゆる普通のウィンドウマネージャと同じ)モードにもできるのでそちらを使う
- 設定がヘッダファイル
- ちょっと設定を変えたくなったらmakeする作業が待っている。特に色周りに凝り出すと非常に面倒
- ウィンドウマネージャの操作が特定のキーに集中している(初期状態ではMod1、AltとかMeta)
導入
上記のURLにアクセスしてソースコードを持ってくる。下の方の"Download"のところ。デフォルトの設定のまま使うなら、展開してできるディレクトリ内に入ってmakeし、できた実行ファイルを適当な場所に配置するだけ。とりあえず起動してみて雰囲気を掴むといいかもしれない。
manはこちら
- グラフィカルログイン時にdwmを起動するには、.xinitrcや.xsessionの最後に"exec dwm"とでも書いておけば良い
画面上の要素
バー
上にあるやつ。
- 左からタグの一覧(デフォルトでは1から9)、現在のウィンドウ配置モード、現在フォーカスがあるウィンドウのタイトルが表示されている
- 右端に表示されているのはXのルートウィンドウのタイトル(WM_NAME)。何もしなければdwmのバージョンが設定されたはず
- ここに時計とか、ノートPCならバッテリ残量とかを表示するといい
- 設定は xsetroot -name hogehoge で。コマンドを組み合わせてお好みの文字列を作る
- ここに時計とか、ノートPCならバッテリ残量とかを表示するといい
タグ
仮想デスクトップ「のようなもの」。何が「のようなもの」なのかというと、このタグは「個々のウィンドウに対して」設定されるもの。「このウィンドウは1番と3番」のようにタグ番号を設定しておいて、操作に応じて「n番が設定されているウィンドウを表示」しているに過ぎない。
操作
dwmに対する操作は"修飾キー + 別のキー"という形で行う。修飾キーは初期設定ではMod1。Mod1がどのキーかは、xmodmapをオプションなしで実行すればわかる(AltとかMetaのはず)。初期設定でのキーバインドは以下のとおり。
Mod1-Shift-Enter |
端末(初期設定ではxterm)を開く |
Mod1-Shift-c |
フォーカスのあたっているウィンドウを閉じる |
Mod1-Shift-q |
ウィンドウマネージャの終了 |
Mod1-[1...n] |
n番のタグが設定されているウィンドウを表示 |
Mod1-0 |
すべてのウィンドウを表示 |
Mod1-Shift-[1...n] |
フォーカスのあたっているウィンドウにn番のタグを設定(他のタグの設定は消去される) |
Mod1-Shift-Control-[1...n] |
フォーカスのあたっているウィンドウにn番のタグを追加/削除(他のタグの設定は残る) |
Mod1-Shift-0 |
フォーカスのあたっているウィンドウにすべてのタグを設定(タグを切り替えても常に表示されるようになる) |
Mod1-b |
バーの表示/非表示の切り替え |
Mod1-Shift-space |
フォーカスのあたっているウィンドウの状態をタイル/フローティングで切り替える |
Mod1-j, Mod1-k |
ウィンドウのフォーカスを移動 |
Mod1-h, Mod1-l |
(タイル配置時)ウィンドウの幅を変更 |
Mod1-Enter |
(タイル配置時)スタックのトップウィンドウを切り替え |
Mod1-左クリック |
ドラッグしてウィンドウを移動(ウィンドウはフローティング状態へ) |
Mod1-右クリック |
ドラッグしてウィンドウサイズを変更(同上) |
Mod1-中クリック |
Mod1-Shift-spaceに同じ |
And more |
manを参照のこと |
ウィンドウ配置
素のdwmは3つのウィンドウ配置モードをサポートしている。
- 画面解像度が小さいときはタイル、大きくなったらフローティングを使うようにすると良いかもしれない
各モードごとの解説はComing soon。
タイル
フローティング
最大化
設定
基本
dwmの設定はconfig.hの各項目を編集することで行う。設定が完了したらmakeして、できたdwmをそれまでのものと置き換えるだけ。config.hは設定専用に作られており、かつwell-commentedなので迷うことは少ない。だいたい分かる。
修飾キーの変更
初期状態では修飾キーがMod1、すなわちAltキーに割り当てられている。"Alt + 何か"のキーバインドを持つアプリケーションを実行すると入力を全部dwmに吸い込まれて非常に残念な気持ちになれるので、修飾キーを変更するのがおすすめ。たいていWindowsキー(や、それに相当するもの)が遊んでいるのでこいつに割り当ててしまう。
具体的な方法はComing soon。
フォントや色の設定
やはり見た目にはこだわりたい。
具体的な方法はComing soon。
個別ルールの設定
タイル型ウィンドウマネージャとの相性が悪いアプリケーションも存在する。小さなウィンドウを大量に表示するものやスキンを使うメディアプレーヤー系統が当てはまる。そういったものは常にフローティングで表示するように設定しておくと幸せになれる。
具体的な方法はComing soon。
今使っている.xinitrc/.xsession(のdwmに関わる部分)
# 1分間隔で時刻を表示しつつdwmの生存確認。dwmが居なくなったら終了 while true; do xsetroot -name "|$(date +"%m/%d %H:%M")|" pgrep -afU $(id -u) dwm if [ $? -eq 1 ]; then exit 0 else sleep 60 fi done & # <- バックグラウンドで走らせる exec dwm