I finally broke down a few days ago and decided to make Firefox my default browser. I’ve tried to move away from Safari a few times in the past but never made it longer than a day. Safari is a better OS X application in some very fundamental ways but I’m encouraged by the Firefox/Mac activity slated for Firefox 1.5 and beyond.
My reason for switching and my reason for holding off for so long are
the same: my browser contains significant customization and
personalization. I’ve built up a nice little toolset on top of Safari
extensions, and URL
searches, not to
mention all of my cookies, passwords, and history. Once you’ve
established a normal workflow around these customizations, it becomes
hard to go without them. It’s not unlike trying to switch from Emacs
(with a ~5,000 line
.emacs file crufted over years of use) to vi.
But, as I said, the ability to customize the browser has become so
important to me that I’m willing to take the hit to productivity and
Macishness now to get ramped up on a platform with far greater support
for customization. In other words,
Greasemonkey. I’ve only just begun
diving in but my experience thus far
is promising. The ability to automate tasks and extend basic web content
with simple scripts seems so insanely obvious that I’m having a hard
time understanding how this wasn’t a built-in feature of the 3.0 era
browsers. Greasemonkey may be the first signs of a long awaited
convergence between Emacs and The Browser :) Now if I could just get an
M-x prompt, we’d be in business (YubNub anyone?)
As with Emacs, I will now begin building an embarassingly unorganized collection of hacks. I spent an hour or so combing through the massive repository of user scripts just to get my feet wet. Notes and pointers to stuff I found useful as follows…
Auto Login Everywhere
The AllowPasswordRemembering and AutoLoginJ scripts can be used to get almost reliable automatic login anywhere that Firefox puts up the “Remember this password” dialog. When you hit a site that Firefox has login information for, the AutoLoginJ script goes ahead and auto-submits the form. I’ve tested it across a couple of different sites and it seems to work about half the time. My banking site, O’Reilly Connection, and Vonage seem to work well but none of Yahoo, del.icio.us, or flickr.com worked.
I hate multimedia on the web – especially video. There’s a special place in hell for whoever is responsible for the tiny embedded players with format/bandwidth selection and shite controls that are so common. I promise the experience would be dramatically increased if all video was reduced to a thumbnailed image linking to an actual real video file.
user script gets me half way there by inserting a link to the video file
under the video display. My first hack will be to have it replace the
<embed> with an
If you’re looking for somewhere to test this script, I highly recommend This Spartan Life.
A Whole New Google
There is an immense set of useful Google specific scripts. I’m using Google Access Keys and Google Search Keys for quick keyboard navigation of search results. The Google Image Rewriter makes image search results link directly to the image instead of that weird framed thing.
Holy Crap, I can use Slashdot
The Slashdot Single Page View script provides thread expansion without requiring a page refresh, xSidebars removes the butt-cheeks, and Add Mirrors puts nice little Coral, MirrorDot, and Google Cache links next to every single link on the page. There’s more Slashdot specific scripts I haven’t tried yet.
Other scripts I’ve found useful:
BetterDir beautifies Apache directory listings. It’s really not that big of a deal but it shows the types of interaction a user script can have with a page.
CookieMonster puts a little thing in the bottom left of the page that shows raw cookie data for the current page upon hover.
strikeslinks having a
rel="nofollow"attribute. Mildly interesting sometimes.
TextareaResize sounds cool but doesn’t seem to work.
SearchTermHighlighter gives you Google cache style highlighting of pages entered through a major search engine. The highlight is non-intrusive.
Come on, I know you guys have some gem recommendations – what am I missing?