When I run some commands in Terminal, or even in Command shell, they are often interrupted when input is requested.
A scenario I had yesterday installing Docker on my Leaf Webmin was that I run the zypper commands but it would not execute the installation until I added a non interactive switch to zypper.
An interactive terminal is an entirely different problem from running commands non-interactively. I mean, look at how much code is in, e.g. gnome-terminal. So far, none of us have been able to invest the weeks (at least) of time to implementing an interactive terminal.
Edit: To be clear, the thing you’re talking about is not a terminal and doesn’t claim to be.
Thats ok… I see something called Terminal and I assume it is a Terminal. That kinda sums up my impression, as long as I know that a Webmin Terminal is not the same as a OS Terminal and that there are limitations
The module’s biggest limitation is that interactive commands like vi, passwd and telnet cannot be run. There is no support for providing input to a command once it has started, so you are limited to non-interactive programs like cp, ls and rm.
So I guess I did not read that.
Here is the Terminal icon in the middle, and it hovers “Terminal”
Yeah, it should be called Command Shell or something similar…because it is calling the command shell functions to run things. I’m pretty sure it used to be labeled that…not sure why/when it changed, but it’s misleading to call it a terminal when people expect a modern “terminal” to be interactive.
Actually, Command Shell, despite the clarification on the wiki, is also not a very good name, I mean, what do you command? It’s kinda like a CMD in Windows, if you dont run it as Admin there are things you can’t do, and it says so in different ways, each and every time you try…
In any case some explanatory text INSIDE the UI, would certainly not be a bad idea… if there is room for it.
Not without WebSockets in the webserver (miniserv.pl), which is a huge undertaking. Or, spinning up an additional web server just for the purpose, which has security implications and is also complex (the old AJAX term in Webmin does this).
Edit: There’s a long ticket about this on github, though I can’t find it at the moment. It’s on our radar, we’ve hashed out what needs to happen, but nobody’s got the time to do it, so far.
To be perfectly honest I dont have a clue about the “programmatic challenges”, but maybe you could look at Cockpits Terminal? It works as far as I know…
That doesn’t solve missing WebSockets in miniserv.pl, or the need to spin up a new web server that does support WebSockers for each instance of the terminal. There are several existing web terminal implementations, mostly using term.js as the frontend. What’s missing is the backend. It’s on our radar, we’ve hashed out what needs to happen, we just don’t have time available to do it, so far.