Here's aEdit update: As requested, I'm removing the snippet and including the full code from the plugin: located at the above URL.
add_action('wp_footer','keyboard_shortcut_navigation');
function keyboard_shortcut_navigation(){
global $paged, $wp_query;
if ( !$max_page )
$max_page = $wp_query->max_num_pages;
if ( !$paged )
$paged = 1;
$nextpage = intval($paged) + 1;
?>
<?php if( is_single() ) : ?>
<script type="text/javascript">
document.onkeydown = chang_page;function chang_page(e) {
**Snipped code**var e = e || event,
keycode = e.which || e.keyCode;
var obj = e.target || e.srcElement;
if(obj.tagName.toLowerCase()=="textarea"){return;}
if(obj.tagName.toLowerCase()=="input"){return;}
if (keycode == 33 || keycode == 37) location = '<?php echo get_permalink(get_adjacent_post(false,'',false)); ?>';
if (keycode == 34 || keycode == 39) location = '<?php echo get_permalink(get_adjacent_post(false,'',true)); ?>';
}
</script>
<?php elseif( is_home() || is_category() ) : ?>
<script type="text/javascript">
**More snippeddocument.onkeydown code**= chang_page;function chang_page(e) {
var e = e || event,
keycode = e.which || e.keyCode;
var obj = e.target || e.srcElement;
if(obj.tagName.toLowerCase()=="textarea"){return;}
if(obj.tagName.toLowerCase()=="input"){return;}
if (keycode == 33 || keycode == 37) location = '<?php echo get_previous_posts_page_link(); ?>';
if (keycode == 34 || keycode == 39)
<?php if ( $nextpage <= $max_page ) : ?>
location = '<?php echo get_next_posts_page_link(); ?>';
<?php else : ?>
location = '<?php echo get_pagenum_link( $max_page ); ?>';
<?php endif; ?>
}
</script>
<?php endif; ?>
<?php
}