簡體   English   中英

為Linux創建窗口管理器

[英]Creating a window manager for Linux

我想創建一個簡單的堆棧窗口管理器(在C )供私人使用,主要用於學習和挑戰自己。

我查看了twm的源代碼,它的鈴聲和口哨相對較少,但它似乎非常低,因為它不是基於小工具工具包。 1使用GTK +等工具包會更好嗎? 我擔心twm中的一些代碼和庫可能過於陳舊( 編輯:不推薦),我希望窗口管理器使用相對現代的庫。 為了便於理解,我也對如何從頭開始一個窗口管理器的建議感興趣 - 沒有很多教程可以用於此目的。

更新:對於那些考慮類似項目的人:我最終使用了Common Lisp和CLX庫 tinywm-lisp作為基礎,輝煌的CLFSWMStumpwm是一個很好的幫助。 作為參考,我在Freenode上使用了CLX - Common LISP X接口PDF警告 )和#xlib

無論你做什么,使用XCB而不是Xlib。 它“現代,異步,簡單,讓您直接訪問X11協議。

一個非常簡約的WM是wm2 我沒有閱讀源代碼,因此我不知道它是否是一個教學示例。 當然,您可以使用已經為gdkgtk做很多抽象和繪圖工作的庫。 但由於這個項目僅用於個人學習,我會努力工作並直接使用Xlib。

以下是一些可能對您有用的鏈接:

看看dwm的代碼。 代碼庫很漂亮,易於理解。 整件事大約有2000行。

我編寫了一個深入的教程系列,向您展示如何用C ++編寫X11窗口管理器:

此外,您可以查看一個簡單的示例窗口管理器,basic_wm,at

它因教學目的而備受好評。

在Xlib和XCB上 - 如果你剛開始的話,我會推薦Xlib而不是XCB。 XCB效率更高,但它更低級,更冗長(想想GUI的匯編語言)。 在你已經有一個原型工作之前,你不想讓自己過早優化。

http://code.google.com/p/partiwm/嘗試從頭開始編寫窗口管理器(平鋪,而不是堆疊),閱讀代碼可能對您有用。

metacity對某些UI元素使用gtk。 請參閱其HACKING和README。

另請參閱哪些優秀的Xlib編程指南?

為了便於理解,我也會對如何從頭開始啟動窗口管理器的建議感興趣

您可能想看看aewm窗口管理器。 代碼很小,很好地完成了基礎知識。 它是用C語言編寫的,使用的是Xlib。

http://www.red-bean.com/decklin/aewm/

Xmonad可能是一個很好的起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM