201 lines
3.6 KiB
Groff
201 lines
3.6 KiB
Groff
.Dd April 4, 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
|
|
Indicators:
|
|
the prompt clearly shows whether input
|
|
will be interpreted as a command
|
|
or sent as a message.
|
|
An indicator appears when scrolled up
|
|
in the chat history.
|
|
.It
|
|
Nick coloring:
|
|
color generation based on usernames
|
|
remains stable across nick changes.
|
|
Mentions of users in messages are colored.
|
|
.It
|
|
URL detection:
|
|
recent URLs from a particular user
|
|
or matching a substring
|
|
can be opened or copied.
|
|
.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 LibreSSL
|
|
.Pq Fl ltls
|
|
and ncurses
|
|
.Pq Fl lncursesw .
|
|
It primarily targets
|
|
.Fx
|
|
and macOS,
|
|
as well as Linux.
|
|
.Bd -literal -offset indent
|
|
\&./configure
|
|
make all
|
|
sudo make install PREFIX=/usr/local
|
|
.Ed
|
|
.
|
|
.Pp
|
|
If your system installs LibreSSL
|
|
in a non-standard path, set
|
|
.Ev PKG_CONFIG_PATH
|
|
for
|
|
.Nm ./configure .
|
|
For example,
|
|
.Bd -literal -offset indent
|
|
PKG_CONFIG_PATH=/opt/libressl/lib/pkgconfig ./configure
|
|
.Ed
|
|
.
|
|
.Pp
|
|
If your system is incapable of providing LibreSSL,
|
|
consider building it manually and installing to
|
|
.Pa /usr/local ,
|
|
adding
|
|
.Pa /usr/local/lib
|
|
to
|
|
.Pa /etc/ld.so.conf
|
|
and running
|
|
.Xr ldconfig 8
|
|
if needed.
|
|
It may also be necessary to create
|
|
.Pa /etc/ssl/cert.pem
|
|
as a symbolic link to
|
|
.Pa /etc/ssl/certs/ca-certificates.crt
|
|
or similar path.
|
|
.
|
|
.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 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 .
|
|
I'm happy to receive contributions in any form at
|
|
.Aq Mt june@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"
|
|
.
|
|
.\" To view this file, run: man ./README.7
|