Essa é uma revisão anterior do documento!
Tabela de conteúdos
catgirl
catgirl é um cliente IRC bem simples e de interface de texto (ncurses).
Para se ter idéia da simplicidade, você pode se conectar ao servidor IRC do Slackjeff executando o seguinte comando no terminal:
$ catgirl -h irc.slackjeff.com.br
- Obs.: Assume-se aqui que o sinal
$é o prompt do seu terminal.
Logo veremos com mais detalhes o que é possível fazer com ele, e formas mais elaboradas de configurar a conexão.
Instalação
Toda instalação precisa ser realizada com privilégios de superusuário. Portanto esses comandos devem ser executados como root, ou utilizando ferramentas para elevação de privilégio (como doas ou sudo).
Em um sistema derivado do Debian/Ubuntu:
$ apt install catgirl
Em um sistema derivado do Arch:
$ pacman -S catgirl
No FreeBSD:
$ pkg install irc/catgirl
No OpenBSD/NetBSD:
$ pkg_add catgirl
Parametrização
Como mostrado no início, tudo pode ser realizado por uma única linha de comando. Vamos então expandir as possibilidades.
Apelido
Use a opção -n para definir um apelido (nickname). Quando não informado, será usado o nome do seu usuário no sistema operacional. Por exemplo, para se conectar ao servidor irc.slackajeff.com.br usando o apelido nick, basta digitar:
$ catgirl -h irc.slackjeff.com.br -n nick
Autorizando certificados autoassinados
Alguns servidores IRC não utilizam um certificado de uma autoridade certificadora (CA) confiável. Em vez disso utilizam um certificado autoassinado no servidor. Isto é algo muito comum em servidores Intranet ou servidores .onion.
Muitos clientes de IRC (incluindo o catgirl) rejeitam a conexão TLS, uma vez que os clientes não conseguem validar esse certificado com nenhuma CA. Alguns clientes de IRC permitem que você ignore ou aceite manualmente o certificado, para que a conexão possa prosseguir. Para fazer isso no catgirl, obtenha uma cópia do certificado, com o comando:
$ catgirl -h hostname -o > /caminho/para/o/certificado.pem
Dessa forma você gravou o certificado autoassinado do servidor no arquivo /caminho/para/o/certificado.pem, e agora pode apontar para ele como um certificado confiável (se realmente você confiar, claro). Com a opção -t você informa o caminho para o certificado a ser autorizado. Assim, poderá se conectar no servidor sem problemas.
$ catgirl -h hostname -t /caminho/para/o/certificado.pem
Lembrado aqui também, que várias outras opções (como -n que vimos anteriormente) podem ser utilizadas em conjunto durante a conexão.
Arquivo de configuração
Tudo pode ser feito via linha de comando, e essa é uma forma muito boa para testar todas as configurações de servidor e autenticação que você queira fazer usando o catgirl como cliente IRC. Porém, depois que tudo está indo bem, convém persistir toda a parametrização em um arquivo de configuração.
Para cada serviço IRC você deverá ter um arquivo de configuração diferente. O diretório padrão para armazenar esses arquivos é
o $XDG_CONFIG_DIRS/catgirl/ (que geralmente se traduz para $HOME/.config/catgirl/). Dentro desse diretório você deve salvar os arquivos de configuração de cada serviço. Por exemplo, você pode criar o arquivo slackjeff.conf dentro dele, para guardar as configurações de acesso ao IRC do Slackeff.
Até o momento vimos as opções: -n para o nick; -h para o host; -t para expecificar a confiança no certificado do servidor que você baixou usando a opção -o, essas informações podem ser resumidas num arquivo de configuração da seguinte forma:
host = irc.slackjeff.com.br trust = /caminho/para/o/certificado.pem nick = seunickname
Agora com esse arquivo salvo, por exemplo em $HOME/.config/catgirl/slackjeff.conf basta se conectar usando o comando:
$ catgirl slackjeff.conf
Autenticação com senha
Se seu nick é registrado, você pode querer que a autenticação por senha ou por certificado seja feita pelo cliente IRC e você não precise ficar entrando com o comando /msg NICKSERV IDENTIFY nick password toda vez que se conecta.
Caso você não queira registrar um certificado no nickserv basta fornecer o password ao catgirl, use a opção -w e o catgirl irá pedir sua senha antes de se conectar, é possível passar ela já pela linha de comando ou pelo arquivo de configuração.
$ catgirl -h irc.slackjeff.com.br -n seunickregistrado -e -w suasenha
Deixe a senha em branco se preferir digitá-la no prompt.
A opção -e dev ser usada se você vai fornecer dados de autenticação externa, o equivalente no arquivo de configuração será então:
host = irc.slackjeff.com.br nick = seunick #pass = minhasenha pass sasl-external
Observações:
- Na opção
passé possível informar a senha (pass = minhasenha). No exemplo acima, porém, não foi informada, o que significa que ela será solicitada ao iniciar o programa. - A opção
sasl-externalequivale à opção-enas configurações
Autenticação via certificado externo
O catgirl fornece uma facilidade para a autenticação via certificado, você pode usar ele para gerar seu próprio certificado de cliente que poderá ser adicionado ao nickserv para sua autenticação, basta digitar:
$ catgirl -p ~/.config/catgirl/certificado.pem
O local escolhido ser ~/.config/catgirl/certificado.pem facilita usar o certificado poteriormente. Pronto, após adicionar o fingerprint deste certificado no nickserv via /msg NICKSERV CERT ADD você pode se conectar-se sem senha com o seguinte arquivo de configurações
host = irc.slackjeff.com.br nick = seunick cert = certificado.pem sasl-external
O equivalente em linha de comando é:
$ catgirl -h irc.slackjeff.com.br -n seunick -c certificado.pem -e
Lembrando que deve ser utilizado o nome do arquivo certificado.pem apenas se ele estiver salvo no diretório padrão definido em $HOME/.config/catgirl/, caso contrário deve ser utilizado o caminho absoluto de onde está localizado o certificado.
Caso seu certificado tenha uma chave privada também, basta extender um pouco a linha de comando para especificar o arquivo da chave com a opção -k:
$ catgirl -h irc.slackjeff.com.br \ > -n seunick \ > -c certificado.pem \ > -k chave.pem \ > -e
Ou de forma equivalente no arquivo de configurações:
host = irc.slackjeff.com.br nick = seunick cert = certificado.pem priv = chave.pem sasl-external
Lembrando que a chave.pem e o certificado.pem devem estar no diretório padrão definido em $HOME/.config/catgirl/, caso contrário deve ser utilizado o caminho absoluto de onde está localizado o certificado e a chave privada.
Ingressar automaticamente em canais
É possível fornecer uma lista de canais para não necessitar ficar usando o comando /join #canal para ingressar em #canal sempre que quiser interagir neste. Use -j #canal1,#canal2,#etc na linha de comando ou adicione a linha no arquivo de configuração:
join = #canal1,#canal2,#canal3,#etc
Configurando a interface
É possível alterar alguns elementos da interface de usuário, bem como salvar as mensagens recebidas ao longo de sua conexão para serem vistas em conexões futuras, uma vez que o comportamento padrão é não carregar mensagem alguma a cada nova conexão. Vamos listar algumas opções para interface.
Salvar mensagens
A opção -s nome irá salvar o histórico de mensagens em nome, esse arquivo ficará localizado em ~/.local/share/catgirl/nome o equivalente no arquivo de configurações é adicionar a linha
save = nome
Horário nas mensagens
Na interface padrão cada mensagem chega sem o registro de data e hora, caso você queira adicionar o horário adicione a opção -T ou a opção timestamp no arquivo de configuração. Sem fornecer uma string de data cada mensagem recebida estará no fomato %X que é o mesmo que %H:%M:%S (hora, minuto e segundo). Particularmente gosto de fornecer a string para apenas hora e minuto
timestamp = %H:%M
Ou adicione a opção -T %H:%M na linha de comando para conexão.
Cores dos nicks e canais
Podemos definir a semente inicial e o limite para as cores que que o catgirl irá definir para os nicknames e canais conforme você vá abrindo as telas ou os usuários vão chegando ao canal. Se não usar essa opção os valores serão o padrão de 0 para semente inicial e 75 para o limite de cor.
Eu gosto de usar apenas 16 cores pois uso meu emulador de terminal com fundo muito escuro e apenas 16 cores dá um contraste bom, os valores padrão aparecem nicknames e canais com tons de vermelho escuro ou azul escuro que não constrastam bem. Para isso adicione -H 0,15 na sua linha de comando, ou a linha
hash = 0,15
Caso você queira desabilitar o colorido, é só usar o valor 0,0.
Notificações
Caso queira ser informado em seu ambiente gráfico a respeito das menções ao seu nickname ou demais notificações que o IRC envia é necessário especificar a aplicação de notificações manualmente. Use a opção -N nome_utilitario ou acrescente a linha ao arquivo de configurações
notify = fyi
Neste exemplo escolhi como a aplicação fyi, que é uma implementação leve do notify-send muito mais comum nas distribuições Linux.
Movendo-se pelo catgirl
O catgirl possui uma interface de terminal, sem suporte a ações de mouse, apenas de teclas. Portanto, seguem algumas dicas para você se mover pelas telas de cada canal, chanserv, global, etc.
Você pode usar Ctrl + n para a próxima tela e Ctrl+ p para a tela anterior.
As combinações Alt + 0, Alt + 1, e assim por diante (até Alt + 9) podem ser usadas para navegar para as telas número 0, 1, e assim por diante (até a tela 9).
Atalhos de navegação que geralmente funcionam para edição de comandos no shell (como no bash, por exemplo) também funcionam aqui, para redigir as mensagens:
Ctrl+evai para o fim a linha;Ctrl+avai para o início da linha;Ctrl+wapaga uma palavra a partir do seu fim;Ctrl+ setas (🠜 🠝 🠟 🠞) muda o cursor palavra por palavra na direção da seta.
Anonimato via tor
O catgirl não possui de forma nativa uma opção para se conectar usando proxy. Porém é bem simples utilizar um proxificador para obter essa possibilidade, veja esse tópico no livre de receitas desta wiki.
Conclusão
Confira abaixo um exemplo de arquivo com todas as opções abordadas até aqui, para se conectar ao servidor irc.slackjeff.com.br:
- ~/.config/catgirl/slackjeff.com
host = irc.slackjeff.com.br # Se houver necessidade de aceitar certificado autoassinado trust = cert_autoassinado.pem # Autenticação via certificado e chave privada cert = meucert.pem priv = minhachave.pem # Se não for autenticação por certificaco, use a linha abaixo #pass = suasenha # Demais configurações nick = meunickname sasl-external join = #canal1,#canal2,#canal3,#etc save = meusave timestamp = %H:%M hash = 0,15 notify = fyi
Lembrando que os arquivos de certificado devem estar na pasta ~/.config/catgirl/. Um bom exercício é testar graudalmente as configurações via linha de comando. Assim que todos os parâmetros desejados fazem a conexão do jeito que você espera, transponha essas opções para o arquivo de configurações.