Quali sono i sottosistemi dell'interfaccia utente, i loro componenti e responsabilità?


8

Sto cercando di comprendere i diversi sottosistemi che si occupano dell'interfaccia utente, la terminologia a cui fare riferimento e come sono strutturati; finora so che ci sono:

Al livello superiore:

desktop ? (kde, gnome, ecc.)

Poi abbiamo:

  • un display manager (chiamato anche desktop manager o ambiente desktop)
  • gestore di finestre
  • qualunque altra cosa?

Sto trasformando questo in un wiki della comunità, mi piacerebbe che questo fosse un posto centrale per * tutto quello che c'è da sapere (dal punto di vista dell'utente) per quanto riguarda i sottosistemi dell'interfaccia utente in Linux; quello che vorrei sapere è quali sono i componenti di ciascuno e quali sono le responsabilità di ciascuno, cioè vorrei sapere cose come:

  • cosa si occupa esattamente dei tasti di scelta rapida globali, quando apro la finestra di dialogo "Esegui applicazione", chi lo fa, quando premo un tasto per mostrare il desktop, eseguire un terminale, ingrandire una finestra, ecc., chi sta catturando quello e inviarlo alla finestra giusta;
  • che si occupa di disegnare il desktop, le aree di lavoro, ecc.
  • quali sono le variabili d'ambiente che possono darmi informazioni su questi componenti
  • Il "menu principale" è un sottosistema o un componente di un sottosistema?

Sarebbe anche bello compilare un elenco dei desktop / sottosistemi più popolari, che funzionano sotto ciascuno, è possibile combinare desktop / ambienti desktop / gestori di finestre, ecc.?

Infine, come faccio a sapere quali desktop / sottosistemi sono effettivamente in esecuzione (attivi?) Sul sistema, possono utenti diversi avere un sottosistema diverso ciascuno?

Risposte:


5

Prima di tutto, un Display Manager (o DM, ad esempio xdm, gdm, kdm) non è lo stesso di un ambiente desktop (o DE, ad esempio GNOME, KDE, XFCE).

Display Manager si occupa dell'accesso grafico e decide (o consente di scegliere) quale sessione eseguire. O quale sessione * s * nel caso in cui si scelga l'opzione di menu "cambia utente".

Un ambiente desktop è fondamentalmente una raccolta di programmi (display manager, gestore finestre, gestore sessioni, pannelli, strumenti di configurazione, ecc.) E librerie (ad esempio Gtk) che intendono offrire un ambiente coerente e integrato in cui lavorare.

Un gestore di finestre gestisce le finestre: dove posizionarle, spostarle, ridimensionarle, ridurle / ingrandirle, affiancarle, ecc.). Gestisce anche le scorciatoie per fare quelle cose. In alcuni casi il gestore delle finestre dipinge anche i bordi delle finestre, in altri casi questo compito è affidato a un "decoratore di finestre".

La finestra di dialogo "Esegui applicazione" in GNOME è parte di gnome-panel, ma in un'altra DE potrebbe essere un'altra parte dell'ambiente.

Dipende da chi si occupa di dipingere finestre ecc.; nel caso in cui sia in uso un "compositore" (spesso parte del gestore delle finestre, ad esempio in Compiz), il compositore dipinge le finestre sullo schermo, altrimenti (come era solito fare in passato) è l'X-server che lo fa.

I menu principali vengono visualizzati sullo schermo da una parte del pannello di gnome, ma i dati utilizzati provengono da un mucchio di file /usr/share/applications/(eventualmente combinati con una directory equivalente nella tua casa per le modifiche personali). Questi file hanno una struttura definita da FreeDesktop.org (una piattaforma per diversi DE per collaborare su un'infrastruttura comune), in modo che GNOME e KDE conoscano gli stessi programmi (ma possono comunque mostrarli diversamente, e in alcuni casi dare la priorità ai programmi "nativi" rispetto a quelli "stranieri").

E sì, diversi utenti possono utilizzare una configurazione di sessione diversa (e possono persino definire le proprie). In GDM, prova il menu a discesa Sessione per le opzioni disponibili.

Inoltre, è possibile mescolare e abbinare più componenti, ma ciò a volte comporterà una minore cooperazione e una perdita di "scorrevolezza" nel modo in cui funzionano le cose. Un esempio molto noto in cui le cose ottengono scambi è ovviamente Compiz, che sostituisce Metacity se si desidera fantastici effetti desktop. Ma ci sono molte altre modifiche possibili.


2

Un desktop manager gestisce principalmente il tuo hardware, mentre un window manager gestisce il tuo software. Ad esempio, la gestione dell'alimentazione, i salvaschermi, le prestazioni del sistema, la schermata di accesso, ecc. Sono gestiti da un gestore desktop. Il tema, il posizionamento delle finestre, il set di icone e widget, i caratteri, ecc. Sono gestiti dal gestore delle finestre.

Puoi avere un gestore di finestre installato senza un gestore di desktop. È comune accedere a un terminale virtuale, quindi fare eseguire uno script di accesso al gestore finestre per avviare il "desktop".

I desktop manager sono GNOME, KDE e CDE. I gestori di finestre sono Metacity, Openbox, Enlightenment, Awesome, ecc.

Per rispondere direttamente ad alcune delle tue domande:

  • il gestore delle finestre si occupa principalmente delle scorciatoie da tastiera del desktop.
  • il gestore delle finestre ha il compito di disegnare il desktop, le aree di lavoro, i posizionamenti di Windows, ecc. come menzionato prima
  • non ci sono molte variabili d'ambiente per la GUI. Questi di solito sono applicabili solo alla shell dietro un terminale. Tuttavia, è possibile eseguire sete envavere un'idea di ciò che è impostato.
  • non sono sicuro di cosa intendi per "menu principale" come sottosistema o componente di un sottosistema. I menu fanno parte del gestore delle finestre.

Ho già parlato di alcuni desktop manager e window manager popolari. Altre informazioni sono disponibili tramite Google.

A seconda del sistema operativo in uso, è probabilmente presente un file di configurazione ASCII che ha definito il desktop preferito. Ad esempio, su Debian GNU / Linux, questo è definito nella /etc/X11/default-display-managerconfigurazione. Puoi anche eseguire 'ps -ef | grep user 'dove' user 'è il nome dell'account di accesso di alcuni utenti sul sistema e guarda quali processi sono elencati e quale desktop grafico è in esecuzione. Per me, è "metacity".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.