Vuoi costruire il tuo DE (ambiente desktop). Esempi comuni sono GNOME e KDE, sebbene molti di essi fossero popolari. In realtà era molto popolare costruire il proprio DE e spesso venivano creati strumenti di scripting dedicati.
Di solito avrai bisogno di combinare più strumenti:un gestore di finestre, un programma della barra degli strumenti, un gestore del desktop (icone), un gestore di sessioni, possibilmente di più. Di questo solo un gestore di finestre è una parte richiesta (di solito non ha senso non eseguire alcun WM all'interno del server X), e altri sono opzionali. Di solito non scriverai questi strumenti da zero (è molto lavoro), ma utilizzerai componenti già disponibili.
Si noti che sia GNOME che KDE in realtà sono costituiti da questi elementi (ben integrati). Ad esempio GNOME consiste in un gestore di finestre (metacity
), barre degli strumenti (gnome-panel
), gestore desktop (nautilus
) e così via. Puoi cambiare un elemento in un altro se vuoi:era popolare usare sawfish
come window manager invece di metacity
, mantenendo intatti tutti gli altri elementi. Ora è popolare usare compiz
invece di metacity
.
Usavo FVWM, che è un gestore di finestre con funzionalità di scripting aggiuntive (abbastanza buone) che potrebbero essere utilizzate per creare barre degli strumenti, menu e altre cose. Uno dei migliori esempi è FVWM-Crystal, che è un DE completo costruito su FVWM e pochi altri strumenti, scritto in un mix di scripting FVWM e Python. Potresti effettivamente modificare qualsiasi tipo di comportamento in fase di esecuzione semplicemente aprendo la console di scripting di FVWM e digitando i comandi. FVWM-Crystal può essere un buon punto di partenza se vuoi partire da qualcosa di già utilizzabile; bare FVWM va bene se vuoi costruire il tuo DE da zero.
[AGGIORNAMENTO:sembra che gnome-shell sia molto simile a questo riguardo a FVWM
. La maggior parte del suo comportamento è scritta utilizzando JavaScript (invece di un linguaggio personalizzato in FVWM) ed è molto facile da modificare. È anche sviluppato molto attivamente, in quanto è una parte importante di GNOME3, con un ottimo supporto per la composizione. È il paradiso degli hacker;-)]
[UPDATE2:quindi sembra che avessi ragione su gnome-shell. C'è un Cinnamon, che utilizza lo stesso framework (mutter
gestore di finestre) come gnome-shell
, tuttavia crea un desktop che funziona in modo diverso rispetto a gnome-shell
.]
C'era un sito Web che era una buona fonte di idee da implementare:lynucs.org. È inattivo da due anni ormai, ma è stato archiviato.
Attenzione:molti di questi componenti non sono più mantenuti, soprattutto da quando GNOME/KDE ha iniziato a diventare effettivamente utilizzabile. Lo sviluppo in quest'area è solitamente guidato più da requisiti specifici dei dispositivi embedded:telefoni o netbook.
Ora, per rispondere alle tue reali domande:
- Linux/OS flaver:qualsiasi cosa facilmente personalizzabile:Debian, Arch, Gentoo, LFS...
- Strumenti/framework:dipende da cosa vuoi ottenere. Se vuoi scrivere una barra degli strumenti personalizzata potresti semplicemente usare alcuni linguaggi di scripting (come quelli di FVWM), strumenti personalizzati come adesklets o scriverne uno tuo in Qt (se la maggior parte degli altri componenti è in Qt) o GTK (se la maggior parte degli altri componenti componenti è in GTK).
- UI personali:ce n'erano molte e siti come lynucs.org ne erano una bella raccolta (lynucs elencava i componenti usati in ogni desktop).
- Effetti di trasparenza complessi:gli strumenti più vecchi di solito non lo gestiscono in modo nativo o fanno cose semplici come riutilizzare parte dello sfondo del desktop come sfondo (la cosiddetta trasparenza falsa). Molto probabilmente dovrai scrivere il tuo codice, ad es. come plugin per
compiz
.
Se l'interfaccia utente è veloce e interessante, suggerirei di esaminare Enlightenment. È più vecchio di Gnome e l'ho trovato un'opzione estremamente veloce e con un basso consumo di risorse.
Probabilmente inizierei con un'installazione di Ubuntu e il gestore di finestre OpenBox e svilupperei da lì.
OpenBox è molto minimo ma puoi aggiungere applicazioni (ad es. Docky, Awn, ecc.) per fornire elementi di interfaccia desktop o scriverne di tuoi.