blinksh / blink

Blink Mobile Shell for iOS (Mosh based)
https://blink.sh
GNU General Public License v3.0
6.1k stars 566 forks source link

iOS 13 multiple window support #753

Closed shaps80 closed 4 years ago

shaps80 commented 5 years ago

Hi,

I have always wished for a split-pane style feature in this app but realise that might be outside the core-goals of this app.

That being said with the new multiple window support in iOS 13, this is a feature where Blink would shine.

I wanted to start the conversation (as I couldn't find an existing one?) to determine any issues that might arise in getting this feature into the app.

I'd be keen to get involved in making this happen but I'm less familiar at the moment with some of the inner workings to know what areas need assessing? Help would be appreciated :)

yury commented 5 years ago

Hi @shaps80,

We are currently working on that feature. We decided try new SwiftUI for that. So I'm in the middle of learning it :)

Previous prototype was build on collection view. See #547

shaps80 commented 5 years ago

Awesome! Yeah you can do it with either SwiftUI or not. I found a nice little sample that shows both working alongside each other which is cool. I'm excited for this feature. I use tmux for now but it would be nice move the 'window' side of things into iOS and just handle Panes through tmux.

Thanks for quick reply. I'll wait patiently then :)

yury commented 5 years ago

Please share that little sample if possible :)

shaps80 commented 5 years ago

Sure. Its a great little example that even shows how to use NSActivity instances to spawn new windows programmatically. Super simple too. You'll see how little code there is.

https://github.com/TwoLivesLeft/BehindTheScenes/tree/master/BehindTheScenes

These WWDC videos are also a worth skimming through.

https://developer.apple.com/videos/play/wwdc2019/212/ https://developer.apple.com/videos/play/wwdc2019/258/ https://developer.apple.com/videos/play/wwdc2019/259/ https://developer.apple.com/videos/play/wwdc2019/246/

yury commented 5 years ago

C83103E8-B61D-4340-A542-B58E991CE8E1

shaps80 commented 5 years ago

Want! How long you thinking before this could be merged? Is it production ready?

shaps80 commented 5 years ago

Out of curiosity did you also build any drag-and-drop support into this approach?

yury commented 5 years ago

Not yet. Working on new state restoration for mosh.

yury commented 5 years ago

Progress update https://youtu.be/qpAmgaZ-GPg

shaps80 commented 5 years ago

AMAZING! :) Cannot wait for this!

shaps80 commented 5 years ago

Now all we need it tmux integration so I can automatically generate a vertical split into a new window! Guessing that's problematic :)

EDIT: Just realised Blink includes mouse support so I can tap on the tmux pane to switch focus. Game changer!

yury commented 4 years ago

We pushed v13b130 to public Test Flight.

(Finally)