Just my blog for now

Thoughts on ChromeOS

I’ve had a bad habit the past few years of either trying to completely de-Google my life or go all in on Google. Last year I went overboard thanks to how neat and useful Google Assistant seemed, and while I’m recovering from that, I’ve not decided to go full anti-Google right now. One thing that did come out of that is I got a Chromebook, specifically the Lenovo Yoga C630. It’s one of the higher spec’d Chromebooks and is decent laptop overall, but unfortunately when trying to run Linux on it, there’s still some missing pieces drivers, crucially audio. So I’m stuck with ChromeOS for now. So I’ve tried to give it a fair shake to see if it can be my full time computer. Luckily being a fairly recent Chromebook with good specs, it supports both Android apps and the Crostini Linux environment. Android apps I find the most disappointing since for the most part Android developers never took Android tablets seriously and thus they are all basically phone apps that either get stretched to full screen or show up in little windows sized and shaped like a phone screen. There are a few that work okay such as Hearthstone or Discord if you stretch out the window to more desktop dimensions, but then there are plenty more that are stuck looking like stretched out phone apps or just don’t work at all. Google seems to be positioning Android apps as the apps of the future for ChromeOS with the sunset of current native Chrome apps already on the horizon.

It’s actually Linux applications that I’ve found the most useful, though there are some rough edges. Basically if you can install software in a Debian-like environment, you can install Linux software on a Chromebook supporting Crostini since the Linux container is just Debian(though it can be a wide variety of Linux distros, I just kept the default since I’m pretty comfortable with Debian). If you download a .deb file(a software package for Debian based distros), you can double click it in the ChromeOS file manager and install it directly via a little native ChromeOS UI. Kind of neat and probably a sign that Google doesn’t intend to stay on the ChromeOS basement for nerds only. But even though ChromeOS is Linux based, this Linux environment is separate from the core system, so it doesn’t have direct access to hardware. This has been the source of a lot of problems, but Google does seem to be working on it. My Chromebook now supports accelerated video in Linux, but with integrated Intel graphics, that doesn’t count for much, and there’s still some weirdness like what seems to be a lack of full compositing support for desktop applications that can cause weirdness like black bars around the menus on Firefox(yes, you can run Firefox on ChromeOS). For a while thinks like snaps and docker or really anything that used some form of containerization wouldn’t work, but that seems to have been fixed and docker works fine(and I think snaps do to). There’s also a degree of support for passing USB devices through to Linux container. Also a lack of network full network support prevents the mounting of network file systems like NFS within the Linux environment, which is a huge problem for me. There does appear to be FUSE support, but that’s a hell of a half measure. There’s also an issue in that I don’t think there’s any “system tray” integration between ChromeOS and Linux applications.

So on to actual usage. I’ve actually used ChromeOS on and off for a long time, I actually had a Cr-48, and the operating system has really come a long way from being just a full screen all the time web browser. I wouldn’t say the UI is anything special, but it’s as slick and usable as anything else I’ve used in 2020 among the major operating systems(and even the more polished Linux desktops). It feels like a real operating system, but in typical Google fashion there’s already two “app stores” available out of the box(the Chrome Web Store for ChromeOS apps and extensions, and the Google Play store for Android apps), so new users may be a bit confused. It’d be great if Google could combine those two(I know Chrome web apps are going away, but extensions will still be there) and maybe even curate some of the more useful Linux applications in the same UI for Chromebooks with Crostini enabled. Given the slightly confusing app situation, once you get it figured out, how usable is it? As long as you don’t need direct hardware access(i.e. special hardware or usb dongles) and can do what you need to do either via a web browser, Android app, or software available on Linux, you can probably do what you need. As some one who’s main non-media consumption task on computers is programming along with remotely administering servers and other infrastructure, I can do pretty much all of that with out making any sacrifices compared to Linux, Windows or Mac laptops(I say laptop, because I’m trying to compare general usability not, a laptop to a fat desktop with a ton of computing power). Overall that part has been a genuinely pleasant experience. If this was my work laptop and those were the only kinds of things I needed to do, it’d be a three way tie between ChromeOS, Mac, and Linux for usability at work(Sorry Windows, WSL and the new in development console are nice, but you’re still a step behind). Android Studio is supported, but it doesn’t support virtual devices, so you’d need to do all testing and debugging from a physically tethered phone.

It was surprisingly personal use that tripped me up the most. While my Chromebook can play video from streaming services as good as a browser on any other operating system(looks like the few stragglers I had like HBO are finally caught up, but there may be others I don’t use), it falls on its face a bit when I try to play my own media. While I do use modern streaming services I have some of my own music and movies on my file server. On any other operating system I’d mount the share(NFS or SMB) and I can play the video files directly and point my music player to the music folder on the share. While ChromeOS can mount SMB shares in its file explorer, local media playback is rudimentary at best. While the rudimentary media playback presents a problem for music, it’s actually just the kind of minimalist player I like for video, or it would be if the codec support wasn’t so narrow. Specifically it doesn’t support h.265 video or AC3 audio, but of which I’ve used to encode my BluRay rips. There are some workarounds like Android apps for Music and Video that can natively browser SMB shares(Android can’t seem to see the ChromeOS mounted SMB), though they can be clunky and I haven’t found any I really like as a desktop player. Theoretically Linux should be my savior here, but unless remote share mounting has improve(in fairness it may) I don’t have anyway to access the files since I can share ChromeOS mount with Linux like I can with other folders. So it’s dead in the water. I do have Plex, which is the option I’ve mostly gone with, but even it’s not a great option. I’ve basically got most of more recent video collection encoded with Roku support in mind(hence HEVC and AC3) and my media server doesn’t have to work too hard since nearly everything in my house that streams from Plex can play most of the encoded formats naturally, but the poor think has to ramp up when it’s Chromebook time and transcode anything recent(luckily no issues with the older h.264/AAC encoded stuff). Sure for future stuff I can go for VP9 for video and something suitable for Roku and ChromeOS for audio, but I’m not going to go back and re-rip everything. So it’s not a great for media outside of Netflix and Hulu. And then there’s the little weird edge cases that comes up for more personal use. For instance trying to write an SD card image for a Raspberry Pi, but I had to go to another computer for that since without direct hardware access dd in the Linux environment is basically useless(I think there might be a way to trick the ChromeOS recovery tool to write arbitrary images, but I haven’t tried it).

So would I recommend a Chromebook, and to who? There are a lot of guard rails and for certain people that can be great. I bought my mother a Chromebox which I think is working great. For anyone who finds themselves doing any tech support for less tech savvy family members, ChromeOS computers seem to be more difficult for them to break than Windows and even Macs, so I’d say it’s a win there. If have little to no local computing needs with Spotify and Netflix and being you music and video libraries, and you want a hassle free computer go for it. But if you like to do anything even slightly outside the lines on occasion, I couldn’t recommend a ChromeOS computer as your only computer, but if you want a fairly hassle free secondary computer for some development work, a Chromebook might be a good fit. I do have a desktop computer with a full regular Ubuntu desktop, so I can still handle my edge cases, so my Chromebook does work for most of my couch computing needs, even if it does stress out my poor Plex server more than the other devices in my house.