# Gerenciador de janela

Um gerenciador de janelas é um software de sistema que controla o posicionamento e a aparência das janelas dentro de um sistema de janelas em uma interface gráfica do usuário. A maioria dos gerenciadores de janela são projetados para ajudar a fornecer um ambiente de desktop. Eles trabalham em conjunto com o sistema subjacente gráfica que fornece a funcionalidade necessária, tais como suporte para gráficos hardware, dispositivos apontadores, e um teclado, e muitas vezes são escritos e criados usando um toolkit widget.
Quando se usa um computador em modo gráfico (diferente do modo texto), geralmente se vêem os programas representados por janelas na área de Trabalho. Para que isto ocorra, é preciso que exista um programa chamado Gerenciador de Janelas.
Os sistemas Unix ou similares podem ter vários programas para gerenciar janelas. Na verdade, isso acontece porque os processos (programas em execução) são muito independentes uns dos outros.

## Funcionamento

Existe um Servidor de Janelas que chama o modo gráfico (pode ser, por exemplo, o XFree86 ou o X.org). Assim, toda a complicada configuração gráfica precisa ser feita apenas para este software-servidor. O servidor chama o modo gráfico e permite a execução de programas feitos com bibliotecas especialmente criadas para esse modo.
Esses programas especiais (que nada mais são do que programas com rotinas gráficas para botões, menus...) na verdade só trazem informações, quanto à janela, sobre o recheio, o título e o tipo de janela. Este último apenas definindo se é uma janela de aplicativo, de diálogo... Assim, se for executado apenas o servidor gráfico, tem-se o ambiente gráfico, mas cada programa que esteja neste ambiente gráfico (o ambiente não traz interface para chamar programas) estará parado num canto, sem barra de título. Não se pode sequer maximizar a janela ou tirar uma janela da frente de outra. Até mesmo fechar a janela só será permitido se houver uma opção assim nos menus.
Por isso não se usa um Servidor Gráfico sozinho. Para executar operações com janelas, são usados os Gerenciadores de Janelas. O que eles fazem basicamente é colocar uma barra de título em cada programa executado que tenha sido feito para modo gráfico. Além disso, eles provêem uma série de operações adicionais, como facilitar a alternância entre janelas, por exemplo.
Basicamente é só isso mas, como sempre, programas amplamente utilizados não pararam no basicamente para chegar onde chegaram. Há outros recursos que praticamente todos os Gerenciadores de Janelas de hoje precisam ter, dentre os quais o mais curioso e notável é a capacidade de gerenciar muitas áreas de trabalho.

## Gerenciador de Janelas do Windows

O Windows somente utiliza seu próprio gerenciador de janelas. Em versões do Windows superiores ao Windows XP é utilizado o Windows Presentation Foundation.

## Gerenciadores de janelas para Unix

Há dois tipos principais de gerenciadores de janelas. Os que fornecem um ambiente de trabalho completo, com gerenciador de arquivos e diversos recursos adicionais, dentre os quais se destacam:
* GNOME
* KDE
Há também os gerenciadores de janelas menos expressivos, mas que cumprem bem o papel de gerir janelas (e geralmente, cumprem outros papéis também). Os maiores destaques nesta categoria são:
* LXDE
* Xfce
* I3WM
* OpenBox
* AfterStep
* BlackBox
* Enlightenment
* FluxBox
* fvwm95
* IceWM
* dwm
* twm
* WindowMaker
* Awesome
* FVWM
* Sawfish
* Kahakai
* ZappWM
* SithWM
* Whim
* Karmen
* XIGE
* Framer
* Mavosxwm
* WindowLab