Go to file
Massimiliano Ghilardi 553bd87d0a add minimal support for tty escape sequences ESC[38;5;<COL8BIT>m and ESC[48;5;<COL8BIT>m
Only <COL8BIT> values 0...15 are implemented, as higher values require an 8-bit color palette
while twin is currently limited to a 4-bit color palette.
2023-09-21 20:48:45 +02:00
TODO Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
admin Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
clients client, server: change some variable names to lowercase 2022-10-30 01:05:09 +02:00
conf libs/libtstl: improve error messaged for dlopen() and dlsym() 2022-11-11 19:03:38 +01:00
contrib client, server: change some variable names to lowercase 2022-10-30 01:05:09 +02:00
docs add a screenshot to README.md and to docs/ 2023-06-26 15:11:06 +02:00
fonts version 0.5.2 2007-12-01 20:32:21 +01:00
include fix a typo in include/m4/Tw_common.m4 2022-11-19 12:44:13 +01:00
libs server/tty.cpp: implement escape sequence ESC\ it ends the "set new window title" xterm escape sequence ESC]0; 2023-06-13 21:01:10 +02:00
m4 fix #33: rename identifiers starting with _ 2020-09-05 12:25:49 +02:00
scripts Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
server add minimal support for tty escape sequences ESC[38;5;<COL8BIT>m and ESC[48;5;<COL8BIT>m 2023-09-21 20:48:45 +02:00
test server: remove all remaining C++11 features, compile with -std=c++98 2022-09-27 20:02:37 +02:00
.clang-format server/tty.cpp: fix declaration of TtyWriteAscii and TtyWriteHWAttr 2019-12-27 23:31:12 +01:00
.gitignore server: remove special cases in msg serialization to be sent to clients 2022-09-23 22:58:10 +02:00
BUGS updated BUGS 2016-12-10 16:16:55 +00:00
COPYING version 0.2.6 2002-11-29 01:26:29 +01:00
COPYING.LIB delete discontinued library libTT and demo clients using it. 2022-09-06 19:37:04 +02:00
Changelog.txt rename libs/libTutf -> libs/libtutf 2021-01-02 15:20:16 +01:00
INSTALL remove 'gfx' and 'ggi' drivers 2020-12-30 21:10:22 +01:00
Makefile.am Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
Makefile.in Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
README recreated README and server/missing.c as symlinks 2018-03-25 01:33:25 +01:00
README.git * commented "GlobalFlags +TerminalsUtf8" in distributes system.twinrc 2016-12-13 22:19:27 +01:00
README.md update current version number in README.md 2023-06-26 15:16:56 +02:00
README.porting version 0.8.0 2018-04-18 20:37:10 +02:00
acinclude.m4 improved compiling and loading modules with libtool; various autoconf-related fixes; added autogeneration of include/version.h 2016-12-03 16:45:17 +01:00
aclocal.m4 delete discontinued library libTT and demo clients using it. 2022-09-06 19:37:04 +02:00
configure link libtstl.so against libdl.so, because it calls dlerror() 2023-01-24 22:29:22 +01:00
configure.ac Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
missing_checks libs/libTw: remove hand-optimized i386 assembly 2020-05-17 12:56:26 +02:00
twenvrc.sh Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00
twin-current.lsm update contact information 2019-08-16 18:55:05 +02:00
twinrc Move configuration files to XDG-compliant paths: 2022-10-02 14:46:38 +02:00

README.md

Twin - a Textmode WINdow environment
Twin - a Textmode WINdow environment

Version 0.9.0

Twin is text-based windowing environment with mouse support, window manager, terminal emulator, networked clients and the ability to attach/detach mode displays on-the-fly.

It supports a variety of displays:

  • plain text terminals: Linux console, twin's own terminal emulator, and any termcap/ncurses compatible terminal;
  • X11, where it can be used as a multi-window xterm;
  • itself (you can display a twin on another twin);
  • twdisplay, a general network-transparent display client, used to attach/detach more displays on-the-fly.

Currently, twin is tested on Linux (i386, x86_64, ARM, ARM64, PowerPC, Alpha, Sparc), on Mac OS X (x86_64) and on FreeBSD (i386, x86_64). I had yet no chance to seriously test it on other systems.

The following screenshot shows an example of twin with various clients: screenshot_x11.png

Documentation

Tutorial A quite complete tour of twin features: the user interface, how to use twin clients, compression, attaching/detaching displays, fonts. It also contains installation instructions and some caveats for system administrators.

COPYING License: twin server and clients are GPL'ed software.

COPYING.LIB Library license: the libraries libtutf, libtw are LGPL'ed software.

INSTALL Quick compile/install guide.

twinrc A detailed example of ~/.config/twin/twinrc look-n-feel configuration file.

The following documentation is useful mostly to developers:

Configure Description of twin configuration options with the meaning of every single one.

README.git Hints to build twin from GIT repository.

README.porting Tips and warnings to compile twin on unsupported OSes.

libtw.txt reference API for programmers who want to write twin clients (INCOMPLETE).

libtw++.txt reference API for programmers who want to write twin C++ clients (INCOMPLETE).


Getting twin

Since you are reading this README, you probably already have it, anyway twin can be downloaded from

https://github.com/cosmos72/twin


Building and installing twin

For detailed instructions about compiling and installing twin, see sections 3 and 4 of the file docs/Tutorial

For the impatient, it basically reduces to

  ./configure
  make

then run as root

  make install

on Linux, also remember to run as root:

  ldconfig

on FreeBSD instead, remember to run as root:

  ldconfig -R

To compile twin you need the following programs installed on your system:

  • a Bourne-shell or compatible (for example bash, dash, ash...)

  • make (most variants are supported: GNU make, BSD make...)

  • an ANSI C compiler (for example gcc or clang)

Note: it is STRONGLY recommended to install at least the following packages before compiling twin (the exact names depend on the operating system or Linux distribution):

  • x11-dev - may be named x11-devel, libx11-dev ...
  • xft-dev - may be named xft-devel, libxft-dev ...
  • ncurses-dev - may be named ncurses-devel, libncurses-dev ...
  • zlib-dev - may be named zlib1g-dev, zlib-devel, libzlib-dev ...

On Linux, it is STRONGLY recommended to also install the following package before compiling twin:

  • gpm-dev - may be named gpm-devel, libgpm-dev ...

For a discussion about MANUALLY configuring twin (almost never necessary), see the file docs/Configure. -- WARNING: if you manually enable options that were disabled by `./configure', build will almost certainly fail! --


Other topics:

See the rest of the documentation, starting from the Tutorial

Greetings,

Massimiliano Ghilardi