diff --git a/README b/README index b744df8..6a14ed2 100644 --- a/README +++ b/README @@ -7,29 +7,40 @@ DESCRIPTION catgirl is a curses IRC client originally intended for use over anonymous SSH. - It requires LibreSSL and targets FreeBSD, NetBSD and Darwin. + It requires LibreSSL (-ltls) and targets FreeBSD, Darwin, NetBSD. + + Build + On platforms other than FreeBSD, copy the appropriate file to config.mk + and modify as needed. The default install PREFIX is ~/.local. + + cp $(uname).mk config.mk + make + make install FILES - chat.h Shared state and function prototypes - chat.c Command line parsing - event.c Event loop and process spawning - tag.c Tag (channel, query) ID assignment - handle.c Incoming command handling - input.c Input command handling + chat.h shared state and function prototypes + chat.c command line parsing + event.c event loop and process spawning + tag.c tag (channel, query) ID assignment + handle.c incoming command handling + input.c input command handling irc.c TLS client connection format.c IRC formatting - ui.c Curses UI - term.c Terminal features unsupported by curses - edit.c Line editing - tab.c Tab-complete + ui.c cursed UI + term.c terminal features unsupported by curses + edit.c line editing + tab.c tab-complete url.c URL detection - pls.c Functions which should not have to be written - sandman.m Utility for Darwin to signal sleep + pls.c functions which should not have to be written + sandman.m utility for Darwin to signal sleep - sshd_config Anonymous SSH configuration + sshd_config anonymous SSH configuration man.sh man(1) implementation for chroot SEE ALSO catgirl(1), sandman(1) +BUGS + The UI is currently broken with NetBSD's curses implementation. + Causal Agency December 2, 2018 Causal Agency diff --git a/catgirl.1 b/catgirl.1 index 55220a1..3c17bc7 100644 --- a/catgirl.1 +++ b/catgirl.1 @@ -1,6 +1,6 @@ -.Dd November 27, 2018 +.Dd December 2, 2018 .Dt CATGIRL 1 -.Os "Causal Agency" +.Os . .Sh NAME .Nm catgirl @@ -20,13 +20,12 @@ . .Sh DESCRIPTION .Nm -is a curses IRC client -which only supports TLS. +is a curses, TLS-only IRC client. . .Pp The arguments are as follows: . -.Bl -tag -width Ds +.Bl -tag -width "-w pass" .It Fl N Send notifications with .Xr notify-send 1 . @@ -90,17 +89,16 @@ are not provided, they will be prompted for. . .Sh COMMANDS -Commands may be entered -as their shortest unique prefix. +Any unique prefix +may be used to abbreviate a command. A slash followed immediately by a number is equivalent to .Ic /view . . -.Bl -tag +.Bl -tag -width Ds .It Ic /close Close the current view. -All views after the current one -are renumbered. +Later views are renumbered. . .It Ic /help Equivalent to @@ -126,12 +124,10 @@ Equivalent to Change nicknames. . .It Ic /open Op Ar range -Open +.Xr open 1 .Ar range most recent URLs -appearing in the current view -with -.Xr open 1 . +appearing in the current view. .Ar range may be a hypen- or comma-separated range from the most recent URL, @@ -141,12 +137,11 @@ The default is 1. . .It Ic /open Ar substring -Open the most recent URL +.Xr open 1 +the most recent URL appearing in the current view matching -.Ar substring -with -.Xr open 1 . +.Ar substring . . .It Ic /part Leave the current channel. @@ -169,7 +164,7 @@ or set it to . .It Ic /url Hide the UI and -list the most recent URLS +list the most recent URLs which appeared in the current view. Press .Aq Enter @@ -203,116 +198,126 @@ 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 -.It Aq C-l +.Bl -tag -width +.It Sy C-l Redraw the UI. . -.It Aq M-m +.It Sy M-m Insert a blank line in the view. . -.It Ao M-0 Ac ... Ao M-9 Ac +.It Sy M-0 .. Sy M-9 Switch to view by number. See .Ic /view . . -.It Aq S-Left +.It Sy S- Ns Aq Sy Left Scroll view up by one line. . -.It Aq S-Right +.It Sy S- Ns Aq Sy Right Scroll view down by one line. . -.It Aq PageUp +.It Aq Sy PageUp Scroll view up by half a page. . -.It Aq PageDown +.It Aq Sy PageDown Scroll view down by half a page. .El . .Ss Line Editing -.Bl -tag -.It Ao C-b Ac Ao Left Ac +.Bl -tag -width "C-f, " +.It Sy C-b , Aq Sy Left Move cursor left. . -.It Ao C-f Ac Ao Right Ac +.It Sy C-f , Aq Sy Right Move cursor right. . -.It Ao C-a Ac Ao Home Ac +.It Sy C-a , Aq Sy Home Move cursor to beginning of line. . -.It Ao C-e Ac Ao End Ac +.It Sy C-e , Aq Sy End Move cursor to end of line. . -.It Aq M-b +.It Sy M-b Move cursor to beginning of word. . -.It Aq M-f +.It Sy M-f Move cursor to end of word. . -.It Aq Backspace +.It Aq Sy Backspace Delete character before cursor. . -.It Ao C-d Ac Ao Delete Ac +.It Sy C-d , Aq Sy Delete Delete character under cursor. . -.It Ao C-w Ac Ao M-Backspace Ac +.It Sy C-w , Sy M- Ns Aq Sy Backspace Delete word before cursor. . -.It Aq M-d +.It Sy M-d Delete word after cursor. . -.It Aq C-k +.It Sy C-k Delete line after cursor. . -.It Aq Tab +.It Aq Sy Tab Cycle through completions for commands, nicks and channels. .El . .Ss IRC Formatting -.Bl -tag -.It Aq C-n +.Bl -tag -width Ds +.It Sy C-n Reset formatting. . -.It Aq C-o +.It Sy C-o Toggle bold. Note: this may need to be typed as -.Aq C-v C-o . +.Sy C-v C-o . . -.It Aq C-t +.It Sy C-t Toggle italic. . -.It Aq C-u +.It Sy C-u Toggle underline. . -.It Aq C-v +.It Sy C-v Toggle reverse video. Note: this must usually be typed as -.Aq C-v C-v . +.Sy C-v C-v . . -.It Aq C-r +.It Sy C-r Set or reset color. .El . .Pp To reset color, follow -.Aq C-r +.Sy C-r by a non-digit. To set the foreground color, follow -.Aq C-r +.Sy C-r by one or two digits. To set the foreground and background colors, follow -.Aq C-r +.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 @@ -349,7 +354,7 @@ light gray .El . .Sh ENVIRONMENT -.Bl -tag +.Bl -tag -width SSH_CLIENT .It Ev SSH_CLIENT If .Fl W @@ -366,7 +371,7 @@ usually the client IP address. .El . .Sh EXAMPLES -.Dl catgirl -h ascii.town -j '&catgirl' +.Dl catgirl -h ascii.town -j '&town' . .Sh STANDARDS .Rs diff --git a/catgirl.7 b/catgirl.7 index 6f73a86..4151b80 100644 --- a/catgirl.7 +++ b/catgirl.7 @@ -14,49 +14,68 @@ use over anonymous SSH. . .Pp It requires LibreSSL +.Pq Fl ltls and targets .Fx , -.Nx -and Darwin. +Darwin, +.Nx . +. +.Ss Build +On platforms other than +.Fx , +copy the appropriate file to +.Pa config.mk +and modify as needed. +The default install +.Ev PREFIX +is +.Pa ~/.local . +. +.Pp +.Bd -literal -offset indent +cp $(uname).mk config.mk +make +make install +.Ed . .Sh FILES .Bl -tag -width sandman.m -compact .It Pa chat.h -Shared state and function prototypes +shared state and function prototypes .It Pa chat.c -Command line parsing +command line parsing .It Pa event.c -Event loop and process spawning +event loop and process spawning .It Pa tag.c -Tag (channel, query) ID assignment +tag (channel, query) ID assignment .It Pa handle.c -Incoming command handling +incoming command handling .It Pa input.c -Input command handling +input command handling .It Pa irc.c TLS client connection .It Pa format.c IRC formatting .It Pa ui.c -Curses UI +cursed UI .It Pa term.c -Terminal features unsupported by curses +terminal features unsupported by curses .It Pa edit.c -Line editing +line editing .It Pa tab.c -Tab-complete +tab-complete .It Pa url.c URL detection .It Pa pls.c -Functions which should not have to be written +functions which should not have to be written .It Pa sandman.m -Utility for Darwin to signal sleep +utility for Darwin to signal sleep .El . .Pp .Bl -tag -width sshd_config -compact .It Pa sshd_config -Anonymous SSH configuration +anonymous SSH configuration .It Pa man.sh .Xr man 1 implementation for chroot @@ -65,3 +84,8 @@ implementation for chroot .Sh SEE ALSO .Xr catgirl 1 , .Xr sandman 1 +. +.Sh BUGS +The UI is currently broken with +.Nx Ap s +curses implementation. diff --git a/sandman.1 b/sandman.1 index 1cd0583..0f6606b 100644 --- a/sandman.1 +++ b/sandman.1 @@ -1,6 +1,6 @@ -.Dd November 30, 2018 +.Dd December 2, 2018 .Dt SANDMAN 1 -.Os "Causal Agency" +.Os . .Sh NAME .Nm sandman @@ -13,16 +13,15 @@ .Sh DESCRIPTION .Nm is a utility for Darwin systems. -.Nm -runs the +It runs the .Ar command -in a child process +as a child process and sends it .Dv SIGTSTP and .Dv SIGCONT signals -when the computer goes to sleep +when the system goes to sleep and wakes from sleep, respectively. .