look ma, no mouse
Tuesday, October 20th, 2009If you want to save about a month per year, quit using your mouse and learn keyboard shortcuts for your most common tasks.
What if your most common task is Facebook?
Facebook sucks for keyboarding. There is, fortunately, a script for Firefox called Facebook Fixer that improves keyboarding in Facebook (along with a bunch of other great features).
Keyboard Shortcuts that come with Facebook Fixer:
From any page:
A - Albums/photos
B - Toggle buddy list (online friends)
C - Facebook Fixer configuration
F - Friends
H - Home page
I - Inbox
L - Start/stop Facebook Fixer from Listening for page changes
N - Notifications
P - Your profile
T - Translate selected text
From the home page:
f or l - Live feed
i - Posted items
n - News feed
p - Photos
s or u - Status updates
From profiles:
i - Info
p - Photos
w - Wall
x - Boxes
From pages with pagination (previous, next, etc)
While viewing albums/photos:
a - Load all thumbnails (when available)
b - Show big pictures
c - View comments
k - Back to album
m - Photos of (person) and me
While viewing recent albums and uploaded/tagged photos:
a or r - Recent Albums
m or u - Mobile uploads
o - Photos of me
p - My Photos
t or f - Tagged friends
It requires greasemonkey. I lost interest in Greasemonkey because juggling versions of Firefox, Greasemonkey, and the Greasemonkey script is a huge headache and trusting maintainers to keep up with it after they graduate from high school is a bad bet. I’m giving it another go in hopes that the Facebook fixer will stay maintained.
Facebook fixer shortcut code is butt simple and probably won’t break between versions. If it does, it would be easy to copy the shortcut code by itself and make my own add-on.
Line 3 shows how to ignore keyboard shortcuts if the user is trying to type in a textbox.
if (prefs['Shortcuts']) {
window.addEventListener('keydown', function(e) {
if ((e.target.type && e.target.type!='checkbox' && e.target.type!='select') || (e.target.getAttribute('contenteditable')=='true') || e.ctrlKey || e.altKey || e.metaKey) { return; }
function clickLink(filter, root) {
var link;
if (!link) { return -1; }
click(link);
}
if (e.keyCode==191) { if (e.shiftKey) { window.alert('Facebook Fixer Debug Info:\n\nid: ' + id + '\ntimestamp: ' + version_timestamp + '\npage: ' + page + '\nlanguage: ' + language + '\nlistening: ' + (listening?'true':'false')); } } // ?
else if (e.shiftKey) {
switch(e.keyCode) {
case 37: clickLink('First'); break; // Left Arrow
case 39: clickLink('Last'); break; // Right Arrow
case 65: window.location.href = 'http://www.facebook.com/photos/?ref=sb'; break; // A
case 66: click(document.getElementById('buddy_list_tab')); break; // B
case 67: showConfig(); break; // C
case 70: window.location.href = 'http://www.facebook.com/friends/?ref=tn'; break; // F
case 72: window.location.href = 'http://www.facebook.com/home.php?ref=home'; break; // H
case 73: window.location.href = 'http://www.facebook.com/inbox/?ref=mb'; break; // I
case 76: if (listening) {
stopListening();
window.alert($l('ListeningStopped'));
} else {
startListening();
window.alert($l('ListeningRestarted'));
}
break; // L
case 78: window.location.href = 'http://www.facebook.com/notifications.php'; break; // N
case 80: window.location.href = 'http://www.facebook.com/' + (id.match(/^\d+$/) ? 'profile.php?id='+id+'&ref=profile' : id); break // P
case 83: e.stopPropagation(); e.preventDefault(); document.getElementById('q').focus(); break // S
etc....
This brings up the question: Am I going to learn a different set of key strokes for every website I use? I’m pretty good at Gmail and Wordpress, I’ll probably adapt pretty quickly to SHIFT-a when I want to stalk some friend of a friend on Facebook, but this isn’t very scalable. That’s is why mice were invented! Universal interface! So, mark me down as NOT a believer in web-app specific keyboard commands. That stuff should be in the browser, except with google apps, which are honorary desktop applications.
The single most powerful keystroke for browsing is the single quote key in Firefox. It lets you find links as you type. Adopting this habit alone will free up enough time to have up to 8 more Facebook friends.
Internet Explorer doesn’t even try to offer keyboarding. There is no “find as you type”. No “find links as you type”. No text selection via keyboard.
Besides saving time, I’ve noticed that people who can do everything by keyboard make me think, “now that’s an expert’.
