zed-industries / zed

Code at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
https://zed.dev
Other
39.65k stars 2.07k forks source link

Zed to embed other apps' windows #5310

Open exalted opened 2 years ago

exalted commented 2 years ago

Okay, in all fairness, this one is pretty on the edge as a "feature request", but bear with me…

I know recently you've started building a terminal into Zed (which is totally okay), and possibly in the future, there will be other requests for Zed to visualize more things than the editor UI itself (e.g., a browser window).

So, I was wondering, how wild (and doable) of an idea would it be if Zed was to have some type of "window management" features? What I mean by "window management" is something like Zed opening a new tab/panel and constraining another macOS app's window to stay in its boundaries (possibly, if possible, cropping out the title bar, frame, the shadow, etc.)?

This app's process obviously wouldn't be as "integrated" into Zed (e.g., it wouldn't maybe Zed's built-in search, etc.) but it WOULD; 1) behave as if it was part of Zed's window; 2) allow Zed to virtually work with any type of wild "external" app.

Here's an example wireframe of the iTerm2 app (my preferred terminal app):

New Wireframe 2

And here's another wireframe with a Chrome window, with DevTools open:

New Wireframe 3

I don't know whether this is pure wishful thinking on my part or is it actually possible to "embed/pilot" other apps' windows on macOS, but it sure is a neat trick to pull off!

This feature request is also somewhat tangent to a future "screen sharing" feature where, whilst pairing with another developer, Zed wouldn't have to share the user's entire screen, rather only the split panel's frame.

mikayla-maki commented 2 years ago

I think this post could be a strong indication that there's a demand for an OS windowing system based on the pane model, rather than the traditional free floating windows. Interesting idea!

Edit: actually, this already exists here I think: https://en.wikipedia.org/wiki/Tiling_window_manager

iamnbutler commented 2 years ago

Haha you are reading off my long term feature goals ;) Your bottom screenshot is what I'm hoping we can get to as my dream web workflow :) Right side top bottom split of browser and terminal, left side code.

exalted commented 2 years ago

I think this post could be a strong indication that there's a demand for an OS windowing system based on the pane model, rather than the traditional free-floating windows. Interesting idea!

Edit: actually, this already exists here I think: https://en.wikipedia.org/wiki/Tiling_window_manager

There are many window management solutions out there, for sure! I, for one, am usually putting my editor ~2/3 of my horizontal space whilst ~1/3 is for browsers alike; however there's some great beauty in the text editor being the center of all things, and managing other windows (not all) for me (à la "Emacs will eat the entire OSs").

mikayla-maki commented 2 years ago

This reminds me of a conversation I was having last night. Basically, thinking of cursors and text selections as 'on top of' the buffer (instead of 'inside'), gives you app-wide, consistent cursor behavior across contexts. Think, instant vim mode in an embedded browser and terminal, multi-cursor file renames in the project pane, etc. This then makes you start to think of the cursor / text editing as the dominant mode of interfacing with the OS, which is a cool viewpoint shift for me.

Coming back to your point though, there's something beautiful about how, even after all this time and complexity, we're still mostly just shuffling Strings around in ever more artful ways 🥰

rgbkrk commented 2 months ago

I think this post could be a strong indication that there's a demand for an OS windowing system based on the pane model, rather than the traditional free floating windows. Interesting idea!

Bloomberg Terminal makes the big $$$ as a pane interface. It could be the real-time data access but I'd like to believe its the paneling for Zed's sake.