ddat interop with dat js cable interop with cabal js ddat's frontend = dat-thang cable fe = cable-thang dillo support based on cel's dillo-dat bootstrap node xplatform support Signed-off-by: divo <418@cryspace.space>
125 lines
4.3 KiB
Groff
125 lines
4.3 KiB
Groff
.TH CABLE-THANG 1 "October 2026" "cable-thang" "User Commands"
|
|
.SH NAME
|
|
cable-thang \- SDL2 Cable room chat client
|
|
.SH SYNOPSIS
|
|
.B cable-thang
|
|
.RB [ cable-address ]
|
|
.RB [ --offline ]
|
|
.br
|
|
.B cable-thang --help
|
|
.SH DESCRIPTION
|
|
.B cable-thang
|
|
is the C and SDL2 room chat client. Create a new room address in the terminal
|
|
with
|
|
.BR cable --new ,
|
|
then launch the client with the printed address as its positional argument:
|
|
.B cable-thang cable://address .
|
|
Launching
|
|
.B cable-thang
|
|
without an address opens its SDL room window; choose CREATE ROOM to create and
|
|
enter a new room, or paste a
|
|
.B cable://
|
|
or
|
|
.B cabal://
|
|
room address there and press Enter to join it.
|
|
Cesspool handles discovery and authenticated peer transport, Sleep stores
|
|
persistent local feeds, and S7 constructs room records as S-expressions. Its
|
|
fixed-cell, terminal-style layout
|
|
shows joined channels, room messages, local nickname, room address, and
|
|
authenticated peers. It joins a room by address.
|
|
.PP
|
|
Click PLAY AUDIO to start sending live room audio; the button changes to STOP
|
|
AUDIO while active. Ctrl+Shift+A toggles the same control. The first media
|
|
path captures the default microphone and sends 96 kbps AAC-LC. Incoming audio
|
|
is decoded and played in the live waveform panel. Media packets are relayed
|
|
through Cable peers without being appended to chat history or Dat archives.
|
|
See the cable-live-streaming document for the packet and storage boundary.
|
|
.PP
|
|
Click PLAY VIDEO to start sending the local OBS MPEG-TS input at
|
|
udp://127.0.0.1:5000; the button changes to STOP VIDEO while active. Ctrl+Shift+V
|
|
toggles the same control. Configure OBS Custom
|
|
FFmpeg Output with MPEG-TS, libx264, and that UDP URL. This previews the local
|
|
source and sends 160x90 JPEG frames to authenticated room peers over Cesspool.
|
|
.PP
|
|
Room creation stores the room signing key and local user's persistent key in
|
|
.IR ~/.cable/rooms/<room-key>/ .
|
|
The room address is the same 32-byte key rendered as
|
|
.BR cable:// .
|
|
Joined channels and the local nickname are stored in the room's profile.
|
|
.PP
|
|
Without a configured Cesspool rendezvous, the room broadcasts discovery on
|
|
the local network automatically and shows LAN DISCOVERY. Messages are kept
|
|
in the local chat until a peer connects. Local network broadcasts do not cross
|
|
routers. For discovery over the Internet, a reachable Cesspool rendezvous node
|
|
is required; configure one with
|
|
.B cable bootstrap add host:port
|
|
or set
|
|
.BR CABLE_BOOTSTRAP .
|
|
If the local UDP network setup itself fails, the SDL2 client still opens and
|
|
reports the error in its status line. Use
|
|
.B --offline
|
|
to deliberately skip network startup.
|
|
.PP
|
|
The production client is C and S7. Dat archives and Cable rooms both use
|
|
Cesspool, with separate topics and record formats. Cabal CLI and Hypercore
|
|
interoperability helpers remain under the test tree and are not launched or
|
|
packaged by the production client.
|
|
.SH COMMANDS
|
|
.TP
|
|
.B /join \fIname\fR
|
|
Join or create a channel and announce the channel to connected Cable peers.
|
|
.TP
|
|
.B /nick \fIname\fR
|
|
Change the local nickname and announce it to connected Cable peers.
|
|
.TP
|
|
.B /channels
|
|
Show the number of joined channels in the status line.
|
|
.TP
|
|
.B /help
|
|
Show the available commands and key bindings in the status line.
|
|
.SH KEY BINDINGS
|
|
.TP
|
|
.B Ctrl+N
|
|
Select the next joined channel.
|
|
.TP
|
|
.B Ctrl+P
|
|
Select the previous joined channel.
|
|
.TP
|
|
.B Ctrl+C
|
|
Copy the room address to the clipboard.
|
|
.TP
|
|
.B Enter
|
|
Send a message to connected room peers, or execute a slash command.
|
|
.TP
|
|
.B Escape
|
|
Close the client.
|
|
.SH ENVIRONMENT
|
|
.TP
|
|
.B DDAT_BOOTSTRAP
|
|
Comma- or semicolon-separated Cesspool rendezvous endpoints shared by Dat and
|
|
Cable clients.
|
|
.TP
|
|
.B CABLE_BOOTSTRAP
|
|
Comma- or semicolon-separated Cesspool rendezvous endpoints in host:port form.
|
|
.TP
|
|
.B DDAT_PORT
|
|
Local UDP listening port for Dat archive Cesspool discovery.
|
|
.TP
|
|
.B cable bootstrap add host:port
|
|
Persist a Cesspool rendezvous endpoint in
|
|
.IR ~/.config/dat-gpt/bootstrap .
|
|
Use cable bootstrap list to inspect the shared Dat/Cable list.
|
|
.TP
|
|
.B cable bootstrap serve host port
|
|
Run a Cesspool rendezvous node in the foreground. It must be reachable over
|
|
UDP at the advertised IPv4 address and port.
|
|
.SH EXAMPLES
|
|
.nf
|
|
cable --new
|
|
cable-thang cabal://0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
|
|
cable-thang cable://0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef --offline
|
|
.fi
|
|
.SH SEE ALSO
|
|
.BR cabal-cli (1),
|
|
.BR cable (1)
|