ウィンドウマネージャの構築 [closed] 質問する

ウィンドウマネージャの構築 [closed] 質問する

私の新しいホーム プロジェクトの 1 つは、シンプルなウィンドウ マネージャーですが、開始する前にいくつか知っておくべきことがあります。

  • これを実行するのに最適な言語はどれですか?
  • 学習するためのリソースはどこで入手できますか?

ベストアンサー1

重要な決定の1つは、Xサーバーとどのように通信するかです。Xlib選択した言語のバインディングを使用するか、より高レベルのクロスボーダーバインディング。(非常識な、X サーバーへのソケットを直接開くこともできます。

ウィンドウ マネージャーがどのように動作するかを知るには、規則とポリシーを規定する 2 つのドキュメントがあります。EWMHそして国際化学協会1 . これらに準拠すると、ウィンドウ マネージャーは GNOME、KDE、XFCE、その他のデスクトップ環境で適切に動作しますが、最初はこれらを無視する方が間違いなく簡単です。

ウィンドウ マネージャーは、巨大で複雑な C の塊である必要はありません。成功したウィンドウ マネージャーは、Lisp、Haskell、Python などの高級言語で書かれており、C で書かれたものでも小さくて読みやすいものがいくつかあります。XモナドHaskell で書かれた は、かなり長い間 1000 行未満に留まりました。スタンプWM(Common Lisp) とデイリーニュース(C) はどちらも非常にミニマリスト的です。ソース コードを読むことで、WM の設計方法についてのインスピレーションを得ることができるかもしれません。


1エリヤ・ニューレンはこう書いています。

絶対に読まないでください。本当に退屈です。読むと、Metacity をハッキングする代わりに、睡眠不足に陥ってしまうでしょう。;-)

良く考えると、メタシティのドキュメントには、ウィンドウとどのように対話するか、どのような拡張プロパティをサポートするかについて詳しく説明されています。

おすすめ記事