mini COMO FAZER do cursor X11-big Como usar os cursores extendidos do mouse com o sistema X window Jörg Schneider v2, 11 de Agosto de 1997 Este documento descreve como usar os cursores extendidos do mouse com o sistema X window. ______________________________________________________________________ Índice geral 1. Introdução 2. Sobre este documento 3. Como fazê-lo 4. Notas e limitações 5. Discussão Técnica 6. Outras idéias de como deixar o cursor do mouse mais visível 7. Informação Relacionada 7.1 Como usar um fontserver 7.1.1 Configurando um fontserver 7.2 Como obter o bdf para alguma fonte ______________________________________________________________________ 11.. IInnttrroodduuççããoo Existem várias razões do porque do padrão dos cursores do mouse X serem difíceis de manipular para algumas pessoas: · quando executando X em um notebook com baixo contraste. · em telas normais quando usar alta resolução, como 1600x1280. · para pessoas visualmente enfraquecidas mesmo em um hardware normal. Em todos os casos o uso os mouses com os cursores extendidos ajudam. Idealmente este trabalho deve ser feito por um único programa X que automaticamente extende cada cursor do mouse. No meu saber não existe um modo simples de escreve um utilitário como este, pois o protocolo X não tem informações para consultas aos cursores do mouse. Para mais detalhes veja a seção ``Discussão Técnica''. Se nosso objetivo geral é menor, contudo, algo pode ser feito: Existe um padrão dos cursores do mouse que podem ser encontrados na fonte do cursor (tente xfd -fn cursor para dar uma olhada nele). A maioria dos programas usa estes cursores do mouse e a idéia-chave é substituir a fonte do cursor padrão por uma versão extendida. 22.. SSoobbrree eessttee ddooccuummeennttoo A motivação para construir este mini COMO FAZER foi um estudante com um problema visual que perguntou-me como extender o cursor do mouse no X; depois que eu descobri como isto pode ser feito, escrevi uma versão inicial deste documento. O conhecimento sobre o método descrito aqui não parece ser comum, então decidi compartilhá-lo e oferecer este documento como um mini COMO FAZER do Linux, desprezando o fato de que ele _n_ã_o _é _e_s_p_e_c_í_f_i_c_o _e_m _t_o_d_o _L_i_n_u_x. Como todos os outros mini COMO FAZER ele pode ser encontrado no home do Linux Documentation Project (LDP) . O master deste documento é mantida no formato SGML/linuxdoc. Isto torna possíve l fornecer automaticamente versões nos seguintes formatos (que podem ser encontr ados no mesmo lugar do fonte): html, text, LaTeX, DVI, PostScript, GNU info. Foi feita uma tradução para o japonês deste mini COMO FAZER por Shinobu Miyata e pode ser encontrada em . 33.. CCoommoo ffaazzêê--lloo Siga os passo abaixo, se você não quer obter e compilar o pacote bdfresize sozinho, pode pular o passo 3 e carregar uma fonte ampliado ao invés de criá-lo. 1. obtenha o cursor.bdf, o fonte da fonte do cursor, de alguma distribuição X, e. g., de (se você não encontrá-lo aqui tente uma pesquisa ou obtenha-o de my copy ). 2. Pegue, compile e instale o pacote bdfresize de (ou de my copy ): zcat bdfresize-1.4.tar.Z | tar xf - cd bdfresize-1.4 xmkmf make No Linux você provavelmente tem que usar: make CCOPTIONS='-include /usr/include/bsd/bsd.h' clean all 3. crie um diretório e instale o fonte ampliado do cursor nele (neste exemplo, fator 2 de ampliação): mkdir $HOME/fonts bdfresize -f 2 cursor.bdf | bdftopcf >$HOME/fonts/cursor2.pcf mkfontdir $HOME/fonts Eu preparei algumas fontes fontes de cursores com os seguintes fatores: 1.5, 2, 2.5, 3, 4, 5, 6, 7, 8 e 16. Você pode carregar uma delas e copiá-la para $HOME/fonts se você não quer usar o bdfresize. 4. modifique seu arquivo .xinitrc ou o .xsession: antes de qualquer cliente X (que use os cursores) ser inicializado, os seguintes comandos devem ser executados: xset +fp $HOME/fonts xsetroot -cursor_name X_cursor 5. Deixe sua sessão X e reinicialize. Agora todos os cursores do mouse devem ter tamanho duplicado. 44.. NNoottaass ee lliimmiittaaççõõeess · Os servidores X podem ter um limite para o tamanho máximo do cursor, especialmente se eles usam uma implementação de hardware para o cursor do mouse. Outros não possuem tal limite. Por exemplo, o XF86_S3 3.3 funciona até mesmo com um cursor do mouse de 512x512 (um tanto lento). · A fonte ampliada do cursor deve ter o mesmo nome que a fonte original (_o _n_o_m_e _d_a _f_o_n_t_e deve ser cursor, _o _n_o_m_e _d_o _a_r_q_u_i_v_o não importa); isto não é problema pois o bdfresize não muda o nome da fonte. · O diretório com a nova fonte do cursor deve estar antes do diretório com a fonte padrão; isto é realizado com xset +fp (em oposição a xset fp+). · Mudanças em $HOME/fonts/ serão visíveis somente depois do comando mkfontdir $HOME/fonts; xset fp rehash e somente nos cliente X iniciados recemente (mais exatamente: para cursores criados recentemente). · xset +fp path pode não funcionar em Terminais X. Neste caso um fontserver (veja a seção ``Como usar um fontserver'') pode ser usado se suportado pelo Terminal X ou algum outro método para instalar a fonte no Terminal X (isto geralmente só pode ser feito pelo seu administrador do sistema). · O mesmo caminho pode ser usado para as fontes olcursor e decw$cursor ou qualquer outra fonte do cursor que você possa encontrar. · As fontes do cursor produzidas pelo bdfresize não parecem uniformes, especialmente os fatores de ampliação maiores. Isto seria ótimo se alguém pudesse criar melhor olhando a versão feita manualmente de alguns tamanhos comuns. 55.. DDiissccuussssããoo TTééccnniiccaa É possível escrever um programa X que aumente os cursores automaticamente? ((PPaarrcciiaall)) ssoolluuççããoo 11 Use o XTestCompareCursor da extensão XTEST. Para todas as janelas que o ponteiro do mouse entra compare o cursor desta janela com um conjunto de cursores `conhecidos' (isto é, da fonte do cursor). Se o cursor é encontrado, substitua-o por uma versão ampliada, caso contrário ou deixe-o sozinho ou substitua- o por um cursor padrão. Isto funcionará somente onde a extensão XTest está disponível. SSoolluuççããoo 22 Escreva um servidor proxy X que retransmita todos os pedidos de cliente inalterados para o servidor X verdadeiro, exceto aqueles que ele intercepta todos os pedidos correspondentes às funções XCreate*Cursor da Xlib. Os pedidos do XCreate*Cursor devem ser modificados ao se usar um cursor ampliado. Este servidor proxy simula uma nova tela, por exemplo: :1. Todos os cliente que se conectarem a esta tela (por exemplo, xterm -display :1) são mostrados no servidor real (normalmente :0) e seus cursores de mouse são ampliados automaticamente. Os cursores do mouse de clientes que se conectam ao :0 permanecerão _i_n_a_l_t_e_r_á_v_e_i_s. 66.. OOuuttrraass iiddééiiaass ddee ccoommoo ddeeiixxaarr oo ccuurrssoorr ddoo mmoouussee mmaaiiss vviissíívveell Aqui estão algumas idéias para um programa X mais simples que deve fazer os cursores do mouse mais fáceis de localizar. · Quando uma tecla de atalho é pressionada exiba alguma coisa (cursor grande, janela diminuída, janela formatada) na posição do ponteiro para 0.5s. · use o XRecolorCursor para mudar a cor do cursor do mouse a cada 0.1s Um projeto de maior necessidade seria as ttrriillhhaass ddoo mmoouussee, isto é, quando o mouse é movido e o cursor do mouse precisa ser desenhado em uma posição diferente, então o cursor velho do mouse não desaparece de uma vez, mas depois de um pequeno atraso. As trilhas do mouse seriam provavelmente melhor implementadas em um servidor X, mas pode ser possível fazê-lo como um cliente X, ou melhor, como um servidor proxy (veja a seção ``Discussão Técnica'' para detalhes). 77.. IInnffoorrmmaaççããoo RReellaacciioonnaaddaa 77..11.. CCoommoo uussaarr uumm ffoonnttsseerrvveerr Um fontserver é um serviço da rede que fornece um conjunto de fontes X11 com um protocolo simples; ele pode ser consultado para informar quais fontes ele fornece, e ele fornecerá o dado da fonte bitmap do pedido. Você pode querer usar um fontserver para fornecer o servidor X com uma fonte de cursor modificada, ao invés de falar a ele onde encontrar a fonte no sistema de arquivos. Este método é especialmente acessível se você usar várias máquinas que não compartilham um sistema de arquivos comum ou se você usa terminais X que suportam o protocolo do fontserver. Um programa fontserver e as ferramentas associadas a ele vêm com a distribuição X11R5+A (AFAIK). 77..11..11.. CCoonnffiigguurraannddoo uumm ffoonnttsseerrvveerr Leia as páginas do manual _f_s_(_1_), _f_s_l_s_f_o_n_t_s_(_1_) (ou _x_f_s_(_1_), _x_f_s_l_s_f_o_n_t_s_(_1_) sobre o X11R6) e tente configurá-lo; não é difícil. Você está executando o servidor na máquina some.host.edu na porta 7100. Você pode testar a configuração com o comando: fslsfonts -server some.host.edu:7100 Para usar realmente o servidor o comando: xset +fp tcp/some.host.edu:7100 deve retornar sem mensagens de erro. 77..22.. CCoommoo oobbtteerr oo bbddff ppaarraa aallgguummaa ffoonnttee Se você tem que configurar um fontserver simplesmente use o fstobdf que vem o servidor de fontes. Alternativamente você pode tentar o getbdf que pode transferir qualquer fonte X11 instalada para um arquivo bdf.