Sunday, April 21, 2013

Making the Chromebook Usable

It's been a couple of days now. I quickly gave up on ChromeOS. There are just a whole lot of things that make it unsuitable to my purposes. Things like printing - while ChromeOS does support printing, it only supports it from Cloud Print.

Google Cloud Print is probably a really clever way of doing it. Setting up printers in ANY OS has for a long time been a pain. It occurred to me as off putting that you can configure a system for a normal user to connect to any wireless network, but the same doesn't apply to printers (although I think adding a user to lpadmin probably gives them that right). In fact, the last few tasks I've done on Windows has been setting up printers. In Linux, it's probably just a tiny bit easier as open source drivers don't tend to have issues between different versions of Linux whereas going from Windows XP to Windows Vista to Windows 7 etc. was always the first set of complaints I would hear at the introduction of each version.

But I really hate the idea of giving Google any information on my internal network - so I won't be setting up my printer on Cloud Print any time soon. So that's a no go. I may feel differently if I were trying to do something like set up an iPad to print (something I get asked all the time. Long story short, I just don't have an answer for this one. I know there are ways of doing it. I just don't know how).

I was watching a TED video the other day on the Chromebook and it was just irritating me. I was having to stream it while at the time I could see the hard drive where I have a whole lot of TED video's downloaded. Someone suggested that I set up a web server on the machine hosting the files but that feels a little bit overkill. It also has the problem that ChromeOS would most likely download the file into it's Download area AND THEN play it. Playing a video off a remote storage location is something that you've been able to do for a long time.

So I went ahead and installed Chrubuntu - a version of Ubuntu made for chromeboooks. It duals boot. I like it except that it needs some tweaking.

For starters, the brightness controls are flaky. This was easily fixed. Go into keyboard settings, shortcuts and go to "custom shortcuts". Change the command for "Increase Display Brightness" to "xdotool key XF86MonBrightnessUp" and the command for "Decrease Display Brightness" to "xdotool key XF86MonBrightnessDown". This makes it less flaky but doesn't do nearly as many "steps" as ChromeOS (i.e. you can't go all the way to turning the backlight off).

The keys that aren't present on a Chromebook are achievable via key combinations. i.e. to do a delete, do alt-backspace. this isn't configured under Chrubuntu and I'm having problems figuring out how to do this. My first thought was to use xdotool to generate it but this doesn't seem to be working.

This also applies to Home, End, PageUp and PageDown keys - where some of the combinations needed in ChomeOS to achieve these is mapped to change desktops.

I'm finally getting used to tap to click. I've turned it off by default previously because I have large hands (that's right... I have to wear big gloves). This is also the first machine I've owned where the button has been part of the touchpad as opposed to a distinctly different button. So while typing I was finding that the cursor was shifting around - making me emit a curse, do an undo and carry on.

In Linux, this is fairly easy to fix. Although I haven't seen a GUI option for doing this, the tools are there under terminal. From a terminal issue this command:

synclient -l | grep FingerHigh

The higher the value for FingerHigh, the more force you need for it register as a tap. To change the value, issue the following command:

synclient FingerHigh=[new_value]

Space is an issue. I can only dedicate 9GB to my Ubuntu partition. I soon found that this was all taken up with my DropBox account so I had to do selective sync i.e. don't sync the whole account. Given the choice, I would just get rid of ChromeOS entirely as I'm very unlikely to boot into it (unless I got word that Google had done an update to the BIOS to make it not suck quite so much).

In an effort to keep space down, I loaded up the terminal and started exploring. Firstly, the boot loader used isn't grub. So I could safely remove that. Then I found that the kernel I was running (using uname -r) were none of those found in /boot. So those could also be removed... along with the headers.

I then also added a script to /etc/cron.daily that would run fstrim. I have no idea if this is actually needed. It's not a change that can be bench marked easily. Better to be on the safer side...
Anyway.... the fact that I'm writing up these notes on my blog means that there doesn't seem to be any place to put this stuff.. So what's really needed to make a Chromebook usable? A wiki...

Update: The synaptic settings seemed to be disappearing. So I put a file into /etc/X11/xorg.conf.d - copied from /usr/share/X11/xorg.conf.d/50-synaptics.conf. The settings still seemed to disappear. It turns out that gnome overwrites your values with it's own, hardcoded settings. Whoever came up with that idea should be soundly hit. So it turns out you're much better off disabling gnome from being able to control your touchpad. To do this, install dconf-tools, load up dconf-editor, go to: org.gnome.settings-daemon.plugins.mouse and uncheck the "active" checkbox.

The trade off to this is that if you're using the xorg.conf type approach, it's then system wide. What we really need is a configuration program for the touchpad that stores those settings somewhere in the user's folder - probably dconf - and restores them whenever a user logs back in.


  1. sounds like you have the same hang up with printing as I do. I was wondering if you had heard of anybody figuring out how to print to a local usb printer using a chromebook running ubuntu?

    1. Oh that's not difficult at all...

      If you're running Chrubuntu, you just need to set up the printer in CUPS. In your browser, go to: (don't bother with the desktop tools. They're inconsistent and will only lead you to insanity as, in one case, one of those tools became dependent on Redhat Linux - I kid you not).

      If you want to be able to print to the printer from Chrome OS - it's entirely possible but not directly from USB. To do this, you need to set up a "Cloud Print Proxy" (which I think is just balls... computers have been able to print before they had monitors).