Non ci sono libri aggiornati che io conosca. Devi solo leggere un sacco di specifiche e codice sorgente. Fortunatamente non è quello complicato.
Direi di leggere il sorgente su gtk +/gdk/x11 (il backend X su GTK) e la fonte della tua coppia preferita di WM andrebbe molto. Le specifiche ICCCM e EMWH sono essenziali.
Un enorme cambiamento nella programmazione X rispetto alle vecchie guide è che a nessuno piace usare molte delle funzionalità lato server per il disegno, i caratteri, la stampa, ecc. Quindi le funzioni di XDrawFoo, tutto ciò che riguarda font, XPrint, GC, colormaps, tutto ciò che è più o meno obsoleto. Il disegno viene generalmente effettuato dal lato client ora con biblioteche come Cairo o Skia.
Le informazioni su Windows e pixmap e il modo in cui X funziona in quei vecchi libri sarebbe comunque accurato.
Alcuni generale X consigli se stai pasticciano con un WM:
è necessario rispondere a eventi piuttosto che ottenere lo stato. Ad esempio, considera sempre la tua taglia come l'ultima dimensione per cui hai ottenuto ConfigureNotify; non chiamare XGetGeometry o qualcosa per ottenere la tua taglia. Ottenere lo stato ha due problemi: uccide le prestazioni (bloccando un round trip = performance death) e introduce condizioni di gara.
in un WM, hai a che fare con le finestre di altre app e queste possono essere distrutte in qualsiasi momento, causando un errore se tocchi quella finestra. quindi qualsiasi funzione chiamata su una finestra potrebbe fallire.
mai usare CurrentTime, utilizzare sempre un vero e proprio timestamp, o si creerà Freaky bug race condition che ti faranno impazzire
ci sono molti ulteriori suggerimenti ma immagino che questi sono tre per arrivare iniziato a evitare errori comuni ;-)
fonte
2010-07-23 02:03:32
X è una tecnologia piuttosto vecchia. Lo sviluppo moderno della GUI UNIX/Linux avviene in QT o GTK + (o in molti altri toolkit). Non sprecare la programmazione del tempo in Xlib. Passa un giorno al massimo e poi impara GTK o Qt (che sono implementati usando Xlib) –