Pregunta

Quiero crear un simple gestor de ventanas de apilamiento (en C) para uso privado, principalmente con el propósito de aprender y desafiando a mí mismo.

He mirado a través del código fuente twm que tiene relativamente pocas campanas y silbidos, pero parece muy bajo nivel, ya que no se basa en un conjunto de herramientas de widgets. 1 haría con un conjunto de herramientas tal como GTK + ser preferible? Me temo que algunos de los códigos y las bibliotecas en twm podría ser demasiado anticuado ( editar en desuso) y quiero que el gestor de ventanas para utilizar las bibliotecas relativamente modernas. En aras de la comprensión de que también estaría interesado en sugerencias de cómo iniciar un gestor de ventanas desde cero - no hay muchos tutoriales para este fin

.

Actualización: Para aquellos que estén pensando de proyectos similares: Terminé usando Common Lisp y el CLX biblioteca . tinywm-lisp servido de base y la brillante CLFSWM y Stumpwm fueron de gran ayuda. Para referencia utilicé el CLX - X de interfaz común LISP ( advertencia PDF ) y #xlib en Freenode.

¿Fue útil?

Solución

Haga lo que haga, el uso XCB y no Xlib. Es moderno, asíncrono, más simple y le da acceso directo al protocolo X11.

Otros consejos

A WM es muy minimalista wm2 . No he leído el código fuente y, por tanto, no sé si es un ejemplo de enseñanza. Por supuesto se puede usar bibliotecas que ya hacen gran parte de la abstracción y el trabajo de dibujo para ti como gdk GTK . Pero dado que este proyecto es sólo para el aprendizaje personal, me gustaría ir por el camino difícil y el uso de Xlib directamente.

Estos son algunos enlaces que pueden ser útiles para usted:

Tener un vistazo al código para DWM . El código base es hermoso y fácil de entender. Todo el asunto es de aproximadamente 2000 líneas.

He escrito una serie de tutoriales en profundidad que muestra cómo escribir un gestor de ventanas X11 en C ++:

Además, se puede comprobar a cabo un gestor de ventana sencilla ejemplo, basic_wm, a

Es muy comentado con fines pedagógicos.

En Xlib vs XCB - recomendaría Xlib sobre XCB si usted está empezando a cabo primero. XCB es más eficiente, pero es mucho más bajo nivel y mucho más prolijo (pensar en lenguaje ensamblador para la interfaz gráfica de usuario). Usted no quiere ser una carga para usted mismo con la optimización prematura hasta que ya tiene un trabajo de prototipo.

http://code.google.com/p/partiwm/ es una intentar escribir un gestor de ventanas (suelo de baldosas, no apilar) a partir de cero, podría ser útil para que lea a través del código.

usos Metacity GTK para ciertos elementos de interfaz de usuario. Ver su piratería y README.

¿Dónde están algunas guías de programación buena Xlib

xmonad podría ser un lugar bueno para comenzar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top