2013-02-03 19 views
5

Sto scrivendo un desktop. Conosco già le basi di Qt e GTK + attraverso Python ma non capisco come visualizzare il Desktop finito. Come si fa a renderlo la finestra radice di un Window Manager, oppure esiste un metodo per visualizzare il desktop con cui non ho familiarità?Desktop che crea una finestra del desktop?

+0

Dai un'occhiata a questo comando: 'wmctrl -k on'. Mostrerà il "desktop", se il WM supporta tale. Quindi, se segui il comando (possibilmente nel WM), troverai una risposta a come è definito il desktop. –

+0

Puoi dare un'occhiata al codice della blackbox (http://sourceforge.net/projects/blackboxwm/) che è un gestore di finestre davvero semplice. –

risposta

1

Non si rende la finestra radice. X ha una finestra radice che non puoi cambiare. Ci sono un certo numero di modi per fare ciò che si vuole

  • finestra X Root

Il vecchio modo è che il desktop era solo la finestra X radice standard. Le icone erano solo finestre senza bordi individuali.

  • finestre desktop

Ora la maggior parte dei sistemi aprire una grande finestra, e segnare come essere una finestra del desktop. La maggior parte dei gestori di finestre non sa mai di sollevarla sopra altre finestre. La finestra radice di X è ancora dietro, ma è nascosta. Ciò significa che puoi fare tutto ciò che vuoi su questa finestra, disegnare su di esso, includere icone o widget o qualsiasi altra cosa il tuo toolkit può fare.

Se si utilizza Gtk +, le informazioni pertinenti si trovano nell'enum GdkWindowTypeHint, in particolare nello GDK_WINDOW_TYPE_HINT_DESKTOP. La documentazione può essere trovato qui: GdkWindow

  • Compositor

Tuttavia, c'è un modo più recente che i desktop come Gnome3 o l'uso Unità, che è chiamata la sovrapposizione finestra Compositor. Quando un compositore è in esecuzione, c'è una finestra di sovrapposizione che copre tutte le finestre del sistema. Spetta al compositore disegnare il contenuto effettivo delle finestre su questo overlay. Tuttavia, la sovrapposizione può disegnare qualsiasi cosa desideri in questa finestra di sovrapposizione. Ad esempio, in Gnome3 quando si accede al selettore di finestre e le finestre si dispongono in una griglia le finestre non si muovono e si restringono, il compositore ha appena deciso di disegnarle in questo modo. In realtà, le finestre sono ancora nella stessa posizione in cui si trovavano prima, ma nascoste sotto questa sovrapposizione.

Questo è un modo molto avanzato di fare le cose, e certamente non per lo sviluppatore alle prime armi. Probabilmente vorrai concentrarti sul secondo metodo.

+0

Esiste una soluzione basata su Qt? – Christopher

+0

Immagino di sì. Avresti bisogno di chiedere loro – iain