twin(1)

๐Ÿ“ฆ
version 1.0.0 ยท 2 versions
, in ubuntu resolute, ubuntu stonking

โœจ NAME โœจ

twin โ€” a Textmode WINdow environment ๐Ÿ‘‘ like bestie, that's the whole name, it's giving acronym energy and honestly? iconic.


๐Ÿ“œ SYNTAX ๐Ÿ“œ

twin [OPTION [...]]

that's it. that's the whole vibe. run it, throw some options at it, she'll handle the rest ๐Ÿ’…


๐Ÿ“Œ NOTE ๐Ÿ“Œ

okay so real talk, this manual page uses some parts of /usr/local/share/doc/twin/Tutorial โ€” so if you're noshing on this page and still feel like you're missing lore, go read that file, it's got the further info you need ๐Ÿ“–โœจ


๐ŸŒˆ DESCRIPTION ๐ŸŒˆ

<twin> creates, draws and manages windows inside a text display</twin>, no cap. And here's the tea: it implements in text mode the exact same concepts that X11 does in graphics ๐Ÿซถ like it's literally the text-mode glow-up of the same idea:

  • a. draw on some kind of screen (tipically a computer monitor) ๐Ÿ–ฅ๏ธ
  • b. allow multiple windows to coexist on the same screen, and draw independently on each of them ๐ŸชŸ๐ŸชŸ๐ŸชŸ
  • c. talk to external programs (even on other machines) so that the programs receive keystrokes, mouse movements, etc. and can send back drawing commands ๐Ÿ’ฌ

<twin> runs on the linux console, inside itself, in a twin terminal and on X11</twin>: it creates a window and draws in it, and โ€” important โ€” does not run inside an xterm or similar ๐Ÿ™ˆ It can also run on generic text terminals (ttys) using the termcap/ncurses driver, but bestie, it will work far from optimal ๐Ÿ˜ญ it's giving "technically possible but please don't."


๐ŸŽ€ OPTIONS ๐ŸŽ€

  • -h, --help โ€” display this help and exit ๐Ÿ†˜ like a lil "what do I do" button
  • -V, --version โ€” output version information and exit ๐Ÿท๏ธ
  • -x, --excl โ€” start display as exclusive ๐Ÿ‘‘ only one display, main character energy only
  • --nohw โ€” start in background without display ๐ŸŒ™ no screen, just vibes, running back there
  • --hw=<display>[,options] โ€” start with the given display ๐Ÿ”ฅ and yes, you can pass multiple -hw=... โ€” they're all allowed, stack 'em

Currently known display methods, the whole menu ๐Ÿ’–:

X[@<XDISPLAY>]
xft[@<XDISPLAY>]
twin[@<TWDISPLAY>]
tty[@<tty device>]

๐Ÿ—‚๏ธ FILES ๐Ÿ—‚๏ธ

  • ~/twinrc โ€” configuration file for the Twin user interface ๐ŸŽ€ your personal settings, your personal slay
  • ~/.TwinAuth โ€” holds some magic data that clients use to answer the challenge received from twin ๐Ÿ”ฎ See the Security section, it matters, don't skip it

๐ŸŒธ ENVIRONMENT VARIABLES ๐ŸŒธ

  • TWDISPLAY โ€” Specifies the Twin server to be used. Twin can create a window on another twin server and use it as display ๐Ÿฆ‹ twin inside twin, it's giving inception
  • DISPLAY โ€” Specifies the X11 server to be used. Twin can create a window on an X11 server and use it as display ๐ŸŒˆ

๐Ÿ” SECURITY ๐Ÿ”

okay bestie sit down for this one because this part is important ๐Ÿซฃ

The authorization method currently used vaguely resembles Xauthority: the file .TwinAuth in your home directory holds some magic data that clients use to answer the challenge received from twin ๐Ÿ”ฎ If that data is wrong or the file doesn't exist, clients can connect to twin only using the unix socket (TWDISPLAY=:<something>) so they must run on the same machine as twin โ€” remote programs won't be able to connect ๐Ÿšซ Also, the unix socket is set to permissions 600, so only the owner can connect to it (at least on Linux it works this way) ๐Ÿ”’

The challenge is actually an MD5 checksum verification: server sends 256 bytes of random data; client does MD5 of that data + .TwinAuth and sends MD5 back. If server agrees on MD5, it grants connection. โœ…

This challenge method has an important feature: The contents of your .TwinAuth is NEVER transmitted through any socket ๐Ÿ‘‘ So, unless your home directory resides on an NFS filesystem, you can be sure that noone will be able to find the data contained in your .TwinAuth by spying the network between twin and the clients you start ๐Ÿฅณ

but on the other hand ๐Ÿ˜ญ the connection between twin and clients is NOT encrypted, so it is easy to find out what you type and what you see in the client windows by spying the network as above ๐Ÿ’€ like fr fr, unencrypted, so peek-a-boo, they can see everything.

๐Ÿ’ซ EXAMPLES ๐Ÿ’ซ

run a twin server, and let it try to autodetect the type of display (X11, tty or twin) ๐Ÿงš:

twin

run a twin server, specifying to create an X11 window to use as display ๐ŸŒˆ:

twin --hw=X

๐Ÿ‘‘ AUTHORS ๐Ÿ‘‘

Massimiliano Ghilardi <paperinik@users.sourceforge.net> โ€” ty king ๐Ÿซถ


๐Ÿฆ‹ SEE ALSO ๐Ÿฆ‹

...bestie there is literally nothing else listed here, this section is a whole empty room ๐Ÿ’€ so go read that Tutorial file from the NOTE up top instead, mwah ๐Ÿ˜˜


and that's the whole page!! this manual page is for twin version 0.6.3 ๐ŸŽ€ periodt, go forth and window in text mode, i'm obsessed, bye ๐Ÿ’–โœจ๐Ÿฆ‹

๐Ÿ“ฆ where this page comes from