ログイン
編集不可のページディスカッション情報添付ファイル
"clear/wm_devel"の差分

MMA
1と13のリビジョン間の差分 (その間の編集: 12回)
2011-11-03 01:00:48時点のリビジョン1
サイズ: 1957
編集者: clear
コメント:
2012-09-06 12:41:08時点のリビジョン13
サイズ: 1879
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 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あたりを使えば良いか
= 要件 =
 * 何でもいいから最低限動くものを作ってみる
行 29: 行 6:
== 名称 ==
 * 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。現在では古く適さないものもあるとのこと
 * http://cgit.freedesktop.org/xorg/proto/randrproto/tree/randrproto.txt
  * XRandRの仕様
== 参考とする実装 ==
 * dwm
  * タイル型
  * ソースが1つしかないのでとっつきやすいが、細かく追おうとすると読みづらい
  * ソースコードを2000行程度に維持するという原則のためか、コメントも少なめ
  * C99使ってる
 * evilwm
  * evilという名だがコードはすごく親切で読みやすい
  * EWMH対応が参考になる。ソースファイルが分割されていて(ewmh.c)、対応状況もテキストファイルにまとまっている
  * ウィンドウの装飾はないがちゃんとre-parentしている
  * 設定はコマンドラインオプションで
 * monsterwm
  * dwmよりさらにコードが短いタイル型
  * コーディングスタイルはdwmに似ているが、よりシンプルな作りでコメントも豊富なので読みやすい
 * tinywm
  * 最小のWM。最低限何をすればいいかが分かる

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

= 日記 =
<<PageList(regex:clear/wm_devel/[0-9]{4}-[0-9]{2}-[0-9]{2})>>

ウィンドウマネージャ開発メモ

要件

  • 何でもいいから最低限動くものを作ってみる

資料

X Window プログラミング

規格

参考とする実装

  • dwm
    • タイル型
    • ソースが1つしかないのでとっつきやすいが、細かく追おうとすると読みづらい
    • ソースコードを2000行程度に維持するという原則のためか、コメントも少なめ
    • C99使ってる
  • evilwm
    • evilという名だがコードはすごく親切で読みやすい
    • EWMH対応が参考になる。ソースファイルが分割されていて(ewmh.c)、対応状況もテキストファイルにまとまっている
    • ウィンドウの装飾はないがちゃんとre-parentしている
    • 設定はコマンドラインオプションで
  • monsterwm
    • dwmよりさらにコードが短いタイル型
    • コーディングスタイルはdwmに似ているが、よりシンプルな作りでコメントも豊富なので読みやすい
  • tinywm
    • 最小のWM。最低限何をすればいいかが分かる

廃墟

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

日記

clear/wm_devel (最終更新日時 2013-06-24 01:16:30 更新者 clear)