Quels sont les sous-systèmes d'interface utilisateur, leurs composants et leurs responsabilités?

8

J'essaie de comprendre les différents sous-systèmes qui sont en charge de l'interface utilisateur, la terminologie pour s'y référer et comment ils sont structurés; jusqu'à présent, je sais qu'il y a:

Au plus haut niveau:

ordinateurs de bureau ? (kde, gnome, etc.)

Ensuite nous avons:

  • un gestionnaire d'affichage (également appelé gestionnaire de bureau ou environnement de bureau)
  • gestionnaire de fenêtres
  • rien d'autre?

J'en fais un wiki communautaire, j'aimerais que ce soit un endroit central pour * tout ce qu'il y a à savoir (du point de vue de l'utilisateur) concernant les sous-systèmes d'interface utilisateur sous Linux; ce que j'aimerais savoir, ce sont les composants de chacun, et quelles sont les responsabilités de chacun, c'est-à-dire que j'aimerais savoir des choses comme:

  • ce qui est exactement en charge des touches de raccourci globales, lorsque j'ouvre la boîte de dialogue "Exécuter l'application", qui le fait, lorsque j'appuie sur une touche pour afficher le bureau, exécuter un terminal, maximiser une fenêtre, etc., qui capture cela et l'envoyer à la fenêtre de droite;
  • qui est chargé de dessiner le bureau, les espaces de travail, etc.
  • quelles sont les variables d'environnement qui peuvent me donner des informations sur ces composants
  • Le "menu principal" est-il un sous-système ou un composant d'un sous-système?

Il serait également intéressant de compiler une liste des bureaux / sous-systèmes les plus populaires, lesquels s'exécutent sous chacun, pouvez-vous mélanger et faire correspondre les bureaux / environnements de bureau / gestionnaires de fenêtres, etc.?

Enfin, comment savoir quels postes de travail / sous-systèmes fonctionnent réellement (actifs?) Sur le système, les différents utilisateurs peuvent-ils avoir chacun un sous-système différent?

BlackTigerX
la source

Réponses:

5

Tout d'abord, un gestionnaire d'affichage (ou DM, par exemple xdm, gdm, kdm) n'est pas identique à un environnement de bureau (ou DE, par exemple GNOME, KDE, XFCE).

Le gestionnaire d'affichage s'occupe de la connexion graphique et décide (ou vous laisse choisir) quelle session exécuter. Ou quelle session * s * si vous choisissez l'option de menu "changer d'utilisateur".

Un environnement de bureau est essentiellement une collection de programmes (gestionnaire d'affichage, gestionnaire de fenêtres, gestionnaire de sessions, panneaux, outils de configuration, etc.) et de bibliothèques (par exemple Gtk) qui ont l'intention de fournir un environnement cohérent et intégré dans lequel travailler.

Un gestionnaire de fenêtres gère les fenêtres: où les placer, les déplacer, les redimensionner, les minimiser / maximiser, les carreler, etc.). Il gère également les raccourcis pour faire ces choses. Dans certains cas, le gestionnaire de fenêtres peint également les bordures des fenêtres, dans d'autres cas, cette tâche est confiée à un "décorateur de fenêtres".

La boîte de dialogue "Exécuter l'application" dans GNOME fait partie de gnome-panel, mais dans un autre DE, cela pourrait être une autre partie de l'environnement.

Qui est chargé de peindre les fenêtres, etc. dépend; dans le cas où un "compositeur" est utilisé (souvent une partie du gestionnaire de fenêtres, par exemple dans Compiz) alors le compositeur peint les fenêtres à l'écran, sinon (comme c'était l'habitude dans le passé) c'est le X-server qui fait ça.

Les menus principaux sont affichés à l'écran par une partie du panneau gnome, mais les données utilisées proviennent d'un tas de fichiers /usr/share/applications/(éventuellement combinés avec un répertoire équivalent dans votre maison pour des modifications personnelles). Ces fichiers ont une structure définie par FreeDesktop.org (une plate-forme permettant à différents DE de collaborer sur une infrastructure commune), de sorte que GNOME et KDE connaissent les mêmes programmes (mais peuvent toujours les afficher différemment et, dans certains cas, hiérarchiser les programmes "natifs") «étrangères»).

Et oui, différents utilisateurs peuvent utiliser une configuration de session différente (et peuvent même définir la leur). Dans GDM, essayez la liste déroulante Session pour les choix disponibles.

En outre, il est possible de mélanger et d'assortir plusieurs composants, mais cela se traduira parfois par moins de coopération et une perte de "fluidité" dans la façon dont les choses fonctionnent. Un exemple très connu où les choses obtiennent des échanges est bien sûr Compiz, qui remplace Metacity si vous voulez des effets de bureau fantaisistes. Mais il y a beaucoup d'autres changements possibles.

JanC
la source
2

Un gestionnaire de bureau gère principalement votre matériel, tandis qu'un gestionnaire de fenêtres gère votre logiciel. Par exemple, la gestion de l'alimentation, les économiseurs d'écran, les performances du système, l'écran de connexion, etc. sont gérés par un gestionnaire de bureau. Votre thème, placement de fenêtre, widget et jeu d'icônes, polices, etc. sont gérés par votre gestionnaire de fenêtres.

Vous pouvez avoir un gestionnaire de fenêtres installé sans gestionnaire de bureau. Il est courant de se connecter à un terminal virtuel, puis d'exécuter un script de connexion dans votre gestionnaire de fenêtres pour démarrer votre "bureau".

Les gestionnaires de bureau sont GNOME, KDE et CDE. Les gestionnaires de fenêtres sont Metacity, Openbox, Enlightenment, Awesome, etc.

Pour répondre directement à certaines de vos questions:

  • le gestionnaire de fenêtres est principalement en charge des raccourcis clavier du bureau.
  • le gestionnaire de fenêtres est en charge de dessiner le bureau, les espaces de travail, les emplacements des fenêtres, etc. comme mentionné précédemment
  • il n'y a pas beaucoup de variables d'environnement pour l'interface graphique. Celles-ci sont généralement applicables uniquement au shell derrière un terminal. Cependant, vous pouvez exécuter setet envavoir une idée de ce qui est défini.
  • Je ne sais pas ce que vous entendez par le "menu principal" en tant que sous-système ou composant d'un sous-système. Les menus font partie du gestionnaire de fenêtres.

J'ai déjà mentionné certains gestionnaires de bureau et gestionnaires de fenêtres populaires. Plus d'informations peuvent être trouvées en utilisant Google.

Selon votre système d'exploitation, il existe probablement un fichier de configuration ASCII qui a défini votre bureau préféré. Par exemple, sur Debian GNU / Linux, cela est défini dans la /etc/X11/default-display-managerconfiguration. Vous pouvez également exécuter 'ps -ef | grep user 'où' user 'est le nom de la connexion d'un utilisateur sur le système, et voyez quels processus sont répertoriés, et quel est le bureau graphique en cours d'exécution. Pour moi, c'est la «métacité».

Aaron Toponce
la source