Setting Up Non-Debian Packages on Chrome OS (IntelliJ IDEA & Blender)

Linux beta for Chrome OS lets users run virtually any application in the Debian repositories, with the APT package manager. However, some Linux apps aren't in the repos, and don't offer a .deb package. Fortunately, it's relatively straightforward to get these up and running, as well.

Typically, when a development team releases a distribution-agnostic package for Linux systems, this will consist of a compressed folder containing all of the pre-built binaries, and supporting assets for the application. These packages will typically have a file extension like .tar.gz, or .tar.bz2, and will generally include a shell script which launches the application (usually in either the root of the folder, or in a /bin folder). On traditional Linux systems, one can usually run such an application by downloading the package, and then unpacking, and selecting the launcher script right in the file manager. Chrome OS, however, doesn't recognize .tar, .gz, or .bz2 files the same way as .zip archives, and doesn't support launching apps through the file manager, so this has to be done through the Terminal.

IntelliJ IDEA Community Edition

For anyone who isn't familiar with it, IntelliJ IDEA is an IDE for Java, and other JVM-based programming languages, such as Scala, or Kotlin. Google's Android Studio is closely related to IDEA, but focuses on Android application development, where IDEA supports development of both Android and traditional desktop applications.

To install IntelliJ IDEA, grab the latest Community Edition package from JetBrains. This should place a .tar.gz file in the Downloads folder on Chrome OS. In the Files app, drag this over to Linux Files, in the left panel. Once the copy process is complete, feel free to delete the copy that's left behind in Downloads, and launch the Terminal app. From there, run:

gunzip ideaIC-2019.2.3.tar.gz

(Note that the file name may be slightly different, depending on the version number.) This gives us a .tar archive, which we'll need to unpack with:

tar xvf ideaIC-2019.2.3.tar

At this point, the application is ready to use, but it still doesn't appear in the launcher, and can't be launched from the file manager. To verify that it works, we'll need to switch to the folder where the application was unzipped:

cd idea-IC-192.6817.14/bin

From here, run

./idea.sh

The first time the application runs, it will go through an initial setup wizard. During this process, it will give the option to create a .desktop file, which is necessary in order for the application to appear in the Chrome OS launcher. Initially, the launcher displays a generic Linux app icon, but it will switch to the correct icon after a reboot.

Blender 2.80

Blender 2.80 running on Chrome OS

At the time of writing, Blender is available through the Debian repositories, but only version 2.79. The 2.80 version offers significant new features, including the real time Eevee rendering engine, making it hard to justify sticking with the older release. The install process is largely similar to IntelliJ IDEA, but differs in that the package uses bzip2 compression, and the application doesn't offer to create a .desktop entry on first run.

The unpacking process follows a similar path to that used for IntelliJ IDEA. Run:

bzip2 -d blender-2.80-linux-glibc217-x86_64.tar.bz2

This converts the bzipped file to a .tar archive. Run:

tar xvf blender-2.80-linux-glibc217-x86_64.tar

From here, we'll need to edit the blender.desktop file that comes with the Blender package, in order to specify the actual location of the binary to run. To do this, we can either open the file in a text editor like Visual Studio Code, or use a Terminal application such as Nano, or Vi.

In the .desktop file, find the following line:

Exec=blender %f

and replace the word blender with the full path to the blender file, wrapped in quotes. The line should look like this:

Exec="/home/<your username>/blender-2.80-linux-glibc217-x86_64/blender" %f

To get the correct icon to display, change the line beginning with Icon= to include the full path:

Icon=/home/<your username>/blender-2.80-linux-glibc217-x86_64/blender.png

We'll also need to add a PNG version of the icon at that location, because Chrome OS won't display the SVG icon in the launcher.

Save the file. At this point, we'll need to place a copy of the file in a spot where Chrome OS knows to look for it. This can be done with:

cp blender.desktop ../.local/share/applications/blender.desktop

Note that you may need to create this directory if it doesn't already exist.

A Note About Function Keys

Both of these applications have keyboard shortcuts that involve the F1-F12 keys. Chrome OS devices typically replace these keys with specific function keys (e.g. back, forward, refresh, etc.). To emulate the F-keys, hold down the Search key before pressing the corresponding function key (e.g. Search+Back for F1).

Additional Considerations

While this method will get these applications up and running, there's certain reasons why installation through APT is preferred. The package manager greatly simplifies the process of keeping packages updated with the latest security patches, and bug fixes. IntelliJ IDEA will automatically check for updates, and prompt the user to install these when available, but Blender, and many other applications, do not. Other applications may rely on external packages that are not included with the download, or installed by default on Chrome OS. These issues can be fairly difficult to resolve manually, depending on the specific required dependencies.