Tag Archives: fix

Improving Google Drive on the Mac

I’ve been a Dropbox user for ages now, although I’ve never really been hugely active in getting referrals or other activities to increase my free space. Currently my account lets me store 3.8Gb of data. Until recently this has been fine, however, I also now have a few shared folders which are beginning to chew up some space. To mitigate this problem I’ve hived off just under a Gig of data to Google Drive, which I’ve recently installed. While Google Drive doesn’t really give me the in-app integration of Dropbox, it is quite a useful place to dump lesser used files and backups.

My problem is that the badges used by Google Drive are hideous and fugly, and that doesn’t appeal to my sense of good style. If you compare the Google Drive folder on the left in the two images below to the Dropbox folder on the right you’ll see what I mean.

dropbox googledrive

Googling to see if there was a way to solve this issue was, initially, fruitless, however, I came across something telling me where the Dropbox badges were within the application. They’re
icns files which got me thinking; did Google Drive use something similar? Turns out it does. The solution was simple, copy the Dropbox icns files over the Google Drive ones, reboot and voila.

As you can see from the two examples below, it’s not quite perfect. Again, Dropbox is on the left and Google Drive is on the right, and the Google Drive badge is offset lower and to the right. Still, it’s a huge improvement.

dropboxgoogledrivenew

The commands I used were simple, and include a step to backup the old Google Drive icns files. Obviously, we’re messing with the internals of an application here so Caveat Emptor and all that, and if you end up breaking it you get to keep both halves – please don’t come running to me.

cd /Applications/Google\ Drive.app/Contents/Resources/FinderExt.bundle/Contents/Resources

cp Blacklisted.icns Blacklisted.icns.bak
cp Shared.icns Shared.icns.bak
cp Synced.icns Synced.icns.bak
cp Syncing.icns Syncing.icns.bak

cp /Applications/Dropbox.app/Contents/Resources/emblem-dropbox-unsyncable.icns Blacklisted.icns
cp /Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns Shared.icns
cp /Applications/Dropbox.app/Contents/Resources/emblem-dropbox-uptodate.icns Synced.icns
cp /Applications/Dropbox.app/Contents/Resources/emblem-dropbox-syncing.icns Syncing.icns

OSX Screen Saver Bug

Screen Saver PreferencesJust had a really weird bug with Screen Savers in OSX after upgrading to 10.9.2. I use hot corners to enable the screen saver (and thus lock the screen), but this stopped working after the update. Quick Google suggested it wasn’t actually the hot corners not working, but the screen saver. Further Googling uncovered it was something weird to do with the “Start after” setting. I had this set to “Never“. Changing this to “1 Minute” caused my hot corners to start working again. Changing it back to “Never” and everything was still fine. Most odd.

Headless Java Process

Someone1 has updated things on OSX so that when a Java process runs it spawns a little coffee cup icon in the task bar which then steals focus. I’m sure whoever did this thought it would be a wonderful idea which no doubt has some benefits if you think really really hard. If, on the other hand, you’re a dev with a build process that spawns JUnit as a forked process many times during the course of the build, then this new behaviour can be considered a tad on the annoying side. Thankfully a quick moan at Google yielded the following magic:

-Djava.awt.headless=true

I’ve added this little gem into our build scripts by using:

<junit printsummary="on" haltonfailure="true" fork="yes">
    <jvmarg value="-Djava.awt.headless=true" />
    :    :    :
</junit>

And I even hear rumour that you can set export JAVA_TOOL_OPTIONS='-Djava.awt.headless=true', although that’s uncorroborated hearsay at the moment – depends how many scripts I need to update as to whether I go for the global solution.


1Oracle, I’m looking at you… and Apple, don’t think I don’t hold you at least partly responsible.