about summary refs log tree commit diff
path: root/catgirl.1
diff options
context:
space:
mode:
Diffstat (limited to 'catgirl.1')
-rw-r--r--catgirl.1731
1 files changed, 480 insertions, 251 deletions
diff --git a/catgirl.1 b/catgirl.1
index bb425cc..f2a2fbb 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -1,4 +1,4 @@
-.Dd July 20, 2021
+.Dd May 24, 2024
 .Dt CATGIRL 1
 .Os
 .
@@ -8,7 +8,7 @@
 .
 .Sh SYNOPSIS
 .Nm
-.Op Fl KRelqv
+.Op Fl Relqv
 .Op Fl C Ar copy
 .Op Fl H Ar hash
 .Op Fl I Ar highlight
@@ -46,9 +46,9 @@
 The
 .Nm
 IRC client
-provides a curses interface
-for TLS-only
-Internet Relay Chat.
+provides a curses interface for
+Internet Relay Chat
+over TLS.
 The only required option is
 .Fl h ,
 the host name to connect to.
@@ -62,7 +62,8 @@ in
 to view the list of
 .Sx COMMANDS
 and
-.Sx KEY BINDINGS .
+.Sx KEY BINDINGS
+in this manual.
 .
 .Pp
 Options can be loaded from files
@@ -78,50 +79,65 @@ unless the path starts with
 .Ql \&./
 or
 .Ql \&../ .
-Files and flags listed later
-on the command line
-take precedence over
-those listed earlier.
+For example,
+a configuration file at
+.Pa ~/.config/catgirl/tilde
+can be loaded by running
+.Ql catgirl tilde .
 .
 .Pp
 Each option is placed on a line,
 and lines beginning with
 .Ql #
 are ignored.
+An optional
+.Ql =
+may appear
+between an option and its value.
 The options are listed below
 following their corresponding flags.
+Flags and options in files are processed
+in the order they appear on the command line,
+so later values override earlier values.
 .
 .Bl -tag -width Ds
-.It Fl C Ar util | Cm copy No = Ar util
-Set the utility used by
-.Ic /copy .
+.It Fl C Ar util | Cm copy Ar util
+Set the utility used by the
+.Ic /copy 
+command.
 Subsequent
 .Cm copy
-options append arguments to
-.Ar util .
-The URL to copy is provided to
-.Ar util
-on standard input.
+options add arguments
+to the utility.
+The URL to copy is provided
+to the utility on standard input.
 The default is the first available of
 .Xr pbcopy 1 ,
 .Xr wl-copy 1 ,
-.Xr xclip 1 ,
+.Xr xclip 1
+or
 .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,
+.It Fl H Ar seed,bound | Cm hash Ar seed,bound
+Set the seed for choosing
+nick and channel colours
+and the maximum IRC colour value
+that will be chosen.
+Changing the seed
+will randomize the chosen colours,
+in case you don't like the ones
+chosen for yourself or your crush.
+.Pp
+The default is 0,75,
+which uses colours
+in the 256-colour terminal set.
+To use only colours
+from the 16-colour terminal set,
 use 0,15.
-To disable nick and channel colors,
+To disable nick and channel colours,
 use 0,0.
 .
-.It Fl I Ar pattern | Cm highlight No = Ar pattern
+.It Fl I Ar pattern | Cm highlight Ar pattern
 Add a case-insensitive message highlight pattern,
 which may contain
 .Ql * ,
@@ -132,60 +148,51 @@ wildcards as in
 .Xr glob 7 .
 The format of the pattern is as follows:
 .Bd -ragged -offset indent
+.\" FIXME: there's really no reason !user@host should be required
 .Ar nick Ns Op Ar !user@host Op Ar command Op Ar channel Op Ar message
 .Ed
 .Pp
-The commands which can be filtered 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
+The commands which can be matched are:
+.Sy invite ,
+.Sy join ,
+.Sy nick ,
+.Sy notice ,
+.Sy part ,
+.Sy privmsg ,
+.Sy quit ,
+.Sy setname .
+.Pp
+For example,
+to highlight whenever your crush
+joins your favourite channel:
+.Pp
+.Dl highlight crush!*@* join #channel
+.
+.It Fl N Ar util | Cm notify Ar util
 Send notifications using a utility.
 Subsequent
 .Cm notify
-options append arguments to
-.Ar util .
+options add arguments
+to the utility.
 The window name and message
-are provided to
-.Ar util
+are provided to the utility
 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 .
+.It Fl O Ar util | Cm open Ar util
+Set the utility used by the
+.Ic /open
+command.
 Subsequent
 .Cm open
-options append arguments to
-.Ar util .
-The URL to open is provided to
-.Ar util
-as an argument.
+options add arguments
+to the utility.
+The URL to open is provided
+to the utility as an additional argument.
 The default is the first available of
-.Xr open 1 ,
+.Xr open 1
+or
 .Xr xdg-open 1 .
 .
 .It Fl R | Cm restrict
@@ -196,57 +203,80 @@ and
 .Ic /open
 commands,
 the
-.Fl N
+.Cm notify
 option,
 and viewing this manual with
 .Ic /help .
 .
-.It Fl S Ar host | Cm bind No = Ar host
+.It Fl S Ar host | Cm bind Ar host
 Bind to source address
 .Ar host
 when connecting to the server.
+To connect from any IPv4 address,
+use 0.0.0.0.
+To connect from any IPv6 address,
+use ::.
 .
-.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 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
+.It Fl T Ns Oo Ar format Oc | Cm timestamp Op Ar format
+Show timestamps by default.
+The optional
+.Ar format
+string is interpreted by
+.Xr strftime 3 .
+The string may contain
+raw IRC formatting codes,
+if you can figure out
+how to enter them.
+.
+.It Fl a Ar user : Ns Ar pass | Cm sasl-plain Ar user : Ns Ar pass
+Authenticate with NickServ
+during connection using SASL PLAIN.
+.Nm
+will disconnect
+if authentication fails.
+Leave
 .Ar pass
-using SASL PLAIN.
-Since this requires the account password
-in plain text,
-it is recommended to use CertFP instead.
+blank to prompt for the password when
+.Nm
+starts.
+.
+.It Fl c Ar path | Cm cert Ar path
+Connect using a TLS client certificate
+loaded from
+.Ar path ,
+which is searched for
+in the same manner as configuration files.
+If the private key
+is in a separate file,
+additionally specify it with the
+.Cm priv
+option.
+.Pp
+To use this certificate
+to authenticate to NickServ
+using CertFP,
+use the
+.Cm sasl-external
+option.
 See
 .Sx Configuring CertFP .
-.
-.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
-.Fl k .
-With
-.Fl e ,
-authenticate using SASL EXTERNAL.
-Certificates can be generated with
-.Fl g .
+.Pp
+Client certificates
+can be generated with the
+.Fl g
+flag.
 .
 .It Fl e | Cm sasl-external
-Authenticate using SASL EXTERNAL,
-also known as CertFP.
-The TLS client certificate is loaded with
-.Fl c .
+Authenticate to NickServ
+during connection using CertFP
+via SASL EXTERNAL.
+.Nm
+will disconnect
+if authentication fails.
+The client certificate
+must be specified with the
+.Cm cert
+option.
 See
 .Sx Configuring CertFP .
 .
@@ -256,11 +286,11 @@ Generate a TLS client certificate using
 and write it to
 .Ar path .
 .
-.It Fl h Ar host | Cm host No = Ar host
-Connect to
+.It Fl h Ar host | Cm host Ar host
+Connect to the IRC server
 .Ar host .
 .
-.It Fl i Ar pattern | Cm ignore No = Ar pattern
+.It Fl i Ar pattern | Cm ignore Ar pattern
 Add a case-insensitive message ignore pattern,
 which may contain
 .Ql * ,
@@ -274,70 +304,99 @@ The format of the pattern is as follows:
 .Ar nick Ns Op Ar !user@host Op Ar command Op Ar channel Op Ar message
 .Ed
 .Pp
-The commands which can be filtered 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
+The commands which can be matched are:
+.Sy invite ,
+.Sy join ,
+.Sy nick ,
+.Sy notice ,
+.Sy part ,
+.Sy privmsg ,
+.Sy quit ,
+.Sy setname .
+.Pp
+Visibility of ignored messages
+can be toggled using
+.Ic M--
+and
+.Ic M-+ .
+.
+.It Fl j Ar channels Oo Ar keys Oc | Cm join Ar channels Oo Ar keys Oc
 Join the comma-separated list of
 .Ar channels
 with the optional comma-separated list of channel
 .Ar keys .
+No spaces may appear in either list.
 .
-.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 k Ar path | Cm priv Ar path
+Load the TLS client private key 
+for a certificate loaded with the
+.Cm cert
+option from
+.Ar path ,
+which is search 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
+Log messages to files in
+.Pa $XDG_DATA_HOME/catgirl/log
+.Po
+usually
+.Pa ~/.local/share/catgirl/log
+.Pc .
+Directories are created
+for each network and channel,
+and files are created for each date
+in the format
+.Pa YYYY-MM-DD.log .
+.
+.It Fl m Ar modes | Cm mode Ar modes
+Set user modes as soon as possible
+after connecting.
+.
+.It Fl n Ar nick Oo Ar ... Oc | Cm nick Ar nick Oo Ar ... Oc
+Set the nickname with optional fallbacks,
+should one nick be unavailable.
+Each nick is treated as a highlight word.
+The default nickname is the value of
 .Ev USER .
 .
 .It Fl o
-Print the server certificate chain
-to standard output in PEM format
-and exit.
+Connect to the server
+only to obtain its certificate chain
+and write it to standard output
+in PEM format.
 .
-.It Fl p Ar port | Cm port No = Ar port
-Connect to
+.It Fl p Ar port | Cm port Ar port
+Connect to the IRC server on
 .Ar port .
 The default port is 6697.
 .
 .It Fl q | Cm quiet
 Raise the default message visibility threshold
 for new windows,
-hiding general events.
+hiding general events
+(joins, quits, etc.).
+The threshold can be lowered with
+.Ic M-- .
 .
-.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 r Ar real | Cm real Ar real
+Set the
+.Dq realname
+which appears in
+.Ic /whois .
+The default is the same as the nickname.
+This is a good place to add your pronouns.
 .
-.It Fl s Ar name | Cm save No = Ar name
-Save and load the contents of windows from
+.It Fl s Ar name | Cm save Ar name
+Persist windows and their scrollback
+in a file called
 .Ar name
 in
-.Pa $XDG_DATA_DIRS/catgirl ,
+.Pa $XDG_DATA_DIRS/catgirl
+.Po
+usually
+.Pa ~/.local/share/catgirl
+.Pc ,
 or an absolute or relative path if
 .Ar name
 starts with
@@ -346,150 +405,305 @@ starts with
 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.
+.It Fl t Ar path | Cm trust Ar path
+Trust the self-signed certificate in
+.Ar path ,
+which is searched for
+in the same manner as configuration files.
+Server name verification is also disabled.
 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 u Ar user | Cm user Ar user
+Set the username.
+This is almost entirely irrelevant,
+except that it's more likely to remain stable,
+and
+.Nm
+uses it to choose nick colours.
+The default is the same as the nickname.
 .
 .It Fl v | Cm debug
-Log raw IRC messages to the
+Log raw IRC protocol to the
 .Sy <debug>
-window
+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 .
+.It Fl w Ar pass | Cm pass Ar pass
+Connect using a server password.
+Leave
+.Ar pass
+blank
+.Po
+using an
+.Ql =
+.Pc
+to prompt for the password when
+.Nm
+starts.
 .El
 .
 .Ss Configuring CertFP
+CertFP allows you to
+authenticate with NickServ during connection
+using a TLS client certificate
+rather than your account password.
 .Bl -enum
 .It
 Generate a new TLS client certificate:
 .Bd -literal -offset indent
-catgirl -g ~/.config/catgirl/example.pem
+$ catgirl -g ~/.config/catgirl/example.pem
 .Ed
 .It
-Connect to the server using the certificate:
+Connect to the server using the certificate
+by adding the following configuration:
 .Bd -literal -offset indent
-cert = example.pem
-# or: catgirl -c example.pem
+cert example.pem
 .Ed
 .It
-Identify with services or use
-.Cm sasl-plain ,
+Identify with NickServ,
 then add the certificate fingerprint
 to your account:
 .Bd -literal -offset indent
 /ns CERT ADD
 .Ed
 .It
-Enable SASL EXTERNAL
+Enable SASL EXTERNAL in your configuration
 to require successful authentication
 when connecting
 (not possible on all networks):
 .Bd -literal -offset indent
-cert = example.pem
+cert example.pem
 sasl-external
-# or: catgirl -e -c example.pem
 .Ed
 .El
 .
 .Ss Connecting to Servers with Self-signed Certificates
+If connecting to a server fails
+with a certificate verification error
+due to a self-signed certificate,
+it needs to be trusted manually.
 .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
+$ 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
+trust example.pem
 .Ed
 .El
 .
+.Sh INTERFACE
+The
+.Nm
+interface is split
+into three main areas.
+.
+.Ss Status Line
+The top line of the terminal
+shows window statuses.
+Only the currently active window
+and windows with activity are shown.
+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 +
+or
+.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 current scroll position.
+An
+.Ql @
+indicates that there is unsent input
+waiting 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
+whenever there are messages
+in a window that is not active
+or the terminal is not focused
+(in some terminal emulators).
+.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.
+Commands can be abbreviated
+if no other command
+shares the same prefix.
 For example,
 .Ic /join
 can be typed
-.Ic /j .
+.Ic /j ,
+and
+.Ic /window
+can be typed
+.Ic /wi .
 .
 .Ss Chat Commands
 .Bl -tag -width Ds
 .It Ic /away Op Ar message
 Set or clear your away status.
+This is sent in reply to private messages
+and shown in
+.Ic /whois .
 .It Ic /cs Ar command
-Send a command to ChanServ.
+Send a command to ChanServ,
+the service for managing registered channels.
 .It Ic /invite Ar nick
-Invite a user to the channel.
+Invite someone to the channel.
 .It Ic /join Op Ar channel Op Ar key
 Join the named channel,
-the current channel,
+the current channel (if you've left),
 or the channel you've been invited to.
-.It Ic /list Op Ar channel
-List channels.
+.It Ic /list Op Ar search
+List channels, their user counts and their topics.
+The
+.Ar search
+can usually contain glob-style wildcards.
 .It Ic /me Op Ar action
 Send an action message.
+These are used to write messages in third person.
 .It Ic /msg Ar nick message
-Send a private message.
+Send a private message to someone.
 .It Ic /names
-List users in the channel.
+List the users in the channel.
 .It Ic /nick Ar nick
-Change nicknames.
+Change your nickname.
 .It Ic /notice Ar message
 Send a notice.
+It's best not to do this.
 .It Ic /ns Ar command
-Send a command to NickServ.
+Send a command to NickServ,
+the service for managing your account.
 .It Ic /ops
 List channel operators.
+They can kick or ban someone from the channel.
 .It Ic /part Op Ar message
 Leave the channel.
+Use
+.Ic /close
+if you want to close the window afterwards.
 .It Ic /query Ar nick
-Start a private conversation.
+Start a private conversation with someone.
 .It Ic /quit Op Ar message
-Quit IRC.
+Disconnect from IRC and close
+.Nm .
+You can do this even quicker with
+.Ic C-c .
 .It Ic /quote Ar command
 Send a raw IRC command.
-The
-.Ic /debug
-command is likely needed
-for command output.
+Often
+.Nm
+will not know how to interpret the results.
+You can use
+.Ic M--
+to show unknown server responses
+in the
+.Sy <network>
+or channel windows.
 .It Ic /say Ar message
 Send a regular message.
+This is useful
+if the message you want to send
+begins with a slash.
 .It Ic /setname Ar name
-Update realname
-if supported by the server.
+Update your 
+.Dq realname
+if the server supports it.
+This may be broadcast
+to other users
+with clients that support it.
 .It Ic /topic Op Ar topic
 Show or set the topic of the channel.
 Press
 .Ic Tab
-twice to copy the current topic.
+twice immediately after
+.Ic /topic
+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
+.Ss Interface Commands
 .Bl -tag -width Ds
 .It Ic /close Op Ar name | num
 Close the named, numbered or current window.
@@ -524,15 +738,22 @@ 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
-.Fl I .
+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
-.Fl i .
+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 /o ...
+Alias of
+.Ic /open .
 .It Ic /open Op Ar count
 Open each of
 .Ar count
@@ -660,11 +881,13 @@ Scroll down a page.
 .It Ic M-+
 Raise message visibility threshold,
 hiding ignored messages,
-general events,
+general events
+(joins, quits, etc.),
 or non-highlighted messages.
 .It Ic M--
 Lower message visibility threshold,
-showing ignored messages.
+showing ignored messages
+and unknown replies.
 .It Ic M-=
 Toggle mute.
 Muted windows do not appear in the status line
@@ -693,6 +916,8 @@ Insert a blank line in the window.
 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
@@ -717,6 +942,8 @@ Reset formatting.
 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
@@ -760,13 +987,10 @@ The color numbers are as follows:
 .Sh ENVIRONMENT
 .Bl -tag -width Ds
 .It Ev SHELL
-The path executed by
-.Ic /exec
-with
-.Fl c Ar command .
-If unset,
-.Pa /bin/sh
-is used.
+The shell used by
+.Ic /exec .
+The default is
+.Pa /bin/sh .
 .It Ev USER
 The default nickname.
 .El
@@ -803,9 +1027,7 @@ The
 .Nm
 client exits 0
 if requested by the user,
-.Dv EX_UNAVAILABLE
-(69)
-if the connection is lost,
+69 if the connection is lost,
 and >0 if any other error occurs.
 .
 .Sh EXAMPLES
@@ -813,7 +1035,7 @@ Join
 .Li #ascii.town
 from the command line:
 .Bd -literal -offset indent
-catgirl -h irc.tilde.chat -j '#ascii.town'
+$ catgirl -h irc.tilde.chat -j '#ascii.town'
 .Ed
 .Pp
 Create a configuration file in
@@ -825,7 +1047,7 @@ join = #ascii.town
 .Pp
 Load the configuration file:
 .Bd -literal -offset indent
-catgirl tilde
+$ catgirl tilde
 .Ed
 .
 .Sh STANDARDS
@@ -834,13 +1056,15 @@ catgirl tilde
 .Rs
 .%A Adam
 .%A Attila Molnar
-.%T IRCv3.2 invite-notify Extension
+.%T invite-notify Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/invite-notify-3.2
+.%U https://ircv3.net/specs/extensions/invite-notify
 .Re
 .It
 .Rs
 .%A Jack Allnutt
+.%A Val Lorentz
+.%A Daniel Oaks
 .%T Modern IRC Client Protocol
 .%I ircdocs
 .%U https://modern.ircdocs.horse/index.html
@@ -852,16 +1076,16 @@ catgirl tilde
 .%A St\('ephan Kochen
 .%A Alexey Sokolov
 .%A James Wheare
-.%T IRCv3 Message Tags
+.%T 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
+.%T extended-join Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/extended-join-3.1
+.%U https://ircv3.net/specs/extensions/extended-join
 .Re
 .It
 .Rs
@@ -875,9 +1099,11 @@ catgirl tilde
 .It
 .Rs
 .%A Christine Dodrill
-.%T IRCv3.2 chghost Extension
+.%A Ryan
+.%A James Wheare
+.%T chghost Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/chghost-3.2
+.%U https://ircv3.net/specs/extensions/chghost
 .Re
 .It
 .Rs
@@ -885,19 +1111,22 @@ catgirl tilde
 .%A St\('ephan Kochen
 .%A Alexey Sokolov
 .%A James Wheare
-.%T IRCv3.2 server-time Extension
+.%T server-time Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/server-time-3.2
+.%U https://ircv3.net/specs/extensions/server-time
 .Re
 .It
 .Rs
 .%A Lee Hardy
 .%A Perry Lorier
 .%A Kevin L. Mitchell
+.%A Attila Molnar
+.%A Daniel Oakley
 .%A William Pitcock
-.%T IRCv3.1 Client Capability Negotiation
+.%A James Wheare
+.%T Client Capability Negotiation
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/core/capability-negotiation-3.1.html
+.%U https://ircv3.net/specs/core/capability-negotiation
 .Re
 .It
 .Rs
@@ -920,30 +1149,30 @@ catgirl tilde
 .It
 .Rs
 .%A Janne Mareike Koschinski
-.%T IRCv3 setname Extension
+.%T 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
+.%T userhost-in-names Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/userhost-in-names-3.2
+.%U https://ircv3.net/specs/extensions/userhost-in-names
 .Re
 .It
 .Rs
 .%A Daniel Oaks
-.%T Standard Replies Extension
-.%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/standard-replies
+.%T IRC Formatting
+.%I ircdocs
+.%U https://modern.ircdocs.horse/formatting.html
 .Re
 .It
 .Rs
 .%A Daniel Oaks
-.%T IRC Formatting
-.%I ircdocs
-.%U https://modern.ircdocs.horse/formatting.html
+.%T Standard Replies Extension
+.%I IRCv3 Working Group
+.%U https://ircv3.net/specs/extensions/standard-replies
 .Re
 .It
 .Rs
@@ -961,28 +1190,28 @@ catgirl tilde
 .%A Jilles Tjoelker
 .%T IRCv3.1 SASL Authentication
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/sasl-3.1.html
+.%U https://ircv3.net/specs/extensions/sasl-3.1
 .Re
 .It
 .Rs
 .%A William Pitcock
-.%T IRCv3.1 multi-prefix Extension
+.%T multi-prefix Extension
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/multi-prefix-3.1
+.%U https://ircv3.net/specs/extensions/multi-prefix
 .Re
 .It
 .Rs
 .%A James Wheare
-.%T Reply Client Tag
+.%T Message IDs
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/client-tags/reply
+.%U https://ircv3.net/specs/extensions/message-ids
 .Re
 .It
 .Rs
 .%A James Wheare
-.%T Message IDs
+.%T reply Client Tag
 .%I IRCv3 Working Group
-.%U https://ircv3.net/specs/extensions/message-ids
+.%U https://ircv3.net/specs/client-tags/reply
 .Re
 .It
 .Rs
@@ -1008,7 +1237,7 @@ The consumer position is stored in the
 file.
 .
 .Sh AUTHORS
-.An June Bug Aq Mt june@causal.agency
+.An June McEnroe Aq Mt june@causal.agency
 .
 .Sh BUGS
 Send mail to