22 February, 2017

HowTo: Make Ubuntu GNOME Look Like Chrome OS

As someone who has for a time exclusively used Chrome OS, I have since taken on roles ― like Android app development, which I just took a class last semester ― that have put me at odds with the Chrome OS target audience. As a consequence, I now find myself with three machines — an Asus Chromebit, an HP Chromebook 11 G4, and an HP Pavilion G72 desktop replacement laptop, which was originally my sister's, then got handed to my father, and finally handed down to me. Given that I have literally no respect at all for Windows, I decided to use the Chromebook — which was in developer mode at the time — to flash an Ubuntu ISO image to a 16GB USB flash drive using the following command:

$ wget -O - http://cdimage.ubuntu.com/daily-live/current/ubuntu-desktop/amd64.iso | sudo dd of=/dev/sdb

Then, I used that USB flash drive to  wipe the G72 clean. After installing, I then proceeded to "sudo apt-get install ubuntu-gnome-desktop", install Chrome (the browser, not the OS — particularly the dev channel version), and, finally, remove Unity, Firefox, and Compiz. However, it still took some getting used to — switching from a Chromebook to the G72 and back felt like playing a cat-and-mouse game each time due to the fundamental layout changes between operating systems. How could I make the G72 look more like what I have been used to on the Chromebook and Chromebit?

The first thing I did — and this is literally point 1 — was install the Paper theme, which gives both GTK+ and GNOME Shell Material Design makeovers. It doesn't look exactly like Chrome OS, but it's close. After I changed the GTK+ theme to Paper, I used the GNOME Tweak Tool, along with the Shell extension called User Theme (which I had to use the GNOME Shell Integration Chrome extension to install), to in turn change the GNOME Shell theme to Paper.

But wait, the font doesn't quite match up. For that, I ran "sudo apt-get install font-roboto", then used the Tweak Tool to change the GTK+ font to Roboto. Changing the Shell font, however, meant editing some CSS. I opened a terminal, ran "sudo gedit /usr/share/themes/Paper/gnome-shell/gnome-shell.css", and edited Line 19 to read "font-family: Roboto, Roboto Bold, Sans-Serif". Then I closed the text editor, pressed Alt-F2, and ran "r" to restart the Shell. The result was indeed Material, but still did not have the layout that I wanted. How could I make the desktop layout more like that of Chrome OS?

I decided to browse the extensions page some more, and stumbled across an extension called Dash to Panel, which provided 90% of the changes that I needed. Still, however, it didn't look exactly like Chrome OS because the result wasn't as transparent as the Chrome OS Panel is. So, I had to continue. I then ran across another extension called Dynamic Panel Transparency, which makes the panel fully transparent if no windows are maximized. Finally, to make sure that the notifications were in a position congruent to the position that they are in in the case of Chrome OS, I installed the Panel OSD extension. To improve performance, I also, in the Tweak Tool, opened the Extensions tab, clicked the small gear next to Dash to Panel, clicked on the Behavior tab in the resulting dialog, and unchecked "Animate Show Applications". In addition, on that same page, I also set the "Click Action" to "Minimize window". Ah, but wait, what about the wallpaper? A quick Google search will bring it up, but yes, I decided to make this image the default wallpaper, which can be done simply by right-clicking on the desktop.

Overview Mode
The result is indeed something that is much easier getting used to — and vice versa, when I switch back and forth between Chrome OS and Linux, it is now very easy to transition both ways. Plus, unlike some distributions intended to be Chrome OS clones, like Chromixium and Cr OS, the result of this looks far cleaner — those others use Xfce, which, although great as far as performance is concerned, looks terrible as far as being congruent with Chrome OS is concerned. Why? Because Xfce does not allow pinning of apps/windows, one of the key Chrome OS features. This solution does. Moreover, the GNOME Shell overview mode looks much more like the Chrome OS overview mode than anything Xfce has yet offered. Definitely an easy transition, to say the least.