A first attempt at my version of multi window support! #1982
Replies: 3 comments
-
This is neat! I can imagine this being pretty useful to have. I think you could also implement this to move the BrowserView directly between windows, which would let you switch between a tab and a popout without the page reloading or losing data. The problem is what you already mentioned - there's a bunch of features that won't work with this, because they run in the main window and assume there's a tab associated with each webpage:
Which has the potential to be fairly confusing. It's interesting that there's a fork that's working on real multi-window support. I actually started experimenting with trying to do this a few weeks ago, and I came to the conclusion that it's doable, but is going to be a ton of work (which isn't feasible for me to do right now). But if other people are interested in contributing to that also, maybe it is possible. I just pushed what I was working on in case you want to look at that: https://github.com/minbrowser/min/tree/shared-state (also CC @gdmc-h - I think the above overlaps a lot with what you're working on). |
Beta Was this translation helpful? Give feedback.
-
@flightmansam I finally had some extra time, and I started working on "real" multi-window support: #169 (comment). I still haven't totally figured out the interactions with the task list yet, but technically the implementation has gone faster than I expected. LMK if you have any suggestions! |
Beta Was this translation helpful? Give feedback.
-
my vote is for firejail, that's how i'm doing it now. https://firejail.wordpress.com/ |
Beta Was this translation helpful? Give feedback.
-
Background
As many before me have discussed, this is a big and complex issue. How should we go about multi window support while still keeping the design principles of minimalism and good UX? My first attempt is to think of this by using popout windows. This required the least amount of architectural changes to how the browser works.
In this idea. Pressing f6 will pop the currently active tab into a new (very basic) window. You can then browse the page and click on redirect links (popup links are weird still). There is no search bar or any UI (a todo). You can freely change task in the parent/main browser window and go on with your life. Closing the popout window will bring the tab back into the main window (if possible, in the task that it came from). Closing min will automatically popback the windows.
Demo
I open some popups and close one of them. Then I close min.
You can check the functionality out here:
https://github.com/flightmansam/min/tree/popout-windows
(or this specific commit flightmansam@df3be03)
How it works
The core functionality is achived by keeping track of any popoutWindows (using a set in main.js). The conversion of tabs to popouts in BrowserUI.js. And some (generalised) logic to add tabs into specific parent tasks by modding the 'addTab' IPC callback (in menuRenderer.js).
Todo
Notes:
I have had a look at another currently active fork working on multi windows (https://github.com/gdmc-h/min/tree/new_windows) so check this out too if you're in the space.
Other discussions of multi window min:
#1979
#169
#1453
#909
#1453
Beta Was this translation helpful? Give feedback.
All reactions