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

Integrated Terminal #133

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

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jun 27, 2016

Member

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 :)

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

This comment has been minimized.

Show comment
Hide comment
@pgrm

pgrm 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

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jun 27, 2016

Member

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

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

This comment has been minimized.

Show comment
Hide comment
@stubailo

stubailo Jul 22, 2016

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

stubailo commented Jul 22, 2016

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jul 22, 2016

Member

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?

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

This comment has been minimized.

Show comment
Hide comment
@stubailo

stubailo 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.

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jul 22, 2016

Member

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.

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jul 22, 2016

Member

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.

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jul 22, 2016

Member

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 ❤️

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

This comment has been minimized.

Show comment
Hide comment
@basarat
Member

basarat commented Jul 22, 2016

@stubailo

This comment has been minimized.

Show comment
Hide comment
@stubailo

stubailo Jul 22, 2016

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.

stubailo commented Jul 22, 2016

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Jul 22, 2016

Member

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

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

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Sep 21, 2016

Member

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

Member

basarat commented Sep 21, 2016

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

@basarat

This comment has been minimized.

Show comment
Hide comment
@basarat

basarat Mar 16, 2017

Member

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?

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

This comment has been minimized.

Show comment
Hide comment
@stubailo

stubailo Mar 21, 2017

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

stubailo commented Mar 21, 2017

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

@stubailo

This comment has been minimized.

Show comment
Hide comment
@stubailo

stubailo Mar 21, 2017

The answer to your question is still yes, though!

stubailo commented Mar 21, 2017

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