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

MMA
7と41のリビジョン間の差分 (その間の編集: 34回)
2012-01-06 02:11:44時点のリビジョン7
サイズ: 3561
編集者: clear
コメント:
2013-06-24 01:16:30時点のリビジョン41
サイズ: 1725
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 1: 行 1:
ウィンドウマネージャ開発メモ
= 動機 =
 * 毎日使って、それで暮らすものだからどうせなら自作したいね
 * X Window Systemの勉強には丁度いいかもね
X Window Systemにおけるウィンドウマネージャに関するページ
行 6: 行 3:
= 暫定的仕様 =
 * 色んな環境で気軽にコンパイルして使いたいので、依存先を減らす
  * C標準ライブラリとXlibで書けば大丈夫だろう、たぶん……と思っていたが、STLが使いたいのでC++にしようかと思案中
  * ファイルIO(必要なら)にはcstdioを使う(printf族を使いたい)
 * Xlibで書く
  * awesomeなんかが使っているxcbを使う手もあるが、Xlibを使った小さめのウィンドウマネージャが割とごろごろ出てきて参考にできるので、こちらを使うことに
 * できる限り小さいものにする
  * 現実的に、実装できそうな規模にする
 * 仮想デスクトップ的なものは欲しい
  * dwmみたいなタグベースのものにするか否か
 * タイル型
  * フローティングもサポートするダイナミック型に
  * 具体的なスタイルをどうするかは要検討
   * [[https://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers#Management_style|いっぱいある]]
  * できれば、小さい画面から大きい画面まで使いやすいものがいい
   * ウィンドウが無い状態でも先に画面を分割しておいて、後からウィンドウをはめ込んでいくようにすると高解像度の画面では便利かもしれない
    * 1920x1080の端末エミュレータを使いたいことはそうそう無い
  * できるだけ柔軟に分割したい
   * 最低限、h/v-stackは必要。加えてnmasterがあると便利
   * 無秩序にやりすぎるとウィンドウの入れ替えや巡回がし辛い
 * コンパイル時設定 or 単純なテキストによる設定
  * 設定ファイルの仕様を考えてパースするコードを書くのは面倒
  * ヘッダか何かにまとめて書くdwm方式で良いか
  * それなりに使えるようになってからまた考える
 * ウィンドウマネージャの機能として
  * バー/トレイをつけるか
   * バーとは限らないが、仮想デスクトップの状態を把握できる何かは欲しい
   * 既存の優秀なバー/トレイアプリケーションが存在するので必要ならそれを使えばいいか
  * メニューをつけるか
   * いらない? 実装が面倒
   * dmenuあたりを使えば良いか
{{{#!wiki caution
更新が止まっています。内容をまとめ直してどこかに移転しようかと思案しているところ
}}}
行 38: 行 7:
= 名称 =
 * tinyとかsmallとかminimalみたいな単語は使い尽くされていた
 * どうやらlesserは使われてなさそうな雰囲気
  * レッサーパンダとかLGPLの最初のLとかのlesser
 * ということでlesser window manager
  * 縮めてlswmとかだろうか
 * [[/wmnote|既存のWMに関するメモ]]
 * [[/library|WM開発に用いるライブラリ]]
 * [[/doc|各種資料へのリンク]]
行 45: 行 11:
= 資料 =
== 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
つくった
 * [[/wm]]
行 64: 行 14:
= 日記 =
<<PageList(regex:clear/wm_devel/[0-9]{4}-[0-9]{2}-[0-9]{2})>>
つくってる
 * [[/mn]]

資料を読んでまとめたり思いつきを書く開発メモ
 * [[/2011-08-13|WMとは]]
 * [[/2011-08-16|何もしないXクライアント]]
 * [[/2011-08-23|テキストの描画]]
 * [[/2012-01-06|タイル型配置いろいろ]]
 * [[/2012-04-25|全画面型WM]]
 * [[/2012-04-27|メモ(2012-04-27)]]
 * [[/2012-04-30|メモ(2012-04-30)]]
 * [[/2012-08-18|ウィンドウタイトルの取得]]
 * [[/2012-09-05|画面サイズの取得]]
 * [[/2012-10-26|ウィンドウの列挙]]
 * [[/2012-11-12|シグナル処理]]
 * [[/2012-12-11|WM-クライアント間通信]]
 * [[/2012-12-14|XCBの基本]]
 * [[/2012-12-23|XCBのリクエスト処理]]
 * [[/2013-01-11|メモ(2013-01-11)]]
 * [[/2013-01-14|仮想デスクトップ]]
 * [[/2013-01-26|reparentingとsaveset]]
 * [[/2013-02-09|入力フォーカス]]
 * [[/2013-02-10|サイズヒント]]
 * [[/2013-02-11|ConfigureRequest]]
 * [[/2013-02-18|座標系、タイトルバーの必要性]]
 * [[/2013-02-19|マウスイベントの処理]]
 * [[/2013-02-28|枠だけドラッグ]]
 * [[/2013-03-02|イベントループの改良]]
 * [[/2013-03-06|WMのデバッグに役立つツール]]
 * [[/2013-03-08|タスクバーとの連携]]
 * [[/2013-03-12|ウィンドウ配置に関する色々]]

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