summaryrefslogtreecommitdiffstats
path: root/tde-i18n-pt_BR/docs/tdebase/userguide/under-the-hood.docbook
blob: a558cfce12a41c1b445022c4ab891cbdcaf3668b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
<chapter id="tinkering-under-the-hood">
<!-- Uncomment the <*info> below and add your name to be -->
<!-- credited for writing this section. -->

<!--
<chapterinfo>
<authorgroup>
<author>
<firstname>Your First Name here</firstname>
<surname>Your Surname here </surname>
</author>
</authorgroup>
</chapterinfo>
-->

<title>Trabalhando nos Bastidores do &kde;</title>

<sect1 id="hand-editing-config-files">

<sect1info>
<author><personname> <firstname>Nicolas</firstname> <surname>Goutte</surname> </personname> <email>[email protected]</email> </author>
</sect1info>

<title>Editando Manualmente os Arquivos de Configuração</title>

<sect2 id="hand-editing-intro">
<title>Introdução</title>
<para>No &kde;, os arquivos de configuração são fáceis de alterar com um editor de texto simples como o &kate;, uma vez que que os arquivos de configuração são arquivos de texto.</para>

<para>Um exemplo de um arquivo de texto:</para>

<programlisting>[Geral]
AutoSalvar=1
UltimoArquivo=/var/tmp/teste.txt</programlisting>

<para>Os arquivos de configuração de um usuário estão em <filename class="directory">.kde/share/config</filename> (substitua o <filename>.kde</filename> pela sua variável de ambiente $<envar>TDEHOME</envar>) e os globais estão na sub-pasta <filename class="directory">share/config</filename> do local onde o KDE foi instalado. (Você poderá encontrar esta localização executando o comando <command>tde-config --prefix</command>.) Os seus nomes terminam normalmente em 'rc' (sem um ponto inicial), como por exemplo <filename>kopeterc</filename>.</para>

<warning><para>Contudo, os arquivos de configuração editados manualmente, podem comprometer a estabilidade do seu &kde;. A maioria dos aplicativos não verificam o que lêem dos seus arquivos de configuração e poderão ser prejudicados pelo que obtêm da sua configuração, fazendo com que o aplicativo inclusive estoure.</para></warning>

</sect2>

<sect2 id="hand-editing-backups">
<title>Cópias de Segurança</title>

<para>Por isso, a primeira regra é fazer uma cópia de segurança do seu arquivo antes de modificá-los. A cópia de segurança deverá ser guardada fora de qualquer sub-pasta da <filename class="directory">.kde</filename> (ou da pasta correspondente a $<envar>TDEHOME</envar>). As cópias de segurança são sempre uma boa idéia no caso de uma falha geral do &kde; que destrua os arquivos de configuração importantes (como por exemplo as suas opções do &kmail;, que se encontram no arquivo <filename>kmailrc</filename>). (Uma falha grande dessas não deveria acontecer, mas ainda assim pode ocorrer.)</para>
</sect2>

<sect2 id="hand-editing">
<title>Editando</title>

<para>Assim, por que você mexeria nos arquivos de configuração? Bem, primeiro, é necessário se quiser obrigar o uso do modo KIOSK. Talvez um programador tenha lhe pedido para adicionar um item que o ajude a depurar um erro. Talvez queira recuperar de um problema sem ter que remover toda a pasta <filename class="directory">.kde</filename>. Talvez queira aprender mais sobre os detalhes do &kde;.</para>

<para>De qualquer forma, seja qual for a razão, você poderá desejar modificar manualmente um arquivo de configuração.</para>

<para>Ao planejar editar um arquivo desses, certifique-se que o aplicativo que o usa não está rodando. Se for um dos arquivos de configuração básica, considere editar o arquivo enquanto o todo o &kde; não está rodando.</para>

<para>Está pronto? Faça então uma cópia de segurança (já foi dito alguma vez?), inicie o seu editor favorito (assumiremos que neste caso é o &kate;), abra o arquivo (tenha o cuidado de carregá-lo como UTF-8, uma vez que que o &kate; exibe-o como <quote>utf8</quote>).</para>

<para>Agora você terá um arquivo do tipo:</para>

<programlisting>[Grupo]
Chave1=Valor1
Chave2=Valor2
Chave3=Valor3</programlisting>

<para>Você poderá agora modificá-lo (com cuidado!) e depois salvá-lo (certificando-se novamente que é <acronym>UTF-8</acronym>).</para>

<para>Agora, você poderá testar o aplicativo e, se ele não se executar mais corretamente, feche-o e restaure a cópia de segurança.</para>

<itemizedlist>
<title>Informações Relacionadas</title>


<listitem><para><xref linkend="kde-for-administrators"/> existem mais informações sobre a estrutura de pastas do &kde;, de modo a ajudá-lo a encontrar o arquivo que precisa de editar.</para>
</listitem>

</itemizedlist>

</sect2>

</sect1>

<sect1 id="scripting-the-desktop">
<title>Programando o Ambiente de Trabalho</title>

<para>O &kde; oferece um sistema de comunicação entre processos poderoso chamado &DCOP;, o Desktop COmmunication Protocol. Usando o &DCOP;, você pode controlar uma grande quantidade de funções do &kde; a partir da linha de comando ou a partir de um programa feito na sua linguagem de programação favorita. Você poderá também obter informações a partir das aplicações do &kde;: por exemplo, vários leitores multimídia do &kde; oferecem métodos para pesquisar por determinada informação no leitor sobre a faixa que está sendo tocada no momento.</para>

<para>Falando de um modo abrangente, cada aplicação do &kde; oferece uma ou mais <firstterm>interfaces</firstterm> de &DCOP; que, por sua vez, oferecem métodos (ou, se preferir, funções) que outra aplicação poderá então invocar. Assim, o primeiro passo ao usar o &DCOP; é descobrir o método apropriado para a tarefa. A forma mais simples de fazer isto é com a interface <application>kdcop</application> para os métodos de &DCOP; disponíveis.</para>

<para>Execute o <application>kdcop</application> a partir de um &konsole; ou da mini-linha de comando (a janela que aparece com o <keycombo action="simul">&Alt;<keycap>F2</keycap> </keycombo>). A janela do <application>kdcop</application> mostra as aplicações que estão rodando no momento e que oferecem interfaces de &DCOP;, usando uma árvore para isso. De um modo geral, a escolha do método correto obriga a alguma pesquisa pela árvore, mas uma sugestão útil é que a interface marcada como <quote>(padrão)</quote>, contém normalmente as funções usadas com mais frequência.</para>



<para>Para testar se a função faz o que desejamos, faça um duplo-clique por exemplo no ítem <guilabel>setColor</guilabel>. Para escolher a cor <varname>c</varname>, clique no botão de seleção de cores e escolha uma. Indique se a cor deverá ser a cor A com a opção para assinalar. Clique <guilabel>OK</guilabel> para ver a cor de fundo modificada.</para>

<para>Para acessar ao método de &DCOP; a partir da sua linguagem de programação favorita, você poderá tanto usar as interfaces de &DCOP; existentes, se estiverem disponíveis no módulo 'tdebindings', ou então invocar a aplicação da linha de comando <command>dcop</command>. Para uma utilização simples, a invocação da aplicação da linha de comando <command>dcop</command> é suficiente. Para invocar um método de &DCOP; desta forma, é necessário indicar a aplicação e a interface que possui o método, o método em si e os argumentos, num formato adequado para a linha de comando.</para>

<para>Nós especificamos a aplicação, a interface e o método exatamente nessa ordem, seguido dos argumentos pela mesma ordem que são apresentados no <application>kdcop</application>. O <command>dcop</command> possui muitas outras opções: dê uma olhada no resultado do <userinput><command>dcop</command> <option>--help</option></userinput>.</para>

<para>Já chega de teoria: está na hora de um exemplo:</para>

<example>
<title>Um Programa de Mudança da Cor de Fundo com o &DCOP;</title>

<para>Com a aplicação da linha de comando <command>dcop</command> e um pouco de Perl, vamos fazer então um pequeno programa que mude lentamente o fundo da tela, percorrendo o espectro de cores.</para>

<para>Em primeiro lugar, nós procuraremos pelo método apropriado com o <application>kdcop</application>. Para este exemplo, encurtaremos a busca e iremos ao método diretamente: o método que desejamos é o <menuchoice><guimenu>kdesktop</guimenu><guisubmenu>KBackgroundIface</guisubmenu><guimenuitem>setColor</guimenuitem> </menuchoice>. Os argumentos e o tipo do valor devolvido da função são mostrados com o estilo da linguagem C++. Para o caso do <methodname>setColor</methodname>, os argumentos são uma cor <varname>c</varname> que define a nova cor de fundo e um valor booleano ('true' ou 'false'), <varname>isColorA</varname>, que define se a cor é a primeira ou a segunda (isto é útil para definir gradientes, por exemplo).</para>

<para>Para usar o método <methodname>setColor</methodname> na linha de comando, usaremos o seguinte: <screen><prompt>%</prompt> <userinput><command>dcop</command> kdesktop KBackgroundIface setColor '#ffffff' false</userinput>
</screen>
</para>

<para>Para indicar a cor, é usado o valor RGB em hexadecimal, como é usado no &HTML;. Repare que ele está delimitado por aspas simples, para proteger o <token>#</token> da linha de comando.</para>

<para>Para descobrir o valor RGB em hexadecimal de uma cor, abra qualquer janela de seleção de cores numa aplicação do &kde; (como, por exemplo, o &kcontrolcenter;, em <menuchoice><guimenu>Aparência &amp; Temas</guimenu><guimenuitem>Cores</guimenuitem> </menuchoice>), selecione a cor que deseja e use o valor indicado no campo de texto <guilabel>HTML</guilabel>.</para>


<para>Assim, isto é tudo que precisamos do &DCOP;; agora, é apenas necessário criar um programa em torno dele. Aqui está uma implementação (muito!) rudimentar: <programlisting><![CDATA[
$min=49;  # Valor mínimo da cor R, G ou B
$max=174; # Valor máximo da cor R, G ou B
$passo=5;  # Quantidade a incrementar em cada passo e cor
$espera=15; # Intervalo em segundos entre cada iteração

@inicio = ($max, $min, $min);
@cor = @inicio;

while (1) {
        foreach (0..5) {
                my $qual = $_ % 3; # Qual a cor (R, G ou B) a alterar
                my $cima_baixo = $_ % 2; # Se deseja aumentar ou diminuir o valor
                do {
                        if ($cima_baixo == 0) { $cor[$qual]+=$passo; }
                        if ($cima_baixo == 1) { $cor[$qual]-=$passo; }
                        my $chamada=sprintf "dcop kdesktop KBackgroundIface setColor '#%x%x%x' true\n", @cor;
                        system($chamada);
                        sleep $espera;
                        } while (($cor[$qual] >= $min) and ($cor[$qual] <= $max));
                }
}
]]>
</programlisting>
</para>

<para>Basta executar o programa sem argumentos, para que ele alterne a cor de fundo em um espectro bem definido, até que seja morto. <foreignphrase>Voil&agrave;</foreignphrase>!</para>

</example>

<para>Claro que o Perl não é a única linguagem que você poderá usar para fazer programas com o &DCOP;&mdash;se preferir o 'shell scripting', ele também está disponível:</para>

<example>
<title>Aplicando um fundo da Internet</title>

<para>O seguinte programa obtém a imagem principal da tira de quadrinhos  <quote>User Friendly</quote> e coloca-a como papel de parede da área de trabalho, usando as ferramentas normais disponíveis e um pouco de &DCOP;:</para>

<programlisting><![CDATA[
#!/bin/sh
COMICURL=`wget -qO - http://www.userfriendly.org/static/index.html | \
          grep Latest | sed -e "s,.*SRC=\",," -e "s,\">.*,,"`
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1
wget -q -O $TMPFILE $COMICURL
dcop kdesktop KBackgroundIface setWallpaper $TMPFILE 1
]]>
</programlisting>

<para>A primeira linha após o '#!/bin/sh' usa o <command>wget</command> e uma mágica das expressões regulares para extrair a localização da imagem do código em &HTML; da página principal. A segunda e terceira linhas irão obter a imagem e, finalmente, o <command>dcop</command> aplica a imagem transferida como papel de parede.</para>

</example>


<!-- <itemizedlist>
<title>Related Information</title>
<listitem><para>to be written</para>
</listitem>
</itemizedlist> -->


</sect1>


<sect1 id="adding-extra-keys">
<title>Adicionando Atalhos de Teclado Extra para o &kde;</title>

<para>Muitos teclados modernos contém teclas adicionais que não estão atribuídas por padrão a nenhuma ação.</para>

<para>As teclas <quote>Multimídia</quote> geram normalmente um sinal e podem simplesmente ser escolhidas como uma combinação de teclas dentro de um aplicativo, como quem escolhe uma tecla qualquer. Algumas das teclas, todavia, não são detectadas e, pressionando-as no <guilabel>Configurar Atalhos</guilabel>, não acontecerá nada.</para>

<para>Alguns portáteis da IBM, por exemplo, possuem teclas adicionais em torno dos cursores esquerdo e direito, e que parecem um <guiicon>Page Left</guiicon> e um <guiicon>Page Right</guiicon>.</para>

<procedure>
<step><para>Use o <command>xev</command> para descobrir o código das teclas. Neste caso, são o 233 e o 234, respectivamente </para></step>
<step><para>Escolha os símbolos das teclas. Existe alguns intervalos que não são usados por padrão, por isso muitos estão livres. Você poderá encontrar a lista em <filename>/usr/X11R6/include/X11/keysymdef.h</filename> (ou o equivalente no seu sistema).</para></step>
<step><para>Crie um arquivo na sua pasta pessoal chamado <filename>.Xmodmap</filename> e adicione o seguinte a ele:</para>
<screen>keycode 233 = Next_Virtual_Screen
keycode 234 = Prev_Virtual_Screen</screen>
</step>
<step><para>Execute o comando <userinput><command>xmodmap</command> <filename>~/.Xmodmap</filename></userinput></para></step>
</procedure>

<para>Neste momento, você deverá ser capaz de executar o <command>xev</command> novamente e ver que as teclas geram agora o símbolo da tecla que atribuiu. Você poderá agora atribuir esses símbolos a qualquer ação, como de costume.</para>

<itemizedlist>
<title>Informações Relacionadas</title>
<listitem><para>A página de manual do <command>xev</command>. Você poderá vê-la digitando <userinput>man:/xev</userinput> numa janela do &konqueror; ou digitando <userinput><command>man</command> xev</userinput> num terminal.</para></listitem>
</itemizedlist>

</sect1>

<sect1 id="keys-for-scripts">
<title>Adicionando Combinações de Teclas às Ações Novas</title>

<para>A maioria das ações do ambiente de trabalho ou dos aplicativos estão imediatamente disponíveis para poder associar-se uma combinação de teclas. Se a ação a que deseja atribuir um atalho foi criada por você ou ainda não esteja disponível, você poderá ainda assim atribuir um atalho.</para>

<para>Para reunir as duas seções anteriores, talvez você queira atribuir uma tecla não usada do seu teclado a um programa ou comando de DCOP. O exemplo aqui será então atribuir as duas teclas que foram adicionadas em <xref linkend="adding-extra-keys"/> para ir para a área de trabalho virtual anterior ou a seguinte, ou seja, duas funções para as quais irá precisar do DCOP (tal como foi descrito em <xref linkend="scripting-the-desktop"/>.</para>

<para>Isto pode ser conseguido facilmente com o seguinte método:</para>

<procedure>
<step>
<para>Abra o &kcontrol; na seção <guilabel>Regional &amp; Acessibilidade</guilabel>, e selecione <guilabel>Ações de Entrada</guilabel></para>
</step>
<step>
<para>Escolha <guibutton>Nova Ação</guibutton></para>
</step>
<step>
<para>Dê um nome à ação nova, &eg; <userinput>Próxima Área de Trabalho Virtual</userinput></para>
</step>
<step>
<para>Selecione o <guilabel>Atalho de teclado -> Comando/URL(simples)</guilabel> para o <guilabel>Tipo de ação:</guilabel></para>
</step>
<step>
<para>Na página do <guilabel>Atalho do Teclado</guilabel>, clique no botão que deseja usar para disparar o comando. Para este exemplo, você iria pressionar a tecla com a imagem do <guiicon>Próxima Página</guiicon> nele. O <keysym>Next_Virtual_Screen</keysym> aparecerá na imagem da tecla.</para>
</step>
<step>
<para>Na página do <guilabel>Configuração do Comando/URL</guilabel>, insira o comando a executar no campo: <userinput><command>dcop twin default nextDesktop</command></userinput></para>
</step>
</procedure>

<para>Repita os passos anteriores com a tecla <keysym>Prev_Virtual_Screen</keysym> key e a ação <userinput><command>dcop twin default previousDesktop</command></userinput>.</para>

<para>Agora, pressionando as teclas <keysym>Prev_Virtual_Screen</keysym> ou <keysym>Next_Virtual_Screen</keysym>, mudará para a área de trabalho virtual anterior ou a próxima, respectivamente.</para>

<para>Obviamente, você poderá atribuir qualquer tecla livre a qualquer ação.</para>

<itemizedlist>
<title>Informações Relacionadas</title> 
<listitem><para>Veja a documentação do <application>KHotKeys</application> no &khelpcenter;, ou digitando <userinput>help:/khotkeys</userinput> numa janela do &konqueror;.</para></listitem> 
<listitem><para><xref linkend="adding-extra-keys"/></para></listitem>
<listitem><para><xref linkend="scripting-the-desktop"/></para></listitem>
</itemizedlist>

</sect1>

<sect1 id="tdedebugdialog">
<sect1info>
<authorgroup>
<author><personname> <firstname>Adriaan</firstname> <surname>de Groot</surname> </personname> <email>[email protected]</email> </author>
</authorgroup>
</sect1info>

<title>&tdedebugdialog; - Controlando o Resultado da Depuração do &kde;</title>

<sect2 id="tdedebugdialog-basic-usage">
<title>Utilização Básica</title>

<para>O &tdedebugdialog; não está no &kmenu; por padrão. Você terá que executá-lo na linha de comando ou na mini-janela de execução de comandos com <userinput><command>tdedebugdialog</command></userinput>. O &tdedebugdialog; mostra uma janela com uma lista grande de áreas de depuração. Cada área tem uma opção que você poderá ligar ou desligar para ativar ou desativar o resultado de depuração dessa parte do &kde;.</para>

<para>A lista de áreas de depuração vem ordenada numericamente, não alfabeticamente, assim o tdeio (127) vem antes do artskde (400). Os números vão até perto de 200 000, mas normalmente só existem 400 áreas. Você não terá que percorrer a lista completa para encontrar a área que precisa. Existe um campo de texto no topo da janela, onde poderá inserir uma parte do nome da área que deseja. A lista de itens que é apresentada é filtrada de modo a incluir apenas as áreas de depuração que contém o texto que introduziu, &eg; se inserir <userinput>k</userinput> não irá filtrar muito mas, se indicar <userinput>kont</userinput>, deverá aparecer apenas as áreas de depuração do &kontact;. Como uma forma mais rápida de ativar ou desativar o resultado de depuração, existe também os botões para <guibutton>selecionar tudo</guibutton> e <guibutton>deselecionar tudo</guibutton>, que fará com que o &kde; produza muitos dados de depuração, ou quase nenhum.</para>
</sect2>

<sect2 id="tdedebugdialog-fullmode">
<title>O TDEDebugDialog no modo completo</title>

<!-- this text partly taken from the tdedebugdialog handbook -->

<para>No modo completo, que é o que irá obter ao executar o TDEDebugDialog como <userinput><command>tdedebugdialog</command> <option>--fullmode</option></userinput>, fica disponível a mesma lista de áreas de depuração, podendo selecionar apenas uma de cada vez numa lista. Você poderá então definir o resultado para os vários tipos de mensagens: Informação, Aviso, Erro e Erro Fatal. Para cada um destes tipos, você poderá escolher para onde são enviadas as mensagens. As opções são:</para>

<para>Arquivo, onde terá que inserir o nome de um arquivo. Ele será escrito na sua pasta $<envar>HOME</envar>.</para>

<para>Caixa de Mensagem. Cada mensagem de depuração é mostrada num diálogo de informação, que você terá que pressionar <guibutton>OK</guibutton> para continuar com o aplicativo.</para>

<para>Linha de Comando, a entrada padrão. As mensagens são impressas no 'stderr' e irão aparecer tanto na janela da linha de comado em que a aplicativo foi iniciado, como no <filename>.xsession-errors</filename>.</para>

<para>Syslog. Isto envia cada mensagem de depuração para a funcionalidade de registro do systema ('syslog'), que poderá efetuar um processamento prévio da mensagem.</para>

<para>Nenhum. Isto elimina o resultado deste tipo de mensagem.</para>

<para>Para as mensagens geradas pelos erros fatais, é normalmente uma má idéia escolher o Nenhum ou o Syslog, uma vez que em ambos os casos poderá não ver a mensagem e o aplicativo que obtenha o erro fatal irá desaparecer sem deixar uma razão do seu desaparecimento. Se o aplicativo desaparecerá ou não no caso de um erro fatal, poderá ser definido na opção <guilabel>Abortar nos erros fatais</guilabel>, que está assinalada por padrão &mdash; mas você poderá esperar ainda que um aplicativo estoure (de forma confusa) se for encontrado ainda um erro.</para>

<!-- Add links to "further reading" here -->
<!-- <itemizedlist>
<title>Related Information</title>
<listitem><para>to be written</para>
</listitem>
</itemizedlist>-->



</sect2>
</sect1>
</chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: xml
sgml-omittag:nil
sgml-shorttag:nil
sgml-namecase-general:nil
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:0
sgml-indent-data:true
sgml-parent-document:("index.docbook" "book" "chapter")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->