Alterando o XDM
Piter PUNK
Cansado de ver sempre a mesma cara do XDM? Não gosta dos seus similares
como o KDM e GDM? Veja neste artigo como criar telas de login simpáticas
usando apenas o XDM e seus arquivos de configuração.
1. Introdução
A maioria dos sistemas UNIX dispõe de um login gráfico, disponibilizado
pelo X. Por padrão, este sistema de login é garantido pelo XDM (X
Display Manager). Praticamente qualquer sistema com o X instalado
possuirá 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 esse artigo...
2. Começando pelos fundos...
O mais fácil de alterar é o fundo da tela... Para isso temos duas opções,
colocar uma cor sólida como sendo o fundo da tela, ou utilizar uma
figura como fundo. Para realizar tanto um como outro, é necessário
editar o arquivo: /etc/X11/xdm/Xsetup_0, por default, o conteúdo deste
arquivo é:
#!/bin/sh # $XConsortium: Xsetup_0,v 1.3 93/09/28 14:30:31 gildea Exp $
xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
A linha que começa com o # é uma linha de comentário. Já a segunda,
apenas coloca o programa xconsole na tela. Eu particularmente acho
que manter o xconsole fica muito feio em uma tela de apresentação,
e prefiro retirá-lo. Para isso, basta comentar a linha que o convoca.
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á corrigem este erro, se o seu Xsetup_0 já possuir
estas linhas, mantenha como está:
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
Agora, vamos acrescentar a linha com a mudança do fundo da tela, propriamente
dito. Para colocar uma cor chapada, coloque:
xsetroot -solid cor
Onde cor é a cor que você deseja colocar como fundo. Em conjunto com
outros arquivos de configuração, é possível deixar toda a tela de
uma única cor, exceto as palavras login e password, fica um belo efeito...
Para colocar uma imagem, eu utilizo:
xv -viewonly -rmode 5 -rbg black -root -quit -maxpect imagem
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
(-rbg black) , a imagem servirá como tela de fundo (-root) e após
colocá-la na tela, o XV irá se auto desligar (-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 -:)
3. A caixa de Pandora...
...ou a caixa de Login. Ela é amplamente configurável, para você ter
uma idéia, é possível:
- Alterar a cor, tamanho e tipo da fonte;
- Modificar os textos apresentados;
- Trocar a cor de fundo e da borda da caixa e;
- 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. É impostante lembrar que para o Xresources, "Red" é diferente de "Red ", por isso, muito cuidado com os espaços depois de alguma opção (já perdi algumas noites com isso).
3.1. 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 o seu Xresources já apresenta essas linhas,
apenas altere os tamanhos para os que achar convenientes.
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. Poderíamos colocar um logotipo no centro da tela e a janela
um pouco mais abaixo (ou mais acima).
3.2. Textos e fontes
Os textos do XDM em geral são altamente explicativos, Login para o
login e Password para o password; mas existem horas em que outras
combinações seriam mais interessantes. Em uma escola poderíamos trocar
o Login por Aluno e o 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
isso coloque uma barra invertida e após ela um espaço em branco.
Continuando o nosso caso da escola, ao invés de indicar no XDM o nome
da máquina em que o aluno vai logar, poderíamos colocar o nome da
escola, assim:
xlogin*greeting: Título
E alterar a mensagem de erro, ao invés 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 apropriada,
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. O que pode
ser útil para o título quando já se possui um título na imagem de
fundo.
3.3. Cores, cores e mais cores...
Agora iremos 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 o tal efeito ``transparente'' basta eliminar a borda da janela
e deixá-la com a mesma cor do fundo da tela, os textos ficarão flutuando,
soltos no vídeo:
*Background: cor_do_fundo
xlogin*borderWidth: espessura_da_borda
Se o necessário for destacar determinada parte do texto, não existem
maiores problemas, 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 (é possível conseguir
uma lista pelo comando showrgb) quanto pelos seus valores rgb (Red-Green-Blue),
por exemplo: #FFFFFF ou white para a cor branca.
4. 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 sao conseguidas com outras configuracoes... (um pouquinho mais complicadas). As bordas dos frames você seta com:
xlogin*frameWidth: 2
e as bordas internas com o:
xlogin*innerFramesWidth: 2
Alem destes settings, você tem que selecionar a cor da área clara e escura da borda (ou seja, o brilho e a sombra). Para setar isso 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.
5. Idéias...
Faça algum desenho que possua um trecho razoável com uma única cor,
e posicione a sua janela nesse trecho com o efeito de transparência,
as letras do texto estarão flutuando no meio do desenho, fica muito
bonito.
Outra boa, é colocar para rodar como fundo de tela, ao invés 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 xsetroot
(no arquivo Xsetup_0):
xflame -root &
Pode ser utilizado outro screensaver, eu apenas acho esse mais legal...
lembre-se sempre de por o & no fim, para que o processo rode em background.
No apêndice está o meu antigo Xresources. No atual eu coloquei o desenho da LinuxFox e fiz a caixa de texto ficar "transparente". Eu achei que ficou muito bom, mas você pode olhar este screenshot e tirar as suas proprias conclusoes.
Espero que esse artigo tenha ajudado um pouco (e que lhe dê material
para brincar bastante e escrever init 4 algumas dezenas de vezes -;)
Dúvidas, correções, sugestões e elogios, mande e-mail para
Apêndice A: 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
|