Domanda

Sto cercando di scrivere un gestore di finestre. (In realtà, ho sono scritto un sistema operativo e un compilatore, ma non è questo il punto.)

XLib e xcb non sono esattamente brutto, almeno non da, per esempio, gli standard win32, ma sono sicuramente molto vecchi e non si prestano bene ad astrazioni decenti per rendere la mia vita più facile. Non solo, ma c'è una netta mancanza di buoni attacchi per i moderni linguaggi di alto livello.

La mia domanda è: è tutta questa roba di basso livello in questi giorni davvero necessario? Esistono librerie che sarà incapsulare tutta la roba brutta per me? Ho un vago ricordo che il popolo illuministi avevano fatto una cosa del genere, ma non riesco a trovare nulla. O se moderne librerie di widget come, ad esempio, GDK hanno abbastanza funzionalità che non avrei bisogno di toccare il livello di Xlib?

Le eventuali librerie con binding Java sono di particolare interesse ...

È stato utile?

Soluzione

Questa è una risposta in ritardo quindi forse non ha molta rilevanza più ma vi posterò comunque dal momento che altre persone potrebbero essere alla ricerca di esso ...

ho chiesto la stessa domanda ed è giunta alla conclusione che non esiste una cosa del genere, soprattutto non in Java. Mentre alcuni toolkit, come qt, vi offrono la possibilità di utilizzare una struct display esistente e creare widget di martelline xlib esistente, avrai ancora usare Xlib / xcb per fare il lavoro sporco di comunicare con il server X per wm operazioni specifiche. Altre librerie, come già detto da altri, come GDK e l'illuminazione offrono anche un buon lavoro piuttosto di astrazione di base.

Ancora, non ero felice con il fatto che tutte queste uso C / C ++ e seduto sul mio culo pigro di attesa fino a quando qualcuno ha fatto il lavoro per me in Java non era un'opzione, ho iniziato a scrivere la mia libreria che ti permette di costruire il proprio WM modulare, in Java. https://github.com/Zubnix/trinityshell

Altri suggerimenti

è tutta roba questo basso livello davvero necessario in questi giorni?

Se per "roba di basso livello" si intende il linguaggio C, allora no, non è necessario dal punto di vista tecnico; si potrebbe usare di XCB XML di generare associazioni per qualsiasi lingua.

Tuttavia, se per "roba di basso livello" Vuoi dire che fare a livello di protocollo X, allora, sì, è necessario (se non si vuole tirare i capelli). Un Window Manager deve lavorare a livello di protocollo X11, in modo da utilizzare qualcosa di "alto livello" servirà solo a rendere la vita difficile. In realtà, XCB è stato creato proprio per Xlib era troppo di alto livello, mascherando troppo al di sotto quindi era facile fare errori, e rendendo difficile o impossibile avere il pieno controllo. (Inoltre, XCB non è "molto vecchio" dal punto di vista X,. È solo negli ultimi anni che tutte le principali distribuzioni di Linux finalmente iniziato completamente utilizzando XCB)

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