.Dd December 2, 2018 .Dt CATGIRL 1 .Os . .Sh NAME .Nm catgirl .Nd IRC client . .Sh SYNOPSIS .Nm .Op Fl Nv .Op Fl W Ar pass .Op Fl a Ar auth .Op Fl h Ar host .Op Fl j Ar chan .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 W Ar pass Send .Ql WEBIRC command with .Ar pass . See .Sx ENVIRONMENT for details. . .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 l Ar path Log messages to subdirectories by target and files by date under .Ar path . . .It Fl n Ar nick Set nickname to .Ar nick . . .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 .Ql -raw- view. . .It Fl w Ar pass Log in with .Ar pass . .El . .Pp If .Fl h or .Fl n are not provided, they will be prompted for. . .Sh COMMANDS Any unique prefix may be used to abbreviate a command. A slash followed immediately by a number is equivalent to .Ic /view . . .Bl -tag -width Ds .It Ic /close Close the current view. Later views are renumbered. . .It Ic /help Equivalent to .Ic /man . . .It Ic /join Ar chan Join a channel. . .It Ic /man View this manual. . .It Ic /me Ar action Send a CTCP .Ql ACTION to the current target. . .It Ic /names List users in the current channel. Equivalent to .Ic /who . . .It Ic /nick Ar nick Change nicknames. . .It Ic /open Op Ar range .Xr open 1 .Ar range most recent URLs appearing in the current view. .Ar range may be a hypen- or comma-separated range from the most recent URL, starting at 1. The default .Ar range is 1. . .It Ic /open Ar substring .Xr open 1 the most recent URL appearing in the current view matching .Ar substring . . .It Ic /part Leave the current channel. . .It Ic /query Ar nick Open a private message view with .Ar nick . . .It Ic /quit Op Ar message Quit IRC. The default .Ar message is .Dq Goodbye . . .It Ic /raw Op Ar command Toggle the .Ql -raw- view and send the raw IRC .Ar command . . .It Ic /topic Op Ar topic Show the topic of the current channel or set it to .Ar topic . . .It Ic /url Hide the UI and list the most recent URLs which appeared in the current view. Press .Aq Enter to resume the UI. . .It Ic /view Ar num Switch to view number .Ar num . . .It Ic /view Ar name Switch to view for .Ar name . . .It Ic /who List users in the current channel. . .It Ic /whois Ar nick Query information about a user. .El . .Pp Additionally, messages entered in the .Ql -raw- view will be sent as raw IRC commands. . .Sh KEY BINDINGS .Nm provides Emacs-like line editing keys, as well as keys for entering IRC formatting codes. The prefixes .Sy C- , .Sy M- and .Sy S- represent the control, meta and shift modifiers, respectively. Special keys are enclosed in .Aq angle brackets . . .Ss View Keys .Bl -tag -width .It Sy C-l Redraw the UI. . .It Sy M-m Insert a blank line in the view. . .It Sy M-0 .. Sy M-9 Switch to view by number. See .Ic /view . . .It Sy S- Ns Aq Sy Left Scroll view up by one line. . .It Sy S- Ns Aq Sy Right Scroll view down by one line. . .It Aq Sy PageUp Scroll view up by half a page. . .It Aq Sy PageDown Scroll view down by half a page. .El . .Ss Line Editing .Bl -tag -width "C-f, " .It Sy C-b , Aq Sy Left Move cursor left. . .It Sy C-f , Aq Sy Right Move cursor right. . .It Sy C-a , Aq Sy Home Move cursor to beginning of line. . .It Sy C-e , Aq Sy End Move cursor to end of line. . .It Sy M-b Move cursor to beginning of word. . .It Sy M-f Move cursor to end of word. . .It Aq Sy Backspace Delete character before cursor. . .It Sy C-d , Aq Sy Delete Delete character under cursor. . .It Sy C-w , Sy M- Ns Aq Sy Backspace Delete word before cursor. . .It Sy M-d Delete word after cursor. . .It Sy C-k Delete line after cursor. . .It Aq Sy Tab Cycle through completions for commands, nicks and channels. . .It Sy M-? ROT13-encode line. .El . .Ss IRC Formatting .Bl -tag -width Ds .It Sy C-n Reset formatting. . .It Sy C-o Toggle bold. Note: this may need to be typed as .Sy C-v C-o . . .It Sy C-t Toggle italic. . .It Sy C-u Toggle underline. . .It Sy C-v Toggle reverse video. Note: this must usually be typed as .Sy C-v C-v . . .It Sy C-r Set or reset color. .El . .Pp To reset color, follow .Sy C-r by a non-digit. To set the foreground color, follow .Sy C-r by one or two digits. To set the foreground and background colors, follow .Sy C-r by one or two digits, a comma, and one or two digits. . .Pp The colors are as follows: .Pp .Bl -tag -width Ds -compact .It 0 white .It 1 black .It 2 blue .It 3 green .It 4 red .It 5 brown (dark red) .It 6 magenta .It 7 orange (dark yellow) .It 8 yellow .It 9 light green .It 10 cyan .It 11 light cyan .It 12 light blue .It 13 pink (light magenta) .It 14 gray .It 15 light gray .El . .Sh ENVIRONMENT .Bl -tag -width SSH_CLIENT .It Ev SSH_CLIENT If .Fl W is passed and .Ev SSH_CLIENT is set, the .Ql WEBIRC command is used to set the hostname to the first word of .Ev SSH_CLIENT , usually the client IP address. .El . .Sh EXAMPLES .Dl catgirl -h ascii.town -j '&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.