crostini
Introduction
On (as of September 7th, 2018) many Chrome OS devices could run Linux. In 2025, most current devices can run Linux, including Chrome OS Flex and devices that got extended support (though they can't run Android).
Anyway, this Linux container is often called "Crostini", so I call it that here.
Setup
I wrote this script to install the apps I like. When you remove Linux support in Chrome OS, it removes the container file. So everything is gone. Be sure to backup stuff first, especially your home directory! Check out the topics below for other things to do.
Appearance
The default installation for many apps is rather bland. It also can be hard to see things. The coloring and icons are, well, off. That is why the script installs some of the packages it does. Just installing them helps, but you might want to use the following apps too:
gnome-control-center =>
BTW, if there isn't a launcher for these, they can be launched from the command line.
QT / KDE Applications
I like some QT5 / KDE applications; such as kate and dolphin. Both don't like it when full KDE desktop is not installed.
To get icons in the apps to work:
Install a KDE theme (sudo apt-get install oxygen breeze)
Install enough to launch System Settings (sudo apt-get install systemsettings5 kde-config-gtk-style)
From the linux terminal, run systemsettings5.
Select the new theme. You can also go back and select CrosAdapta again. This will fix the settings so KDE can find it.
I've had System Settings freeze on me, so that is why I launch it from the terminal. I can then kill it easily (CTRL-C)
For launcher icons that don't show up, you can manually create the .desktop file (see below). Icon files can be found at /usr/share/icons/.
Custom Launchers
Chrome OS adds launchers for any Linux app that makes a .desktop file. For any apps that don't, do something like this:
sudo touch /usr/share/applications/intellij.desktop
sudo chmod 644 /usr/share/applications/intellij.desktop
sudo chown root:root /usr/share/applications/intellij.desktop
sudo nano -w /usr/share/applications/intellij.desktop
Paste in the contents below, save & exit.
[Desktop Entry]
Version=181.4688.68
Type=Application
Terminal=false
Icon[en_US]=/path/to/icon/intellij.png
Name[en_US]=IntelliJ
Exec=/path/to/launchscript/intellij.sh
Name=IntelliJ
Icon=/path/to/icon/intellij.png
That should do it.
(old) crouton
This used to be the way to get Linux apps to run on Chrome OS. I'm keeping around these notes for "prosperity". ;-)
These are just my quick cut & paste notes for using crouton to run Linux "inside" ChromeOS. Please refer to https://github.com/dnschneid/crouton and their wiki for full information. Especially the security concerns in setting up and using crouton.
install crouton quickly: sudo sh ~/Downloads/crouton -t lxde-desktop,xiwi -r xenial
start crouton full screen (CTRL-ALT-SHIFT-F1 style): sudo startlxde -X xorg
enter crouton without starting LXDE: sudo enter-chroot
download & install atom: wget for download, dpkg for install (need to install git first)
run atom from inside crouton: xiwi -T atom -f .
Disclosures:
First and foremost, read the security stuff before doing anything here or on crouton's pages. If you don't understand, learn to before you use crouton.
Be careful with starting LXDE. Without the xorg argument, it'll start full screen. But you won't be able to switch back to ChromeOS and will need to exit LXDE.
Yeah, you're inside the chroot, not crouton. Another way of looking at it is crouton is an app, it created the chroot. People say they're "inside" MS Word. Even if this is a slightly different situation, the symbols are still true. Don't forget the "many of the truths we cling to depend greatly on our own point of view". :-)