A maioria dos sistemas UNIX dispõe de um gerenciador gráfico de login, disponibilizado pelo X. Por padrão, este sistema de login é fornecido pelo XDM (X Display Manager). Praticamente qualquer sistema com o X instalado tem uma cópia do XDM.
Porém, a aparência padrão do XDM não é das mais agradáveis, e a sua configuração pode ser considerada árdua. Assim, muitos usuários preferem usar o KDM ou o GDM, que são configuráveis através de utilitários gráficos. Para quem realmente prefere o jeitão do XDM, porém já está irritado com a sua aparência, escrevemos este artigo...
O mais fácil de alterar é o fundo da tela... Para isso, temos duas opções, colocar uma cor sólida como fundo, ou utilizar uma figura. Nos dois casos, é necessário editar o arquivo: /etc/X11/xdm/Xsetup_0, cujo conteúdo, por padrão, é:
A linha que começa com # é uma linha de comentário. Já a segunda, apenas coloca o programa xconsole na tela. Particularmente, acho que o xconsole fica muito feio em uma tela de apresentação, e prefiro retirá-lo. Para isto, basta comentar a linha.
Em seguida, vamos acrescentar um pequeno trecho de código para fazer com que o backspace funcione corretamente durante o login. Algumas distribuições já corrigiram este erro, se o seu Xsetup_0 já tem estas linhas, deixe como está:
Agora, vamos acrescentar a linha com a mudança do fundo da tela, propriamente dito. Para uma cor sólida, coloque:
Onde cor é o nome, em inglês, da cor que você deseja colocar como fundo, dentre as listadas no arquivo /usr/X11R6/lib/X11/rgb.txt. Em caso de dúvidas, ao ver nomes como FloralWhite e Gainsboro, o utilitário gcolorsel, parte do Gnome, pode ser utilizado para visualizar todas as cores disponíveis. Em conjunto com outros arquivos de configuração, é possível deixar toda a tela de uma única cor, exceto as palavras login e password, o que resulta em um belo efeito. Para colocar uma imagem como fundo, utilizo:
Esta linha gigante diz: Ative o XV (xv) apenas para visualização (-viewonly), coloque a imagem no centro da tela (-rmode 5) e mantenha o fundo preto (-rgb black), a imagem servirá como tela de fundo (-root) e após colocá-la na tela, o XV se autodesligará (-quit). A imagem também será ampliada até ocupar toda a tela, porém sem deformar a figura (-maxpect).
O XV é um programa com dezenas de opções de linhas de comando. Mas geralmente serão estas as utilizadas para manter uma tela de fundo simpática.
Mudar a posição e tamanho da caixa.
Ou seja, é possível alterar praticamente tudo. Para realizar esses milagres, o arquivo alterado é o /etc/X11/xdm/Xresources - a sintaxe é a mesma dos outros arquivos de recursos. Para quem não está acostumado, basta saber que o ! significa comentário. É importante lembrar que para o Xresources, "Red" é diferente de ~SRed ~S, portanto, muito cuidado com os espaços depois de alguma opção (já perdi algumas noites com isso).
Tamanho e posição
Para alterar o tamanho da caixa de texto, basta utilizar a seguinte sintaxe:
xlogin.Login.width: tamanho
xlogin.Login.height: tamanho
O primeiro altera a largura e o segundo, a altura da caixa. O parâmetro tamanho é dado em pontos. Se seu Xresources já apresenta essas linhas, apenas altere os tamanhos para o que achar conveniente.
A posição da janela também é alterada por apenas dois parâmetros, um para a posição x (horizontal) e outro para a y (vertical), ambos contados em pixels a partir do canto superior esquerdo da tela.
xlogin.Login.x: número
xlogin.Login.y: número
Com o que aprendemos até agora, já é possível colocar um desenho como fundo da tela e a janela em um local mais apropriado, onde não incomode o desenho. Podemos colocar um logotipo no centro da tela e a janela um pouco mais abaixo (ou mais acima).
Textos e fontes
Os textos padrão do XDM em geral são auto-explicativos: Login para o nome do usuário e Password para a senha; mas há horas em que outras combinações seriam mais interessantes. Em uma escola, poderíamos trocar Login por Aluno e Password por Senha. Editar isto também é fácil:
xlogin.Login.namePrompt: texto_para_o_login
xlogin.Login.passwdPrompt: texto_para_o_password
É necessário deixar um ou mais espaços em branco após o texto, para isto coloque uma barra invertida e, em seguida a ela, um espaço em branco.
Continuando o nosso caso da escola, em vez de indicar no XDM o nome da máquina em que o aluno vai fazer logon, poderíamos colocar o nome da escola, assim:
xlogin*greeting: Título
E alterar a mensagem de erro. Em vez do típico Login Incorrect, algo como Aluno ou Senha não conferem ou qualquer outra mensagem que seja mais apropriada. Para alterar este texto, use:
xlogin.Login.fail: mensagem_quando_falha
Além destas várias configurações,. podemos alterar os tipos e tamanhos de fonte para todas estas mensagens. Para selecionar as fontes apropriadas, use o xfontsel, e para simplesmente listá-las, tente o xlsfonts.
xlogin.Login.font: fonte_padrão_para_os_textos
xlogin.Login.greetFont: fonte_para_o_Título
xlogin.Login.promptFont: fonte_para_o_login_e_password
xlogin.Login.failFont: fonte_para_quando_falha
Com esta série de comandos, o título pode utilizar letras maiores e mais rebuscadas, enquanto o restante aparece com fontes mais legíveis, ou qualquer combinação que julgar conveniente. Colocando uma string vazia no lugar do texto, é possível deixar um campo vazio.
Cores, cores e mais cores...
Vamos agora alterar as cores da janela de login. Com os comandos de cor podemos dar um efeito "transparente" na janela, ou destacar uma determinada parte do texto. Para tal efeito, basta eliminar a borda da janela e deixá-la com a mesma cor do fundo da tela, e os textos ficarão ~Sflutuando~T, soltos no vídeo:
*Background: cor_do_fundo
xlogin*borderWidth: espessura_da_borda
Se for necessário destacar determinada parte do texto, não há problema, já que as cores podem ser definidas separadamente para cada trecho do texto...
*Foreground: cor_do_texto
xlogin*greetColor: cor_do_título
xlogin*promptColor: cor_do_login_e_password
xlogin*failColor: cor_quando_falha
As cores podem ser dadas tanto pelos seus nomes quanto pelos seus valores rgb (Red-Green-Blue). Por exemplo: #FFFFFF ou white para a cor branca.
Logotipo, sombras, etc...
Se você usa o XFree86 4.x.x, deve ter percebido algumas mudanças no xdm: agora você pode fazer um efeito "3D", além de poder colocar um logotipo na sua tela de login. Colocar o logo na caixa de login é super simples. Basta colocar:
xlogin*logoFileName: /caminho/para/a/figura.xpm
xlogin*logoPadding: 10
Na primeira linha, você apenas indica qual vai ser a figura, na segunda, você coloca (em pixels) a distância das bordas da figura até a borda da caixa de login.
As sombras são conseguidas com outras configurações, um pouquinho mais complexas. As bordas dos frames são ajustadas com:
xlogin*frameWidth: 2
e as bordas internas, com:
xlogin*innerFramesWidth: 2
Além destes settings, você tem que selecionar a cor da área clara e escura da borda (ou seja, o brilho e a sombra). Para configurar isto, você usa os:
xlogin*hiColor: #9A9A9A
xlogin*shdColor: #454545
Obviamente, você pode escolher os números que quiser para as bordas e as cores que quiser para os reflexos e para a sombra.
Idéias...
Faça algum desenho que tenha um trecho razoável com uma única cor e posicione a sua janela nesse trecho com o efeito de falsa transparência. O texto ficará "flutuando" no meio do desenho. Fica muito bonito.
Outra boa idéia, é colocar para rodar como fundo de tela, em vez de um desenho, um screensaver como o xflame. Ocupa um bocado de processamento, mas se você prefere o efeito estético, coloque logo abaixo do comando xsetroot (no arquivo Xsetup_0):
xflame -root &
Você pode utilizar qualquer outro screensaver de sua preferência. Lembre-se sempre de pôr o & no fim do comando, para que o processo rode em background. No Quadro 1 há um exemplo de um arquivo XResources para você começar a brincar. Espero que este artigo tenha ajudado um pouco (e que lhe dê material para brincar bastante e escrever init 4 algumas dezenas de vezes).
Quadro 1
XResources
! $XConsortium: Xresources /main/8 1996/11/11 09:24:46 swick $
! Xresources: 07/Jan/2000 by Piter Punk
xlogin*login.translations: #override\
CtrlR: abort-display()\n\
F1: set-session-argument(failsafe) finish-field()\n\
CtrlReturn: set-session-argument(failsafe) finish-field()\n\
Return: set-session-argument() finish-field()
xlogin.Login.x: 0
xlogin.Login.y: 0
xlogin.Login.width: 308
xlogin.Login.namePrompt: Username:\
xlogin.Login.passwdPrompt: Password:\
xlogin*greetFont: -*-lucidatypewriter-*-r-*-*-*-190-100-100-*-*-iso8859-1
xlogin*promptFont: -*-lucidatypewriter-*-r-*-*-*-140-100-100-*-*-iso8859-1
xlogin*borderWidth: 0
xlogin*greeting: CLIENTHOST
#ifdef COLOR
xlogin*greetColor: SteelBlue
xlogin*promptColor: SteelBlue
xlogin*failColor: red
*Foreground: grey65
*Background: Black
#else
*Foreground: #ffffff
*Background: #000000
#endif
DICA
Colocando botões para desligar e reiniciar a máquina no XDM
Quem usa o XDM provavelmente está cansado de digitar CTRL+ALT+F1 e depois CTRL+ALT+DEL para poder desligar o computador. Procurando por aí, encontrei no site de Frédéric Péters a dica a seguir, que resolve o problema.
No arquivo /etc/X11/xdm/Xsetup_0, inclua as seguintes linhas:
/usr/bin/wish << EOF &
wm geometry . -0+0
button .halt -text Halt -fg black -bg gray -command {
exec shutdown -h now
}
button .reboot -text Reboot -fg black -bg gray -command {
exec shutdown -r now
}
pack .reboot .halt -side left
EOF
echo $! > /var/run/xdmbutton.pid
Depois, coloque no arquivo /etc/X11/xdm/GiveConsole (no Slackware, ou no arquivo /etc/X11/xdm/Xstartup_0 em algumas outras distros) as seguintes linhas, antes do comando chown $USER /dev/console:
if test -r /var/run/xdmbutton.pid ; then
kill 'cat /var/run/xdmbutton.pid'
fi
Agora você e seus usuários já podem desligar o computador com um clique do mouse. As cores dos botões são alteradas com os parâmetros -bg (cor de fundo) e -fg (cor de frente) e sua posição nos parâmetros -0+0 da linha wm geometry.
Piter Punk - piterpk@terra.com.br