Fully immersive coding

 A few years ago I got a Motorola XForce after having seen the following youtube review:

The phone has an AMOLED screen which means that pixels that are showing black are actually off, as opposed to other screens where a black pixel is blocking as much of the backlight as possible. This leads to really deep blacks which don’t use up the battery as fast as a regular screen because the backlight doesn’t have to be powered. This made the screen on the Moto X look really good, this was added to by the fact that it was a quad HD screen.

That gave me an idea. I use a terminal with a black background all day, would the extra contrast from using the AMOLED screen be better on my eyes? Would coding in VR eliminate all distractions?

Years later I have now got myself a Chromebook with an AMOLED screen which I use for coding hobby projects, and it is very pleasant.

Even with my new laptop screen, I’ve been intrigued by the idea of using a VR headset to completely absorb myself into the terminal when coding. I decided to give the VR coding another go.

Using VIM inside a TMUX terminal I rarely need the mouse when coding and so I would probably be able to use the roll-up keyboard my girlfriend got me for my birthday a few years ago. It's great for turning my phone into a laptop when travelling. Using the rolly and my phone’s AMOLED quad HD screen in a VR headset I could try the VR coding experience again.

One of the issues I faced was that JuiceSSH doesn’t have a side by side (SBS) mode. This is needed since VR goggles work by splitting the phone screen in two with one side for each eye. Using a slight offset for each eye is what gives a 3D effect. I wasn’t looking for the 3D effect here I was just hoping to get the terminal in both eyes so I wouldn’t be overusing one eye.

It was only recently I realised that as I was using the terminal I do have great control over what is output. Using TMUX sessions I can use one session to split the terminal I have SSH into from JuiceSSH to split the screen in two in just the right place. I can then have each side of the terminal split open the same TMUX session. It would require some key mapping to make sure that the nested TMUX sessions worked but then I could send commands to the left (of the outer session) pane and its effects would be also visible to the right eye.

The other issue with coding in this VR system would be the quick Stack Overflow lookup which I so often do. The solution I found for this was to open a chromium-based browser on the phone which allows for extensions to be installed. I found one called Kiwi.

This allowed me to install Vimium which for the most part allows me to use the browser with VIM key bindings. This would allow me to continue to use my portable keyboard and have no need for a mouse.

Trying it all out; did it work?

No, it didn’t.

The productivity dream of immersing myself in a terminal will have to wait for a more intelligent way to get the SBS working. Not only could I not find a simple way to get the browser to be duplicated even with the ability to have extensions the whole experience caused nausea that lasted over an hour after I took the headset off.

I’m sure the nausea is mainly caused by the screen being stationary while my head moves. I think the only way to solve that would be to try and create a virtual screen in front of me which moves with my head.


Popular posts from this blog

An exploration in number systems

Structural engineering with cardboard

The twelve fold way