Serverless and decentralized flat file chatting convention for users on a shared system. Comes w/ base implementation.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

54 lines
4.1 KiB

.TH "gab" 1 "31 MAR 2020" "" "General Operation Manual"
.SH NAME
\fBgab \fP- decentralized system chat
.SH SYNOPSIS
.nf
.fam C
\fBgab\fP [\fIcommand\fP] [\fIvalue\fP]
.fam T
.fi
.SH DESCRIPTION
\fBgab\fP is a decentralized chat program for multiuser systems. Users maintain ownership of their data and can edit or delete it at any time. The gab file format and system layout is intended to be used by any number of client programs. This program, \fBgab\fP, is the base implementation and features: basic asynchronous chatting, channels, user (un)blocking, and both command line and $EDITOR based chat entry.
.SH COMMANDS
Running \fBgab\fP without any arguments is the same as running \fIgab list n\fP (where \fIn\fP is the system default number of posts to show). This makes it easy to get the most recent messages.
.TP
.B
\fB-h, --help, help\fP
Display usage help and exit. Provides a list of all command line options with a short description and exits.
.TP
.B
\fB-m, --msg, msg\fP
If a value is passed then the value is added to your chat log, if no value is provided then your $EDITOR will open up and allow you to type out your message. In the later case every line in the $EDITOR will be a separate message in the chat log, so be careful about spamming.
.TP
.B
\fB-l, --list, list\fP
Display the \fIn\fP most recent messages for the channel you are currently on, where \fIn\fP is an integer value passed along with the list command.
.TP
.B
\fB-b, --block, block\fP
Blocks the user whose name matches the passed value. Blocking a user makes it so none of their messages appear when you use the \fBlist\fP command.
.TP
.B
\fB-u, --unblock, unblock\fP
Removes the user whose name matches the passed value from your blocked users list.
.TP
.B
\fB-c, --channel, channel\fP
Running this command with no further argument will result in the channel list being displayed. When doing so, the channel you are currently in will be marked with an asterisk. To join a different channel, run this command and pass the channel name. If the channel does not exist, it will be created. If the channel name you pass ends in an exclamation point the channel will be private/hidden and will not be visible in the channel list. This can be used to communicate directly with an arbitrary number of users that have been made aware fo the channels existence through other means. The main/default channel is called \fIgab\fP, so \fIgab\fP should be passed as the argument to \fIchannel\fP in order to return to he default channel.
.SH FILES
Gab keeps files in each user's home directory. The file \fI.gab\fP is the default chat log. \fI.gab_block\fP and \fI.gab_chan\fP keep track of your blocked users and current channel respectively. Additionally you will have an arbitrary number of files that represent channel chat logs. These all start with the prefix \fI.gab-\fP and then the channel name.
.PP
Your chat logs are yours and you may edit them (for example to correct spelling or remove something that you no longer feel you want to have said publicly), just be careful to not donk up the format too much. Gab should be resilient regarding improperly formatted files and should not break, but your chat lines may not display properly if the formatting is not correct.
.PP
When a user uses the \fImsg\fP command to add a line, that line is added to their local chat log for the channel they are in. When a user requests to list the recent conversation from a channel all user directories are scanned for a gab file for the channel in question and the chat logs are merged and arranged for output.
.LP
In order to prevent gab from growing continually, chat logs are truncated to be kept at 12k or smaller. This means that eventually gab conversation gets forgotten: by design. It also keeps the listing of messages snappy, resources are not hogged, etc.
.SH BUGS
There are very likely bugs. Known bugs can be found in the issues section of \fBgab\fP's source code repository (see \fIlinks\fP). New bugs can also be logged there.
.SH LINKS
.TP
.B
Source Code Repository
https://git.rawtext.club/sloum/gab2
.SH AUTHORS
\fBgab\fP was originally conceived and developed by sloum. cmccabe and gogoigo have also made valuable additions to the code.