

Um tema do WindowMaker gira em torno de um arquivo de texto, onde há todas as especificações do tema.
Você pode criar um tema utilizando imagens que estão em Backgrounds, Styles e outras, mas a forma mais organizada é criar um diretório exclusivamente para o tema que você está criando. Coloque este diretório em Themes/ e acrescente o sufixo ".themed" ao nome. Por exemplo, se você quer criar um tema Ultraviolet, o diretório para ele se chamará Ultraviolet.themed.
Está bem, e onde ficam esses diretórios todos? Themes, Styles e tudo o mais? Simples, depende da instalação do tema. Freqüentemente você instalará o tema para uso pessoal mesmo, então procure pela pasta Themes em GNUstep/Library/WindowMaker, na sua pasta pessoal.
Um tema já criado e que você queira tornar disponível para outros usuários da sua máquina, você colocará em /usr/share/WindowMaker/Themes.
O arquivo de texto que guiará o tema deve se chamar "style" e tem uma sintaxe C-Like, com cada atributo recebendo um valor. Cores são representadas exatamente da mesma maneira que em HTML/CSS: símbolo-tralha, mais as três básicas (vermelho, verde e azul) em dois dígitos hexadecimais, cada. Ou seja, "#000000" é preto e "#ffffff" é branco.
A fonte tem uma notação mais esquisita, mas não é coisa de outro mundo também (se você utilizar um "style" já feito como base para derivar o seu ao invés de querer criar um do zero.
Alguns atributos recebem uma lista de valores, é o caso especificamente de planos de fundo, seja de um dock, do menu ou do que for. Caso queira uma cor no fundo, use a (solid, "#suacor"), usando uma cor hexadecimal, obviamente. Já para imagens, o primeiro ítem diz qual o tipo de imagem, o segundo diz o arquivo de imagem e o terceiro fornece um plano B, uma cor de fundo para o caso de o arquivo de imagem não ser encontrado.
Para imagens escaladas, ou seja, redimensionadas para ocuparem toda a área, utilize "spixmap". Para imagens enladrilhadas, é "tpixmap". Por exemplo, digamos que você criou uma imagem em 1024x768 com o Window Maker como tema, e que ela usa predominantemente a cor branca. Assim, você quer colocá-la no seu tema para ser a imagem de fundo das áreas de trabalho, trocada pela cor branca sólida caso o arquivo não seja encontrado. A linha para dizer isso seria:
WorkspaceBack = (spixmap, "wmaker.jpg", "#ffffff");
Há outras opções além destas, inclusive para gradientes, mas com isso já dá pra ter uma idéia de como é um tema do Window Maker por dentro. Depois explano mais esses outros pontos.
Veja um exemplo de style (este é do tema WmakerCyaneus, já disponibilizado aqui e que você pode usar como base para criar seu próprio tema):
{CClipTitleColor = "#301210";
ClipTitleColor = "#4c9696";
ClipTitleFont = "-*-helvetica-bold-r-normal-*-10-*-*-*-*-*-*-*";
DisplayFont = "-*-helvetica-medium-r-normal-*-12-*-*-*-*-*-*-*";
FTitleBack = (spixmap, "atitlebar.png", "#061d1d");
FTitleColor = "#318181";
HighlightColor = "#318181";
HighlightTextColor = "#ffffff";
IconBack = (spixmap, "tile.jpg", "#115252");
IconTitleBack = "#115252";
IconTitleColor = "#4c9696";
IconTitleFont = "-*-helvetica-medium-r-normal-*-8-*-*-*-*-*-*-*";
LargeDisplayFont = "-adobe-helvetica-medium-r-normal-*-*-240-*-*-p-*-iso8859-1";
MenuDisabledColor = "#999999";
MenuStyle = solid;
MenuTextBack = (spixmap, "menubg.jpg", "#ffffff");
MenuTextColor = "#000000";
MenuTextFont = "-adobe-helvetica-medium-r-normal-*-10-*-*-*-p-*-iso8859-1";
MenuTitleBack = (spixmap, "titlebar.png", "#301210");
MenuTitleColor = "#ffffff";
MenuTitleFont = "-adobe-helvetica-bold-r-normal-*-10-*-*-*-p-*-iso8859-1";
PTitleBack = (spixmap, "titlebar.png", "#061d1d");
PTitleColor = "#ffffff";
ResizebarBack = (tpixmap, "titlebar.png", "#061d1d");
TitleJustify = center;
UTitleBack = (spixmap, "titlebar.png", "#b1ffff");
UTitleColor = "#ffffff";
WindowTitleFont = "-adobe-helvetica-bold-r-normal-*-10-*-*-*-p-*-iso8859-1";
WorkspaceBack = (spixmap, "wallpaper.jpg", "#115252");
}
Só para concluir, se fizer um tema legal, o próximo passo é divulgá-lo! Use o Themes.Freshmeat.Net ou o Box-Look para isso. O Wmaker Cyaneus também está à disposição se você quiser.
Tema da foto do post: Giraffe.

Foi publicado recentemente um artigo falando de um bugzinho no Window Maker e como o autor contornou. Segue a tradução livre (caso alguém esteja passando por problema similar):
Eu utilizo Slackware 12.1 junto com o X.org 1.4.0 padrão, e o Window Maker 0.92.0.
Quando executo o Window Maker, a função de autorepetir do teclado algumas vezes funciona e outras vezes não. Eu tentei o KDE e o XFCE algumas vezes. Tentei também o Midnight Commander no modo console. O autorepetir funciona bem em todos os ambientes. O problema aparece apenas no Window Maker.
Eu tentei alterar a opção "AutoRepeat" "500 30" no xorg.conf comentando-o e descomentando-o mas sem resolver o problema.
Além disso, se eu sair e entrar no Window Maker algumas vezes, o autorepetir às vezes funciona e outras vezes não. Se funciona, é em todas as aplicações e circunstâncias. Se não funciona... Não funciona.
Quando o autorepetir funciona e eu executo xset q, ele retorna:
auto repeat: on key click percent: 0 LED mask: 00000000
auto repeat delay: 660 repeat rate: 25
auto repeating keys: 00ffffffdffffbbf
fadfffdfffdfe5ef
ffffffffffffffff
ffffffffffffffff
Ele responde que o autorepetir está ligado, a despeito de ele não funcionar.
Felizmente, é possível ligar a função autorepetir sem precisar sair e voltar do Window Maker várias vezes. É usando o comando xset r.
Para evitar esse problema, eu coloquei no arquivo .xinitrc do meu diretório home o seguinte:
wmaker
xset r
Este é um bug não determinístico - muito difícil de estabilizar e reparar. Agradeço ao Cride5 por algumas dias.
Tenha um bom dia...
-- w1k0
P.S.: A foto é do tema Pagan Temple, de Charles Johnston.
De uns tempos pra cá, o Window Maker no Debian passou a vir com as preferências zeradas. O Alt+Tab pra mudar de janela, dentre outras opções que vinham antes.
Se você estiver enfrentando este problema, pode utilizar o WPrefs para definir as teclas de atalho e outras coisas mais. Mas se estiver com preguiça de configurar, aqui vai o arquivo de preferências que estou utilizando. Basta substituir o seu ~/GNUstep/Defaults/WindowMaker por ele. ;-)
Configurações alternativas? Testes deste arquivo publicado hoje? Estejam à vontade para comentar!
Para resolver o problema do gerenciamento de dispositivos como, por exemplo, pendrives, foi criado o wmVolMan. Aqui temos um tutorial de Daniel do Amaral Rodrigues dizendo como instalar o wmVolMan. Este tutorial foi publicado pelo Daniel na lista de discussão do Window Maker.
A instalação do wmvolman requer um nível moderado de conhecimento das entranhas do Linux, e uma boa parte varia de distribuição para distribuição. O que cito a seguir deve ser válido para o Gentoo e descendentes, como o Sabayon, o Kororaa, o Vidalinux e o brazuca Litrix.
1) Baixar o código-fonte da página http://people.altlinux.ru/~raorn/wmvolman.html para um diretório conhecido, desempacote-
o ('tar -jxf wmvolman-0.8.tar.bz2 ') e rode o './configure && make' no diretório gerado. Dependendo da distribuição, podem estar faltando bibliotecas ou cabeçalhos (include files) necessários; eu sei que a libDockApp é necessária, então caso a compilação falhe baixe-a de acordo com sua distribuição, ex. 'emerge -a libdockapp'. Usuários de distribuições binárias devem baixar os cabeçalhos em separado, p. ex. 'apt-get install libdockapp-dev' no Debian e amigos. Note que será necessário acesso de superusuário para instalar programas!
Tendo o programa compilado sem maiores problemas, mude o console para modo de administrador com o comando 'su' e digite 'make install'. Isto deve instalar o programa na sua máquina, mas provavelmente neste ponto se você rodar o wmvolman nenhum dispositivo aparecerá em momento nenhum; precisamos avisar ao daemon de camada de abstração de hardware (hald) para avisar ao nosso programa sobre as mudanças de dispositivo.
Primeiro, veja se o hald está rodando com um 'ps -A | grep hald'. Caso não apareça nada, precisamos verificar que o dbus e o hald estejam instalados e sejam adicionados à seqüência de inicialização; na grande maioria das distribuições modernas, eles já estão lá. No caso da gentoo, o comando é 'emerge -a hal', e para adicionar à inicialização é 'rc-update add dbus default && rc-update add hald default'. Na maior parte das outras distribuições existe um arquivo chamado /etc/rc.local ou /etc/rc.M; adicione as linhas '/etc/init.d/dbus start' e '/etc/init.d/hald start' a esse arquivo após verificar que os arquivos necessários estão instalados.
Finalmente, é preciso passar o arquivo .fdi que o 'make install' instalou em '/etc/hal/fdi/policy/30-wmvolman.fdi' para o diretório onde o hald espera que esses arquivos estejam, que no caso do Gentoo é '/usr/share/hal/fdi/policy/', portanto digite um 'cp /etc/hal/fdi/policy/30- wmvolman.fdi /usr/share/hal/fdi/policy/'. No caso de outras distribuições, ache o diretório correto com um 'find / -iname "*.fdi"' ; use só a parte até 'policy'.
Já deve estar funcionando, mas execute '/etc/init.d/hald restart' por desencargo de consciência. Em seguida, rode o wmvolman e plugue um pen-drive ou um CD e veja se o bichinho responde.
Quem conseguir fazer funcionar com outras distribuições, por favor postar aqui os comandos de instalação e os diretórios, para eu poder fazer um guia mais genérico
-Daniel
Quem utiliza outro ambiente gráfico (o KDE, por exemplo) e gosta da idéia de docks pode utilizar o kxdocker.
Testei aqui e é um programa bastante leve. Porém, há algumas diferenças cruciais entre ele e os docks do Window Maker:
Quem usa Windows pode tentar os widgets do Yahoo, que seguem em parte a idéia de dockapps (além da idéia de widgets)...

Não sei se vocês repararam no WPref, mas o Window Maker nos dá muitas opções para montar um menu bacana. E uma delas é a de montar um submenu automaticamente com o texto saído de algum comando. Isso torna fácil, por exemplo, fazer um menu que execute o seu gerenciador de arquivos favorito em alguma das pastas do seu diretório de usuário (um menu que mostre os nomes dos diretórios e abra o gerenciador de arquivos na pasta clicada). Basta escrever um script que retorne as informações na sintaxe de menu do Window Maker.
Já faz algum tempo que encontrei em um artigo antigo do Piter Punk com um programa desse tipo, que cria um menu de resoluções possíveis permitindo mudar a resolução do X a partir do menu. É bem interessante (eu achei mais interessante ainda ver o script como um modelo para as coisas que você pense em fazer na forma de submenus do Window Maker ;-) ) .
![]()
Quando a gente cria um atalho para algum programa arrastando seu ícone da forma que disse aqui um outro dia, algo estranho acontece com esse ícone. A maioria, creio, nem percebe isso, mas passam a aparecer uns pontinhos estranhos no canto inferior esquerdo do dockicon. Não é erro, trata-se de uma inteligente forma de comunicação do Window Maker.
Quando o programa não está sendo executado, aparecerão três pontos juntos, como você pode ver nos dois ícones da imagem acima. No momento em que damos um duplo clique no ícone, conforme esperado, o Window Maker vai chamar esse programa. E ele diz que o programa está sendo chamado colocando um xadrez-translúcido na frente do ícone, conforme a figura abaixo.
Quando o programa já está em execução, podemos perceber que não há mais aqueles três pontinhos no ícone. O ícone fica exatamente como antes, mas sem os pontos:

A outra variação que acontece nos pontos é de aparecer apenas um ponto e não três. Isso acontece quando escondemos a janela (hide).

São informações simples que não são necessárias para que você utilize o Window Maker, mas é interessante de uma olhada só a gente perceber que programas estão sendo executados ou não (podem estar sendo executados em outra área de trabalho).
Outro dia falei aqui sobre gerenciamento de arquivos. Há vários gerenciadores de arquivos leves. O problema maior nem é gerenciamento de arquivos, mas sim de dispositivos. É conectarmos um pendrive e termos acesso fácil a ele.
Para resolver esse problema, uma boa opção é o PCMan File Manager, já apresentado no blog. Ou o Thunar, que é mais pesado.
A solução que adoto, entretanto, é um pouco diferente...
O GNOME oferece opcionalmente um pacote chamado GNOME Volume Manager, cuja função é se integrar ao sistema e perceber quando um dispositivo é conectado ao computador. Quando isso acontece, ele pode abrir o Nautilus automaticamente no diretório onde o dispositivo foi montado. Ou então, o reprodutor de música (geralmente o Rhythmbox), se ele achar que se trata de um MP3 Player. Tudo de forma simples, sem itervenção.
Uma vez montado o dispositivo, você pode até fechar o Nautilus e continuar acessando o pendrive através dos programas: salvando textos do BrOffice.org, imagens do GIMP, etc.
Enfim chega a hora de desmontar. Aqui precisamos chamar o Nautilus, local Computador e clicar com o botão direito no dispositivo que queremos desmontar. Ou então utilizar o Gumount, um script que fiz só pra desmontar pendrive.
E é assim que me viro com pendrives: o GNOME Volume Manager (/usr/bin/gnome-volume-manager) monta os dispositivos automaticamente e o Gumount me ajuda a desmontá-los. ;-)
Um problema no Window Maker foi identificado por Carlos Mafra, que o relatou em um comentário aqui no blog. Antes de mais nada, não precisamos entrar em pânico, pois não é um bug de segurança, mas de performance. Aqui vai parte do comentário onde o Carlos descreveu o problema:
Usando o programa powertop da Intel eu descobri que o wmaker acorda o meu processador 4 vezes por segundo, mesmo sem eu estar fazendo nada. Um cara da lista do powertop me disse (em email particular) que isso provavelmente é um bug (o Gnome não gera wakeups quando está idle, por exemplo). Eu estava tentando ler o código-fonte pra descobrir o culpado, e acabei encontrando algumas referências a wusleep(), mas nenhuma delas me pareceu ser o motivo dos wakeups. Eu já tentei mandar um email para a lista wm-dev, mas ela está fora do ar. Já tentei mandar email para o Kojima e Dan Pascu, mas até agora nada (se bem que mandei há menos de um dia). Por isso gostaria de iniciar uma discussão sobre isso.
Ontem à noite (e só li hoje) o Carlos me enviou um e-mail relatando sobre a correção para o problema e disponibilizando um patch. Segue o e-mail que me enviou:
O patch para o Window Maker está na minha "página": ttp://www.ift.unesp.br/users/crmafra/patch_wmaker-0.92.0-m2
- Retira os timers que estavam causando problema (veja as linhas apagadas que contém WMAddTimerHandler);
- Introduz uma nova funcionalidade, agora quando você muda alguma configuração modificando algum arquivo dentro de GNUstep/Defaults, o wmaker é notificado que houve mudança e as carrega automaticamente.
O meu laptop está funcionando há bastante tempo com o wmaker aberto e não tive qualquer problema. Gostaria que mais pessoas testassem o patch, e é
realmente uma pena que a lista de discussão oficial do wmaker está fora do ar e
nenhum desenvolvedor parece estar mais vivo.
A modificação 2 é relativamente tranquila. Ela utiliza o mecanismo dnotify do kernel para "avisar" sobre mudanças em arquivos. Eu copiei e adaptei o
código-exemplo que está no linux kernel em Documentation/dnotify.txt.
Antes o wmaker adicionava um "timer", que era executado a cada 3 segundos para ver se alguma coisa tinha mudado. Esse é um comportamento ruim, porque acorda a cpu para não fazer nada a maior parte do tempo. Essa era uma das causas do powertop indicar que o wmaker acordava a cpu mesmo estando sem fazer nada. Apesar de no código estar que era executado a cada 3000 milisegundos, nos testes que eu fiz ele era responsável por 0.6 wakeups/segundo. É possível ver isso também sem o patch, usando a opção --no-polling.
A mudança 1 é um pouco difícil. Eu ainda não entendo direito porque nada de ruim acontece ao se retirar o timer que executava "delayedAction" a cada 500 milisegundos. Esse era o maior responsável pelos wakeups apontados pelo powertop. Me parece que essa parte do código não fazia nada importante, ela era executada enquanto não acontecia nada no X (nenhuma tecla apertada, nenhum movimento do mouse, etc). Mas não tenho certeza disso e o melhor seria falar com um desenvolvedor do wmaker. No entanto, posso garantir que no meu computador tudo está funcionando direito!
Todavia, esse patch deve ser tomado "cum grano salis", porque não sou programador e há 5 dias ainda nunca tinha lido o código-fonte do Window Maker.
Carlos R. Mafra
Agradeço ao Carlos Mafra por ter me comunicado isso tudo. Tomei a liberdade de publicar aqui mesmo uma cópia do patch, que continua também disponível na página do Carlos.
Não apliquei o patch, mesmo porque utilizo o Window Maker fornecido diretamente pelo Debian Lenny e nunca tentei compilá-lo eu mesmo. Talvez um outro dia eu faça isso. Segundo o Carlos, com a correção o Window Maker passa a ser responsável por 0 wakeups. Bom, quem quiser testar por favor comente aqui as impressões.
P.S.: A imagem que ilustra este post é do tema para Window Maker Sleep.

Antigamente era interessante ter um terminal com abas. Hoje não apenas interessante, mas uma necessidade. O problema é que o gnome-terminal e o konsole são bastante pesados.
Mas há uma opção realmente muito boa para terminal gráfico com abas: o mrxvt, que é uma modificação no rxvt. Além de abas, ele suporta transparência e algumas outras personalizações. As combinações Control-Shift-T (utilizada pelo gnome-terminal) e Control-Shift-N (utilizada pelo Konsole) servem para criar novas abas, enquanto o Control-Shift-W fecha uma aba. Control-Tab e Control-Shift-<algum-número> permitem navegar entre as abas.
O que achei muito bom no meu caso, foi que o mrxvt não intercepta a tecla F10, utilizada para sair do mcedit. Pelo menos no gnome-terminal é preciso configurar para que ele deixe a F10 em paz.
O mrxvt foi a solução que mais me agradou até o momento.
Recent comments
5 sec ago
14 min 33 sec ago
1 hour 2 min ago
5 hours 12 min ago
1 day 4 hours ago
1 day 14 hours ago
2 days 55 min ago
2 days 55 min ago
2 days 55 min ago
2 days 55 min ago