<para>O &ksirc; é o cliente de &irc; padrão para o &kde;. Ele suporta programação rcom <acronym>Perl</acronym> e é bastante compatível com o &mirc; para uso geral.</para>
<title>Se você nunca usou o &irc; antes...</title>
<para>Em palavras simples, o &irc; é um protocolo de conversação, definido por normas oficiais da Internet e que é capaz de roubar muitas horas da sua vida. Para usar o &irc;, você precisa conectar-se a um servidor e juntar-se a um canal (equivalente a uma sala de conversação).</para>
<para>Para conectar-se a um servidor, abra o &ksirc; e selecione <menuchoice><guimenu>Conexões</guimenu><guimenuitem>Novo Servidor...</guimenuitem></menuchoice> ou clique em <keycap>F2</keycap>. Na caixa de diálogo exibida, selecione um grupo na lista mais à esquerda e o servidor na lista do meio. A porta, mostrada à direita, será sempre a 6667. Será mostrada uma nova janela com as mensagens enviadas pelo servidor para o cliente. Quando estas mensagens acabarem de passar, você poderá selecionar o seu canal. Para mostrar uma lista dos canais disponíveis, digite <userinput><command>/list</command></userinput>. Para conectar-se a um canal digite: <userinput><command>/join</command> <replaceable>#nome_canal</replaceable></userinput>. Para sair de um canal, basta digitar <userinput><command>/part</command></userinput>.</para>
<para>Isto é o básico; para obter informações mais detalhadas, continue lendo...</para>
<para>O &ksirc; permite-lhe conectar-se a um conjunto arbitrário de servidores. Para conectar-se a um servidor, selecione a opção <menuchoice><guimenu>Conexões</guimenu><guimenuitem>Novo Servidor</guimenuitem></menuchoice> ou clique em <keycap>F2</keycap>. O diálogo <guilabel>Conectar ao Servidor</guilabel> aparecerá, onde você poderá selecionar um <guilabel>Grupo</guilabel>, depois um <guilabel>Servidor</guilabel> e também uma <guilabel>Porta</guilabel> onde conectar-se.</para>
<para>Basta depois clicar em <guilabel>Conectar</guilabel> quando terminar, para que apareça uma nova janela correspondente ao servidor. Você poderá manter o registro dos servidores aos quais se encontra conectado na janela do &ksirc; <guilabel>Controle do Servidor</guilabel>.</para>
<para>Você poderá obter uma ajuda para a maioria dos comandos de &irc; digitando <userinput>/help <replaceable>nome_comando</replaceable></userinput>. Digitar apenas <userinput>/help</userinput> irá fornecer uma lista dos comandos disponíveis.</para>
<para>Você poderá conectar-se aos canais com o comando normal do &irc; <userinput><command>/join</command> <replaceable>#nome_canal</replaceable> </userinput>, selecionando a opção <menuchoice><guimenu>Conexões</guimenu><guimenuitem>Entrar no Canal...</guimenuitem></menuchoice> ou pressionando <keycap>F3</keycap>.</para>
<para>Os canais nos quais você está conectado são mostrados na janela <guilabel>Controle do Servidor</guilabel> abaixo do servidor a que pertencem. Para abandonar um canal, você poderá invocar o comando <userinput>/part</userinput>, selecionar a opção <menuchoice><guimenu>Canal</guimenu><guimenuitem>Fechar</guimenuitem> </menuchoice> ou pressionar <keycombo action="simul">&Ctrl;<keycap>W</keycap></keycombo>.</para>
<para>Num canal, a lista de usuários é mostrada ao longo do lado direito. Se clicar com o botão direito no nome de um usuário dessa lista, aparecerá um menu de contexto com opções que são auto-explicativas:</para>
<para><action>Envia uma mensagem para o servidor para pedir novamente a lista dos usuários no canal.</action> Isto garante que a lista dos usuários está atualizada.</para>
<para><action>Realça o nome do usuário em todas as mensagens que eles enviam para o canal. Deste modo, você poderá seguir o tópico de conversação de uma determinada pessoa num canal ocupado.</action></para>
<para><action>Envia uma pesquisa de &CTCP; para saber quem é o usuário, obtendo algumas informações sobre ele, como o nome da sua máquina e o servidor ao qual se encontra conectado.</action></para>
<para>Se você tiver um conjunto de servidores e/ou canais aos quais se conecta sempre que usa o &ksirc;, então você poderá configurar o &ksirc; para conectar-se automaticamente a eles: na janela de <guilabel>Controle do Servidor</guilabel>, selecione <menuchoice><guimenu>Configurações</guimenu><guimenuitem>Configurar o KSirc...</guimenuitem></menuchoice> e, no diálogo que aparece, selecione a página de <guilabel>Conexão Automática</guilabel>. Para adicionar um canal a um servidor novo, preencha os campos <guilabel>Servidor</guilabel> e <guilabel>Canal</guilabel>, clicando depois no botão <guibutton>Adicionar</guibutton>. Para adicionar outro canal neste servidor, selecione o nome do servidor na árvore, indique o nome do canal no campo <guilabel>Canal</guilabel> e clique em <guibutton>Atualizar/Adicionar</guibutton>. Você poderá repetir este processo tantas vezes quantas desejar para adicionar vários servidores e canais para o &ksirc; conectar-se a eles.</para>
<para>O diálogo de configuração do &ksirc; está disponível através da opção <menuchoice><guimenu>Opções</guimenu><guimenuitem>Preferências...</guimenuitem></menuchoice> na janela <guilabel>Controle do Servidor</guilabel> do &ksirc;. </para>
<listitem><para>Faz com que o &ksirc; use o modo de interface de documentos únicos, no qual cada novo canal ou janela de <command>/query</command> terá a sua própria janela em separado.</para></listitem>
<listitem><para>Faz com que o &ksirc; use o modo de interface para vários documentos, com o estilo do <application>XChat</application>, no qual cada novo canal ou janela de <command>/query</command> terá uma página respectiva na janela principal do &ksirc;. Cada página poderá ser puxada para a frente clicando-se no seu separador respectivo, e você poderá mudar de página para página com o <keycombo>&Alt;<keysym>Esquerda</keysym></keycombo> e <keycombo>&Alt;<keysym>Direita</keysym></keycombo>.</para>
<term><guilabel>Auto-Criar Janela</guilabel></term> <listitem><para>Se estiver selecionada, o &ksirc; irá criar automaticamente uma nova janela para os usuários que enviarem um comando <command>/msg</command> para você. Se não estiver, todo o texto que for enviado para você com o <command>/msg</command> é mostrado na janela atual e você poderá usar o <command>/query<replaceable>usuário</replaceable></command> para criar uma janela onde poderá conversar com esse usuário.</para></listitem>
<term><guilabel>Completação de Apelidos</guilabel></term> <listitem><para>Se estiver selecionada a opção, ativa a completação dos nomes dos usuários. A completação funciona da seguinte maneira: <orderedlist>
<listitem><para>Digite as primeiras letras do nome do usuário.</para></listitem>
<listitem><para>Clique em <keysym>TAB</keysym>. O texto que você escreveu será completado para corresponder ao nome do usuário, mesmo que inclua mudanças de capitalização. Por exemplo, <userinput>jo<TAB></userinput> fica igual a <computeroutput>Jose</computeroutput> se existir um usuário chamado <quote>Jose</quote> no canal.</para></listitem>
<listitem><para>Se mais de um usuário do canal corresponder ao texto que escreveu, será escolhido o primeiro nome da lista. Pressionar <keysym>TAB</keysym> várias vezes, mostra o próximo usuário da lista. Por exemplo, se existirem os usuários <quote>ZeNuno</quote> e <quote>ZePires</quote> num canal, e você digitar <userinput>Ze<TAB></userinput>, o texto será completado primeiro com <computeroutput>ZeNuno</computeroutput> e se pressionar de novo em <keysym>TAB</keysym>, irá mudar para <computeroutput>ZePires</computeroutput>.</para>
<term><guilabel>Mostrar o tópico no título</guilabel></term>
<listitem><para><action>Mostra o tópico do canal atual no título da janela.</action> Se não estiver selecionada a opção, o tópico só é mostrado dentro da janela.</para></listitem>
<term><guilabel>Hora</guilabel></term> <listitem><para><action>Antecipa tudo o que for dito no canal com a hora em que foi dito</action>, no formato [HH:MM:SS].</para>
<term><guilabel>Apitar na Notificação</guilabel></term>
<listitem><para>Se estiver selecionada a opção, é tocada a campainha do sistema sempre que um usuário na sua lista de <command>/notify</command> conectar-se ao servidor de &irc; onde você se encontra.</para></listitem>
<term><guilabel>Janela de Seleção de Cores</guilabel></term>
<listitem><para>Se estiver selecionada a opção, é apresentada uma janela onde você poderá selecionar a cor com que o seu texto é apresentado quando pressionar <keycombo action="simul">&Ctrl;<keycap>K</keycap></keycombo>. Caso contrário, você terá que escrever os códigos de cores manualmente. Veja também <xref linkend="sectcolors"/>.</para></listitem>
<term><guilabel>Comprimento do Histórico</guilabel></term>
<listitem><para>Guarda este número de linhas de conversação para cada janela, o que lhe permite rolar para cima na janela e ver o que já foi dito.</para></listitem>
<title>Configuração do <guilabel>Papel de Parede</guilabel></title>
<para>Na seção do <guilabel>Papel de Parede</guilabel>, você poderá alterar a imagem que é colocada no fundo das suas janelas do &ksirc;. Você poderá indicar o nome do arquivo a usar no campo de texto, ou escolher o arquivo usando o botão à direita do mesmo campo de texto. Os arquivos de imagens terão de estar no formato &GIF;, <acronym>JPEG</acronym> ou <acronym>PNG</acronym>. É mostrada uma previsão da imagem à direita do diálogo.</para>
<title><guilabel>Lista de Notificações</guilabel></title>
<para>Aqui você poderá inserir uma lista de usuários que você irá querer adicionar à sua lista <command>/notify</command> na inicialização. Você será avisado quando algum destes usuários se conectar.</para>
<title>Configuração das <guilabel>Cores de Conversação</guilabel></title>
<para>Aqui você poderá definir as cores para cada um dos tipos de texto. Clicando no botão colorido à direita da legenda de cada tipo de texto, irá aparecer uma janela de seleção de cores na qual poderá escolher a cor com que deseja apresentar este tipo de texto. </para>
<title><guilabel>Cores das Apelidos</guilabel></title>
<para>As opções <guilabel>Texto:</guilabel> e <guilabel>Fundo:</guilabel> definem as cores para o texto e o fundo dos apelidos dos usuários nas janelas de conversação. A opção <guilabel>Cor das mensagens que contêm o seu apelido:</guilabel> define a cor das mensagens que aparecem num canal que contenha o seu apelido.</para>
<title><guilabel>Códigos de cores</guilabel></title>
<para>Aqui você poderá definir se o &ksirc; irá permitir os códigos de cores nativos (ver em <xref linkend="sectcolors"/>) e também se são permitidos os códigos de cores do &mirc;.</para>
<para>Porque se mudou o &ksirc; para usar o ˜ em vez do 0x03 (<keycombo action="simul">&Ctrl;<keycap>C</keycap></keycombo>)? Bem, é mais difícil de usar o 0x03 nos programas e nem todas as funções do C parecem gostar dele. O <userinput>˜<replaceable>letra</replaceable></userinput> também permite mais comandos sem interferir nas alterações futuras do &mirc;.</para>
<para>O código de controle <keycombo action="simul">&Ctrl;<keycap>K</keycap></keycombo> é ligeiramente diferente porque lhe permite indicar um número de cor. Para colorir uma única palavra numa frase:</para>
<para>Se você quiser também alterar a cor de fundo de uma palavra, você teria que indicar dois números separados por uma vírgula em vez de apenas um número. O primeiro número é a cor do texto, enquanto o segundo é a cor de fundo. As cores vão de 0 a 15, e o índice encontra-se na seção anterior.</para>
<title>Regras de Filtragem e Como Criá-las</title>
<para>Se você não conseguir compreender totalmente, espere. O objetivo futuro será criar um bom <quote>construtor de filtros</quote> onde você poderá apenas clicar em botões para conseguí-los. Até lá, ainda levará algum tempo.</para>
<para>O filtro tenta encontrar o texto de <quote>correspondência</quote> e depois usar o <quote>De</quote> e o <quote>Para</quote> como uma substituição. A correspondência e as substituições são todas expressões regulares do <application>Perl</application>. As regras são avaliadas por ordem descendente. A regra de topo é avaliada primeiro, passando à segunda a contar de cima, &etc;. Todos os textos são avaliados como:</para>
<para>O <varname>$<replaceable>nome</replaceable></varname> é expandido para a variável de ambiente <varname><replaceable>nome</replaceable></varname>. Isto é feito imediatamente quando você introduz a regra e não irá se alterar a partir daí. Por isso, a sua utilidade será limitada.</para>
<para>O <varname>$$<replaceable>nome</replaceable></varname> é substituído pela variável de <acronym>Perl</acronym> <varname>$<replaceable>nome</replaceable></varname> durante a correspondência. Ela poderá ser composta por sub-sequências de texto como o <varname>$1</varname> ou <varname>$2</varname> na substituição, ou por variáveis normais disponíveis no <application>ksirc</application> (como a <varname>$nick</varname>, <varname>$channel</varname>, &etc;).</para>
<para>O <varname>˜<replaceable>nome</replaceable>˜</varname> <emphasis>prefixado uma e só uma vez</emphasis> à linha irá enviar a linha de texto para a janela chamada <replaceable>nome</replaceable>. Se a janela não existir irá para a última janela que estava em primeiro plano. Existem várias janelas especiais, todas elas antecedidas de um único <literal>!</literal>:</para>
<para>Envia para todas as janelas. Isto poderá não aparecer em todas as janelas, dependendo da forma como o texto é processado. Por exemplo, as janelas dos canais não irão mostrar um <command>/part</command> ou um <command>/quit</command> a menos que o usuário esteja no canal.</para>
<para>O resto da expressão é tratado como uma expressão regular normal de <acronym>Perl</acronym>. Uma boa compreensão da página de manual do <command>perlre</command> irá com certeza ajudar, mas é também necessário um conhecimento básico de expressões regulares.</para>
<para>Ainda que o exemplo anterior funcione, se o texto já contiver <literal>˜uma_janela˜</literal> nele, você irá ter agora duas <literal>˜jose˜˜uma_janela˜...</literal> Por isso, você poderá fazer isto em alternativa.</para>
<para>Ok, a linha 'De' está um pouco mais complicada. Significa: fazer a correspondência de 0 ou 1 cópias de <literal>˜\S+˜</literal>, que é um 1 til, um ou mais caracteres que não espaços em branco, e depois outro til. Os mais paranóicos poderão fazer <literal>(*:˜\S+˜)</literal>, que significa: fazer a correspondência de 0 ou mais diretivas de canais no caso de as regras anteriores falharem.</para>
<para>As mensagens de morte do servidor tendem a ser longas, feias, aborrecidas, &etc;. Uma mensagem básica no 'dalnet' parece-se com o seguinte:</para>
<para>Quando você estiver <literal>+s</literal> irá obter montes delas; você não quer que todas elas passem pela sua tela. Vão ser criadas 3 regras para lidar com elas um pouco de cada vez. Você poderá fazê-lo com menos regras, mas isto vai mostrar a estrutura básica da regra, em passos simples, e como usar várias regras para processar uma mensagem. O primeiro passo é remover a parte de Localização: da mensagem:</para>
<para>A correspondência procura pela mensagem que começa por <literal>***</literal>; os <literal>*</literal>'s têm de ser comentados com <literal>\</literal> uma vez que por si sós funcionam como 0 ou mais repetições do caracter anterior. O <literal>.*</literal> significa: corresponder a tudo até encontrar <literal> mensagem KILL para</literal>. Isto permite evitar ter que escrever a parte <literal>-- Recebida...</literal> &etc; O <literal>.*</literal> final significa: corresponder a tudo até ao fim da linha. (não é necessário, eu acho)</para>
<para>A linha De significa: substituir " Localização: " e quaisquer outros caracteres que não espaços em branco pelo Para. O Para é um <literal>"."</literal> como tal toda a localização é substituída por um único ponto.</para>
<para>A mensagem fica agora do tipo:</para>
<screen>*** Aviso -- Recebida mensagem KILL para BOBO!ANDY@line82-basel.datacomm.ch de NickServ. (NickServ Enforcement)</screen>
<para>Repare no novo <literal>"."</literal> após o <literal>NickServ</literal>?</para>
<para>Ok, a mensagem está um bocado mais limpa, mas os KILLs do nickserv não são assim tão importantes, como tal serão encaminhados para a janela <literal>!discard</literal>.</para>
<para>A regra de correspondência procura pela mensagem KILL e certifica-se que é do NickServ. Repare no <literal>\(</literal> e no <literal>\)</literal> que são ambos utilizados na expressão regular, como tal terão de ser 'escapados'. Isto é muito semelhante ao que foi dito dois exemplos antes.</para>
<para>Já foram filtradas as mortes do NickServ, mas a mensagem ainda é difícil ler ao olhar para ela. Por isso, vai ser reordenada para algo do gênero:</para>
<para>Ok, a correspondência procura por <literal>***<replaceable>qualquer_coisa</replaceable> mensagem KILL</literal>. Não é possível usar o <literal>ˆ</literal> porque já poderá ter sido adicionada uma <literal>˜<janela>˜</literal>.</para>
<para>A linha 'De' vai ficando um pouco mais interessante. O <literal>"para (.*?) "</literal> procura pela palavra "para" seguida de algum texto. O <literal>.*?</literal> significa: corresponder a zero ou mais ocorrências de qualquer coisa exceto a mudança de linha, sem ser ambicioso. A regra é parar quando a primeira condição de fim for obtida, não na última. Em outras palavras, isto corresponde a qualquer coisa até encontrar um espaço. O <literal>()</literal> envolvente significa: guardar o conteúdo. Cada "()" guarda os dados correspondentes num <literal>$#</literal> em que o <literal>#</literal> começa em 1 para a primeira sequência de texto, &etc; Neste caso, o <varname>$1</varname> obtém a informação do usuário que foi 'morto'. O <varname>$2</varname> é então preenchido pelo 'assassino'. Entre o <literal>()</literal> tem a razão da morte. Aqui o <literal>(</literal> e o <literal>\(</literal> ficam um pouco mais confusos. Lembre-se que o <literal>\(</literal> correponde ao caracter <literal>'('</literal> propriamente dito.</para>
<para>Ok, você quer adicionar alguma cor ao &ksirc;. Veja a <link linkend="sectcolors">seção de Cores</link> para saber informações sobre cores, mas existe uma regra de filtragem para realçar o nome do usuário entre <literal><APELIDO></literal> em cada linha: </para>
<entry>Inicia ou termina o texto sublinhado. O texto que se segue à primeira ocorrência deste comando ficará sublinhado até que volte a digitar o atalho de novo.</entry>
<entry>Inicia ou termina o texto em itálico. O texto que se segue à primeira ocorrência deste comando ficará em itálico até que volte a digitar o atalho de novo.</entry>
<entry>Inicia ou termina o texto em negrito. O texto que se segue à primeira ocorrência deste comando ficará a negrito até que volte a digitar o atalho de novo.</entry>
<entry>Inicia ou termina o texto em cores invertidas. O texto que se segue à primeira ocorrência deste comando ficará com cores invertidas até que volte a digitar o atalho de novo.</entry>
<entry>Tenta completar o nome de um dos usuários no canal, com base no texto que já introduziu. Você poderá estar habituado a isto na sua linha de comandos, ainda que não funcione necessariamente da mesma forma. Veja a <xref linkend="nick-completion"/>.</entry>
<para>O canal &irc; do &kde; está hospedado na rede Freenode. Use a aba <guilabel>Servidor/Canal</guilabel> ou a aba <guilabel>Auto-Conectar</guilabel> no <guilabel>Configurar KSirc</guilabel> para adicionar estes canais. A rede deve ser <userinput><systemitem class="domainname">irc.freenode.org</systemitem></userinput> na porta <userinput>6667</userinput>. Abaixo estão listados os canais mais importantes do &kde; e seus objetivos. Escolha os canais que mais lhe interessam. </para>
<para>Você pode encontrar algumas dicas sobre perguntas frequentes sobre os canais do &kde; na <ulink url="http://wiki.kde.org/tiki-index.php?page=Asking+Questions">comunidade wiki do &kde;</ulink>. </para>
<para>Se você pretende usar o &irc; regularmente você provavelmente desejará registrar seu apelido. Isto protege seu apelido de modo que somente você possa usá-lo. Na DALnet, após você logar-se, você registra seu apelido usando o comando <userinput><command>/msg</command> nickserv register <replaceable>SENHA</replaceable></userinput>, onde a <replaceable>SENHA</replaceable> é sua senha. Você obterá uma confirmação que seu apelido foi registrado. </para>
<para>A partir de então, toda vez que logar-se na DALnet você receberá uma mensagem pedindo que identifique-se. Você então precisará digitar <userinput><command>/msg nickserv identify <replaceable>SENHA</replaceable></command></userinput>. </para>
<para>O &ksirc; pode identificá-lo automaticamente quando você se loga em qualquer canal. Você simplesmente precisa adicionar o seguinte script Perl em seu diretório pessoal: </para>
<para>O seguinte script funcionará na Freenode. Este script deve ser salvo como <filename>.sircrc.pl</filename> em seu diretório pessoal. Quando você rodar o &ksirc;, este script automaticamente o identificará. </para>
<para>O script acima funcionará em outras redes além da Freenode onde o nickserv envia sua solicitação "identify" mas em algumas redes como a Undernet você precisará do seguinte script: </para>
<para>Substitua <replaceable>SEU_NOME</replaceable> com seu nome de login e <replaceable>XXXXXX</replaceable> com sua senha. </para>
<para>Você pode encontrar mais informações sobre programação do SIRC nesta página: <ulink url="http://www.iagora.com/~espel/sirc/PROGRAMMING">http://www.iagora.com/~espel/sirc/PROGRAMMING</ulink> </para>