Skip to content

Integrated Terminal #133

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
pgrm opened this issue Jun 27, 2016 · 16 comments
Closed

Integrated Terminal #133

pgrm opened this issue Jun 27, 2016 · 16 comments

Comments

@pgrm
Copy link

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
Copy link
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 as completed Jun 27, 2016
@pgrm
Copy link
Author

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 Add shell window to alm Integrated Terminal Jun 27, 2016
@basarat
Copy link
Member

basarat commented Jun 27, 2016

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

@stubailo
Copy link

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
Copy link
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
Copy link

stubailo commented Jul 22, 2016

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
Copy link
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 mentioned this issue Jul 22, 2016
@basarat
Copy link
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
Copy link
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 ❤️

@basarat
Copy link
Member

basarat commented Jul 22, 2016

@stubailo
Copy link

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
Copy link
Member

basarat commented Jul 22, 2016

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

IntelliJ https://github.com/JetBrains/jediterm/blob/master/README.md uses pty4j https://github.com/traff/pty4j

@basarat basarat removed their assignment Sep 21, 2016
@basarat
Copy link
Member

basarat commented Sep 21, 2016

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

@basarat
Copy link
Member

basarat commented Mar 16, 2017

and from a Chromebook

Quick question: Is alm server running on the chromebook too? If so, is this the only IDE for TypeScript on a chromebook?

@stubailo
Copy link

No - I am running the server remotely and typing into the editor on a chromebook :]

@stubailo
Copy link

The answer to your question is still yes, though!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants