Linuxのウィンドウマネージャーの作成
-
28-09-2019 - |
質問
シンプルなスタッキングウィンドウマネージャーを作成したい C
)私的使用、主に自分自身を学び、挑戦する目的のために。
私は見た twm
ベルとホイッスルが比較的少ないが、ウィジェットツールキットに基づいていないため、非常に低いレベルのように思えます。1 GTK+などのツールキットを使用することが望ましいでしょうか?コードとライブラリの一部が twm
時代遅れすぎるかもしれません(編集: 非推奨)そして、私はウィンドウマネージャーに比較的最新のライブラリを使用してもらいたいです。理解するために、私はまた、ウィンドウマネージャーをゼロから始める方法の提案にも興味があります。この目的のためのチュートリアルは多くありません。
アップデート: 同様のプロジェクトを考えている人のために:私は共通のLISPと CLXライブラリ. tinywm-lisp 根拠として、そして華麗なものとして機能しました clfswm と Stumpwm 大いに助けになりました。参照のために、私は使用しました CLX - 一般的なLISP Xインターフェイス (PDF警告) と #xlib
FreeNodeで。
解決
何をするにしても、XLIBではなくXCBを使用してください。それは「モダンで非同期で、よりシンプルで、X11プロトコルに直接アクセスできます。
他のヒント
のコードをご覧ください DWM. 。コードベースは美しく、理解しやすいです。全体は約2000行です。
C ++でX11ウィンドウマネージャーを書く方法を示す詳細なチュートリアルシリーズを作成しました。
さらに、シンプルなサンプルウィンドウマネージャー、Basic_WMをチェックアウトできます。
それは教育的な目的のために大いにコメントされています。
Xlib vs XCBでは、最初に開始する場合は、XCBを介してXLIBをお勧めします。 XCBはより効率的ですが、それははるかに低レベルで、はるかに冗長です(GUIのアセンブリ言語を考えてください)。すでにプロトタイプが機能しているまで、時期尚早の最適化に負担をかけたくありません。
http://code.google.com/p/partiwm/ ゼロからウィンドウマネージャー(タイリング、スタッキングではなく)を書く試みです。コードを読むのに役立つかもしれません。
Metacityは、特定のUI要素にGTKを使用します。そのハッキングとreadmeを参照してください。
参照してください 良いXLIBプログラミングガイドはどこにありますか?
理解するために、私はまた、ウィンドウマネージャーをゼロから始める方法の提案にも興味があります
AEWMウィンドウマネージャーをご覧ください。コードは小さく、基本を非常にうまく行います。 cで書かれており、xlibを使用します。
Xmonad 開始するのに適した場所かもしれません。