2021-01-25 18:53:55 +00:00
|
|
|
.Dd January 25, 2021
|
2020-02-11 07:31:08 +00:00
|
|
|
.Dt README 7
|
|
|
|
.Os "Causal Agency"
|
2020-03-31 23:17:09 +00:00
|
|
|
.\" To view this file, run: man ./README.7
|
2020-02-11 07:31:08 +00:00
|
|
|
.
|
|
|
|
.Sh NAME
|
|
|
|
.Nm catgirl
|
|
|
|
.Nd IRC client
|
|
|
|
.
|
|
|
|
.Sh DESCRIPTION
|
2020-02-11 07:41:20 +00:00
|
|
|
.Xr catgirl 1
|
|
|
|
is a TLS-only terminal IRC client.
|
2020-02-11 07:31:08 +00:00
|
|
|
.
|
|
|
|
.Ss Notable Features
|
|
|
|
.Bl -bullet
|
|
|
|
.It
|
|
|
|
Tab complete:
|
|
|
|
most recently seen or mentioned nicks
|
|
|
|
are completed first.
|
|
|
|
Commas are inserted between multple nicks.
|
|
|
|
.It
|
2020-04-06 20:45:20 +00:00
|
|
|
Prompt:
|
2020-02-11 07:31:08 +00:00
|
|
|
the prompt clearly shows whether input
|
|
|
|
will be interpreted as a command
|
|
|
|
or sent as a message.
|
|
|
|
.It
|
2020-04-06 20:45:20 +00:00
|
|
|
Split scroll:
|
|
|
|
keeps the latest messages in view while scrolling.
|
2020-02-11 07:31:08 +00:00
|
|
|
.It
|
|
|
|
URL detection:
|
|
|
|
recent URLs from a particular user
|
|
|
|
or matching a substring
|
|
|
|
can be opened or copied.
|
|
|
|
.It
|
2020-04-06 20:45:20 +00:00
|
|
|
Nick coloring:
|
|
|
|
color generation based on usernames
|
|
|
|
remains stable across nick changes.
|
|
|
|
Mentions of users in messages are colored.
|
|
|
|
.It
|
2020-11-11 18:27:22 +00:00
|
|
|
Topic diffing:
|
|
|
|
the modified portion
|
|
|
|
of a channel topic change
|
|
|
|
is highlighted.
|
|
|
|
.It
|
2020-03-31 23:08:58 +00:00
|
|
|
Ignore:
|
|
|
|
visibility of filtered messages
|
|
|
|
can be toggled.
|
2020-02-11 07:31:08 +00:00
|
|
|
.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
|
2020-03-31 23:08:58 +00:00
|
|
|
CTCP:
|
|
|
|
apart from
|
|
|
|
.Sy ACTION ,
|
|
|
|
this protocol is useless at best
|
|
|
|
and enables abuse at worst.
|
|
|
|
.It
|
2020-02-11 07:31:08 +00:00
|
|
|
Cleartext IRC:
|
|
|
|
TLS is now ubiquitous
|
|
|
|
and certificates are easy to obtain.
|
|
|
|
.El
|
|
|
|
.
|
2020-02-11 07:41:20 +00:00
|
|
|
.Sh INSTALLING
|
|
|
|
.Nm
|
2020-08-04 18:38:23 +00:00
|
|
|
requires ncurses and
|
|
|
|
.Sy libtls ,
|
|
|
|
provided by either
|
|
|
|
.Lk https://git.causal.agency/libretls/about LibreTLS
|
2020-08-05 16:51:44 +00:00
|
|
|
(for OpenSSL)
|
2020-08-04 18:38:23 +00:00
|
|
|
or by LibreSSL.
|
2021-01-25 18:53:55 +00:00
|
|
|
.
|
|
|
|
.Pp
|
2020-07-23 20:28:38 +00:00
|
|
|
It targets
|
2020-06-11 21:49:45 +00:00
|
|
|
.Fx ,
|
2020-07-23 20:28:38 +00:00
|
|
|
.Ox ,
|
|
|
|
macOS
|
|
|
|
and Linux.
|
2020-06-11 21:49:45 +00:00
|
|
|
On
|
|
|
|
.Ox ,
|
2021-01-25 18:53:55 +00:00
|
|
|
.Xr pledge 2
|
|
|
|
is used to limit system operations,
|
|
|
|
and with
|
|
|
|
.Nm Fl R ,
|
|
|
|
.Xr unveil 2
|
|
|
|
is used to limit filesystem access.
|
|
|
|
On BSD systems,
|
2020-07-23 20:40:46 +00:00
|
|
|
configure with
|
2020-08-03 22:15:18 +00:00
|
|
|
.Fl \-mandir=/usr/local/man .
|
2021-01-25 18:53:55 +00:00
|
|
|
.
|
2020-02-11 07:41:20 +00:00
|
|
|
.Bd -literal -offset indent
|
|
|
|
\&./configure
|
|
|
|
make all
|
2020-07-23 20:40:46 +00:00
|
|
|
sudo make install
|
2020-02-11 07:41:20 +00:00
|
|
|
.Ed
|
|
|
|
.
|
2020-02-11 23:33:19 +00:00
|
|
|
.Pp
|
2020-08-04 18:38:23 +00:00
|
|
|
If installing
|
|
|
|
.Sy libtls
|
|
|
|
manually to
|
2020-04-01 14:25:04 +00:00
|
|
|
.Pa /usr/local ,
|
2020-08-04 18:38:23 +00:00
|
|
|
for example,
|
|
|
|
make sure
|
2020-04-01 14:25:04 +00:00
|
|
|
.Pa /usr/local/lib
|
2020-08-04 18:38:23 +00:00
|
|
|
appears in
|
2020-04-01 14:25:04 +00:00
|
|
|
.Pa /etc/ld.so.conf
|
2020-08-04 18:38:23 +00:00
|
|
|
or
|
|
|
|
.Pa /etc/ld.so.conf.d/*
|
|
|
|
and be sure to run
|
2020-04-01 19:07:21 +00:00
|
|
|
.Xr ldconfig 8
|
2020-08-04 18:38:23 +00:00
|
|
|
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
|
2020-04-01 14:25:04 +00:00
|
|
|
.
|
|
|
|
.Pp
|
2020-02-13 02:31:09 +00:00
|
|
|
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
|
|
|
|
.
|
2020-02-11 07:31:08 +00:00
|
|
|
.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
|
2020-09-02 00:35:17 +00:00
|
|
|
.It Pa buffer.c
|
|
|
|
line wrapping
|
2020-02-11 07:31:08 +00:00
|
|
|
.It Pa edit.c
|
|
|
|
line editing
|
|
|
|
.It Pa complete.c
|
|
|
|
tab complete
|
|
|
|
.It Pa url.c
|
|
|
|
URL detection
|
2021-01-16 18:30:59 +00:00
|
|
|
.It Pa filter.c
|
2020-03-31 18:30:42 +00:00
|
|
|
message filtering
|
2020-03-25 22:56:09 +00:00
|
|
|
.It Pa log.c
|
|
|
|
chat logging
|
2020-02-11 07:31:08 +00:00
|
|
|
.It Pa config.c
|
|
|
|
configuration parsing
|
|
|
|
.It Pa xdg.c
|
|
|
|
XDG base directories
|
|
|
|
.El
|
|
|
|
.
|
2020-02-13 01:16:51 +00:00
|
|
|
.Pp
|
|
|
|
.Bl -tag -width "scripts/notify-send.scpt" -compact
|
2021-01-18 17:12:45 +00:00
|
|
|
.It Pa scripts/chat.tmux.conf
|
|
|
|
example
|
|
|
|
.Xr tmux 1
|
|
|
|
configuration for multiple networks
|
|
|
|
and automatic reconnects
|
2020-02-13 02:31:09 +00:00
|
|
|
.It Pa scripts/sandman.m
|
|
|
|
sleep/wake wrapper for macOS
|
2020-02-13 01:16:51 +00:00
|
|
|
.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
|
|
|
|
.
|
2020-02-11 07:31:08 +00:00
|
|
|
.Sh CONTRIBUTING
|
|
|
|
The upstream URL of this project is
|
|
|
|
.Aq Lk https://git.causal.agency/catgirl .
|
2020-05-05 21:55:29 +00:00
|
|
|
Contributions in any form can be sent to
|
|
|
|
.Aq Mt list+catgirl@causal.agency .
|
2020-02-11 07:31:08 +00:00
|
|
|
For sending patches by email, see
|
|
|
|
.Aq Lk https://git-send-email.io .
|
|
|
|
.
|
|
|
|
.Sh SEE ALSO
|
|
|
|
.Xr catgirl 1
|
2020-07-08 20:59:51 +00:00
|
|
|
.
|
2020-03-31 23:13:24 +00:00
|
|
|
.Pp
|
|
|
|
IRC bouncer:
|
|
|
|
.Lk https://git.causal.agency/pounce "pounce"
|
2020-03-31 23:17:09 +00:00
|
|
|
.
|
2020-07-08 20:59:51 +00:00
|
|
|
.Rs
|
|
|
|
.%A June Bug
|
|
|
|
.%T IRC Suite
|
|
|
|
.%U https://text.causal.agency/010-irc-suite.txt
|
|
|
|
.%D June 19, 2020
|
|
|
|
.Re
|
|
|
|
.
|
2020-03-31 23:17:09 +00:00
|
|
|
.\" To view this file, run: man ./README.7
|