selectel / pyte

Simple VTXXX-compatible linux terminal emulator
http://pyte.readthedocs.org/
GNU Lesser General Public License v3.0
653 stars 101 forks source link

Cross-check pyte features against GateOne #93

Open superbobry opened 7 years ago

superbobry commented 7 years ago

GateOne is a mature web terminal emulator supporting many more features than pyte. This issue is to check what features exactly pyte is missing to be on par with GateOne.

Wramberg commented 7 years ago

Hey @superbobry sorry for the late reply. Continuing our discussion from https://github.com/Wramberg/TerminalView/issues/13 heres a few notes.

I think the top feature I am missing in my plugin right now which gateone has to offer is 256 colors. It seems you may already support that but if you do I cannot figure out how to use it :-( see https://github.com/selectel/pyte/issues/92

Besides this it seems like TERM=xterm results in some weird sequences being printed. See https://github.com/Wramberg/TerminalView/issues/17 for example. If we could make simple text work with xterm I think that would be a good step. Then pyte would at least support TERM=xterm for basic usage.

I'll drop more notes as I encounter some things I might find useful. Take them as suggestions and let me know what you think and if it is feasible to include in pyte :-)

acroz commented 6 years ago

We are developing a web terminal around pyte, mainly for its ability to maintain screen state on the server side. We found that as we wanted to push generation of control character sequences to the backend (in most web terminals, e.g. xterm.js, it happens in the frontend), that was the main effort that was required. This allowed both input and output from the terminal not to require any detailed knowledge of terminal emulation in javascript.

ralsina commented 3 years ago

One feature GateOne has which would be nice in Pyte is mouse modes so when the app requests mouse support then we can start sending the control sequences from the frontend.

Just sending them inconditionally "works" but if you click on an app that doesn't support mouse (like bash) you get all the control sequences.

The relevant code in GateOne starts from here: https://github.com/liftoff/GateOne/blob/master/terminal/terminal.py#L2040

I am willing to give it a shot in Pyte if you like.