HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
cosmos72
twin
C2018–2026
cosmos72 / twin

twin

Text mode window environment. A terminal emulator and multiplexer with mouse support, overlapped windows and networked clients. Text-mode equivalent of X11 server + VNC server

13Distinct people
18Mentions
1Explicit recommenders
1.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Text mode window environment. A terminal emulator and multiplexer with mouse support, overlapped windows and networked clients. Text-mode equivalent of X11 server + VNC server

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

> If you're seriously considering using this I recommend going to a psychiatrist. This program is so pointless, I even needed a mouse pointer to help me out find a point. the…

em-bee used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year18 dated mentions

Observed mentions: 2018-05-31 15:27:23 UTC to 2026-03-12 21:00:24 UTC.

02468102018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 9 mentions; 1 submissions, 8 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC202
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC000
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC202
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC101
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC918
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

What Hacker News says

18 sources
> It's possible they managed to do some rudimentary multitasking with DESQview (or worse...) and so supported two whole users with each box. Does that mean they had to be at least 386s to do protected mode? Or was it virtual 8086 mode? I (fortunately) have forgotten the finer points of how that stuff used to work. I DO remember how damn crashy a box became when you ran it "under DV". Constant system freezes. Yep. I don't recall DESQview to be all that crashy. I was aware of a number multi-line BBSes that used it (just in the 416). Some BBS software called out its use specifically: * https://www.synchro.net/docs/multnode_config.html * http://software.bbsdocumentary.com/IBM/DOS/OMEGA/ Also, a comment from someone whose uncle co-founded the company Quarterdeck: * https://news.ycombinator.com/item?id=29396561#unv_29400530 Also, also, if anyon
Read the rest
e wants to simulate the old-school DESQview experience, perhaps try out "twin": * https://opensource.com/article/20/1/multiple-consoles-twin * https://github.com/cosmos72/twin
In An old photo of a large BBS (2022)
If we are going to broaden this to Screen and its "TUI" style features, then the most complete effort at a programmable TUI in the Linux space I've seen is `desktop-tui`. https://github.com/Julien-cpsn/desktop-tui It is incomplete but takes what is almost a side aspect of TWIN and runs with it. https://github.com/cosmos72/twin TWIN is nearly 20 now and does quite a lot. It even has a Wikipedia page. https://en.wikipedia.org/wiki/Twin_(windowing_system) It runs on lots more OSes than just Linux.
In The terminal of the future
It looks impressive but it duplicates a tonne of existing functionality from TWIN, which has been around for about 25 years or more. https://github.com/cosmos72/twin https://en.wikipedia.org/wiki/Twin_(windowing_system) And both of them seem to re-implement their own, inferior, versions of the TurboVision text-mode "widget toolkit": https://tvision.sourceforge.net/ https://github.com/magiblot/tvision A merger could result in something greater than the sum of its parts.
In A desktop environment without graphics (tmux-like)
Alas, it's not finished. You've made the mistakes that all of us have made, and haven't caught up with us, must of us having fixed those mistakes, a few years back when implementing 24-bit RGB was in vogue. This is not, as the function name suggests, a colon, but per ITU/IEC T.416 it should be: https://github.com/cosmos72/twin/blob/truecolor/server/hw/hw... And not only should this have colons too, but per ITU/IEC T.416 there's a colour space parameter that goes in there: https://github.com/cosmos72/twin/blob/truecolor/server/hw/hw... The unfortunate part is that when rendering to a terminal, you don't have any available mechanism apart from hand-decoding the family part of the TERM environment variable, and knowing who made which mistakes, to determine which of the 7 possible colour mechanisms are supported. They are: 1. ECMA-48 standa
Read the rest
rd 8 colour, SGRs 30 to 37, 39, 40 to 47, and 49 2. AIXTerm 16 colour, ECMA-48 plus SGRs 90 to 97 and 100 to 107 3. XTerm 256 colour, ITU T.416 done wrongly with SGR 38;5;n and SGR 48;5;n 4. XTerm 256 colour corrected, ITU T.416 done right with SGR 38:5:n and SGR 48:5:n 5. 24-bit colour take 1, ITU T.416 done wrongly with SGR 38;2;r;g;b and SGR 48;2;r;g;b 6. 24-bit colour take 2, ITU T.416 done wrongly with SGR 38:2:r:g:b and SGR 48:2:r:g:b 7. 24-bit colour take 3, ITU T.416 done right with SGR 38:2::r:g:b::: and SGR 48:2::r:g:b::: Few people support 4, and although quite a lot of us have finally got to supporting 7 it isn't quite universal. Egmont Koblinger, I, and others have been spreading the word where we can over the last few years. This is where I was at in 2019: https://github.com/jdebp/nosh/blob/trunk/source/TerminalCapa... There a few updates to that that are going to come out in 1.41, but when it comes to colour they're mainly things like recognizing the "ms-terminal" and "netbsd6" terminal types in the right places.
In Twin – A Textmode WINdow Environment
Author here :) I've been using Twin as my everyday terminal emulator and terminal multiplexer since ~2000, slowly adding features as my free time - and other interests - allowed. As someone pointed out, the look-and-feel reminds Borland Turbo Vision. The reason is simple: I started writing in in the early '90s on DOS with a Borland C compiler, and I used the Borland Turbo Vision look-and-feel as a visual guideline (never actually looked at the code, though). The porting to linux happened in 1999 (it was basically dormant before that), and Unicode support was progressively added around 2015-2016 (initially UCS-2 i.e. only the lowest 64k codepoints, then full UTF-32 internally, with terminal emulator accepting UTF-8). There are still some missing features, most notably: no grapheme clusters, no fullwidth (asian etc.) support, no right-to-le
Read the rest
ft support. Right now I'm adding truecolor support (see https://github.com/cosmos72/twin/tree/truecolor) - it's basically finished, I'm ironing out some remaining bugs, and thinking whether wire compatibility with older versions is worth adding. And yes, documentation has been stalled for a very long time. Retrospectively, I should have switched C -> C++ much earlier: lots of ugly preprocessor macros accumulated over time, and while I rewrote the C widget hierarchy as C++ classes, several warts remain.
In Twin – A Textmode WINdow Environment
It seems to have supported UTF-8 for at least a decade. Although it went the full-on ECMA-35 route of making that an optional switchable character set. There was an issue back in 2016 where, ironically, it was coming up in Latin-1 mode with everything else around it talking UTF-8, and there have been other similar impedance mis-matches over the years. But they seem to hinge on it actually having UTF-8 support. * https://github.com/cosmos72/twin/issues/4 * https://github.com/cosmos72/twin/issues/7 * https://github.com/cosmos72/twin/issues/8 However: There was no 256 colours support as of 2021. * https://github.com/cosmos72/twin/issues/30 And in some places it even required IBM code page 437. * https://github.com/cosmos72/twin/issues/22 And some of the doco seems to have never been incorporated. * https://github.com/cosmos72/twin/issues/1
Read the rest
In Twin – A Textmode WINdow Environment

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.