Deutsch   English   Français   Italiano  
<mailman.15.1716045388.2909.python-list@python.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!feeds.phibee-telecom.net!news.mixmin.net!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From: "Peter J. Holzer" <hjp-python@hjp.at>
Newsgroups: comp.lang.python
Subject: Re: Terminal Emulator
Date: Sat, 18 May 2024 17:08:43 +0200
Lines: 81
Message-ID: <mailman.15.1716045388.2909.python-list@python.org>
References: <fqN0O.38287$ZZU.19060@fx07.ams4>
 <ed059dd7-6b3e-48c9-9a0d-89f15c5739a2@yahoo.co.uk>
 <4Vf6jx1MWJznVGB@mail.python.org>
 <20240518150843.knm67o3uhpcdr4dz@hjp.at>
Mime-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature"; boundary="jrt2la52cu3cb7wf"
X-Trace: news.uni-berlin.de NbbEot18ZERmjK/ckZlNww9T6DH7JdVaAoliQs3HSjxA==
Cancel-Lock: sha1:nMO/5MC3oZORAo7yU6AdKUHAnEQ= sha256:8rT5NAQUGhIQmmr/JixRHDWEo+uEW/S8x9CJ6QkpRfI=
Return-Path: <hjp-python@hjp.at>
X-Original-To: python-list@python.org
Delivered-To: python-list@mail.python.org
Authentication-Results: mail.python.org; dkim=none reason="no signature";
 dkim-adsp=none (unprotected policy); dkim-atps=neutral
X-Spam-Status: OK 0.001
X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'content-
 type:multipart/signed': 0.05; 'fairly': 0.05; 'e.g.': 0.07;
 'python.': 0.08; 'ansi': 0.09; 'content-type:application/pgp-
 signature': 0.09; 'filename:fname piece:asc': 0.09;
 'filename:fname piece:signature': 0.09;
 'filename:fname:signature.asc': 0.09; 'terminal': 0.09; 'that.':
 0.15; '"creative': 0.16; '__/': 0.16; 'challenge!"': 0.16;
 'database.': 0.16; 'from:addr:hjp-python': 0.16;
 'from:addr:hjp.at': 0.16; 'from:name:peter j. holzer': 0.16;
 'gauld': 0.16; 'hjp@hjp.at': 0.16; 'holzer': 0.16; 'idea.': 0.16;
 'reality.': 0.16; 'right.': 0.16; 'stross,': 0.16; 'subset': 0.16;
 'terminals': 0.16; 'url-ip:212.17.106/24': 0.16; 'url-
 ip:212.17/16': 0.16; 'url-ip:75/8': 0.16; 'url:hjp': 0.16;
 '|_|_)': 0.16; 'wrote:': 0.16; 'python': 0.16; 'grant': 0.17;
 'probably': 0.17; "aren't": 0.19; 'to:addr:python-list': 0.20;
 "i'd": 0.24; 'idea': 0.24; 'anything': 0.25; 'expect': 0.28;
 'sense': 0.28; 'putting': 0.31; 'python-list': 0.32; 'but': 0.32;
 'there': 0.33; 'use,': 0.33; 'header:In-Reply-To:1': 0.34;
 'display': 0.36; 'really': 0.37; 'could': 0.38; 'means': 0.38;
 'quite': 0.39; 'text': 0.39; 'use': 0.39; 'break': 0.39; 'decide':
 0.39; 'alan': 0.40; 'something': 0.40; 'want': 0.40; 'try': 0.40;
 'sharing': 0.60; 'provide': 0.60; 'apps': 0.62; 'received:212':
 0.62; 'true': 0.63; 'browser': 0.64; 'your': 0.64; 'url-ip:198/8':
 0.65; 'well': 0.65; 'wish': 0.66; 'received:userid': 0.66; '[1]':
 0.67; 'url:index': 0.68; 'url-ip:212/8': 0.69; 'ignore': 0.71;
 "you'll": 0.73; 'life': 0.77; 'easier,': 0.84; 'received:at':
 0.84; 'exists': 0.91
Mail-Followup-To: python-list@python.org
Content-Disposition: inline
In-Reply-To: <4Vf6jx1MWJznVGB@mail.python.org>
X-BeenThere: python-list@python.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: General discussion list for the Python programming language
 <python-list.python.org>
List-Unsubscribe: <https://mail.python.org/mailman/options/python-list>,
 <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive: <https://mail.python.org/pipermail/python-list/>
List-Post: <mailto:python-list@python.org>
List-Help: <mailto:python-list-request@python.org?subject=help>
List-Subscribe: <https://mail.python.org/mailman/listinfo/python-list>,
 <mailto:python-list-request@python.org?subject=subscribe>
X-Mailman-Original-Message-ID: <20240518150843.knm67o3uhpcdr4dz@hjp.at>
X-Mailman-Original-References: <fqN0O.38287$ZZU.19060@fx07.ams4>
 <ed059dd7-6b3e-48c9-9a0d-89f15c5739a2@yahoo.co.uk>
 <4Vf6jx1MWJznVGB@mail.python.org>
Bytes: 6972


--jrt2la52cu3cb7wf
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2024-05-14 16:03:33 -0400, Grant Edwards via Python-list wrote:
> On 2024-05-14, Alan Gauld via Python-list <python-list@python.org> wrote:
> > On 14/05/2024 18:44, Gordinator via Python-list wrote:
> >
> >> I wish to write a terminal emulator in Python. I am a fairly
> >> competent Python user, and I wish to try a new project idea. What
> >> references can I use when writing my terminal emulator? I wish for
> >> it to be a true terminal emulator as well, not just a Tk text
> >> widget or something like that.
> >
> > The first thing is to decide which terminal.
>=20
> If you want to make life easier, make it a superset of a terminal that
> already exists in the terminfo database.
>=20
> Going with some sort of ANSI terminal will probably provide
> operability even with dumb apps which ignore $TERM and just spit out
> basic ANSI escape sequences.

And if you want to go for a superset, xterm might be one of the more
useful: https://www.xfree86.org/current/ctlseqs.html

> If you really want to break trail, you could invent your own control
> sequences, which means you'll have to write terminfo and/or termcap
> entries as well as the terminal emulator.

Right. A saner model than ANSI and its supersets might be a good idea
conceptionally. But I'd expect quite a few programs to break.


> > A VT100 is very different from a 3270. And even a VT330 is quite
> > different from a VT100 although sharing a common subset of control
> > codes. And if you start looking at graphical terminals things get
> > even more interesting!
>=20
> "Intersting" is putting it mildly...

Yup. Also there aren't many programs which use, e.g. xterm's
pixel-graphics capabilities.

OTOH, there is something like domterm[1], which can (theoretically)
display anything a browser can display.

        hp


[1] https://domterm.org/index.html

--=20
   _  | Peter J. Holzer    | Story must make more sense than reality.
|_|_) |                    |
| |   | hjp@hjp.at         |    -- Charles Stross, "Creative writing
__/   | http://www.hjp.at/ |       challenge!"

--jrt2la52cu3cb7wf
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEETtJbRjyPwVTYGJ5k8g5IURL+KF0FAmZIxHYACgkQ8g5IURL+
KF0IXBAAoQFTpO6zc9CUgW9Y3wWpzyrQeSV1HlsVu8XnfMbIQV/8oUxzVzDZN0pA
r9nKVvgvPoFinDZAZllmhkvQD4OfpVtjQyt9Wwo57XjQrL/KFPBe7k6JI0owmZ6T
ZWwV5vLKjEBSGUkVsHm+t8uoV0ANgnUXZraKY/72BksefxeubnSg42SzmDBZMHrw
xxUOlHNmgbHvsYQACdA/EIQIimL+czAXRnN6JcbHoMYTJb6oBLnIPtUUQMGJsEev
gjnRWPpdqM6lPJdvsahkUrhuPtsNMncWYG5BxWQw6atcV0+7Yat4n8uKh9ZGKqPq
lVzXSwsHgRCFFz+PCkSl8dJKmhttlKZOrqa6ApmfJSnrEMbevaVcRrIeO59ObtM4
S9zx7vFJRgc0mRm33Pa/I8/5DY48vB+qukBubOmHPC6tgMbrea7M45/Zsw031Y/1
mOeaG5IFhCJ4hTnCmXmSPoqr01/0QTQk979u7Vq+E7AJSp1vXT6hh/I6VuMGtFFi
YVvnp+BiRmIZLFazw07m5pUsg6cLFMZL5vztQC2354r2Felre3UO2rJV8ZGGbKVT
a6VelL6zDzVAmoaNuASPJwV484A9Pvq001x0YaSV/5CIoNwaMoYACW8yD5UoQzEC
ZLbfhp6VqsP04D+bIGnfVeqlvrcDmsEywVqrk9kAtqrYR3M8OiE=
=4loP
-----END PGP SIGNATURE-----

--jrt2la52cu3cb7wf--