Chrome OS, Google Cloud Print, Chrome Remote Desktop and a (headless) Mac Mini
Recently I migrated a network of Mac Mini’s to Chrome OS, running on ASUS Chromebox Celeron 2955U’s (a Chromebox is the desktop version of the Chromebook).
The setup works great since users rely on Google Apps/Drive and various SaaS products for operating their business. However, businesses like to print, so I had to connect their ‘classic’ printers to Google Cloud Print.
If your network still has a PC or Mac connected to your printers with Chrome installed, all you need to do is run Chrome as a Google Cloud Print proxy (GCP proxy). I decided to re-purpose one of the old Mac Mini’s as a headless print server/Google Cloud Print proxy (to discourage everyday desktop use of the old Mac!), and thought I’d share some notes.
Chrome Remote Desktop Host
Before your Mac goes headless, you’ll want a way to access it so you can resolve any issues with the print queue, etc. Since all of the local computers are running Chrome, installing the Chrome Remote Desktop host service made sense. Now we can manage the Mac from any Chrome browser with the extension installed, just by logging into the Google Account that is hooked up with the Remote Desktop host and entering a PIN.
Run Chrome GCP Proxy on boot
I configured the Mac to automatically boot on power failure, and to login to a default user, however making Chrome automatically ‘open at login’ didn’t seem to reliably connect the GCP proxy. To fix this, I created an ‘Application’ using Automator which runs a shell command to launch Chrome with the GCP proxy:
open -a “Google Chrome” --args --enable-cloud-print-proxy
This ‘Application’ has been configured to run at login via System Preferences > Users & Groups > (select user) > Login Items (tab), and it seems to connect the GCP proxy right away.
Disable Mac Keyboard/Mouse prompts on boot
This wasn’t a huge issue, but rather an annoyance that every time the Mac restarts without a keyboard/mouse attached, it would present a prompt looking for a Bluetooth keyboard/mouse. Turns out you just go into System Preferences > Bluetooth > Advanced and uncheck a couple of boxes!
Fixing printer defaults via CUPS
One small annoyance for our users was the default page size was US Letter and not A4. I found a simple fix for this was to change the printer defaults in CUPS. On the Mac, I first enabled the CUPS web interface with the following command:
cupsctl WebInterface=yes
Then opened the web interface in Chrome at: http://localhost:631/printers/
To modify printer defaults, select your printer, and from the second dropdown with ‘Administration’ as the value, change this to ‘Set Default Options’ (as per above screen). You should then be redirected to a page where you can change defaults such as media size, paper source (default tray), etc.
That got the ‘classic’ printers into Google Cloud Print ready for sharing with the team. Any time there’s an issue with printing, we can login to the headless Mac via Chrome Remote Desktop and check the Print Queue for issues, and if for some reason the Chrome GCP proxy stops working usually a quick restart will solve any issues thanks to our Automator script.
This solution is working surprisingly well, and I’d definitely recommend it for connecting ‘classic’ printers to Google Cloud Print if you have a spare Mac or PC to run as a GCP proxy. If you have a Raspberry Pi or similar, you might want to check out the CUPS Connector project, however I personally haven’t used this so cannot speak to it — but I am intrigued by the idea!
I hope you found this article useful, and welcome and comments or feedback. And please think about the environment before you print!