Banner2

dicas

Problema com o Autorepetir?


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):


Este é um questionamento e uma resposta a ele. Eu publiquei aqui para ajudar outros usuários que enfrentem o mesmo problema.

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.

Preferências do Window Maker

WPrefs

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!

Instalando o wmVolMan

WmVolMan 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

Kxdocker - docks em outros ambientes

kxdocker

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:

  1. O kxdocker tem um visual mais fluido, estilo MacOS X, com ícones mudando de tamanho e tal. Apesar de visualmente mais agradáveis, não seguem bem o conceito "programas visualizadores sempre visíveis" do Window Maker...
  2. O kxdocker é o programa, que tem plugins. Os dockapps do Window Maker são programas isolados, e há muitos deles, para as mais diversas finalidades.

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)...

Menu para mudar a resolução

Resolução

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 ;-) ) .

Pontinhos do Window Maker...

Dia - Ícone de programa que não está em execução

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.

Dia iniciando...

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:

Dia rodando

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).

Ícone do Dia oculto

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).

Nautilus no Window Maker

Nautilus e Gumount

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. ;-)

Wmaker acordando demais o processador: Bug e Patch

Tema Sleep para Window Maker

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

Ele faz duas coisas:

  1. Retira os timers que estavam causando problema (veja as linhas apagadas que contém WMAddTimerHandler);
  2. 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.

Mrxvt: um terminal leve com abas

mrxvt

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.

Window Maker com menus transparentes?

Menus transparentes no wmaker

Data do início de 2004 um artigo ensinando como adicionar suporte a menus transparentes no Window Maker. O artigo foi escrito por Ricardo Iramar dos Santos, que descreve o procedimento para a versão 0.80.2 do Window Maker.

Não cheguei a testar o recurso e não sei se há de funcionar na versão corrente (0.92.0), mas fica a dica. Quem já testou, quiser testar ou tiver mais informações, fique à vontade!

Syndicate content