Add IPC hooks for launching and managing a raw atom-shell


#1

Hey. I’m making a plugin that is used to author atom-shell specific applications. I’d love to be able to launch a new atom-shell “tab” (similar to atom.open except it just launches a raw atom-shell instead of the IDE) to run the application being developed in Atom. Right now, in order to do this, the user must have atom-shell installed separately and we have to write some hacky exec to run the app.


#2

Somehow I don’t think this would be plausible except in rare circumstances where all the requirements of the Electron-based application (atom-shell is now called Electron) exactly align with the current version of Atom. Additionally, I’m assuming that an Electron-based application would need to run in its own process? Loading it in a tab would be running it under the Atom process … unless there’s all sorts of crazy IPC to allow it to run in an Atom tab?


#3

Sorry “Electron”. Force of habit :smile:

I see what you mean. The app could take down atom with it if it goes haywire.

In the wild, the application will be run as a “tab” in Electron, and the main browser process has logic for switching between different apps in different tabs.

I feel that since Atom’s runtime is Electron, there should be some way to launch a new Electron process from Atom without the user having to install Electron.

Any suggestions?


#4

Actually, it’ll be run as an Electron process not simply a tab in a window that is completely controlled by Electron. For example, this is where the window logic resides in Atom:

https://github.com/atom/atom/blob/master/src/browser/atom-window.coffee

And, for example, this is the main window logic (I believe, I haven’t dug into the code of it too much) of @postcasio’s HearthDash, featured on the Electron site:

How even the window you see is instantiated is completely different and, most likely, incompatible with the other. And if these aren’t, someone else’s will be.

If you said you wanted to run any Electron-based application as a separate window, that would be fine, because it would simply be launching a separate process. But at that point all the feature you’re suggesting is replacing the “hacky exec to run the app” … and you’d probably still need to write the hacky exec for Atom to launch it.