Login
Immutable PageDiscussionInfoAttachments
Diff for "clear/wm_devel"

MMA
Differences between revisions 1 and 11 (spanning 10 versions)
Revision 1 as of 2011-11-03 01:00:48
Size: 1957
Editor: clear
Comment:
Revision 11 as of 2012-05-04 00:09:36
Size: 1775
Editor: clear
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= ウィンドウマネージャ開発メモ =
== 動機 ==
 * 毎日使って、それで暮らすものだからどうせなら自作したいね
 * X Window Systemの勉強には丁度いいかもね
ウィンドウマネージャ開発メモ
Line 6: Line 3:
== 暫定的仕様 ==
 * Xlibで書く
  * awesomeなんかが使っているxcbを使う手もあるが、Xlibを使った小さめのウィンドウマネージャが割とごろごろ出てきて参考にできるので、こちらを使うことに
 * できる限り小さいものにする
  * 現実的に、実装できそうな規模にする
 * 仮想デスクトップ的なものは欲しい
  * dwmみたいなタグベースのものにするか否か
 * タイル型
  * フローティングもサポートするダイナミック型に
  * 具体的なスタイルをどうするかは要検討
   * [[https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers#Management_style|いっぱいある]]
 * コンパイル時設定
  * まずもって設定ファイルの仕様を考えてパースするコードを書くのが面倒
  * ヘッダか何かにまとめて書くdwm方式で良いか
  * それなりに使えるようになってからまた考える
 * ウィンドウマネージャの機能として
  * バー/トレイをつけるか
   * バーとは限らないが、仮想デスクトップの状態を把握できる何かは欲しい
   * 既存の優秀なバー/トレイアプリケーションが存在するので必要ならそれを使えばいいか
  * メニューをつけるか
   * いらない? 実装が面倒
   * dmenuあたりを使えば良いか
= 要件 =
 * ソースさえあればどこでもビルドできる程度に依存関係が少ないこと
  * 仮定:「Xlibくらいどこにでもあるだろう」
 * キーボードによる操作がしやすいこと
 * 最低限の機能を備えること
Line 29: Line 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 プログラミング

規格

参考とする実装

  • dwm
    • タイル型
    • ソースが1つしかないのでとっつきやすいが、細かく追おうとすると読みづらい
    • ソースコードを2000行程度に維持するという原則のためか、コメントも少なめ
  • evilwm
    • evilという名だがコードはすごく親切で読みやすい
    • ウィンドウの装飾はないがちゃんとre-parentしている
    • 設定はコマンドラインオプションで
  • sithwm
    • evilwmからの派生とあるが、中身を見る限り現在はほぼ別物と言って良さそう
    • メニューついてる。設定ファイルにも対応
  • tinywm
    • 最小のWM。最低限何をすればいいかが分かる

廃墟

  • プロトタイプ1: tinywmのデッドコピー
  • プロトタイプ2: 全画面型

日記

clear/wm_devel (last edited 2013-06-24 01:16:30 by clear)