Quais são os subsistemas de interface do usuário, seus componentes e responsabilidades?

7

Estou tentando entender os diferentes subsistemas responsáveis pela interface do usuário, a terminologia para se referir a eles e como eles estão estruturados; até agora eu sei que existem:

No nível superior:

desktops ? (kde, gnome, etc)

Então nós temos:

  • um gerenciador de exibição (também chamado de gerenciador de desktop ou ambiente de área de trabalho)
  • gerenciador de janelas
  • mais alguma coisa?

Estou transformando isso em um wiki da comunidade, e gostaria que este fosse um local central para * tudo o que há para saber (da perspectiva do usuário) em relação aos subsistemas de interface do usuário no Linux; O que eu gostaria de saber é quais são os componentes de cada um e quais são as responsabilidades de cada um, ou seja, eu gostaria de saber coisas como:

  • o que exatamente é responsável pelas teclas de atalho globais, quando abro a caixa de diálogo "executar aplicativo", quem está fazendo isso, quando pressiono uma tecla para mostrar a área de trabalho, executar um terminal, maximizar uma janela, etc. quem está capturando isso e enviando para a janela direita;
  • quem está encarregado de desenhar a área de trabalho, os espaços de trabalho, etc.
  • quais são as variáveis de ambiente que podem me fornecer informações sobre esses componentes
  • O "menu principal" é um subsistema ou um componente de um subsistema?

Também seria interessante compilar uma lista dos desktops / subsistemas mais populares, quais deles são executados em cada um deles, você pode misturar e combinar desktops / ambientes de desktop / gerenciadores de janelas, etc.

Por fim, como eu digo quais áreas de trabalho / subsistemas estão realmente em execução (ativos?) no sistema, diferentes usuários podem ter um subsistema diferente?

    
por BlackTigerX 24.08.2010 / 05:05

2 respostas

5

Em primeiro lugar, um Gerenciador de Exibição (ou DM, por exemplo, xdm, gdm, kdm) não é o mesmo que um Ambiente de Área de Trabalho (ou DE, por exemplo, GNOME, KDE, XFCE).

O Gerenciador de Exibição cuida do login gráfico e decide (ou permite que você escolha) qual sessão será executada. Ou qual sessão * s * no caso de você escolher a opção de menu "alternar usuário".

Um Ambiente Desktop é basicamente uma coleção de programas (gerenciador de exibição, gerenciador de janelas, gerenciador de sessão, painéis, ferramentas de configuração, etc.) e bibliotecas (por exemplo, Gtk) que pretendem fornecer um ambiente consistente e integrado para trabalhar. / p>

Um gerenciador de janelas gerencia janelas: onde colocá-las, movê-las, redimensioná-las, minimizá-las / maximizá-las, agrupá-las, etc.). Ele também lida com os atalhos para fazer essas coisas. Em alguns casos, o gerenciador de janelas também pinta as bordas das janelas, em outros casos, essa tarefa não é direcionada a um "decorador de janelas".

A caixa de diálogo "Executar aplicativo" no GNOME é parte de gnome-panel , mas em outro DE pode ser outra parte do ambiente.

Quem está encarregado de pintar janelas etc. depende; no caso de haver um "compositor" em uso (geralmente parte do gerenciador de janelas, por exemplo, no Compiz), então o compositor pinta as janelas na tela, caso contrário (como era habitual no passado) é o servidor X que faz isso. / p>

Os menus principais são colocados na tela por uma parte do gnome-panel, mas os dados usados vêm de um monte de arquivos em /usr/share/applications/ (possivelmente combinados com um diretório equivalente em sua casa para alterações pessoais) . Esses arquivos têm uma estrutura definida pelo FreeDesktop.org (uma plataforma para que diferentes DEs colaborem em infra-estrutura comum), para que o GNOME e o KDE conheçam os mesmos programas (mas ainda possam mostrá-los de forma diferente e, em alguns casos, priorizar programas "nativos") sobre os "estrangeiros".

E sim, usuários diferentes podem usar uma configuração de sessão diferente (e podem até definir os seus próprios). No GDM, tente a lista suspensa Session para as opções disponíveis.

Além disso, é possível misturar & Combine vários componentes, mas isso às vezes resultará em menos cooperação e uma perda de "suavidade" em como as coisas funcionam. Um exemplo muito conhecido, onde as coisas são trocadas, é claro, o Compiz, que substitui o Metacity, se você quiser efeitos extravagantes na área de trabalho. Mas há muitas outras alterações possíveis.

    
por 24.08.2010 / 05:34
2

Um gerenciador de desktop gerencia principalmente seu hardware, enquanto um gerenciador de janelas gerencia seu software. Por exemplo, gerenciamento de energia, proteções de tela, desempenho do sistema, tela de login, etc. são gerenciados por um gerenciador de desktop. Seu tema, posicionamento da janela, widget e conjunto de ícones, fontes etc. são gerenciados pelo gerenciador de janelas.

Você pode ter um gerenciador de janelas instalado sem um gerenciador de área de trabalho. É comum fazer login em um terminal virtual e, em seguida, ter um script de login para executar o gerenciador de janelas para iniciar o "desktop".

Os gerentes de área de trabalho são o GNOME, o KDE e o CDE. Os gerenciadores de janela são Metacity, Openbox, Enlightenment, Awesome, etc.

Para responder a algumas das suas perguntas diretamente:

  • o gerenciador de janelas é o principal responsável pelos atalhos de teclado da área de trabalho.
  • o gerenciador de janelas é responsável por desenhar a área de trabalho, espaços de trabalho, veiculações de janelas, etc., como mencionado antes
  • não há muitas variáveis de ambiente para a GUI. Estes são geralmente apenas aplicáveis ao shell por trás de um terminal. No entanto, você pode executar set e env para ter uma ideia do que está definido.
  • não sabe ao certo o que você entende por "menu principal" como um subsistema ou componente de um subsistema. Os menus fazem parte do gerenciador de janelas.

Já mencionei alguns gerenciadores de desktop e gerenciadores de janelas populares. Mais pode ser encontrado usando o Google.

Dependendo do seu sistema operacional, provavelmente há um arquivo de configuração ASCII que definiu sua área de trabalho preferida. Por exemplo, no Debian GNU / Linux, isso é definido no /etc/X11/default-display-manager config. Você também pode executar 'ps -ef | grep user 'onde' user 'é o nome do login de algum usuário no sistema, e veja quais processos estão listados, e qual é o desktop gráfico rodando. Para mim, é 'metacity'.

    
por 24.08.2010 / 05:32