Slackjeff Wiki

Juntando bits aprendemos juntos

Ferramentas do usuário

Ferramentas do site


aplic:msg:catgirl

Essa é uma revisão anterior do documento!


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

Conectar em um Servidor autoassinado

Alguns servidores IRC não utilizam um certificado de uma autoridade certificadora (CA) confiável, em vez disso utilizando um certificado autoassinado no servidor. Algo muito comum em servidores Intranet ou servidores .onion.

Nisso, muitos clientes de IRC (incluindo o catgirl), rejeitam a conexão TLS, uma vez que os Clientes não conseguem validar esse certificado com a 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:

$ catgirl -h host_do_servidor_autoassinado -o > /caminho/para/o/certificado.pem

Dessa forma você gravou o certificado autoassinado do servidor no arquivo /caminho/para/o/certificado.pem, para que dessa forma possa se conectar no servidor aceitando manualmente esse certificado autoassinado:

$ catgirl -h host_do_servidor_autoassinado -t /caminho/para/o/certificado.pem

Lembrado aqui também, que outras opções, como -n (para definir um nick) podem ser utilizadas em conjunto.

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 via linha de comando, ainda é possível enviar todas as informações para uma arquivo de configuração que por padrão ele deve estar localizado em $HOME/.config/catgirl/nomearquivo.conf, a extensão .conf é opcional.

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 slack.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-external equivale à opção -e nas 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

~/.config/catgirl/slackajeff.conf
# Linhas anteriores
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 + e vai para o fim a linha;
  • Ctrl + a vai para o início da linha;
  • Ctrl + w apaga 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

Um arquivo com todas as opções abordadas aqui para se conectar ao servidor irc.slackjeff.com.br seria

~/.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 é ir adcionando as configurações via linha de comando mesmo, assim que todos os parâmetrso desejados fazem a conexão do jeito que você quer, transpõe a linha de comando para o arquivo de configurações.

aplic/msg/catgirl.1755050854.txt.gz · Última modificação: por hrcerq