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

MMA
3と4のリビジョン間の差分
2013-03-02 02:00:01時点のリビジョン3
サイズ: 2502
編集者: clear
コメント:
2013-03-02 02:05:48時点のリビジョン4
サイズ: 2795
編集者: clear
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 6: 行 6:
 * 控えめな装飾  * 控えめな装飾(ウィンドウ枠だけ)
行 12: 行 12:
  * 最初はタイトルバーを付けるつもりだったので必要だった
  * 途中で装飾をやめたのであまり意味がなくなった。でも練習のために実装
  * おまけとして、AWTと組み合わせても問題が発生しない

mn

概要

現在つくってるWM。特徴は以下の通り。

  • XlibでなくXCBを使用
  • スタック型(タイル化を実装予定)
  • 控えめな装飾(ウィンドウ枠だけ)

名前の由来は「まどならべ」。ある程度使い物になるところまで行ったらソースを公開する。

実装済みの機能

  • re-parenting
    • 最初はタイトルバーを付けるつもりだったので必要だった
    • 途中で装飾をやめたのであまり意味がなくなった。でも練習のために実装
    • おまけとして、AWTと組み合わせても問題が発生しない
  • マウスによるウィンドウの移動とリサイズ
    • 装飾のないWMによくある、ModKey+ドラッグの方式

    • マウスによるリサイズはウィンドウ内でのマウスポインタの位置に応じた斜め4方向に可能
    • サイズヒントに対応(ただしアスペクト比を除く)。端末とかはちゃんと文字単位でリサイズする

実装予定の機能(優先度と依存関係による順)

  • キーボードによる操作
  • WMからウィンドウを閉じられるようにする
    • キー操作の仕組みさえ実装できればすぐ書ける
  • WMからプログラムを起動できるようにする
    • 同上
    • 端末とランチャ(dmenuとか)さえ起動できればいい
  • 最大化/最小化
    • 最小化したものを復帰する手段が必要
      • Alt-Tab的なのが用意できると良いが、正直面倒1

      • 「最後に最小化したものを元に戻す」を実装する予定(要するにスタック)
  • タイル化
  • タスクバーとの連携
    • 自前のバーを別のプログラムとして書く予定。特に独自規約で通信したりはしない
    • WMをEWMHに従わせることで、既存のタスクバーアプリケーションとも組み合わせて使えるようにする
  • EWMH対応
    • 必要な部分だけ
  • 仮想デスクトップ(付けるかは検討中)
  • 設定ファイルによる設定

実装しない予定の機能

  • タイトルバー
    • ウィンドウタイトルを表示する部分として実装するつもりだったが、gravityの処理をちゃんと書くのに挫折して投げた
    • 文字列描画にcairoやpangoを使うので、依存関係が一つ増える
    • タスクバーを用意することに決めたので、タイトルの表示はそちらでまかなうことに
      • 依存関係を分離できる
    • gravityに関してはまともなものに書き直したので、後で欲しくなったら再検討する
  1. WM配下のウィンドウを作ってウィンドウ一覧を表示するあたりが (1)

clear/wm_devel/mn (最終更新日時 2013-05-10 19:45:44 更新者 clear)