Domanda

Voglio creare un window manager semplice accatastamento (in C) per uso privato, principalmente con lo scopo di imparare e mi sfida.

Ho guardato attraverso il codice sorgente di twm che ha relativamente pochi fronzoli ma sembra livello molto basso in quanto non è basato su un toolkit di widget. href="http://en.wikipedia.org/wiki/CLX_%28Common_Lisp%29" rel="noreferrer"> 1 Sarebbe utilizzando un kit di strumenti come GTK + preferibile? Ho paura che parte del codice e le librerie in twm potrebbe essere troppo antiquato ( Modifica: deprecato) e voglio il window manager di utilizzare le librerie relativamente moderni. Per motivi di comprensione vorrei anche essere interessati a proposte come avviare un window manager da zero - non ci sono molti tutorial per questo scopo

.

Aggiornamento: Per coloro che pensano di progetti simili: ho finito per usare Common Lisp e la CLX libreria . tinywm-lisp servito come base e l'incantevole CLFSWM e stumpwm sono stati di grande aiuto. Per riferimento ho usato il CLX - Common Lisp X Interface ( avvertimento PDF ) e #xlib su Freenode.

È stato utile?

Soluzione

Qualunque cosa tu faccia, l'uso XCB e non Xlib. E', asincrono, più semplice e consente di accedere direttamente al protocollo X11.

moderno

Altri suggerimenti

Un WM molto minimalista è WM2 . Non ho letto il codice sorgente e quindi non so se si tratta di un esempio di insegnamento. Naturalmente è possibile utilizzare librerie che già fanno gran parte del disegno astrazione e lavoro per voi come gdk gtk . Ma dal momento che questo progetto è solo per l'apprendimento personale, mi piacerebbe andare nel modo più duro e utilizzare Xlib direttamente.

Ecco alcuni link che potrebbero essere utili per voi:

Date un'occhiata al codice per dwm . La base di codice è bello e facile da capire. L'intera cosa è di circa 2000 linee.

ho scritto una serie di tutorial approfondito che vi mostra come scrivere un window manager per X11 in C ++:

In aggiunta, è possibile controllare un manager semplice finestra esempio, basic_wm, a

E 'pesantemente commentato per scopi pedagogici.

In Xlib vs XCB - consiglierei Xlib oltre XCB se sei prima di partire. XCB è più efficiente, ma è molto più basso livello e molto più prolisso (si pensi assemblaggio lingua per l'interfaccia grafica). Non si vuole gravare te stesso con l'ottimizzazione prematura finché non si dispone già di un prototipo funzionante.

http://code.google.com/p/partiwm/ è un tentare di scrivere un gestore di finestre (piastrelle, senza accatastamento) da zero, potrebbe essere utile a voi per leggere il codice.

usi metacity GTK per alcuni elementi dell'interfaccia utente. Vedere la sua HACKING e README.

Dove sono alcune guide di programmazione buona Xlib?

  

Per motivi di comprensione Vorrei anche essere interessati a suggerimenti su come avviare un window manager da zero

Si consiglia di dare un'occhiata al il window manager aewm. Il codice è piccola e fa le basi abbastanza bene. E 'scritto in C e usa Xlib.

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

Xmonad potrebbe essere un buon posto per cominciare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top