messede-degod / sf-ui Goto Github PK
View Code? Open in Web Editor NEWA GUI Frontend for services provided by segfault
Home Page: https://shell.segfault.net
License: GNU General Public License v3.0
A GUI Frontend for services provided by segfault
Home Page: https://shell.segfault.net
License: GNU General Public License v3.0
if a user halts a instance when the XPRA GUI was active, XPRA clients tries to reconnect, those attempts would signal sfui to start the instance again.
Terminal becomes unresponsive if not in focus for 60 seconds. I also see in the SF log files that the user's root server session is terminated (ssh exit).
to reproduce: start a SF-UI terminal via port 80. Remove focus from browser. Come back to browser after 61 seconds. Observe that prompt is still blinking (xterm.js?) but no command can be issued and terminal no longer seems to be connected to sf's root server.
Ideally we like to keep the session alive as long as the webpage (terminal) is open (regardless if the terminal has the focus).
Implement flow control recommended by xterm.js, https://xtermjs.org/docs/guides/flowcontrol/
Log in to a session with a terminal open. Pressing "reload" in the browser closes the active root server and a new root server is created.
save memory resources (zsh allocates 8-12 MB RSS for each shell).
set to 80/24 whereas web terminal is various size. This results in htop and other programs not displaying correctly.
typing resize
will set them correctly. That would be a hack. The command uses terminal escape sequence to query the user's terminal (xterm.js). It does not resize automatically when the xterm/browser window is changed (see below how to do that instead).
The web xterm.js should detect the window size change (in C that would be SIGWINCH
-> ioctl(..TIOCGWINSZ)
and then forwarding the new window size to the peer and call ioctl(..TIOCSWINSZ)
).
On the xterm.js side, past the websocket: does it operate on a PTY and so is 'stty rows 50 columns 120' possible and to have a signal handler for size changes?
Don't kill the SSH connection when websocket disconnects. Perhaps wait for a few minutes before killing the connection.
Advantages:
1) Prevents reconnection when a session is accidentally closed.
2) Enables users to switch network connections without losing the session.
Hide the cmdline of any ssh process that sfui starts
After creating new session. A menu bar appears at the top.
" [Terminal 1 x] [+]"
Clicking on "x" currently creates a new SECRET (e.g. a new root server instance). It would be better to log in to the same server instance.
Prompt user to save the secret once a new instance is created, i.e after clicking start new on the login page.
Limit the amount of people who can connect to shared desktop
It would be nice to add some tooltips over the icons to help users to understand their meaning / use without having to click on it.
Something like that:
But in a better way ๐
I've made this from the console but maybe I've guessed the meaning wrongly:
But if that's correct, I can try to make a pull request and add it to the main code.
Run commands like startxweb automatically when a GUI is requested.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.