There are a couple of posts I’ve seen on Reddit and other places on the internet “If I install ChromeOS Flex what can I do with it?” or “I’ve installed ChromeOS Flex” what do I do with it?”

It’s a really good question for an OS that is designed for a cross-section of users however focuses on possibly people with an older Windows laptop (or Mac) who want not to be spending money on a new laptop.

Version Date Info Description
1.0.0 26 July 2022 Released Version  
1.0.2 27 July 2022 Updates
  • Updated Flags information
  • Added Docker Section
  • Added NFS disclaimer

Disclaimer

I have issues spelling, and if your feedback is “you can’t spell” then thank you and move along. I write these posts for me and maybe they will help someone else. I’m not a publisher, I’m just a guy on a computer and a WordPress site.

This is a long post which covers how you can install “things” on your ChromeOS Flex install and some things you (at the time of writing) can’t do…

Natively in ChromeOS

The whole point of ChromeOS is simplicity, it’s a web browser and everything that can do at its core. Over several years features are added and that obviously adds functionality. the best place to start is that core service which every ChromeOS, ChromeOS Flex and 3rd party spin-offs like Brunch or Neverware will have.

Hopefully, if you are new to Flex or maybe a longer-term user of Linux or another OS there are some things to help you here.

Chrome Sync

One of the first things you’ll notice after installing Flex if you use Chrome Browser on the desktop and logged in with the same credentials is that the extensions, bookmarks and other settings from the Chrome Desktop browser will sync over when you open Chrome in Flex.

The changes you make in Flex will also sync back to any Chrome Desktop browser you might be using on your phone or another PC.

This is by design to provide a consistent experience across Chrome no matter the OS

Using the Chrome Web Store

The concept of a location to obtain applications from isn’t a new one, Windows, OSX, and Ubuntu all have a “store”

One of the core pillars of ChromeOS in any guise is that of security so you won’t find as many addons that can be installed from outside of the Chrome Web Store. While it’s not impossible you’re less likely to find anything, unlike Windows, Mac or Linux where it’s possible to get applications installers from all over the place.

Once on there the Chrome Web Store has a mix of extensions, apps, themes and games which will all install AND are part of Google’s Sync which is covered above

If I look at Apps as an example scrolling through even the home screen there are many items most users will recognise

In many cases however a lot of these “apps” are launchers to take you into the web service or an extension which don’t give a huge amount of functionality above just running the website.

It’s for this reason and I think Google is working on killing Apps, most of the apps you click on will say no longer available and take you to their web service.

Extensions however are still here and they are mighty useful

Much like scrolling through the apps section, you’ll search for work through the curated list of Google Extensions.

The idea is that what is found here is tested to make sure it’s safe and secure and while it is for the most part occasionally errant misbehaviour does slip through.

The usual advice of if you’re not sure what it does don’t install it.

It’s also worth noting, that having more active extensions running will use up memory and using too many can start to slow your devices down.

So the Chrome Web store provides you with a location to increase the functionality of websites in the browser, apps are saying, extensions are not, but too many extensions will slow your machine down.

PWA

The progressive web app (PWA) is a thing of absolute beauty

This is an app built from the web technologies like HTML, CSS, and JavaScript, but with a feel and functionality that rivals an actual native app.

Thanks to a couple of smart additions, you can turn almost any website into a progressive web app. This means that you can build a PWA rather quickly, in regards to a native app that’s pretty difficult to develop. Plus, you can offer all the features of native apps, like push notifications, offline support, and much more.

Many sites you find online are actually a progressive web app. for example twitter.com. If you visit that site on your smartphone, you can install it on your home screen. Now, on opening the saved Twitter site, you’ll notice that it looks and performs just like a native app. There’s no browser window or anything. There’s no difference between running it from an iPhone or an Android smartphone. Simply log in and you’re good to go. That’s a major benefit of building your web app with a PWA in mind.

Installing a PWA

In Chrome if you head to sites like twitter.com, music.youtube.com, outlook.office.com, and teams.office.com to the right of the URL bar you’ll see briefly something that pops up and says install then displays a little computer. Clicking on that will present a popup to install the App.

A few seconds later the window will close and the PWA version of the site will open for you to use.

While they are not ubiquitous yet they are gaining traction as they provide a nice mobile and front end with a lower resource overhead for development teams.

Head over to

https://www.pwalist.app/

For a list which seems to keep up to date of available PWA’s

Shortcut Apps

While PWA’s are not everywhere, there is another way to make websites you use a lot and turn them into something which looks a bit more like an application and has its own icon in the taskbar.

Open a website you use often, I’ll again use twitter.com

On the Homepage of the app, logged in click on the three vertical dots in the top right of the browser.

Click on More Tools

Click on Create Shortcut

Select the checkbox which says

Open as Window

Click on OK

This will create a web app you can open from an Icon

This however is very different from a PWA, a PWA is designed to work offline and include lots of scripting features. What we have just created here is a modeless online-only version of the website which is nothing more than a pretty link.

If you are online a lot however this is quite useful, I do this as an example for Evernote, Mattermost, Mail Client and several other apps which don’t supply a PWA. It does make the desktop feel more modern. (for me)

Flags

There are also two parts of ChromeOS, there is what you see as a user and flags. Flags enable features which are not quite ready to go big time in the release however are in need of some testing.

Flags are accessed at the URL

chrome://flags

Accessing the URL will present you with this.

There are dragons here, small ones, but there are dragons here.

#smooth-scrolling

Animate smoothly when scrolling page content.

#enable-wireguard

Enable the support of WireGuard VPN as a native VPN option. Requires a kernel version that support it. – ChromeOS

#dark-light-mode

Enables the dark/light mode of system UI, which includes shelf, launcher, system tray etc. – ChromeOS

#productivity-launcher

To evaluate an enhanced Launcher experience that aims to improve app workflows by optimizing access to apps, app content, and app actions. – ChromeOS

Each of these will add some great functionality to the Flex desktop however some are very early and experimental and can cause problems so I’d advise googling what you’re going to enable first.

Thoughts

Natively out of the box there are apps and customisations which can be run with the core Operating system. These are controlled and some might say limited to Google’s Web Store to enable Google to try and keep the security on your device at a higher level than you’re possibly used to.

Chrome Linux Shell

One of the early items Google added to ChromeOS was the Linux Shell.

The Linux Shell is a container (like Docker, but not) which runs on ChromeOS and provides access to a Debian Buster environment.

As a user, there is access to sudo to raise privileges and the complete file infrastructure for the OS as well, for many the experience will be indistinguishable from running the Debian OS on a Desktop or a Server.

Because the Linux shell OS is running in a container there is segregation between what is run on Linux and the ChromeOS host. This is mainly because this is how containers work however it also gives a degree of strength in depth security.

The Shell has a range of preferences which can be set.

The most recent and interesting of these are the Manage Extra Containers and the Manage USB devices where for example cameras can be attached to video apps in the Linux shell (remember its a container which is like a bubble)

READ THIS

I could write a whole set of blog posts on Debian Linux and the commands below, this is designed to be a high-level introduction to the things you can do using ChromeOS Flex. Please, use google to learn more about Debian or any of the commands I use below. I’ll put some links at the end of the post.

Installing the Linux Shell

The following instructions are taken straight from Google at https://chromeos.dev/en/linux/setup

It’s easy to set up Linux, on ChromeOS. First, go to Settings, expand the “Advanced” menu and go to “Developers”. Then “Turn on” Linux:

ChromeOS will automatically download the necessary files and set up your Linux container. When it finishes, you’ll see a new Terminal app and an open terminal window. We recommend pinning the application to your shelf as a handy way to access your Linux container in the future. Right-click on the Terminal app icon and choose “Pin”.

Sharing Files between ChromeOS and the Linux Shell

A simple way to access files in the Linux container is to make a copy. To do so, open the Files app, drag whatever directory or file you want to access, and drop it in “Linux files”.

Drag and drop files or directories to "Linux files".

If you don’t want to make a copy, you can share directories, such as a project folder, from outside the Linux container with the Linux container. To do so:

  1. Ensure that Linux is set up.
  2. Open the ChromeOS Files app and find the directory you want to share.
  3. Right-click on the folder you want to share and select the “Share with Linux” option.
Right click on a directory to select "Share with Linux" option.

Note: When you right-click on a folder that’s already shared, you will see a “Manage Linux sharing” option instead of “Share with Linux”. This option will launch the ChromeOS Settings menu which is located at : “Settings” -> “Developers” -> “Linux development environment” -> “Manage shared folders”.

Within the Linux container, these shared folders will be located at /mnt/ChromeOS. From the Terminal app run cd /mnt/chromeos.

What is sudo?

In the following section, you’ll see a lot of use of the command sudo, this is a command which raises your privilege on a Linux environment which you’ll need to do to install most packages.

Installing Apps in the ChromeOS Linux Shell

Having set up the Linux shell you’re going to want to install some Applications especially if you’ve come from a Linux system.

The Linux shell will run both CLI apps and Desktop Apps and there are different locations these can be installed from (and some they can’t)

Installing Applications using Deb Files

Debian uses the .deb file system to install programs by default and to do this it uses the apt command

The basic apt command to install something will first update the package repos to make sure they are the latest for this session. These are the remote servers which hold the Debian-approved .deb packages.

sudo apt update

Once the repo information is updated packages from Debian can be installed, so if I wanted to install the nano text editor I would run

sudo apt -y install nano 

One of the things about Linux however is it’s possible to install applications from places other than the Debian repos. You might download for example the vscode.deb file from the Microsoft site.

The downloaded file could now be installed using the following if you are in the folder the file was downloaded to.

sudo apt install -y vscode.deb

However, you could also use

sudo dpkg -i vscode.deb

Occasionally a file you download will need other deb files installed before the one you downloaded installs, these are called dependencies.

To make life easier for myself I use gdebi to install files

sudo apt install -y gdebi-core

Then following the example above for vscode run

sudo gdebi vscode.deb

Using this all dependencies will be installed for you and problems resolved.

Installing Applications using AppImage

AppImages are on paper the easiest way to install applications on any version of linux as they are single self-contained files which just need to be made executable, so they don’t need gdebi or any of the other commands used in this section

A lot of appimages will be downloaded from the vendors’ page however there are lists which vary in degrees of being kept up to date such as https://appimage.github.io/apps/

I’ve recently been using beeper.com and run the Linux Appimage on my Flex device i download beeper.appimage into ~/Downloads (the ~ denotes your home directory)

To keep things tidy (optional) I keep my Appimages in /opt/appimages so my process is something like this

sudo mkdir /opt/appimages
sudo mv ~/Downloads/beeper.appimage /opt/appimage
suco chmod +x /opt/appimage/beeper.appimage

What have I done here?

  • Created a folder which I only need to do once as sudo because /opt is owned by the root
  • Moved my downloaded appimage file into the folder i just created
  • Used the chmod command with +x to make the file executable

Having done this from the Linux Shell i can run

/opt/appimages/beeper.appimage

With this Beeper will launch. Pretty easy right

However, you’ll have noticed when we installed using deb, dpkg or gdebi on the ChromeOS desktop an icon appears and we can launch the app using that icon and not need to open the Linux shell, it’s just like any other app on the desktop.

Appimage by default doesn’t do that which is why appimages are easy to a point, not that the following is hard, it’s just a pain.

Adding an icon for an app image

Download an Image

Step one is to head over to google and search for an image you can use as an application icon, it can be a .png or a .jpg/.jpeg image format

Save the file to the Linux Files folder

Move the file to the same location as the appimage

sudo mv ~/beeper.jpeg /opt/appimages

Remember I have used ~ because it’s my home folder.

Create a folder

We need to create a new folder in a hidden directory, hidden directories have a period in front of their name so if we used the ls command we would see mydirectory but by default you wouldn’t see .mydirectory as it has a period at the start.

cd ~
mkdir -p .local/share/applications

What have we done here?

  • cd ~ takes you back to the home folder
  • The mkdir command with a -p will make the folder and all the folders in the path if they don’t exist
  • I also didn’t need to use the sudo command as i was doing this in my personal area

Add a desktop file

The final stage is to create a desktop file for the application in ~/.local/share/applications

nano ~/.local/share/applications/beeper.desktop

Nano is a basic editor, there are others, use the one you prefer lives too short and this isn’t post about which Linux editor rocks.

Copy this Desktop template into nano

[Desktop Entry]
Name=Desktop
Comment=Fake Desktop app
Exec=/home/user/Documents/
Icon=/home/user/Documents/
Type=Application
Categories=WhateveryourProgramis

we now need to edit this for the example beeper.appimage file

[Desktop Entry]
Name=Beeper
Comment=Instant Messaging app
Exec=/opt/appimages/beeper.appimage
Icon=/opt/appimages/beeper.jpeg
Type=Application
Categories=chat

Save the file and exit

CTRL + O
CTRL + X

Done, in a few seconds your beeper app should appear on the ChromeOS desktop, it might need a reboot.

Installing Applications using Flatpak

Flatpak is like the appimage we covered earlier a format which is designed to be cross-platform installable. So while apt/dpkg/gdebi work on Debian based distros like Debian, Ubuntu, Linux Mint etc they don’t work (easily) on Red Hat based distros for example which use rpm files.

Unlike appimage, flatpak does need some presetup

Get Flatpak running

Enable nested containers
Close the Linux environment, if it is already active.
Open a Chrome browser, then press Ctrl-Alt-T

In the crosh tab that will open, use these commands to enable nested containers:

vmc start termina
lxc config set penguin security.nesting true
exit
vmc stop termina

Start a Linux terminal
Press the Search/Launcher key, type “Terminal”, and launch the Terminal app.
run the following in the terminal:

sudo apt install flatpak

– Add the Flathub repository
Flathub is the best place to get Flatpak apps. To enable it, run:

flatpak --user remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

– Restart Linux.
You can do this by right-clicking terminal, and then clicking “Shut down Linux”.

Now all you have to do is install some apps!

Install a flatpak

Flatpack apps are found at https://flathub.org/home

As an example, let’s install the video editor Kdenlive

https://flathub.org/apps/details/org.kde.kdenlive

Don’t click on the install icon, scroll to the end of the page and run the two commands

After the first run, the icon for Kdenlive will appear on the ChromeOS desktop

Installing Applications using Snap

Snap is the cross-platform format driven by Canonical, it’s a bit like marmite in the world of Linux and it’s a lot like at the time of writing don’t bother.

Snap appear to install however because the Debian is running in a container and the snap format needs access to places the container won’t allow it, and the service doesn’t start.

Personal Option

Snap applications are killing Ubuntu, they are slow to start, the migration of Firefox to a snap app has made Firefox a slow beast running through treacle to use. While I’m a huge proponent of choice in this case my choice is to steer clear of Snap

Using Docker

I do however love Docker and the ability to run Docker-ce in the Chrome Linux shell is something I really appreciate as it’s a nice way for me to test things out locally before I put them in my home lab.

Installation of Docker is pretty simple following the Debian 11 instructions on the Docker site

Remove any old versions of Docker #optional

sudo apt-get remove docker docker-engine docker.io containerd runc

Set up the repository

Update the apt package index and install packages to allow apt to use a repository over HTTPS:

 sudo apt-get update 
 sudo apt-get install -y ca-certificates curl gnupg lsb-release

Add Docker’s official GPG key

sudo mkdir -p /etc/apt/keyrings 
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Use the following command to set up the repository

echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Install Docker Engine

This procedure works for Debian on x86_64 / amd64armhfarm64, and Raspbian.

Update the apt package index, and install the latest version of Docker Engine, containerd, and Docker Compose, or go to the next step to install a specific version:

 sudo apt-get update
 sudo apt-get install -y docker-ce docker-ce-cli containerd.io

Receiving a GPG error when running apt-get update?

Your default umask may not be set correctly, causing the public key file for the repo to not be detected. Run the following command and then try to update your repo again: 

sudo chmod a+r /etc/apt/keyrings/docker.gpg

You can add your linux user to the Docker group enabling you to run docker commands as the local user not root.

Create the docker group.

sudo groupadd docker

Add the local user to the docker group

sudo usermod -aG docker $USER

You will need to reboot the Chrome Linux shell however when you do Docker should be running.

If you’re new to Docker and would like to test this and run a WebUI for Docker I’d recommend Portainer as a good starting point.

Install Portainer

First, create the volume that Portainer Server will use to store its database:

docker volume create portainer_data

Then, download and install the Portainer Server container

docker run -d -p 8000:8000 -p 9443:9443 --name portainer \
    --restart=always \
    -v /var/run/docker.sock:/var/run/docker.sock \
    -v portainer_data:/data \
    portainer/portainer-ce:2.9.3

Check its running

docker ps

Should show something like this

The Container ID will be different and it won’t be up 9 days, but it should be up

If it is then open

http://localhost:9000

Will take you through the setup, take a look at the portainer.io website if you’re unsure, once setup you’ll see a login screen.

And Login will present you with a very usable dashboard

Thoughts

In this section we covered

  • How to install the Linux shell
  • How to install applications using the native apt package management
  • How to install and use appimage and flatpak
  • That Snap doesn’t work well
  • Docker does work well

Android Apps

If this were a blog post on ChromeOS there would be a whole section here on support for Android Apps on ChromeOS and the Play Store.

Google adding Android Apps to the ChromeOS platform was a huge step forward in my opinion and allowed it to become more mainstream as there instantly became a huge known back catalogue of software available to the platform.

Having Android on ChromeOS has also helped Android as a platform as most Android apps are now scaleable to the larger screen.

Alas on ChromeOS Flex there is currently no support for the Android Platform.

There are several schools of thought on this, and I’ll put mine forward here.

In releasing ChromeOS Flex Google has opened the floodgates to people like me, who flagrantly ignored the list of approved devices the OS would work on and started installing it on all manner of devices. This in turn generated a whole plethora of support cases, forum posts and blog posts which I’m willing to bet Google set about working to fix.

They are also in the process of reworking the method which android runs on ChromeOS, adding Android to the mix and having loads of potentially failing Android apps is not good press, nerds, however, tend to use Linux and are in the most part a bit more forgiving with issues and tend to discuss and find ways around them.

I’d be willing to suggest after the first proper non-beta release of Flex we start to see Android roll out on the platform.

Virtualisation

When I talk about Virtualisation what I mean here is running the desktop applications VirtualBox or VMPlayer on the Linux Shell on ChromeOS. I’ve tried a few of these

I’m willing to be proven wrong here, however, I’ve tried this and other commands and I don’t think the Linux shell allows access to the areas of the OS that are needed to be provided to run the kernel modules needed for desktop virtualisation. That kind of makes sense.

I did run across this Reddit page

However if you want to spin up virtual machines my general advice would be to spend some money on DigitialOcean, Linode or Vultr and let them host them.

VPN

This is a really good example of the difference between ChromeOS and Flex, on ChromeOS I’d install the android client for the VPN I wanted to run and off I’d go ExpressVPN, NordVPN, and VyperVPN all have great Android clients and they all work with the stock ChromeOS.

We don’t have that option here, so let’s see what native VPN Support is available on Flex.

Native Support

The Native support for VPN’s in Flex are the following

  • IPSec
  • LT2P
  • OpenVPN
  • Wireguard

OpenVPN

Some observations as I’ve not used the first two, I did however have a lot of fun when trying to setup OpenVPN as it didn’t support ovpn files, now it seems this is totally setup via the GUI (although i’d suspect it can be set up in Crosh)

Before you even start however you’ll need to import your certificates for OpenVPN

  1. Download your user certificate, according to the steps that your administrator gives you. Your certificate filename should end with .pfx or .p12.
  2. Open a new tab in Chrome Chrome.
  3. In the address bar, enter chrome://settings/certificates
  4. Select Your certificates.
  5. Select Import and bind.
  6. In the box that opens, select the certificate file and select Open.
  7. When prompted, enter the password for your certificate. If you don’t know the password, contact your network administrator. If you don’t have a password, select OK.
  8. The certificate will open and install itself on your Chromebook.

Chromebooks only support RSA client certificates for authenticating to VPNs or EAP wireless networks. ECC client certificates aren’t supported.

Then the Basic OpenVPN setup can be complete

  1. At the bottom right, select the time.
  2. Select Settings .
  3. In the ‘Network’ section, select Add connection.
  4. Next to OpenVPN/L2TP, select Add .
  5. In the box that opens, fill in the info. If you use your Chromebook at work or school, you might need to get this information from your administrator.
    • Service name: You can name your connections whatever you’d like. For example, ‘Work VPN’.
    • Provider type: Select OpenVPN.
    • Server hostname: Enter either the IP address or the full server hostname.
    • Username and password: Your VPN credentials. This can be left blank if your server only uses client certificate authentication.
    • OTP: If you have a one-time password (OTP) card or VPN token that generates one-time passwords, get a password and enter it here. In most cases, leave it blank.
    • Server CA certificate: From the list, select your installed certificate authority certificate. The server’s certificate gets checked to make sure that it was signed by the correct certificate authority (CA). If you have trouble with your server certificate, you can select Don’t check to skip CA validation, but this skips an important security measure.
    • User certificate: If your VPN server requires client certificate authentication, select your installed user VPN certificate from the list

If you need anything more advanced than this you’ll need to use ChromeOS as the Android app is suggested for advanced features and/or importing ovpn files.

WireGuard

Wireguard is the VPN I use daily, and it’s a bit of on and off thing, if you’ve set it up right on the GUI, so I put together an article on doing this through crosh which does work. What’s missing is literally a “what am I missing in this config” button

Thoughts

VPN support is there, however it feels like a bit of a box tick which needs a little more love, once working I can attest that Wireguard and OpenVPN both work really well, the setup however could do with supporting import of OVPN and CONF files which would make life much easier.

Connecting to Remote Machines

We have talked a lot about Linux shells, virtualization and VPN however at some point you may just want to connect to a remote machine which could be a desktop or a server. There are several options for doing this and I’ll cover them here.

Chrome Remote Desktop (Free)

As Google’s remote desktop offering you can install Google remote desktop to your remote desktops of Windows, Mac or Ubuntu (not using Wayland) flavour and connect with your Google account. These computers are all accessible from the web browser. However, you will not because of the security model ChromeOS uses be able to access your Flex (or Chromebook) from a Windows, macOS or Ubuntu device so this is an option for accessing remote PC’s FROM a Chromebook.

Generally speaking, this is quick to set up, as it’s a Google product it’s easy to use within the Chrome ecosystem and is useful for connecting to family members ‘PCs if you’re the designated support person for the family.

Details to set it up can be found here

https://support.google.com/chrome/answer/1649523

There is a great youtube video on setting this all up over at ChromeUnboxed as well

Windows Shares

It may be that rather than seeing a full remote desktop it might just be access to a file share on a Windows PC you need access to.

Again, a great if terribly named article over at Chrome Unboxed covers you here. The idea is to take a person through sharing a folder on Windows and then access that shared folder on the Chromebook, you cant do this the other way round because again, the security model doesn’t allow for this.

Ignore the title it is for Windows SMB shares, not NFS Shares

The basics of this are

From the Windows Side

1. Go to System Preferences, then click on Sharing

2. Select File Sharing, then click on Options

3. Allow “Share files and folders using SMB” and select your user account

4. Enter your password, click OK, then click Done

5. Add the folder you want to share under “Shared Folders” and select the type of access you want to give it.

6. Note down the SMB path

From the ChromeOS/Flex side

1. Open the Files app, then click on the 3-dot menu on the top right

2. Select Services > SMB file share

3. Enter the file share path, preferred display name, and credentials. Click on “Add

NFS Shares

Note:

This seems to be a bit hit and miss, conversations on Reddit and Discord show that some people can get this working fine and for others it doesn’t work. There is a possibility this has something to do with the chipset a device uses (or the way the wind is blowing)

Back when I started using Chromebooks there was an extension which would provide support for mounting NFS shares. I found this handy as all the servers I use at home are Linux based and run NFS. Natively within the OS I can’t see an easy method of setting up an NFS Mount in the file tool.

For the brave of heart, you can cheat a little by setting up the Debian NFS Client in the Linux shell

Use the command

sudo apt -y install nfs-common

This installs the software needed to mount NFS Shares

then assuming you had an NFS server setup as myserver.local and the share in /etc/exports on that server was /home/nfsshare you could mount this locally as an nfs folder in your home directory using

mount -t nfs -o vers=3 myserver.local:/home/nfsshare ~/nfs

Note:

You would need to create the nfs folder using

mkdir ~/nfs

Then opening the Linux Files folder in Files you will be able to see the folder nfs and copy files from the desktop to the remote NFS server

Google Drive

This is Chrome, a Google Product and Google Drive is accessible directly from the Files app on the taskbar.

While it’s possible to pull files in and push files up to Google Drive, what doesn’t happen is the local folders sync with it. Personally, I see this as a glaring omission.

If you save files in the Local Download, Images or Documents folder and powerwash the device those files are gone. I’m honestly not sure why Google doesn’t back these up by default the same way they do on the Mac.

SSH

The historical method of getting a native SSH shell was with one of a handful of extensions.

This however over time has led to a string of plugins with errors and problems as they have not been updated to keep track of OS changes.

The easiest method to set up an ssh shell is to use the ChromeOS Linux shell application.

When you launch the application (Flex version 103) options are displayed for additional Linux containers and/or SSH Connections

Adding a connection request for a command string an identity and other options.

The setup is a bit clunky however it is a nice addition to the Linux shell.

Personally, I don’t use this I use the Linux install for Termius a cross platform and cross device SSH/SFTP Client. I use this because it’s portable across my devices and each time I install the hosts and keys are synced from the Saas server to the client.

https://termius.com/

Thoughts

When it comes to connecting to remote devices there are some good options like Chrome Remote Desktop and within the Chrome Web Store some terrible extensions. Its an area that needs cleaning up. It would be nice for Google to add things like native NFS support, SSHFS and SFTP support into files.

You will also have noticed, a trend that unlike Windows, OSX and Ubuntu OS’s ChromeOS in any form is not designed to be remotely connected to by any method for most users (it is possible in Linux Shell, running sshd and some port forwarding)

Hardware

ChromeOS is one of the simplest hardware supported Operating systems out of the box I’ve used in a while.

Over the past few years, there are very few, in fact, I’ll say there is nothing I’ve plugged into or connected to the Chromebook devices which hasn’t worked.

I have a diverse set of hardware which I’ve bought to use with Macs, Linux desktops and various other systems other than the Chromebook. There are some standout examples of how good the hardware support is on ChromeOS.

Displays

ChromeOS and Flex both support Displaylink. out of the box, so there are no drivers to install. You can plug in a Displaylink, HDMI or USB-C Monitor into a Chromebook and it will work. My own set up has a 4k 36″ Screen, a Samsung ultrawide, a 20″ 1080p display plugged into it using a mix of Displaylink and USB-C displays and works just fine.

https://www.synaptics.com/products/displaylink-graphics/downloads/chrome

Printers

The area of printers is a grey one as there are many ways to connect a printer. there is a good list over at Aboutchromebooks which goes through most of the supported printers.

As I understand it most printers are supported on USB, again personally I use an HP Officejet which ChromeOS picks up automatically and I’m able to print and scan with no added downloads.. I would strongly suggest a quick Google.

General

I’ve written a few blog posts with some of the hardware I use with a Chromebook which might be of interest.

The last one was a purchase for a work M1 I had which didn’t support more than 1 additional monitor, however, the hardware works perfectly with the ChromeOS / Flex devices.

Others

There are some other items which are worth mentioning as ChromeOS / Flex features as users you might make use of.

Crosh

The Chrome Shell is not the same as the Chrome Linux Shell

Press Ctrl Alt and T on the Keyboard and the Crosh shell will pop up

There are a whole bunch of things you can do with CROSH which many are outlined here

https://www.howtogeek.com/170648/10-commands-included-in-chrome-oss-hidden-crosh-shell/

I recently used it on Flex to setup Wireguard

Powerwash

So it’s all gone wrong? It’s running slow, you want to start again. There is no need to find an ISO and boot from USB and reinstall with Chrome. Not when there is Powerwash

Run Powerwash and you’re back to a fresh install of ChromeOS/Flex

Useful chrome:// URLs

You may be used to URLs that start with http:// or https:// on Chrome and the ChromeOS/Flex systems there are URLs that start with chrome://

For example

chrome://version

Displays the current version information.

A list can be found here

Phone Hub

Phone hub is a service native on ChromeOS/Flex that connects your phone to your laptop and provides things like fast connecting to your phones hotspot when you are out and about, access to SMS, Photos and other services on your phone from your Chrome device.

Places to read about ChromeOS

So where else do I go for my Chromebook fix? Generally its these sites. I will also give a huge shout-out to the ChromeUnboxed site and it’s well worth paying Patreon to get access to the Discord page, the guys are very active on it and it’s probably one of the friendliest Discord channels I’ve ever used.

ChromeUnboxed – https://chromeunboxed.com/

About Chromebooks – https://www.aboutchromebooks.com/

ChromeStory – https://www.chromestory.com/

Reddit – https://www.reddit.com/r/ChromeOSFlex/

Reddit – https://www.reddit.com/r/chromeos/

ChromeUnboxed Podcast – https://www.youtube.com/channel/UCn9Q-IelxROIkPzgOJEcgjg

Thoughts

There is a lot to intake here, and things will change over time. I’ve put this together to help people who are coming to this platform.

If I have made a mistake, you think I’m incorrect let me know on https://www.reddit.com/user/mightywomble

Chromebooks are great devices and well worth a look even more so with Flex on older PC’s

I fully acknowledge and recommend all the third party content on this post too.

References

https://blog.crosexperts.com/fixing-your-linux-icons-on-chrome-os-b6c2698aeec1

https://flatpak.org/setup/Chrome%20OS

By davidfield

Tech Entusiast