Three things:
- Mosh & SSH support: In Prompt and any other iOS ssh client, connections break every 3 minutes. With Mosh that isn't a problem.
- Full external keyboard support: Alt as Esc, Caps as Ctrl, you can have your terminal as you do in your desktop/laptop.
- Speed and rendering: Blink uses Google's HTerm, so it is faster and you can add your own themes and fonts.
I'm a long-time Prompt user, and I just purchased Blink on the App Store after seeing that mapping Caps Lock to CTRL is supported. It does seem to work, although not really as consistently as I'd like it to. I'm using an iPad Air 2 and the Microsoft Universal Foldable Keyboard, for reference.
When I try to use, say, CTRL+V in Vim to do a block selection, it will assume I pressed V by itself unless I hold Caps Lock for about half a second before pressing V. Furthermore, it will toggle the Caps Lock light on my keyboard (which I understand can't be fixed), which is a problem because if I exit Blink, the Caps Lock key is now reversed if I exited Blink while the Caps Lock key was still active.
Perhaps there's a way to track if Caps Lock had been pressed an even or odd number of times, and send some signal back to the OS to correct this behavior?
I'm not sure what needs to be fixed in order to get the Caps Lock functionality to work without a delay.
We are aware of the "track Caps Lock" problem. iOS actually has an option to disable caps on the accessibility but still doesn't work with external keyboards. Hopefully soon.
Thanks for the heads up about the delay. I have only see that problem once with the iPad when I had another combination, do you have any other combination like caps as ESC? I definitely haven't seen that with other keys, and I'm really picky about my Cmd as Ctrl on Emacs :D
I think I've figured out why I'm seeing a delay. It must be related to the Caps Lock delay that some keyboards have, wherein the keyboard will prevent Caps Lock from engaging (or even sending any signal at all to an app, apparently) unless the key has been engaged for more than just a tap.
It looks like the only way to fix this would be to buy a keyboard without this feature.
Mosh and caps lock remap are the killer features here over Prompt.
I don't care about the former, having never needed it - when I need to shell in from my phone, it's invariably for some quick, synchronous action that doesn't take long enough that I need to background it and do something else for a while without the socket timing out. But if that is your use case, Prompt will constantly frustrate you.
Remapping Caps to Control, on the other hand, is absolutely brilliant, and something whose absence in iOS I've regretted since I bought my first iPod Touch. It'd be ideal to have the option at the system level, as in OS X, but absent that, a terminal emulator that can do it is a lot better than nothing - it's just a shame Blink has come along so many years after I gave up trying to use my iPad as a laptop replacement.
They meant if you close it and, say, want to read or follow along with a book in iBooks and not use split view, you have to multitask back to Prompt every 3 minutes or iOS will suspend the app, killing your SSH connection in the process. Since Prompt is closed source and on the App Store, they can't use mosh which solves this problem.
iOS only allows background connections to be maintained for three minutes. That means if you keep the app in the background longer than that, for example while checking Safari, the connection breaks. Every app has this limitation (TeamViewer, etc...) and it is usually solved by showing a notification to make the user switch to the app again. It is described on Prompt's KB too.
Blink also has this problem, but Mosh is able to recover gracefully.
Interesting that you use hterm to power this. Does that mean you start a WebView. Or do you somehow have a virtual dom of sorts that renders to Obj-c view (a la react-native)?
It is a WKWebView, and the way SSH or Mosh are connected is by just a simple descriptors system on top of it so that read and write operations can be done. So everything is really "unixy", you can send fprintf to the terminal, etc...
It proved to be fast enough, and it is still faster than anything else. I'm considering if building on top of HyperTerm at some point would be doable too :)