.Dd October 3, 2019 .Dt CATGIRL 1 .Os . .Sh NAME .Nm catgirl .Nd IRC client . .Sh SYNOPSIS .Nm .Op Fl NPRv .Op Fl a Ar auth .Op Fl h Ar host .Op Fl j Ar chan .Op Fl k Ar keys .Op Fl l Ar path .Op Fl n Ar nick .Op Fl p Ar port .Op Fl r Ar real .Op Fl u Ar user .Op Fl w Ar pass . .Sh DESCRIPTION .Nm is a curses, TLS-only IRC client. . .Pp The arguments are as follows: . .Bl -tag -width "-w pass" .It Fl N Send notifications with .Xr notify-send 1 . . .It Fl P Prompt for nickname. . .It Fl R Restrict the use of the .Ic /join , .Ic /query , .Ic /quote , .Ic /raw commands. . .It Fl a Ar auth Authenticate with SASL PLAIN. .Ar auth is a colon-separated username and password pair. . .It Fl h Ar host Connect to .Ar host . . .It Fl j Ar chan Join .Ar chan after connecting. .Ar chan may be a comma-separated list. . .It Fl k Ar keys Set keys for channels in .Fl j . .Ar keys may be a comma-separated list. . .It Fl l Ar path Log messages to subdirectories of .Ar path named by channel or nick in files named by date. . .It Fl n Ar nick Set nickname to .Ar nick . The default nickname is the user's name. . .It Fl p Ar port Connect to .Ar port . The default port is 6697. . .It Fl r Ar real Set realname to .Ar real . The default realname is the same as the nickname. . .It Fl u Ar user Set username to .Ar user . The default username is the same as the nickname. . .It Fl v Show raw IRC protocol in the .Sy window. If standard error is not a terminal, output raw IRC protocol to standard error. . .It Fl w Ar pass Log in with .Ar pass . .El . .Sh COMMANDS Any unique prefix may be used to abbreviate a command. . .Ss Chat Commands .Bl -tag -width Ds .It Ic /join Ar chan Op Ar key Join a channel. . .It Ic /list Op Ar chan List channels. . .It Ic /me Op Ar action Send an action message. . .It Ic /names , /who List users in the current channel. . .It Ic /nick Ar nick Change nicknames. . .It Ic /part Op Ar message Leave the current channel. . .It Ic /query Ar nick Open a private message view. . .It Ic /quit Op Ar message Quit IRC. . .It Ic /quote Ar command Send a raw IRC command. . .It Ic /topic Op Ar topic Show or set the topic of the current channel. . .It Ic /whois Ar nick Query information about a user. . .It Ic /znc Ar command Send .Xr znc 1 command. .El . .Pp Any messages entered in the .Sy window will be sent as raw IRC commands. . .Ss UI Commands .Bl -tag -width Ds .It Ic /close Close the current window. . .It Ic /help , /man View this manual. . .It Ic /move Ar num Move window to number. If .Ar num starts with .Cm + or .Cm - , the number is relative to the current window. . .It Ic /open Op Ar range Open a .Ar range of recent URLs in the current window with .Xr open 1 . URLs are numbered from the most recent starting at 1. The .Ar range may be a single number, or a hyphen- or comma-separated range. . .It Ic /open Ar substring Open the most recent URL in the current window matching the .Ar substring . . .It Ic /raw Toggle the .Sy window. . .It Ic /url Hide the UI and list the most recent URLs in the current window. Press .Ic Enter to resume the UI. . .It Ic /window Ar name Switch to window by name. . .It Ic /window Ar num , Ic / Ns Ar num Switch to window by number. If .Ar num starts with .Cm + or .Cm - , the number is relative to the current window. .El . .Sh KEY BINDINGS .Nm provides .Xr emacs 1 Ns -like line editing keys as well as keys for applying IRC formatting. The prefixes .Ic C- , M- , S- represent the control, meta (alt) and shift modifiers, respectively. .Ic M- Ns Ar x sequences can also be typed as .Ic Esc followed by .Ar x . . .Ss Line Editing .Bl -tag -width Ds -compact .It Ic C-a Move cursor to beginning of line. .It Ic C-b Move cursor left. .It Ic C-d Delete character under cursor. .It Ic C-e Move cursor to end of line. .It Ic C-f Move cursor right. .It Ic C-k Delete line after cursor. .It Ic C-u Delete line. .It Ic C-w Delete word before cursor. .It Ic M-b Move cursor to beginning of word. .It Ic M-d Delete word after cursor. .It Ic M-f Move cursor to end of word. .It Ic Tab Cycle through completions for commands, nicks and channels. .El . .Ss IRC Formatting .Bl -tag -width Ds -compact .It Ic C-_ Toggle underline. .It Ic C-o Toggle bold. .It Ic C-r Set or reset color. .It Ic C-s Reset formatting. .It Ic C-t Toggle italics. .It Ic C-v Toggle reverse video. This must usually be typed as .Ic C-v C-v . .El . .Pp To reset color, follow .Ic C-r by a non-digit. To set colors, follow .Ic C-r by one or two digits to set the foreground color, optionally followed by a comma and one or two digits to set the background color. . .Pp The color numbers are as follows: .Pp .Bl -column "7" "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 .El . .Ss Window Keys .Bl -tag -width "PageDown" -compact .It Ic C-l Redraw the UI. .It Ic C-n Switch to the next window. .It Ic C-p Switch to the previous window. .It Ic M-/ Switch to the previously active window. .It Ic M-a Switch to next hot or unread window. .It Ic M-l Hide the UI and list the log for the current window. .It Ic M-m Insert a blank line in the window. .It Ic M- Ns Ar n Switch to window by number 0\(en9. .It Ic Down Scroll window down by one line. .It Ic PageDown Scroll window down by one page. .It Ic PageUp Scroll window up by one page. .It Ic Up Scroll window up by one line. .El . .Sh ENVIRONMENT .Bl -tag -width Ds .It Ev USER The default nickname. .El . .Sh EXAMPLES .Dl catgirl -h chat.freenode.net -j '#ascii.town' . .Sh STANDARDS .Nm is a partial implementation of the following: . .Bl -item .It .Rs .%A C. Kalt .%T Internet Relay Chat: Client Protocol .%I IETF .%N RFC 2812 .%D April 2000 .%U https://tools.ietf.org/html/rfc2812 .Re . .It .Rs .%A Kevin L. Mitchell .%A Perry Lorier .%A Lee Hardy .%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 Jilles Tjoelker .%A William Pitcock .%T IRCv3.1 SASL Authentication .%I IRCv3 Working Group .%U https://ircv3.net/specs/extensions/sasl-3.1.html .Re . .It .Rs .%A K. Zeilenga, Ed. .%Q OpenLDAP Foundation .%T The PLAIN Simple Authentication and Security Layer (SASL) Mechanism .%I IETF .%N RFC 4616 .%D August 2006 .%U https://tools.ietf.org/html/rfc4616 .Re . .It .Rs .%A S. Josefsson .%Q SJD .%T The Base16, Base32, and Base64 Data Encodings .%I IETF .%N RFC 4648 .%D October 2006 .%U https://tools.ietf.org/html/rfc4648 .Re .El . .Sh CAVEATS .Nm does not support unencrypted connections.