Dynamically tiling Window Managers

Window Manager é o programa que gerencia o comportamento das janelas, como maximizar, minimizar, tela cheia, fechar, qual janela está em foco etc… Pois bem, gerenciadores de janelas são programas simples demais, mas sem dúvida são os mais importantes no nosso dia a dia, pois eles vão melhorar nosso desempenho diante da máquina, piorar ou nos mandar para o Hospital (Lesão por esforço repetitivo -> mouse ).

Gnome, KDE XFCE não são Window managers, são Desktop Enviroments, Desktop Enviroment é um conjunto de programas integrados que propiciam facilidade de uso e conforto nas mais variadas tarefas, incluindo gerenciamento de arquivos, calendário, configuração de teclado, mouse etc… Os desktop enviroments também possuem window managers, no caso do KDE o kwin, do gnome o metacity que no geral podem ser substituidos por outros.

O grande problema desses gerenciadores de janela de desktop enviroments é que eles normalmente não são totalmente operaveis por atalhos do teclado, e o movimento de trocar entre o teclado e o mouse pode causar LER, além do que usar o mouse pode ser um pé no saco, em interfaces confusas e poluidas visualmente. Em 2002 o Tuomov lançou um manifesto e um gerenciador de janelas chamado ION. Ion não permite overlaps de janelas, fazendo com que elas estejam sempre uma do lado da outra, não existe forma simples de esconder janelas , docks engraçados ou barrinhas peseudo transparentes… Qual é a graça ? O gerenciador de janelas pode ser operado totalmente usando apenas o teclado (posição, tamanho etc…), e é totalmente configuravel via scripts Lua… Não preciso dizer que virou febre entre os adoradores do Console, e a elite Unix. Eu fui apresentado ao Ion ainda em 2004 por uma cyber ativista que não posso revelar o nome, e fez uma diferença grande, já que eu estava com um principio de LER no meu pulso.

Alguém notou que janelas postas lado a lado são interessantes, mas criar e destruir os alvéulos, onde repousam as janelas, manualmente como no Ion e no Ratpoison é chato, depois de um tempo enjoa.


Ratpoison
Ratpoison

Então surgiram os Dynamically tiling Window Managers, gerenciadores que organizam as janelas de forma dinâmica seguindo regras pré estabelecidas. Existem dezenas de gerenciadores desse tipo, em sua esmagadora maioria são exageradamente minimalistas. Existe uma mania entre programadores Unix de ser desnecessáriamente minimalistas demais, desenhando projetos com um limite absurdamente pequeno de linhas de código, deixando vários recursos valiosos de fora. Isso praticamente obriga outros programadores a fazerem forks ou criarem novos gerenciadores. Só explicando “minimalista”, estamos falando de projetos com menos de 500 linhas de código, que normalmente não trazem nenhuma decoração, barra, menu ou mesmo configurações, isso mesmo ! Alguns desses gerenciadores devem ter seu código fonte alterado para se mudar um atalho de teclado, prático não ? É só ir no .h e recompilar a parada 🙂

São os casos do DWM e do Xmonad este último feito em Haskell (linguagem da moda da vez) . Usei o xmonad por um tempo, mas assim como o dwm ele não vem com uma configuração default decente (pra mim) ou seja levaria alguns dias até deixar ele do jeito que eu queria, voltei pro Ion. Queria algo que não fosse tão minimalista , nem queria aprender uma linguagem nova apenas para configuralo, então encontrei o Scrotwm (!) , que é feito em C, é pequeno, configuravel e não sofre de : “crazy-unportable-language-syndrome, silly defaults, asymmetrical window layout, “how hard can it be?” and good old NIH. “. Eu compartilho dessa mesma opinião, mas infelizmente o scrotowm… digo scrotwm ainda não está pronto, falta recurso para float windows. Então encontrei o Awesome , sendo bom fã de Stargate, naquadah me chamou atenção, os caras são fãs do seriado Stargate , BTW, além do awesome botar janelas lado a lado, permite taguear as mesmas e definir seu comportamento, permite floating windows (o gimp agradece ) tem status bar (oba!), widgets bar (wow) e titlebar para as janelas (para os novatos). Ou seja, curva de aprendizado razoavelmente simples e um sistema minimalista sem ser ridículo.

O awesome é escrito em C, mas permite uso de scripts Lua , linguagem de programação brasileira muito usada para controlar engines de jogos desconhecidos como Unreal, Crysis etc… Não deu outra, já gostava do Ion por usar Lua, em menos de 30 minutos já estava com meu awesome do jeito que eu gosto, mostrando status do wifi e tudo mais. Segue alguns screenshots :

awesome03

awesome02

awesome01

Vou manter no meu blog as configurações do meu awesome para os novatos, é só clicar aqui

One thought on “Dynamically tiling Window Managers

  1. Pingback: Desisto do awesome wm » LINN – Liquuid Is Not a Nerd o/

Comments are closed.