DRAWTERM(1)

πŸ“¦
version 0~git20220608.bee4db6 Β· 3 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

drawterm β€” the client for connecting to cpu, fs, and auth servers, no cap 🫢


🌈 SYNOPSIS 🌈

drawterm [ -GBO ] [ -h host ] [ -u user ] [ -a authserver ] [ -s
secstore ] [ -e 'crypt hash' ] [ -k keypattern ] [ -p ] [ -t timeout ] [
-r root ] [ -g geometry ] [ -c cmd ...]
bestie the synopsis is out here name-dropping -g geometry while the options list below literally never mentions it again. iykyk πŸ’€ not me pointing it out, just saying.

πŸ‘‘ DESCRIPTION πŸ‘‘

okay so Drawterm is a client for connecting venerable systems to Plan 9 systems ✨

The standard behavior, like when you pass zero options, is that it starts a graphical session which will prompt you for a cpu server, an auth server, and a password. And if $USER isn't set? It's gonna prompt you for a username too. girl it needs to know who you are 🌸

The whole goal of drawterm is to provide an abstraction layer from the client operating system over to the Plan 9 system you actually want. Client-side devices that can be represented as filesystems will be β€” and are β€” served from the namespace drawterm operates in. Generally speaking this means drawterm behaves like a Plan 9 kernel and will attempt to reconstruct a Plan 9 terminal-like experience from a non-Plan 9 system. it's giving "cosplay but the costume is a whole kernel" πŸ’…


✨ OPTIONS ✨

here's the whole menu, bestie, nothing skipped:

  • -G β€” start drawterm in text-only mode (no graphics). terminal only, main character energy πŸ”₯
  • -B β€” disable kbdfs. no keyboard filesystem today πŸ™ˆ
  • -O β€” use the old cpu(1) to connect to the cpu server rather than rcpu(1). retro era ⭐
  • -h host β€” connect to host for cpu 🌸
  • -u user β€” remote user id 🫢
  • -a authserver β€” connect to authserver for auth πŸ”
  • -s secstore β€” sets the address of the secstore(8) server. If the -s option is absent, secstore(1) will attempt to dial tcp!$auth!secstore (or the otherwise specified auth server).
  • -e 'crypt hash' β€” specifies the 'crypt hash' for the connection. The default is 'rc4_256 sha1'. Usage of no encryption can be specified by 'clear' as per ssl(3). > 🚨 note: this option is deprecated and only relevant to the outdated cpu(1) protocol.
  • -k keypattern β€” use keypattern to select a key to authenticate to the remote side (see auth(2)).
  • -p β€” protect the connection against connection resets by establishing an aan(8) tunnel πŸ›‘οΈ
  • -t timeout β€” set the timeout for aan(8) to a value in seconds (default is one day). ⏰
  • -r root β€” specifies the root directory on the client. The default is /root and all further paths are relative thereto.
  • -c cmd ... β€” the command to run can be passed with -c cmd ..., otherwise an interactive shell is started. The user's profile is run before the command with $service set to cpu to allow further customization of the environment (see rc(1) for more information).

πŸ¦‹ ENVIRONMENT VARIABLES πŸ¦‹

  • USER β€” unless otherwise specified, the user stored in $USER is used for authentication.
  • PASS β€” if $PASS is set, no password will be prompted for in authentication and the contents of $PASS will be used instead. πŸŽ€
  • cpu β€” unless otherwise specified, the address stored in $cpu is used for the rcpu(1) connection (if set).
  • auth β€” unless otherwise specified, the address stored in $auth is used for the rcpu(1) connection (if set).

🌸 SERVICES 🌸

A number of services are provided in drawterm, bestie. The exact functionality and availability of certain features may be dependent on your platform or architecture πŸ‘€

  • /mnt/term β€” a mount of the client machine's root filesystem as well as certain virtual filesystems, to present Plan 9 devices and interfaces that aren't available on non-Plan 9 systems. On Windows this is a directory containing the available lettered disks (C:, A:, etc.). Additionally, there is always a /mnt/term/root folder which is a copy of the client machine's namespace with no virtual filesystems present, as to avoid conflicting names (such as with Linux's /root). πŸ—‚οΈ
  • #b β€” assuming the -B flag is not set, /dev/kbd will be provided for kbdfs (see kbd(3)).
  • #i β€” assuming the -G flag is not set, various drawing device files will be provided in /dev (see draw(3)). 🎨
  • #m β€” assuming the -G flag is not set, files for controlling the mouse will be provided in /dev (see mouse(3)). πŸ–±οΈ
  • #c β€” a number of console device files giving access to the console screen and miscellaneous information are provided and mounted in /dev (see cons(3)).
  • #I β€” the network filesystem is served and bound over /net, providing the interface to Internet Protocol stacks (see ip(3)). 🌐
  • #A β€” an audio device filesystem is served, if possible, as a one-level directory in /dev (see audio(3)). Note that this device, if unable to be served, will not cause a panic in drawterm. phew 😭

🧚 EXAMPLES 🧚

Make a headless rcpu session connecting to 10.30.167.25 using plan9.postnix.us as the auth server with aan(8) enabled:

drawterm -G -h 10.30.167.25 -a plan9.postnix.us -p

Make a session using cpu rather than rcpu to tenshi.postnix.us; this command is the same for connecting to a Plan 9 4th edition system:

drawterm -O -h tenshi.postnix.us

πŸ’œ SOURCE πŸ’œ

https://git.9front.org/plan9front/drawterm/HEAD/info.html

⭐ SEE ALSO ⭐

rc(1), cpu(1), rcpu(1), con(1), import(4), exportfs(4), tlssrv(8), aan(8)


πŸ’€ BUGS πŸ’€

Drawterm is not a Plan 9 program. that's it. that's the bug. iconic honestly πŸ™ˆ


🌈 HISTORY 🌈

Drawterm was originally developed by Russ Cox (rsc) for Plan 9 4th edition. This original version is still usable on Plan 9 and its forks which use the p9sk1 and older authsrv(6) protocols.

https://swtch.com/drawterm/

The 9front project has forked drawterm to incorporate features from 9front β€” most importantly dp9ik authentication support (see authsrv(6)) and the TLS-based rcpu(1) protocol. slay 🌟


and that's the whole drawterm(1) page, bestie 🫢 it lives in the General Commands Manual, straight out of the 9front drawterm tree β€” the footer's just DRAWTERM(1) with no date on it, so we're keeping it mysterious πŸ’… go connect to something, fr fr πŸ’–