Go to file
C. McEnroe cdff668d8f Allow interspersing flags and config files
Don't wait for getopt_long to move all the arguments to the end. This
allows overriding options set by config files by placing flags after
them on the command line.
2021-01-10 13:49:57 -05:00
scripts Fix chroot-man path 2020-07-31 12:49:54 -04:00
.gitignore Add chroot target 2020-02-11 22:28:39 -05:00
LICENSE Add copy of GPL 2020-02-09 15:25:28 -05:00
Makefile Factor buffer out of ui 2020-09-01 20:36:50 -04:00
README.7 Add topic diffing to notable features 2020-11-11 13:27:22 -05:00
buffer.c Count width of 2 for invalid multibyte with high bit 2021-01-09 17:28:42 -05:00
catgirl.1 Move -o to a separate SYNOPSIS line 2021-01-10 13:20:50 -05:00
chat.c Exit immediately when using -o 2021-01-10 11:47:48 -05:00
chat.h Add -o and -t options to trust self-signed certificates 2021-01-09 19:11:57 -05:00
command.c Use execl rather than execlp for shell 2021-01-07 13:28:54 -05:00
complete.c Say "OpenSSL" in additional permission notices 2020-08-04 12:19:14 -04:00
config.c Allow interspersing flags and config files 2021-01-10 13:49:57 -05:00
configure Set OPENSSL_BIN to /usr/bin/openssl on FreeBSD 2020-08-06 16:15:53 -04:00
edit.c Use wmemcpy/wmemmove 2020-11-08 16:21:34 -05:00
handle.c Factor out reply count checking and decrementing 2020-12-30 16:54:03 -05:00
ignore.c Split ignore fields to avoid over-eager * matching 2021-01-01 20:09:10 -05:00
irc.c Add -o and -t options to trust self-signed certificates 2021-01-09 19:11:57 -05:00
log.c Say "OpenSSL" in additional permission notices 2020-08-04 12:19:14 -04:00
ui.c Avoid eating C-c while connecting 2020-10-12 19:25:08 -04:00
url.c Strip formatting from URLs 2020-10-09 19:15:25 -04:00
xdg.c Use a static buffer for base directory paths 2020-08-21 16:49:10 -04:00

README.7

.Dd November 11, 2020
.Dt README 7
.Os "Causal Agency"
.\" To view this file, run: man ./README.7
.
.Sh NAME
.Nm catgirl
.Nd IRC client
.
.Sh DESCRIPTION
.Xr catgirl 1
is a TLS-only terminal IRC client.
.
.Ss Notable Features
.Bl -bullet
.It
Tab complete:
most recently seen or mentioned nicks
are completed first.
Commas are inserted between multple nicks.
.It
Prompt:
the prompt clearly shows whether input
will be interpreted as a command
or sent as a message.
.It
Split scroll:
keeps the latest messages in view while scrolling.
.It
URL detection:
recent URLs from a particular user
or matching a substring
can be opened or copied.
.It
Nick coloring:
color generation based on usernames
remains stable across nick changes.
Mentions of users in messages are colored.
.It
Topic diffing:
the modified portion
of a channel topic change
is highlighted.
.It
Ignore:
visibility of filtered messages
can be toggled.
.El
.
.Ss Non-features
.Bl -bullet
.It
Dynamic configuration:
all configuration happens
in a simple text file
or on the command line.
.It
Multi-network:
a terminal multiplexer such as
.Xr screen 1
or
.Xr tmux 1
(or just your regular terminal emulator tabs)
can be used to connect
.Nm
to multiple networks.
.It
Reconnection:
when the connection to the server is lost,
.Nm
exits.
It can be run in a loop
or connected to a bouncer,
such as
.Lk https://git.causal.agency/pounce "pounce" .
.It
CTCP:
apart from
.Sy ACTION ,
this protocol is useless at best
and enables abuse at worst.
.It
Cleartext IRC:
TLS is now ubiquitous
and certificates are easy to obtain.
.El
.
.Sh INSTALLING
.Nm
requires ncurses and
.Sy libtls ,
provided by either
.Lk https://git.causal.agency/libretls/about LibreTLS
(for OpenSSL)
or by LibreSSL.
It targets
.Fx ,
.Ox ,
macOS
and Linux.
On
.Ox ,
configure with
.Fl \-mandir=/usr/local/man .
.Bd -literal -offset indent
\&./configure
make all
sudo make install
.Ed
.
.Pp
If installing
.Sy libtls
manually to
.Pa /usr/local ,
for example,
make sure
.Pa /usr/local/lib
appears in
.Pa /etc/ld.so.conf
or
.Pa /etc/ld.so.conf.d/*
and be sure to run
.Xr ldconfig 8
once the library is installed.
Set
.Ev PKG_CONFIG_PATH
for
.Nm ./configure
to find it.
.Bd -literal -offset indent
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure
.Ed
.
.Pp
The
.Nm sandman
wrapper is provided for macOS
to stop and start
.Nm
on system sleep and wake.
Install it as follows:
.Bd -literal -offset indent
make scripts/sandman
sudo make install-sandman
.Ed
.
.Sh FILES
.Bl -tag -width "complete.c" -compact
.It Pa chat.h
global state and declarations
.It Pa chat.c
startup and event loop
.It Pa irc.c
IRC connection and parsing
.It Pa ui.c
curses interface
.It Pa handle.c
IRC message handling
.It Pa command.c
input command handling
.It Pa buffer.c
line wrapping
.It Pa edit.c
line editing
.It Pa complete.c
tab complete
.It Pa url.c
URL detection
.It Pa ignore.c
message filtering
.It Pa log.c
chat logging
.It Pa config.c
configuration parsing
.It Pa xdg.c
XDG base directories
.El
.
.Pp
.Bl -tag -width "scripts/notify-send.scpt" -compact
.It Pa scripts/sandman.m
sleep/wake wrapper for macOS
.It Pa scripts/notify-send.scpt
.Xr notify-send 1
in AppleScript
.It Pa scripts/chroot-prompt.sh
name prompt wrapper for chroot
.It Pa scripts/chroot-man.sh
.Xr man 1
implementation for chroot
.It Pa scripts/sshd_config
.Xr sshd 8
configuration for public chroot
.El
.
.Sh CONTRIBUTING
The upstream URL of this project is
.Aq Lk https://git.causal.agency/catgirl .
Contributions in any form can be sent to
.Aq Mt list+catgirl@causal.agency .
For sending patches by email, see
.Aq Lk https://git-send-email.io .
.
.Sh SEE ALSO
.Xr catgirl 1
.
.Pp
IRC bouncer:
.Lk https://git.causal.agency/pounce "pounce"
.
.Rs
.%A June Bug
.%T IRC Suite
.%U https://text.causal.agency/010-irc-suite.txt
.%D June 19, 2020
.Re
.
.\" To view this file, run: man ./README.7