About two years ago I started a side project with the intention to bring Microsoft’s Visual Studio Code editor to a wider audience — specifically those users on Chromebook devices, and on the Raspberry Pi single-board computer.
The response was a lot stronger than I’d expected, and since that time I’ve been really pleased to hear from a lot of folks who’ve been using these releases at home, in the classroom, and even in the datacenter.
It’s always been my intent to streamline the experience as much as possible, not least as the users of these devices are by-and-large just beginning to learn about technology. Asking these same people, therefore, to jump straight into the process of compiling and installing software themselves was a non-starter, so I started packaging nightly ARM builds of VS Code for Debian and Fedora operating systems. Getting VS Code to run on Chromebooks was a little more involved.
Under the covers, Chrome OS is effectively a Linux derivative, but has a quite restrictive sandbox by design. I was able to leverage the excellent Crouton project to run Linux builds of VS Code in a container. This effectively broadcasts the X11 window into Chrome OS, allowing the editor to run as if it were a native application.
The scripts from https://code.headmelted.com would have automated setting this up for you. I say would have has I have a couple of changes to announce that will change this process quite a bit (for the better, I hope).
In the time since I started this project, there have been a few significant developments that directly impact these builds— and as a result I have three announcements to make today regarding the Visual Studio Code for ARM releases at https://code.headmelted.com.
The first is that Electron (the HTML5 desktop application runtime that VS Code is built on) has started releasing native 64-bit ARM builds. This in turn has made it possible for VS Code to support ARM64 (specifically ARMv8), and in turn for me to update the build process to include native 64-bit ARM builds and packages for devices that are based on that architecture. These packages are available right now, and should be pulled automatically by your package manager for ARM64 devices running Linux.
Just to ensure there’s no risk of running on armhf builds, it may be advisable to uninstall and reinstall the packages if you’re already using them.
The most significant (and very welcome) change is specific to Chromebook users. Rather than the previous install method of requiring the user to enter development mode on their device, Intel and 64-bit ARM users can now run Visual Studio Code directly on Chrome OS, using Google’s official Linux application support.
There are caveats to this, specifically in that 32-bit ARM devices (and certain 64-bit ARM devices on older kernels) will not be receiving Google’s official Linux application support. The scripts to maintain a Crouton installation will still be maintained for the time being to support users on these devices (and as I don’t currently own an ARM64 Chromebook I may need help from users with debugging any problems here).
For those with Chromebooks eligible to receive native Linux application support, I’d recommend installing the application through the supported method using the Debian packages (which is effectively: double-click the deb package file in your Files app).
There has been a movement within the Linux world to support application packaging architectures that are self-contained enough that they can be run without an underlying dependency on a specific Linux distribution. Snap is one such system, and community contributions to Microsoft’s VS Code repository on GitHub mean that packages for all supported architectures should be up on GitHub within the next few days.
In turn, this means that users on many additional Linux distributions should be able to install these VS Code builds simply by setting up the Snap runtime on their distribution of choice.
This actually allows for some fairly interesting scenarios. One that I’ve experimented with is running a minimal image with a snap of VS Code on a Raspberry Pi — as a full-screen application. The Pi effectively boots directly to VS Code in fullscreen mode, and with the integrated terminal it makes for an immersive and really pretty capable coding environment that you can plug in to more-or-less any monitor or TV.
Instructions for installing Visual Studio Code natively onto a Chromebook with Linux apps support can be found at https://code.headmelted.com.
The builds now use Archie, a cross-compilation utility I’ve been working on which I’m also announcing today. It comes as a docker container that is pre-configured for simplifying architecture-agnostic compilation in the most common scenarios, such as those I encountered with the Visual Studio Code builds.
Scripts are provided to help with compiling projects in Archie in the cloud using Azure Pipelines’ free tier.
You can check out the announcement post here.