1128 lines
22 KiB
Groff
1128 lines
22 KiB
Groff
.Dd February 22, 2022
|
|
.Dt CATGIRL 1
|
|
.Os
|
|
.
|
|
.Sh NAME
|
|
.Nm catgirl
|
|
.Nd IRC client
|
|
.
|
|
.Sh SYNOPSIS
|
|
.Nm
|
|
.Op Fl KRelqv
|
|
.Op Fl C Ar copy
|
|
.Op Fl H Ar hash
|
|
.Op Fl I Ar highlight
|
|
.Op Fl N Ar notify
|
|
.Op Fl O Ar open
|
|
.Op Fl S Ar bind
|
|
.Op Fl T Ns Op Ar timestamp
|
|
.Op Fl a Ar plain
|
|
.Op Fl c Ar cert
|
|
.Op Fl h Ar host
|
|
.Op Fl i Ar ignore
|
|
.Op Fl j Ar join
|
|
.Op Fl k Ar priv
|
|
.Op Fl m Ar mode
|
|
.Op Fl n Ar nick
|
|
.Op Fl p Ar port
|
|
.Op Fl r Ar real
|
|
.Op Fl s Ar save
|
|
.Op Fl t Ar trust
|
|
.Op Fl u Ar user
|
|
.Op Fl w Ar pass
|
|
.Op Ar config ...
|
|
.
|
|
.Nm
|
|
.Fl o
|
|
.Op Fl S Ar bind
|
|
.Op Fl h Ar host
|
|
.Op Fl p Ar port
|
|
.Op Ar config ...
|
|
.
|
|
.Nm
|
|
.Fl g Ar cert
|
|
.
|
|
.Sh DESCRIPTION
|
|
The
|
|
.Nm
|
|
IRC client
|
|
provides a curses interface
|
|
for TLS-only
|
|
Internet Relay Chat.
|
|
The only required option is
|
|
.Fl h ,
|
|
the host name to connect to.
|
|
See
|
|
.Sx EXAMPLES
|
|
for managing further configuration.
|
|
Type
|
|
.Ic /help
|
|
in
|
|
.Nm
|
|
to view the list of
|
|
.Sx COMMANDS
|
|
and
|
|
.Sx KEY BINDINGS .
|
|
.
|
|
.Pp
|
|
Options can be loaded from files
|
|
listed on the command line.
|
|
Files are searched for in
|
|
.Pa $XDG_CONFIG_DIRS/catgirl
|
|
.Po
|
|
usually
|
|
.Pa ~/.config/catgirl
|
|
.Pc
|
|
unless the path starts with
|
|
.Ql / ,
|
|
.Ql \&./
|
|
or
|
|
.Ql \&../ .
|
|
Files and flags listed later
|
|
on the command line
|
|
take precedence over
|
|
those listed earlier.
|
|
.
|
|
.Pp
|
|
Each option is placed on a line,
|
|
and lines beginning with
|
|
.Ql #
|
|
are ignored.
|
|
The options are listed below
|
|
following their corresponding flags.
|
|
.
|
|
.Bl -tag -width Ds
|
|
.It Fl C Ar util | Cm copy No = Ar util
|
|
Set the utility used by
|
|
.Ic /copy .
|
|
Subsequent
|
|
.Cm copy
|
|
options append arguments to
|
|
.Ar util .
|
|
The URL to copy is provided to
|
|
.Ar util
|
|
on standard input.
|
|
The default is the first available of
|
|
.Xr pbcopy 1 ,
|
|
.Xr wl-copy 1 ,
|
|
.Xr xclip 1 ,
|
|
.Xr xsel 1 .
|
|
.
|
|
.It Fl H Ar seed,bound | Cm hash No = Ar seed,bound
|
|
Set the initial seed
|
|
of the nick and channel
|
|
color hash function
|
|
and the maximum IRC color value
|
|
produced by the function.
|
|
The default is 0,75.
|
|
To use only colors from
|
|
the 16-color terminal set,
|
|
use 0,15.
|
|
To disable nick and channel colors,
|
|
use 0,0.
|
|
.
|
|
.It Fl I Ar pattern | Cm highlight No = Ar pattern
|
|
Add a case-insensitive message highlight pattern,
|
|
which may contain
|
|
.Ql * ,
|
|
.Ql \&?
|
|
and
|
|
.Ql []
|
|
wildcards as in
|
|
.Xr glob 7 .
|
|
The format of the pattern is as follows:
|
|
.Bd -ragged -offset indent
|
|
.Ar nick Ns Op Ar !user@host Op Ar command Op Ar channel Op Ar message
|
|
.Ed
|
|
.Pp
|
|
The commands which can be matched are:
|
|
.Sy INVITE ,
|
|
.Sy JOIN ,
|
|
.Sy NICK ,
|
|
.Sy NOTICE ,
|
|
.Sy PART ,
|
|
.Sy PRIVMSG ,
|
|
.Sy QUIT ,
|
|
.Sy SETNAME .
|
|
.
|
|
.It Fl K | Cm kiosk
|
|
Disable the
|
|
.Ic /copy ,
|
|
.Ic /debug ,
|
|
.Ic /exec ,
|
|
.Ic /join ,
|
|
.Ic /list ,
|
|
.Ic /msg ,
|
|
.Ic /open ,
|
|
.Ic /part ,
|
|
.Ic /query ,
|
|
.Ic /quote
|
|
commands.
|
|
Replace the username
|
|
with a hash of its original value.
|
|
.
|
|
.It Fl N Ar util | Cm notify No = Ar util
|
|
Send notifications using a utility.
|
|
Subsequent
|
|
.Cm notify
|
|
options append arguments to
|
|
.Ar util .
|
|
The window name and message
|
|
are provided to
|
|
.Ar util
|
|
as two additional arguments,
|
|
appropriate for
|
|
.Xr notify-send 1 .
|
|
.
|
|
.It Fl O Ar util | Cm open No = Ar util
|
|
Set the utility used by
|
|
.Ic /open .
|
|
Subsequent
|
|
.Cm open
|
|
options append arguments to
|
|
.Ar util .
|
|
The URL to open is provided to
|
|
.Ar util
|
|
as an argument.
|
|
The default is the first available of
|
|
.Xr open 1 ,
|
|
.Xr xdg-open 1 .
|
|
.
|
|
.It Fl R | Cm restrict
|
|
Disable the
|
|
.Ic /copy ,
|
|
.Ic /exec
|
|
and
|
|
.Ic /open
|
|
commands,
|
|
the
|
|
.Cm notify
|
|
option,
|
|
and viewing this manual with
|
|
.Ic /help .
|
|
.
|
|
.It Fl S Ar host | Cm bind No = Ar host
|
|
Bind to source address
|
|
.Ar host
|
|
when connecting to the server.
|
|
.
|
|
.It Fl T Ns Oo Ar format Oc | Cm timestamp Op = Ar format
|
|
Show timestamps by default,
|
|
in the specified
|
|
.Xr strftime 3
|
|
.Ar format .
|
|
The format string may contain
|
|
raw IRC formatting codes.
|
|
The default format is
|
|
.Qq \&%X .
|
|
.
|
|
.It Fl a Ar user : Ns Ar pass | Cm sasl-plain No = Ar user : Ns Ar pass
|
|
Authenticate as
|
|
.Ar user
|
|
with
|
|
.Ar pass
|
|
using SASL PLAIN.
|
|
Leave
|
|
.Ar pass
|
|
blank to prompt for the password.
|
|
.
|
|
.It Fl c Ar path | Cm cert No = Ar path
|
|
Load the TLS client certificate from
|
|
.Ar path .
|
|
The
|
|
.Ar path
|
|
is searched for in the same manner
|
|
as configuration files.
|
|
If the private key is in a separate file,
|
|
it is loaded with
|
|
.Cm priv .
|
|
With
|
|
.Cm sasl-external ,
|
|
authenticate using SASL EXTERNAL.
|
|
Certificates can be generated with
|
|
.Fl g .
|
|
.
|
|
.It Fl e | Cm sasl-external
|
|
Authenticate using SASL EXTERNAL,
|
|
also known as CertFP.
|
|
The TLS client certificate is loaded with
|
|
.Cm cert .
|
|
See
|
|
.Sx Configuring CertFP .
|
|
.
|
|
.It Fl g Ar path
|
|
Generate a TLS client certificate using
|
|
.Xr openssl 1
|
|
and write it to
|
|
.Ar path .
|
|
.
|
|
.It Fl h Ar host | Cm host No = Ar host
|
|
Connect to
|
|
.Ar host .
|
|
.
|
|
.It Fl i Ar pattern | Cm ignore No = Ar pattern
|
|
Add a case-insensitive message ignore pattern,
|
|
which may contain
|
|
.Ql * ,
|
|
.Ql \&?
|
|
and
|
|
.Ql []
|
|
wildcards as in
|
|
.Xr glob 7 .
|
|
The format of the pattern is as follows:
|
|
.Bd -ragged -offset indent
|
|
.Ar nick Ns Op Ar !user@host Op Ar command Op Ar channel Op Ar message
|
|
.Ed
|
|
.Pp
|
|
The commands which can be matched are:
|
|
.Sy INVITE ,
|
|
.Sy JOIN ,
|
|
.Sy NICK ,
|
|
.Sy NOTICE ,
|
|
.Sy PART ,
|
|
.Sy PRIVMSG ,
|
|
.Sy QUIT ,
|
|
.Sy SETNAME .
|
|
.
|
|
.It Fl j Ar channels Oo Ar keys Oc | Cm join No = Ar channels Oo Ar keys Oc
|
|
Join the comma-separated list of
|
|
.Ar channels
|
|
with the optional comma-separated list of channel
|
|
.Ar keys .
|
|
.
|
|
.It Fl k Ar path | Cm priv No = Ar priv
|
|
Load the TLS client private key from
|
|
.Ar path .
|
|
The
|
|
.Ar path
|
|
is searched for in the same manner
|
|
as configuration files.
|
|
.
|
|
.It Fl l | Cm log
|
|
Log chat events to files in paths
|
|
.Pa $XDG_DATA_HOME/catgirl/log/network/channel/YYYY-MM-DD.log .
|
|
.
|
|
.It Fl m Ar mode | Cm mode No = Ar mode
|
|
Set the user
|
|
.Ar mode .
|
|
.
|
|
.It Fl n Ar nick | Cm nick No = Ar nick
|
|
Set nickname to
|
|
.Ar nick .
|
|
The default nickname is
|
|
the value of the environment variable
|
|
.Ev USER .
|
|
.
|
|
.It Fl o
|
|
Print the server certificate chain
|
|
to standard output in PEM format
|
|
and exit.
|
|
.
|
|
.It Fl p Ar port | Cm port No = Ar port
|
|
Connect to
|
|
.Ar port .
|
|
The default port is 6697.
|
|
.
|
|
.It Fl q | Cm quiet
|
|
Raise the default message visibility threshold
|
|
for new windows,
|
|
hiding general events
|
|
(joins, quits, etc.).
|
|
.
|
|
.It Fl r Ar real | Cm real No = Ar real
|
|
Set realname to
|
|
.Ar real .
|
|
The default realname is the same as the nickname.
|
|
.
|
|
.It Fl s Ar name | Cm save No = Ar name
|
|
Save and load the contents of windows from
|
|
.Ar name
|
|
in
|
|
.Pa $XDG_DATA_DIRS/catgirl ,
|
|
or an absolute or relative path if
|
|
.Ar name
|
|
starts with
|
|
.Ql / ,
|
|
.Ql \&./ ,
|
|
or
|
|
.Ql \&../ .
|
|
.
|
|
.It Fl t Ar path | Cm trust No = Ar path
|
|
Trust the self-signed certificate
|
|
loaded from
|
|
.Ar path
|
|
and disable server name verification.
|
|
The
|
|
.Ar path
|
|
is searched for in the same manner
|
|
as configuration files.
|
|
See
|
|
.Sx Connecting to Servers with Self-signed Certificates .
|
|
.
|
|
.It Fl u Ar user | Cm user No = Ar user
|
|
Set username to
|
|
.Ar user .
|
|
The default username is the same as the nickname.
|
|
.
|
|
.It Fl v | Cm debug
|
|
Log raw IRC messages to the
|
|
.Sy <debug>
|
|
window
|
|
as well as standard error
|
|
if it is not a terminal.
|
|
.
|
|
.It Fl w Ar pass | Cm pass No = Ar pass
|
|
Log in with the server password
|
|
.Ar pass .
|
|
Leave
|
|
.Ar pass
|
|
blank to prompt for the password.
|
|
.El
|
|
.
|
|
.Ss Configuring CertFP
|
|
.Bl -enum
|
|
.It
|
|
Generate a new TLS client certificate:
|
|
.Bd -literal -offset indent
|
|
$ catgirl -g ~/.config/catgirl/example.pem
|
|
.Ed
|
|
.It
|
|
Connect to the server using the certificate:
|
|
.Bd -literal -offset indent
|
|
cert = example.pem
|
|
# or: $ catgirl -c example.pem
|
|
.Ed
|
|
.It
|
|
Identify with services or use
|
|
.Cm sasl-plain ,
|
|
then add the certificate fingerprint
|
|
to your account:
|
|
.Bd -literal -offset indent
|
|
/ns CERT ADD
|
|
.Ed
|
|
.It
|
|
Enable SASL EXTERNAL
|
|
to require successful authentication
|
|
when connecting
|
|
(not possible on all networks):
|
|
.Bd -literal -offset indent
|
|
cert = example.pem
|
|
sasl-external
|
|
# or: $ catgirl -e -c example.pem
|
|
.Ed
|
|
.El
|
|
.
|
|
.Ss Connecting to Servers with Self-signed Certificates
|
|
.Bl -enum
|
|
.It
|
|
Connect to the server
|
|
and write its certificate to a file:
|
|
.Bd -literal -offset indent
|
|
$ catgirl -o -h irc.example.org > ~/.config/catgirl/example.pem
|
|
.Ed
|
|
.It
|
|
Configure
|
|
.Nm
|
|
to trust the certificate:
|
|
.Bd -literal -offset indent
|
|
trust = example.pem
|
|
# or: $ catgirl -t example.pem
|
|
.Ed
|
|
.El
|
|
.
|
|
.Sh INTERFACE
|
|
The
|
|
.Nm
|
|
interface is split
|
|
into three areas.
|
|
.
|
|
.Ss Status Line
|
|
The top line of the terminal
|
|
shows window statuses.
|
|
Only the currently active window
|
|
and windows with activity are listed.
|
|
The status line for a window
|
|
might look like this:
|
|
.Bd -literal -offset indent
|
|
1+ #ascii.town +3 ~7 @
|
|
.Ed
|
|
.Pp
|
|
The number on the left
|
|
is the window number.
|
|
Following it may be one of
|
|
.Ql - ,
|
|
.Ql + ,
|
|
.Ql ++ ,
|
|
as well as
|
|
.Ql = .
|
|
These indicate
|
|
the message visibility threshold
|
|
and mute status
|
|
of the window.
|
|
.Pp
|
|
On the right side,
|
|
the number following
|
|
.Ql +
|
|
indicates the number of unread messages.
|
|
The number following
|
|
.Ql ~
|
|
indicates how many lines
|
|
are below the scroll position.
|
|
An
|
|
.Ql @
|
|
indicates that there is unsent input
|
|
in the window's
|
|
.Sx Input Line .
|
|
.Pp
|
|
.Nm
|
|
will also set the terminal title,
|
|
if possible,
|
|
to the name of the network
|
|
and active window,
|
|
followed by the unread count
|
|
for that window,
|
|
and the unread count
|
|
for all other windows
|
|
in parentheses.
|
|
.
|
|
.Ss Chat Area
|
|
The chat area shows
|
|
messages and events.
|
|
Regular messages are shown
|
|
with the nick between
|
|
.Ql <>
|
|
angle brackets.
|
|
Actions are shown
|
|
with the nick preceded by
|
|
.Ql * .
|
|
Notices are shown
|
|
with the nick between
|
|
.Ql -
|
|
hyphens.
|
|
.Pp
|
|
Blank lines are inserted into the chat
|
|
as unread markers.
|
|
.Pp
|
|
While scrolling,
|
|
the most recent 5 lines of chat
|
|
are kept visible below a marker line.
|
|
.
|
|
.Ss Input Line
|
|
The bottom line of the terminal
|
|
is where messages and commands are entered.
|
|
When entering a message, action or notice,
|
|
your nick appears on the left,
|
|
as it would in the
|
|
.Sx Chat Area .
|
|
When entering a command,
|
|
no nick is shown.
|
|
.Pp
|
|
Formatting codes are shown
|
|
in the input line
|
|
as reverse-video uppercase letters.
|
|
These will not appear in the sent message.
|
|
.Pp
|
|
Input that is too long
|
|
to send as a single message
|
|
will have a red background
|
|
starting at the point where it will be split
|
|
into a second message.
|
|
.
|
|
.Sh COMMANDS
|
|
Any unique prefix can be used to abbreviate a command.
|
|
For example,
|
|
.Ic /join
|
|
can be typed
|
|
.Ic /j .
|
|
.
|
|
.Ss Chat Commands
|
|
.Bl -tag -width Ds
|
|
.It Ic /away Op Ar message
|
|
Set or clear your away status.
|
|
.It Ic /cs Ar command
|
|
Send a command to ChanServ.
|
|
.It Ic /invite Ar nick
|
|
Invite a user to the channel.
|
|
.It Ic /join Op Ar channel Op Ar key
|
|
Join the named channel,
|
|
the current channel,
|
|
or the channel you've been invited to.
|
|
.It Ic /list Op Ar channel
|
|
List channels.
|
|
.It Ic /me Op Ar action
|
|
Send an action message.
|
|
.It Ic /msg Ar nick message
|
|
Send a private message.
|
|
.It Ic /names
|
|
List users in the channel.
|
|
.It Ic /nick Ar nick
|
|
Change nicknames.
|
|
.It Ic /notice Ar message
|
|
Send a notice.
|
|
.It Ic /ns Ar command
|
|
Send a command to NickServ.
|
|
.It Ic /ops
|
|
List channel operators.
|
|
.It Ic /part Op Ar message
|
|
Leave the channel.
|
|
.It Ic /query Ar nick
|
|
Start a private conversation.
|
|
.It Ic /quit Op Ar message
|
|
Quit IRC.
|
|
.It Ic /quote Ar command
|
|
Send a raw IRC command.
|
|
The
|
|
.Ic /debug
|
|
command is likely needed
|
|
for command output.
|
|
.It Ic /say Ar message
|
|
Send a regular message.
|
|
.It Ic /setname Ar name
|
|
Update realname
|
|
if supported by the server.
|
|
.It Ic /topic Op Ar topic
|
|
Show or set the topic of the channel.
|
|
Press
|
|
.Ic Tab
|
|
twice to copy the current topic.
|
|
.It Ic /whois Op Ar nick
|
|
Query information about a user or yourself.
|
|
.It Ic /whowas Ar nick
|
|
Query past information about a user.
|
|
.El
|
|
.
|
|
.Ss UI Commands
|
|
.Bl -tag -width Ds
|
|
.It Ic /close Op Ar name | num
|
|
Close the named, numbered or current window.
|
|
.It Ic /copy Op Ar nick | substring
|
|
Copy the most recent URL from
|
|
.Ar nick
|
|
or matching
|
|
.Ar substring .
|
|
.It Ic /debug
|
|
Toggle logging in the
|
|
.Sy <debug>
|
|
window.
|
|
.It Ic /exec Ar command
|
|
Run
|
|
.Ar command
|
|
with
|
|
.Ev SHELL
|
|
and interpret its output
|
|
as input to the current window,
|
|
including as commands.
|
|
.It Ic /help
|
|
View this manual.
|
|
Type
|
|
.Ic q
|
|
to return to
|
|
.Nm .
|
|
.It Ic /help Ar topic
|
|
List the server help for a topic.
|
|
Try
|
|
.Ic /help index
|
|
for a list of topics.
|
|
.It Ic /highlight Op Ar pattern
|
|
List message highlight patterns
|
|
or temporarily add a pattern.
|
|
To permanently add a pattern,
|
|
use the
|
|
.Cm highlight
|
|
option.
|
|
.It Ic /ignore Op Ar pattern
|
|
List message ignore patterns
|
|
or temporarily add a pattern.
|
|
To permanently add a pattern,
|
|
use the
|
|
.Cm ignore
|
|
option.
|
|
.It Ic /move Oo Ar name Oc Ar num
|
|
Move the named or current window to number.
|
|
.It Ic /open Op Ar count
|
|
Open each of
|
|
.Ar count
|
|
most recent URLs.
|
|
.It Ic /open Ar nick | substring
|
|
Open the most recent URL from
|
|
.Ar nick
|
|
or matching
|
|
.Ar substring .
|
|
.It Ic /unhighlight Ar pattern
|
|
Temporarily remove a message highlight pattern.
|
|
.It Ic /unignore Ar pattern
|
|
Temporarily remove a message ignore pattern.
|
|
.It Ic /window
|
|
List all windows.
|
|
.It Ic /window Ar name | substring
|
|
Switch to window by name
|
|
or matching substring.
|
|
.It Ic /window Ar num | Ic / Ns Ar num
|
|
Switch to window by number.
|
|
.El
|
|
.
|
|
.Ss Operator Commands
|
|
.Bl -tag -width Ds
|
|
.It Ic /ban Op Ar mask ...
|
|
List or ban masks from the channel.
|
|
.It Ic /deop Op Ar nick ...
|
|
Revoke channel operator status from users or yourself.
|
|
.It Ic /devoice Op Ar nick ...
|
|
Revoke voice from users or yourself in the channel.
|
|
.It Ic /except Op Ar mask ...
|
|
List or add masks to the channel ban exception list.
|
|
.It Ic /invex Op Ar mask ...
|
|
List or add masks to the channel invite list.
|
|
.It Ic /kick Ar nick Op Ar message
|
|
Kick a user from the channel.
|
|
.It Ic /mode Oo Ar modes Oc Op Ar param ...
|
|
Show or set channel modes.
|
|
In the
|
|
.Sy <network>
|
|
window,
|
|
show or set user modes.
|
|
.It Ic /op Op Ar nick ...
|
|
Grant users or yourself channel operator status.
|
|
.It Ic /unban Ar mask ...
|
|
Unban masks from the channel.
|
|
.It Ic /unexcept Ar mask ...
|
|
Remove masks from the channel ban exception list.
|
|
.It Ic /uninvex Ar mask ...
|
|
Remove masks from the channel invite list.
|
|
.It Ic /voice Op Ar nick ...
|
|
Grant users or yourself voice in the channel.
|
|
.El
|
|
.
|
|
.Sh KEY BINDINGS
|
|
The
|
|
.Nm
|
|
interface provides
|
|
.Xr emacs 1 Ns -like
|
|
line editing
|
|
as well as keys for IRC formatting.
|
|
The prefixes
|
|
.Ic C-
|
|
and
|
|
.Ic M-
|
|
represent the control and meta (alt)
|
|
modifiers, respectively.
|
|
.
|
|
.Ss Line Editing
|
|
.Bl -tag -width Ds -compact
|
|
.It Ic C-a
|
|
Move to beginning of line.
|
|
.It Ic C-b
|
|
Move left.
|
|
.It Ic C-d
|
|
Delete next character.
|
|
.It Ic C-e
|
|
Move to end of line.
|
|
.It Ic C-f
|
|
Move right.
|
|
.It Ic C-k
|
|
Delete to end of line.
|
|
.It Ic C-t
|
|
Transpose characters.
|
|
.It Ic C-u
|
|
Delete to beginning of line.
|
|
.It Ic C-w
|
|
Delete previous word.
|
|
.It Ic C-x
|
|
Expand a text macro beginning with
|
|
.Ql \e .
|
|
.It Ic C-y
|
|
Paste previously deleted text.
|
|
.It Ic M-Enter
|
|
Insert a newline without sending a command.
|
|
.It Ic M-b
|
|
Move to previous word.
|
|
.It Ic M-d
|
|
Delete next word.
|
|
.It Ic M-f
|
|
Move to next word.
|
|
.It Ic M-q
|
|
Collapse all whitespace.
|
|
.It Ic Tab
|
|
Complete nick, channel, command or macro.
|
|
.El
|
|
.Pp
|
|
Arrow and navigation keys
|
|
also work as expected.
|
|
.
|
|
.Ss Window Keys
|
|
.Bl -tag -width Ds -compact
|
|
.It Ic C-l
|
|
Redraw the UI.
|
|
.It Ic C-n
|
|
Switch to next window.
|
|
.It Ic C-p
|
|
Switch to previous window.
|
|
.It Ic C-r
|
|
Scroll to previous line matching input.
|
|
.It Ic C-s
|
|
Scroll to next line matching input.
|
|
.It Ic C-v
|
|
Scroll down a page.
|
|
.It Ic M-+
|
|
Raise message visibility threshold,
|
|
hiding ignored messages,
|
|
general events
|
|
(joins, quits, etc.),
|
|
or non-highlighted messages.
|
|
.It Ic M--
|
|
Lower message visibility threshold,
|
|
showing ignored messages.
|
|
.It Ic M-=
|
|
Toggle mute.
|
|
Muted windows do not appear in the status line
|
|
unless you are mentioned.
|
|
.It Ic M-/
|
|
Switch to previously selected window.
|
|
.It Ic M-<
|
|
Scroll to top.
|
|
.It Ic M->
|
|
Scroll to bottom.
|
|
.It Ic M- Ns Ar n
|
|
Switch to window by number 0\(en9.
|
|
.It Ic M-a
|
|
Cycle through unread windows.
|
|
.It Ic M-l
|
|
List the contents of the window
|
|
without word-wrapping
|
|
and with timestamps.
|
|
Press
|
|
.Ic Enter
|
|
to return to
|
|
.Nm .
|
|
.It Ic M-m
|
|
Insert a blank line in the window.
|
|
.It Ic M-n
|
|
Scroll to next highlight.
|
|
.It Ic M-p
|
|
Scroll to previous highlight.
|
|
.It Ic M-s
|
|
Reveal spoiler text.
|
|
.It Ic M-t
|
|
Toggle timestamps.
|
|
.It Ic M-u
|
|
Scroll to first unread line.
|
|
.It Ic M-v
|
|
Scroll up a page.
|
|
.El
|
|
.
|
|
.Ss IRC Formatting
|
|
.Bl -tag -width "C-z C-v" -compact
|
|
.It Ic C-z C-v
|
|
Insert the next input character literally.
|
|
.It Ic C-z b
|
|
Toggle bold.
|
|
.It Ic C-z c
|
|
Set or reset color.
|
|
.It Ic C-z i
|
|
Toggle italics.
|
|
.It Ic C-z o
|
|
Reset formatting.
|
|
.It Ic C-z p
|
|
Manually toggle paste mode.
|
|
.It Ic C-z r
|
|
Toggle reverse color.
|
|
.It Ic C-z s
|
|
Set spoiler text (black on black).
|
|
.It Ic C-z u
|
|
Toggle underline.
|
|
.El
|
|
.
|
|
.Pp
|
|
Some color codes can be inserted
|
|
with the following:
|
|
.Bl -column "C-z A" "magenta" "C-z N" "orange (dark yellow)"
|
|
.It Ic C-z A Ta gray Ta Ic C-z N Ta brown (dark red)
|
|
.It Ic C-z B Ta blue Ta Ic C-z O Ta orange (dark yellow)
|
|
.It Ic C-z C Ta cyan Ta Ic C-z P Ta pink (light magenta)
|
|
.It Ic C-z G Ta green Ta Ic C-z R Ta red
|
|
.It Ic C-z K Ta black Ta Ic C-z W Ta white
|
|
.It Ic C-z M Ta magenta Ta Ic C-z Y Ta yellow
|
|
.El
|
|
.
|
|
.Pp
|
|
To set other colors, follow
|
|
.Ic C-z c
|
|
by one or two digits for the foreground color,
|
|
optionally followed by a comma
|
|
and one or two digits for the background color.
|
|
To reset color, follow
|
|
.Ic C-z c
|
|
by a non-digit.
|
|
.
|
|
.Pp
|
|
The color numbers are as follows:
|
|
.Bl -column "99" "orange (dark yellow)" "15" "pink (light magenta)"
|
|
.It \ 0 Ta white Ta \ 8 Ta yellow
|
|
.It \ 1 Ta black Ta \ 9 Ta light green
|
|
.It \ 2 Ta blue Ta 10 Ta cyan
|
|
.It \ 3 Ta green Ta 11 Ta light cyan
|
|
.It \ 4 Ta red Ta 12 Ta light blue
|
|
.It \ 5 Ta brown (dark red) Ta 13 Ta pink (light magenta)
|
|
.It \ 6 Ta magenta Ta 14 Ta gray
|
|
.It \ 7 Ta orange (dark yellow) Ta 15 Ta light gray
|
|
.It 99 Ta default Ta Ta
|
|
.El
|
|
.
|
|
.Sh ENVIRONMENT
|
|
.Bl -tag -width Ds
|
|
.It Ev SHELL
|
|
The shell used by
|
|
.Ic /exec .
|
|
The default is
|
|
.Pa /bin/sh .
|
|
.It Ev USER
|
|
The default nickname.
|
|
.El
|
|
.
|
|
.Sh FILES
|
|
.Bl -tag -width Ds
|
|
.It Pa $XDG_CONFIG_DIRS/catgirl
|
|
Configuration files are searched for first in
|
|
.Ev $XDG_CONFIG_HOME ,
|
|
usually
|
|
.Pa ~/.config ,
|
|
followed by the colon-separated list of paths
|
|
.Ev $XDG_CONFIG_DIRS ,
|
|
usually
|
|
.Pa /etc/xdg .
|
|
.It Pa ~/.config/catgirl
|
|
The most likely location of configuration files.
|
|
.
|
|
.It Pa $XDG_DATA_DIRS/catgirl
|
|
Save files are searched for first in
|
|
.Ev $XDG_DATA_HOME ,
|
|
usually
|
|
.Pa ~/.local/share ,
|
|
followed by the colon-separated list of paths
|
|
.Ev $XDG_DATA_DIRS ,
|
|
usually
|
|
.Pa /usr/local/share:/usr/share .
|
|
.It Pa ~/.local/share/catgirl
|
|
The most likely location of save files.
|
|
.El
|
|
.
|
|
.Sh EXIT STATUS
|
|
The
|
|
.Nm
|
|
client exits 0
|
|
if requested by the user,
|
|
.Dv EX_UNAVAILABLE
|
|
(69)
|
|
if the connection is lost,
|
|
and >0 if any other error occurs.
|
|
.
|
|
.Sh EXAMPLES
|
|
Join
|
|
.Li #ascii.town
|
|
from the command line:
|
|
.Bd -literal -offset indent
|
|
$ catgirl -h irc.tilde.chat -j '#ascii.town'
|
|
.Ed
|
|
.Pp
|
|
Create a configuration file in
|
|
.Pa ~/.config/catgirl/tilde :
|
|
.Bd -literal -offset indent
|
|
host = irc.tilde.chat
|
|
join = #ascii.town
|
|
.Ed
|
|
.Pp
|
|
Load the configuration file:
|
|
.Bd -literal -offset indent
|
|
$ catgirl tilde
|
|
.Ed
|
|
.
|
|
.Sh STANDARDS
|
|
.Bl -item
|
|
.It
|
|
.Rs
|
|
.%A Adam
|
|
.%A Attila Molnar
|
|
.%T IRCv3.2 invite-notify Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/invite-notify-3.2
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Jack Allnutt
|
|
.%T Modern IRC Client Protocol
|
|
.%I ircdocs
|
|
.%U https://modern.ircdocs.horse/index.html
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Kiyoshi Aman
|
|
.%A Kyle Fuller
|
|
.%A St\('ephan Kochen
|
|
.%A Alexey Sokolov
|
|
.%A James Wheare
|
|
.%T IRCv3 Message Tags
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/message-tags
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Kiyoshi Aman
|
|
.%T IRCv3.1 extended-join Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/extended-join-3.1
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Waldo Bastian
|
|
.%A Ryan Lortie
|
|
.%A Lennart Poettering
|
|
.%T XDG Base Directory Specification
|
|
.%U https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
|
|
.%D November 24, 2010
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Christine Dodrill
|
|
.%T IRCv3.2 chghost Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/chghost-3.2
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Kyle Fuller
|
|
.%A St\('ephan Kochen
|
|
.%A Alexey Sokolov
|
|
.%A James Wheare
|
|
.%T IRCv3.2 server-time Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/server-time-3.2
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Lee Hardy
|
|
.%A Perry Lorier
|
|
.%A Kevin L. Mitchell
|
|
.%A William Pitcock
|
|
.%T IRCv3.1 Client Capability Negotiation
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/core/capability-negotiation-3.1.html
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A S. Josefsson
|
|
.%T The Base16, Base32, and Base64 Data Encodings
|
|
.%I IETF
|
|
.%R RFC 4648
|
|
.%U https://tools.ietf.org/html/rfc4648
|
|
.%D October 2006
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A C. Kalt
|
|
.%T Internet Relay Chat: Client Protocol
|
|
.%I IETF
|
|
.%R RFC 2812
|
|
.%U https://tools.ietf.org/html/rfc2812
|
|
.%D April 2000
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Janne Mareike Koschinski
|
|
.%T IRCv3 setname Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/setname
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Mantas Mikul\[u0117]nas
|
|
.%T IRCv3.2 userhost-in-names Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/userhost-in-names-3.2
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Daniel Oaks
|
|
.%T Standard Replies Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/standard-replies
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A Daniel Oaks
|
|
.%T IRC Formatting
|
|
.%I ircdocs
|
|
.%U https://modern.ircdocs.horse/formatting.html
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A J. Oikarinen
|
|
.%A D. Reed
|
|
.%T Internet Relay Chat Protocol
|
|
.%I IETF
|
|
.%R RFC 1459
|
|
.%U https://tools.ietf.org/html/rfc1459
|
|
.%D May 1993
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A William Pitcock
|
|
.%A Jilles Tjoelker
|
|
.%T IRCv3.1 SASL Authentication
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/sasl-3.1.html
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A William Pitcock
|
|
.%T IRCv3.1 multi-prefix Extension
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/multi-prefix-3.1
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A James Wheare
|
|
.%T Reply Client Tag
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/client-tags/reply
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A James Wheare
|
|
.%T Message IDs
|
|
.%I IRCv3 Working Group
|
|
.%U https://ircv3.net/specs/extensions/message-ids
|
|
.Re
|
|
.It
|
|
.Rs
|
|
.%A K. Zeilenga, Ed.
|
|
.%T The PLAIN Simple Authentication and Security Layer (SASL) Mechanism
|
|
.%I IETF
|
|
.%R RFC 4616
|
|
.%U https://tools.ietf.org/html/rfc4616
|
|
.%D August 2006
|
|
.Re
|
|
.El
|
|
.
|
|
.Ss Extensions
|
|
The
|
|
.Nm
|
|
client implements the
|
|
.Sy causal.agency/consumer
|
|
vendor-specific IRCv3 capability
|
|
offered by
|
|
.Xr pounce 1 .
|
|
The consumer position is stored in the
|
|
.Cm save
|
|
file.
|
|
.
|
|
.Sh AUTHORS
|
|
.An June Bug Aq Mt june@causal.agency
|
|
.
|
|
.Sh BUGS
|
|
Send mail to
|
|
.Aq Mt list+catgirl@causal.agency
|
|
or join
|
|
.Li #ascii.town
|
|
on
|
|
.Li irc.tilde.chat .
|