What Chromebooks Can't (Yet) Do
Note: the Crostini project means that a host of Linux apps and functionality can/will/may be on tap, which can affect a good number of the issues below. Time will tell.
- Printing has improved a lot, including direct-connected USB printers, but only a subset of printer drivers are available, when compared with Win/OSX and even Linux. However, using any computer with a Chrome browser can support Google Cloud Print, and act as a print server (even directly connected, non-ChromeOS driver-supported usb printers).
- Scanning (unless part of a ChromeOS driver-supported all-in-one) are pretty much not supported.
- Music: Connecting to and managing an Ipod device, say with Rhythmbox doesn't work on a Chromebook, unless an entire Gnome desktop is installed in a different Linux.
- Calibre-like library, kindle management, and ebook editing tool. Granted Calibre is challenged on the interface, it is continually updated and has extensive functionality for library management.
- System fonts management (possible in Developer mode with editing of some configuration files).
- Possibly still limited regarding bitmap image editing (GIMP on Linux).
- Video editing, while there are some apps and the like, the limited memory available on most Chromebooks (4gb) is probably the biggest sticking point.
- Complex SVG and Bitmap images, as well as video is still largely best managed and produced on the desktop (namely, Linux) with Inkscape. See Linux Desktop - Apps, Config for more details on how that can provide application support above and beyond Chromebook. We are in a multi-OS world with mission-specific devices, operating systems, and the like. Regardless, we are seeing applications that are best of breed emerge in each of the platforms.
Note - the recent work in Crostini (see below) could potentialy remove many of the problems noted above using Linux containers, at the least the media editing needs. See below for second note.
Second Note - Most of the issues above can be worked around by the use of a dedicated system that would provide the functionality, specifically something like an Asus Vivostick PC, that can act as print server, scanner management, kindle/ebook management, ipod/music management.
Windows and Linux App Support
As of May 2018, there is some amount of Windows and Linux apps, along with Android App Store support. - Crossover ChromeOS - Run Windows inside Android - Basically Wine for Android - Google officially announces linux app support for ChromeOS - Containers of some kind
Arm and Intel - Crouton & Crostini
Though this may/likely will change, there
is currently was a divide between the Arm chromebooks (e.g., Asus C101PA and others with the Rockchip) and the Intel chromebooks (e.g., Samsung Chromebook Pro, Google Pixelbook). The container technology Crostini is currently in beta for high-end Intel Chromebooks only (so far). The advantage of the Rockchip is cost and better performance with Android Apps. Another disadvantage is closed source.
In fact the Asus C101PA uses the same board as the Samsung Chromebook Plus, which now supports Crostini.
Crouton (Previous Approach)
When wanting to install Atom or VisualStudioCode, there are different approaches:
- Arm chip, use Crouton and HeadMelted's distribution (along with Crouton Integration)
- Intel chip, use Crostini and VisualStudioCode via Apt
Note on keyboards without F-keys, on Chromebooks use Search + #
- See all keyboard shortcuts: ctrl + alt + /
- Refresh browser page: ctrl + shft + R
- Printscreen (area): ctrl + shft + F5
- Crosh Shell: ctrl + alt + T
- Open item on shelf: ctrl + # (item number in order)
- Dock a window to left/right: alt + [ / alt + ]
- Open Files application: alt + shft + M
- Task Manager: shft + esc
Remote SSH / SFTP
This can be done from a local shell, but for drag-and-drop sftp the best approach is a paid Android app Termius, which is about 1,000 THB/year. This is the only yearly subscription App I use, but it is worth it since it performs a critical function, is fast and stable, and the alternatives are painful, at best.
Enabling full Shell
To enable a full shell with root access, set into Developer mode:
esc + refresh + power. After it reboots,
ctrl + D.
Everything does get removed, so if there is any data not in Google Drive (such as in
~/Downloads/) best to move it before attempting this.
Note that scripts on a filesystem mounted
noexec will need to be called explicitly, such as
/bin/sh script. See more about poking around ChromeOS.
Once full shell is enabled, simply do as follows:
Ctrl + Alt + T shell (if you need root, then...) sudo su
SSH on Crosh
SSH has been removed from Crosh, and instead is installed as an extension:
However, I find that completely unnecessary. Instead, it is best to simply install the Chrome Brew package manager, and install everything else one would need -- including, in my case, autossh.
There is also an extension that runs crosh in its own window, outside of a Chrome browser instance.
While we are at it, some built-in commands in Crosh:
Package Manager Chrome Brew (crew)
chromebrew is a handy package manager for ChromeOS.
curl -Ls git.io/vddgY | bash
Commands in Chrome Brew
Utilities for ChromeOS
wget has been removed from ChromeOS. Instead use
curl to get started.
crew install nano crew install htop crew install autossh crew install psmisc crew install mlocate crew install ncdu crew install iptables crew install imagemagick7 crew install libjpeg crew install optipng crew install wget
Managing Offline (Local) Data
There are a few steps to free up space on a Chromebook. Unfortunately, Google Drive will appear to do offline syncing of all data that was put into it by the chromebook itself. It will do more than that (up to 5gb) if offline use is enabled in Google Drive. The key is to not use any offline drive/gmail apps, and not enable offline use. Regardless there will always be something (until the next powerwash).
Clear local data
Again, Google Drive will apparently (as of March, 2018) always keep in the Offline (local) folder, and/or sync up to 5gb of everything down to the chromebook. Some folks report needing to powerwash twice.
Sometimes closing the lid on a Chromebook (which is also by definition impossible on a Chrombox, Chromebit, or Chromebase) doesn't invoke sleep mode. Better is to get the Crome Shell and invoke:
ctrl + alt + T shell powerd_dbus_suspend
Even better is the Suspend function with the keystroke: Shift + Search + L
ChromeOS File System
The ChromeOS File System is fairly robust and there are currently add-ons which extend it to Dropbox, etc. The File App is the native GUI to access the local file system and any mounted file systems. See also the ChromeOS directory structure. What I have not yet discovered (or given up home on) is command-line/shell access to Google Drive which would make executing certain scripts and doing file manipulations easier.
In addition, there is still (August 2018) ongoing limitations between the Linux and Android environments relative to the local, Google Drive, and sdcard/usb device access. This is usually an issue regarding application configuration and development rather than across-the-board (except with Linux), since some apps can access other drive spaces.
Python Pip Environment
cd ~/Downloads curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py python get-pip.py
- Upgrade pip with
pip install -U pip
- Install virtualenv with
pip install virtualenv
- Then can install things like gmvault to backup gmail:
NEED MORE INFO HERE, problems with security and launching in protected mode
Video is a bit of a challenge on the Chromebook platform, but there are a few options, including online web apps, Android apps, and more robustly, an alternative installation of Linux dual or solo booting.
There are additional options for video editing with Android apps, which seem better, though some only support a mobile device portrait display. The other challenge is to get an app that has a reasonable chance of not disappearing, on the one hand, and not costing increasing amounts of money, on the other, with the additional constraint of not being too simplistic, or too complex (and therefore confusing, time-wasting, and bug-ridden).
- Timbre seems an ok choice for now, more bare bones editing than a full NLE.
Image editing for my humble needs means being able to make an image look better (color, exposure, etc. adjustments), cropping, and some kind of overlays. This really is mostly photos, etc., whereas text and design-based images are managed using .SVG editors (below).
- Not sure yet what that might be...
SVG Editor - Gravit Designer
Thankfully there is one area that is well-covered, and that is Gravit Designer (and an additional tool, Klex, along with the Gravit Cloud). Originally at gravit.io, they've rebranded under designer.io and have apps for every platform: Linux, Mac, Windows, ChromeOS, and the Browser.
To be honest here, just install the Linux platform and then Inkscape. It is less painful and has the advantage of leveraging one's Inkscape learning curve (as well not having to use a third party app that wants money and to save your files in their cloud).
- SomaFM - Internet Radio
- Checker Plus for Gmail; Checker Plus for Google Calendar
Android Apps that work in ChromeOS/Android Environment
- Barcode Scanner
- Duo (Google Video Calling)
- Google Maps
- Keepass2Android (disable anti-screenshot setting, or ChromeOS will crash on connected monitors)
- OpenVPN Connect
- QuickEdit Pro
Linux Apps that work in ChromeOS/Linux Environment
Outstanding Issues to Explore
- Resize/Relocate boot or data storage for Crostini (to sdcard)
- Implement new fonts in Crostini but also more importantly in Crostini linux container to run Inkscape, etc.
Additional Software/Firmware Resources
- Developer Information on Hardware, Kernel for Chrome Devices
- 25 Helpful Chrome OS Shell (crosh) Commands - not fully integrated above...
- Some Advanced Features/Commands in ChromeOS
Disabling Touchscreen and/or Trackpad
There may be times when the Touchscreen and/or Touchpad needs to be disabled. To do so, open Chrome:
Enable Debugging Shortcuts.
Once loaded, the
t will toggle the touchscreen.
p will toggle the touchpad.