Using IntelliJ and other Linux apps on your Chromebook

Jeff Cardillo
6 min readDec 16, 2018

--

Chromebooks have proven themselves to be a wonderful fit for the classroom. They are inexpensive, easy for institutions to manage, and provide a lot of functionality for research and academics. It is even popular for schools to distribute Chromebooks to students for the school year. In short, millions of students from all walks of life have access to a Chromebook.

For students learning to code, Chromebooks really only offered a way for them to scratch the surface. If they wanted to explore coding at more advanced levels, the lack of desktop grade tools meant that Chromebooks were too limiting, and a more expensive computer would be needed. Furthermore, people that only have access to a Chromebook were traditionally at a disadvantage when learning to code.

Google’s latest Linux integration changes how we will think about Chromebooks and what they are capable of. The integration is seamless; you can install Linux desktop applications and they show up alongside your Chrome and Android apps. You can even install Gnome’s Software Manager as an app catalog that you can search for new apps. A few examples of apps that you will find there are Gimp (photo editing), Inkscape (vector graphic editor), Thunderbird (email client), FTP clients, and much more. This works for Chromebooks with ARM based CPU’s as well as Intel based CPU’s, though the software package selection may differ between architectures.

Linux support in Chrome OS is in Beta, and getting everything described above set up requires a tiny amount of work. It is very simple and non-invasive. You do not even need to put your Chromebook in to developer mode. You just need to enable the Linux tools option on your Chromebook, issue a few commands in the terminal, and then you’re all set! I’ll walk you through it.

First we’ll cover Adding Linux App Support and getting the Gnome Software Manager up and running. Then we’ll cover how to Install Java 8 and the JetBrains IntelliJ IDE for programming.

Adding Linux App Support

Note: Not all Chromebooks support Linux apps yet. For a list of supported devices please see: https://www.xda-developers.com/chromebooks-linux-app-support

If your Chromebook supports Linux apps, go to the settings screen and find the “Linux (Beta)” section. There will be a button labeled “Turn On”. Click that to get started!

Linux (Beta) sections in Settings

You will be prompted to confirm the installing of Linux tools.

Installation will take a few minutes. When the process is complete you will see a terminal window will pop up. “Terminal” is a new app on your Chromebook now; feel free to pin it to the shelf if you’d like to access it quickly in the future.

The first thing we should do is run the following command to update APT. When prompted to continue installing packages type “Y” then “enter” on your keyboard. You will see text scroll across the screen while packages are updated.

sudo apt-get update && sudo apt-get upgrade

With that complete, let’s install Gnome’s Software Manager. To do that, put the following command in the terminal. Again, type “Y” then hit “enter” to proceed when prompted:

sudo apt-get install gnome-software gnome-packagekit

You now will have an app called “Software”. I have noticed that immediately after install the Software app seems blank and no packages are shown. To fix this, open your terminal and run:

sudo apt-get update && sudo apt-get dist-upgrade

Then, a reboot or two seems to clear the issue (this is beta after all). Once complete, you should see the Gnome Software Manager look something like the following:

Gnome Software Manager

Search for something like “Gimp” and go ahead and install it.

Gnome Software Manager — App install screen

When that is complete, search for Gimp on your system and notice how it shows up as just another app! You can even pin it to your app shelf.

Gimp running on my Chromebook

Note: Linux apps on your system have access to a folder named “Linux Files” and is visible from your Files app. It is very easy to drag files to that folder so that you can access them with your Linux apps. I have moved this image to that folder so that I could use it with Gimp shown above.

Linux Files folder now available in your Files app

What about software not available in the Gnome Software Manager? No problem! Different software package types will have a slightly different workflow. I’m going to walk through installing IntelliJ, a programming IDE.

Installing JetBrains IntelliJ IDE

I use my Chromebook to write Kotlin code in IntelliJ. For this to work Java also needs to be installed, so in the terminal type:

sudo apt-get install openjdk-8-jdk

Next, download the IntelliJ archive from the JetBrains website: https://www.jetbrains.com/idea/download/#section=linux

Copy the downloaded file over to your Linux Files folder by dragging it from your downloads folder. Then, in the terminal, un-tar the archive to the /opt directory by typing (your file name may differ):

sudo tar -xvf ideaIC-2018.3.1.tar.gz -C /opt/

Change to the new IntelliJ “bin” folder. For me the path looks like the following:

Change directory to IntelliJ’s bin folder

Run IntelliJ for the first time from the command line. The first launch will take a bit longer than subsequent launches. At first launch you will be presented with some options to select from. Once complete you will see the splash screen.

./idea.sh
IntelliJ splash screen
IntelliJ — Creating a new project

Once you have IntelliJ opened on a project, you can simply select “Create Desktop Entry” from the “Tools” menu and you’ll have an app icon on your Chromebook that you search for or pin to your app shelf.

Create Desktop Entry to add a searchable app to your Chromebook apps

You are running IntelliJ on a Chromebook! Here is the output from a simple “Hello world!” app:

Hello world Kotlin application compiled and run on a Chromebook!

That is all there is to it! You are now able to code Kotlin applications on a Chromebook!

Even though Linux on Chromebook is in beta and isn’t available to all models yet, we can see that the integration is really nice! And I’m excited that in the near future, even people that only have access to a Chromebooks as a computer will be able to access the same powerful tools available on expensive Linux development machines.

--

--