twin(1)
โจ 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 fromtwin๐ฎ 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 inceptionDISPLAYโ 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
- ubuntu resolute: twin 1.0.0-0ubuntu1 ยท GPL-2.0-or-later
- ubuntu stonking: twin 1.0.0-0ubuntu1 ยท GPL-2.0-or-later
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms