1957
コメント:
|
1775
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
= ウィンドウマネージャ開発メモ = == 動機 == * 毎日使って、それで暮らすものだからどうせなら自作したいね * X Window Systemの勉強には丁度いいかもね |
ウィンドウマネージャ開発メモ |
行 6: | 行 3: |
== 暫定的仕様 == * Xlibで書く * awesomeなんかが使っているxcbを使う手もあるが、Xlibを使った小さめのウィンドウマネージャが割とごろごろ出てきて参考にできるので、こちらを使うことに * できる限り小さいものにする * 現実的に、実装できそうな規模にする * 仮想デスクトップ的なものは欲しい * dwmみたいなタグベースのものにするか否か * タイル型 * フローティングもサポートするダイナミック型に * 具体的なスタイルをどうするかは要検討 * [[https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers#Management_style|いっぱいある]] * コンパイル時設定 * まずもって設定ファイルの仕様を考えてパースするコードを書くのが面倒 * ヘッダか何かにまとめて書くdwm方式で良いか * それなりに使えるようになってからまた考える * ウィンドウマネージャの機能として * バー/トレイをつけるか * バーとは限らないが、仮想デスクトップの状態を把握できる何かは欲しい * 既存の優秀なバー/トレイアプリケーションが存在するので必要ならそれを使えばいいか * メニューをつけるか * いらない? 実装が面倒 * dmenuあたりを使えば良いか |
= 要件 = * ソースさえあればどこでもビルドできる程度に依存関係が少ないこと * 仮定:「Xlibくらいどこにでもあるだろう」 * キーボードによる操作がしやすいこと * 最低限の機能を備えること |
行 29: | 行 9: |
== 名称 == * tinyとかsmallとかminimalみたいな単語は使い尽くされていた * どうやらlesserは使われてなさそうな雰囲気 * レッサーパンダとかLGPLの最初のLとかのlesser * ということでlesser window manager * 縮めてlswmとかだろうか |
= 資料 = == X Window プログラミング == * http://www.x.org/docs/X11/xlib.pdf (pdf) * Xlibの仕様 * 「プログラミング X Window」 * http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html * http://xjman.dsl.gr.jp/X11R6/X11/ * 「X Window ハンドブック」 == 規格 == * http://standards.freedesktop.org/wm-spec/wm-spec-latest.html * EWMH * http://www.x.org/docs/ICCCM/icccm.pdf (pdf) * ICCCM。現在では古く適さないものもあるとのこと == 参考とする実装 == * dwm * タイル型 * ソースが1つしかないのでとっつきやすいが、細かく追おうとすると読みづらい * ソースコードを2000行程度に維持するという原則のためか、コメントも少なめ * evilwm * evilという名だがコードはすごく親切で読みやすい * ウィンドウの装飾はないがちゃんとre-parentしている * 設定はコマンドラインオプションで * sithwm * evilwmからの派生とあるが、中身を見る限り現在はほぼ別物と言って良さそう * メニューついてる。設定ファイルにも対応 * tinywm * 最小のWM。最低限何をすればいいかが分かる = 廃墟 = * プロトタイプ1: tinywmのデッドコピー * プロトタイプ2: 全画面型 = 日記 = <<PageList(regex:clear/wm_devel/[0-9]{4}-[0-9]{2}-[0-9]{2})>> |
ウィンドウマネージャ開発メモ
要件
- ソースさえあればどこでもビルドできる程度に依存関係が少ないこと
- 仮定:「Xlibくらいどこにでもあるだろう」
- キーボードによる操作がしやすいこと
- 最低限の機能を備えること
資料
X Window プログラミング
http://www.x.org/docs/X11/xlib.pdf (pdf)
- Xlibの仕様
- 「プログラミング X Window」
http://users.actcom.co.il/~choo/lupg/tutorials/xlib-programming/xlib-programming.html
- 「X Window ハンドブック」
規格
http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
- EWMH
http://www.x.org/docs/ICCCM/icccm.pdf (pdf)
- ICCCM。現在では古く適さないものもあるとのこと
参考とする実装
- dwm
- タイル型
- ソースが1つしかないのでとっつきやすいが、細かく追おうとすると読みづらい
- ソースコードを2000行程度に維持するという原則のためか、コメントも少なめ
- evilwm
- evilという名だがコードはすごく親切で読みやすい
- ウィンドウの装飾はないがちゃんとre-parentしている
- 設定はコマンドラインオプションで
- sithwm
- evilwmからの派生とあるが、中身を見る限り現在はほぼ別物と言って良さそう
- メニューついてる。設定ファイルにも対応
- tinywm
- 最小のWM。最低限何をすればいいかが分かる
廃墟
- プロトタイプ1: tinywmのデッドコピー
- プロトタイプ2: 全画面型
日記
- clear/wm_devel/2011-08-13
- clear/wm_devel/2011-08-16
- clear/wm_devel/2011-08-16 (simple_client.png)
- clear/wm_devel/2011-08-23
- clear/wm_devel/2012-01-06
- clear/wm_devel/2012-04-25
- clear/wm_devel/2012-04-27
- clear/wm_devel/2012-04-30
- clear/wm_devel/2012-08-18
- clear/wm_devel/2012-09-05
- clear/wm_devel/2012-10-26
- clear/wm_devel/2012-10-26 (xenum.c)
- clear/wm_devel/2012-11-12
- clear/wm_devel/2012-12-11
- clear/wm_devel/2012-12-14
- clear/wm_devel/2012-12-23
- clear/wm_devel/2013-01-11
- clear/wm_devel/2013-01-14
- clear/wm_devel/2013-01-26
- clear/wm_devel/2013-02-09
- clear/wm_devel/2013-02-10
- clear/wm_devel/2013-02-11
- clear/wm_devel/2013-02-18
- clear/wm_devel/2013-02-19
- clear/wm_devel/2013-02-28
- clear/wm_devel/2013-03-02
- clear/wm_devel/2013-03-06
- clear/wm_devel/2013-03-08
- clear/wm_devel/2013-03-12
- clear/wm_devel/2013-03-12 (net_wm_strut.jpg)