Integrated Terminal #133

Closed
pgrm opened this Issue Jun 27, 2016 · 13 comments

Projects

None yet

3 participants

@pgrm
pgrm commented Jun 27, 2016

Hi, I assume at the moment alm works great locally or if you have SSH access to the server where you run it.

Did you think about making it available via docker or similar? In that case it would be harder for people to get SSH access and instead they could use some shell window in the browser UI.

I understand that there are many more points which need to be addressed if people would want to use alm that way. But from my point of view, this is a blocker before deploying on a server where users could access it just via http.

I was even thinking about making a sandstorm package out of this, but I'm not yet sure how straight forward it's going to be due to the network limitations in sandstorm applications.

What do you think? Cheers, Peter

@basarat
Member
basarat commented Jun 27, 2016

From https://basarat.gitbooks.io/alm/content/config/command-line.html

If you want to host the server publicly here are few more options that are helpful (again completely optional)

There is stuff in there for https + auth. Which should allow you to host publicly if you want to 🌹

Let me know if I've missed the point though :)

@basarat basarat closed this Jun 27, 2016
@pgrm
pgrm commented Jun 27, 2016

I've seen that, but maybe I didn't understand it.

My point is - when it's running online - how do I access the bash on that docker container or VM or wherever it's running, without having SSH. Cloud 9 and other online editors expose a terminal window of sorts where you basically have a bash which is executed against a VM bash

@basarat basarat reopened this Jun 27, 2016
@basarat basarat changed the title from Add shell window to alm to Integrated Terminal Jun 27, 2016
@basarat
Member
basarat commented Jun 27, 2016

Got it. You want an integrated terminal. That's not present at the moment.

@basarat basarat added the wishlist label Jun 30, 2016
@stubailo

Is that something we could send a PR for? Just discovered this project, it's spectacular.

@basarat basarat self-assigned this Jul 22, 2016
@basarat basarat removed the wishlist label Jul 22, 2016
@basarat basarat removed their assignment Jul 22, 2016
@basarat
Member
basarat commented Jul 22, 2016

Just discovered this project, it's spectacular.

Awww 💯 x🌹.

Is that something we could send a PR for

Adding a single terminal will not be that hard (best to register it as a tab type though). The plan is to use xterm (https://github.com/sourcelair/xterm.js/). That is what vscode uses as well. The demo is here : https://github.com/sourcelair/xterm.js/tree/master/demo but I haven't run it yet. If you want wait for me to get to it (eventually).

The main thing that's holding me back is that my current priority is to allow people to npm install electron-prebuilt -g and then when they do alm -o we check if user has electron and launch the app in electron instead of opening the browser like we do right now. I haven't seen this done out there in the wild yet ... which means I have to write the code for it :)

@stubailo Currently are you using remotely or on the same machine?

@stubailo
stubailo commented Jul 22, 2016 edited

I'm using it remotely and from a Chromebook, so the electron thing doesn't help at all.

I'm trying out a cloud dev environment with this and terminal.com, just for special cases when I'm away from my main computer. Right now I can just open two windows, one with the terminal and one with the editor. But it would be cool to just have one window.

@basarat
Member
basarat commented Jul 22, 2016

I'm using it remotely and from a Chromebook, so the electron thing doesn't help at all.

Awesome. Then I'll prioritize it over the other thing.

@basarat basarat self-assigned this Jul 22, 2016
@basarat basarat referenced this issue Jul 22, 2016
Closed

Terminal #151

@basarat
Member
basarat commented Jul 22, 2016

Hit a blocker. I'm very cautious about adding anything that might force people to have a working node-gyp toolchain as I just want them to have node and nothing else (no need to setup C / Python dependencies). Sadly the work out there needs it.

The way xterm.js talks to the backend right now is through pty.js : https://github.com/sourcelair/xterm.js/blob/master/demo/app.js#L5 and VSCode is using their own version : https://github.com/Microsoft/vscode/blob/c84ecd7867f28a1a96f7049e759e4332692c9397/package.json#L27 which points to a library (https://github.com/Tyriar/pty.js/) that:

node-gyp is not a problem for vscode as they ship binaries for each platform, we don't.

@basarat
Member
basarat commented Jul 22, 2016

Other terminal emulators (all electron apps) out there are black-screen (also uses pty.js just with nan updated https://github.com/shockone/black-screen/blob/bc4548769ace3c3256c46b7490f550ed24a1f675/package.json#L38) and the new kid on the block hyperterm which uses child_pty : https://github.com/zeit/hyperterm/blob/5fcf250c04252628d6f25c4648ce9d42d3691e53/package.json#L9

So I'll try https://www.npmjs.com/package/child_pty 🌹 Unblocked ❤️

@stubailo

What's wrong with gyp? Can't we use something like node pre gyp to distribute builds? Or perhaps we just don't want to take on the burden of compiling things for people, which I would totally understand.

@basarat
Member
basarat commented Jul 22, 2016 edited

Or perhaps we just don't want to take on the burden of compiling things for people,

That too. Also we want the contribution curve to be just as light as the end user usage curve. If someone can use the IDE, they should find it intuitive to contribute to the IDE. Hence all the love we put here : https://basarat.gitbooks.io/alm/content/contributing/ 🌹

Fresh Research

Looking for a non lib.so solution https://github.com/JetBrains/jediterm/blob/master/README.md

@basarat basarat removed their assignment Sep 21, 2016
@basarat
Member
basarat commented Sep 21, 2016

Closing till a non node-gyp solution for pty appears 🌹

@basarat basarat closed this Sep 21, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment