README(7) | Miscellaneous Information Manual | README(7) |
NAME
catgirl
— IRC
client
DESCRIPTION
catgirl(1) is a TLS-only terminal IRC client.
Notable Features
- Tab complete: most recently seen or mentioned nicks are completed first. Commas are inserted between multiple nicks.
- Prompt: the prompt clearly shows whether input will be interpreted as a command or sent as a message.
- Split scroll: keeps the latest messages in view while scrolling.
- URL detection: recent URLs from a particular user or matching a substring can be opened or copied.
- Nick coloring: color generation based on usernames remains stable across nick changes. Mentions of users in messages are colored.
- Topic diffing: the modified portion of a channel topic change is highlighted.
- Ignore: visibility of filtered messages can be toggled.
- Security: on FreeBSD and
OpenBSD, the
restrict
option enables tight sandboxing. Sandboxing is always used on OpenBSD.
Non-features
- Dynamic configuration: all configuration happens in a simple text file or on the command line.
- Multi-network: a terminal multiplexer such as
screen(1) or
tmux(1) (or just your regular terminal
emulator tabs) can be used to connect
catgirl
to multiple networks. - Reconnection: when the connection to the server is lost,
catgirl
exits. It can be run in a loop or connected to a bouncer, such as pounce. - CTCP: apart from ACTION, this protocol is useless at best and enables abuse at worst.
- Protocol coverage: IRCv3 extensions are implemented only where they contribute to the intended user experience.
- Cleartext IRC: TLS is now ubiquitous and certificates are easy to obtain.
INSTALLING
catgirl
requires ncurses and
libtls, provided by either
LibreTLS
(for OpenSSL) or by LibreSSL. It targets FreeBSD,
OpenBSD, macOS and Linux.
catgirl
and libtls may be packaged
for your system. Check the Repology pages for
catgirl
and
libretls.
$ ./configure $ make all # make install
Packagers are encouraged to patch in their own text macros in input.c.
If installing libtls manually to
/usr/local, for example, make sure
/usr/local/lib appears in
/etc/ld.so.conf or
/etc/ld.so.conf.d/* and be sure to run
ldconfig(8) once the library is
installed. Set PKG_CONFIG_PATH
for
./configure
to find it.
$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
The sandman
wrapper is provided for macOS
to stop and start catgirl
on system sleep and wake.
Install it as follows:
$ make -C scripts sandman # make -C scripts install
FILES
- chat.h
- global state and declarations
- chat.c
- startup and event loop
- irc.c
- IRC connection and parsing
- ui.c
- curses interface
- window.c
- window management
- input.c
- input handling
- handle.c
- IRC message handling
- command.c
- command handling
- buffer.c
- line wrapping
- edit.c
- line editing
- complete.c
- tab complete
- url.c
- URL detection
- filter.c
- message filtering
- log.c
- chat logging
- config.c
- configuration parsing
- xdg.c
- XDG base directories
- scripts/chat.tmux.conf
- example tmux(1) configuration for multiple networks and automatic reconnects
- scripts/sandman.m
- sleep/wake wrapper for macOS
- scripts/notify-send.scpt
- notify-send(1) in AppleScript
- scripts/build-chroot.sh
- chroot builder for OpenBSD and FreeBSD
- scripts/chroot-prompt.sh
- name prompt wrapper for chroot
- scripts/chroot-man.sh
- man(1) implementation for chroot
- scripts/sshd_config
- sshd(8) configuration for public chroot
CONTRIBUTING
The upstream URL of this project is ⟨https://git.causal.agency/catgirl⟩. Contributions in any form can be sent to <list+catgirl@causal.agency>. For sending patches by email, see ⟨https://git-send-email.io⟩. Mailing list archives are available at ⟨https://causal.agency/list/catgirl.html⟩.
Monetary contributions can be donated via Liberapay.
SEE ALSO
IRC bouncer: pounce
June Bug, IRC Suite, https://text.causal.agency/010-irc-suite.txt, June 19, 2020.
February 19, 2022 | Causal Agency |