1957
コメント:
|
3383
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 1: | 行 1: |
= ウィンドウマネージャ開発メモ = == 動機 == |
ウィンドウマネージャ開発メモ = 動機 = |
行 6: | 行 6: |
== 暫定的仕様 == | = 暫定的仕様 = * 色んな環境で気軽にコンパイルして使いたいので、依存先を減らす * C標準ライブラリとXlibで書けば大丈夫だろう、たぶん * 生産性が課題 |
行 17: | 行 20: |
* コンパイル時設定 * まずもって設定ファイルの仕様を考えてパースするコードを書くのが面倒 |
* できれば、小さい画面から大きい画面まで使いやすいものがいい * ウィンドウが無い状態でも先に画面を分割しておいて、後からウィンドウをはめ込んでいくようにすると高解像度の画面では便利かもしれない * 1920x1080の端末エミュレータを使いたいことはそうそう無い * できるだけ柔軟に分割したい * 最低限、h/v-stackは必要 * 無秩序にやりすぎるとウィンドウの入れ替えや巡回がし辛い * コンパイル時設定 or 単純なテキストによる設定 * 設定ファイルの仕様を考えてパースするコードを書くのは面倒 |
行 29: | 行 38: |
== 名称 == | = 名称 = |
行 35: | 行 44: |
= 資料 = == 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 5.9 * sithwm * tinywm * evilwm = 日記 = <<PageList(regex:clear/wm_devel/[0-9]{4}-[0-9]{2}-[0-9]{2})>> |
ウィンドウマネージャ開発メモ
動機
- 毎日使って、それで暮らすものだからどうせなら自作したいね
- X Window Systemの勉強には丁度いいかもね
暫定的仕様
- 色んな環境で気軽にコンパイルして使いたいので、依存先を減らす
- C標準ライブラリとXlibで書けば大丈夫だろう、たぶん
- 生産性が課題
- Xlibで書く
- awesomeなんかが使っているxcbを使う手もあるが、Xlibを使った小さめのウィンドウマネージャが割とごろごろ出てきて参考にできるので、こちらを使うことに
- できる限り小さいものにする
- 現実的に、実装できそうな規模にする
- 仮想デスクトップ的なものは欲しい
- dwmみたいなタグベースのものにするか否か
- タイル型
- フローティングもサポートするダイナミック型に
- 具体的なスタイルをどうするかは要検討
- できれば、小さい画面から大きい画面まで使いやすいものがいい
- ウィンドウが無い状態でも先に画面を分割しておいて、後からウィンドウをはめ込んでいくようにすると高解像度の画面では便利かもしれない
- 1920x1080の端末エミュレータを使いたいことはそうそう無い
- ウィンドウが無い状態でも先に画面を分割しておいて、後からウィンドウをはめ込んでいくようにすると高解像度の画面では便利かもしれない
- できるだけ柔軟に分割したい
- 最低限、h/v-stackは必要
- 無秩序にやりすぎるとウィンドウの入れ替えや巡回がし辛い
- コンパイル時設定 or 単純なテキストによる設定
- 設定ファイルの仕様を考えてパースするコードを書くのは面倒
- ヘッダか何かにまとめて書くdwm方式で良いか
- それなりに使えるようになってからまた考える
- ウィンドウマネージャの機能として
- バー/トレイをつけるか
- バーとは限らないが、仮想デスクトップの状態を把握できる何かは欲しい
- 既存の優秀なバー/トレイアプリケーションが存在するので必要ならそれを使えばいいか
- メニューをつけるか
- いらない? 実装が面倒
- dmenuあたりを使えば良いか
- バー/トレイをつけるか
名称
- 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
- 「X Window ハンドブック」
規格
http://standards.freedesktop.org/wm-spec/wm-spec-latest.html
- EWMH
http://www.x.org/docs/ICCCM/icccm.pdf (pdf)
- ICCCM。現在では古く適さないものもあるとのこと
実装
- dwm 5.9
- sithwm
- tinywm
- evilwm
日記
- 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)