Page modes, in the spirit of Emacs major modes and Greasemonkey scripts, allow site-specific functionality to be implemented in Conkeror.
Existing modes
Reddit mode
The reddit mode provides a 'cursor', represented by highlighting a specific reddit entry in green, which can be moved up and down to interact with reddit items.
'j' is reddit-next-link: Move the 'cursor' to the next reddit entry.
'k' is reddit-prev-link: Move the 'cursor' to the previous reddit entry.
'o' is reddit-open-current: Open the currently selected link.
'h' is reddit-open-comments: Open the comments-page associated with the currently selected link.
',' is reddit-vote-up: Vote the currently selected link up.
'.' is reddit-vote-down: Vote the currently selected link down.
The reddit commands are on reddit_keymap.
Gmail mode
Gmail mode mostly exists to stop the conkeror keybindings clashing with Gmail's. It moves the following keybindings:
find-url, previously on 'g', is now on 'C-c g'.
copy, previously on 'c', is now on 'C-c c'.
shell-command-on-file, previously on 'x', is now on 'C-c x'.
save, previously on 's', is now on 'C-c s'.
reload, previously on 'r', is now on 'C-c r'.
follow, previously on 'f', is now on 'C-c f'.
follow-top, previously on 't', is now on 'C-c t'.
If you don't like this, you could try enabling the Keyboard Shortcuts feature provided by Gmail Labs (Settings -> Labs) to move the Gmail keybindings to something that doesn't conflict, and changing your conkeror keybindings back. E.g. the following code restores 'g' to find-url:
define_key(gmail_keymap, "G", null, $fallthrough); define_key(gmail_keymap, "g", "find-url");
The Gmail mode also provides C-c C-g, gmail-label-goto to jump to a specific label.
Google calendar mode
This exsits for similar reasons to Gmail mode. It moves the following commands:
follow-top, previously on 't', is now on 'C-c t'
shell-command-on-file, previously on 'x', is now on 'C-c x'
save, previously on 's', is now on 'C-c s'
go-up, previously on 'u', is now on 'C-c u'
To restore any of these commands, see the Gmail section, but use google_calendar_keymap instead of gmail_keymap.
Google maps mode
Google maps adds a few keyboard shortcuts for manipulating the map:
'+' is google-maps-zoom-in: Zoom in on the map.
'-' is google-maps-zoom-out: Zoom out of the map.
'C-b' is google-maps-pan-left: Pan the map left.
'C-f' is google-maps-pan-right: Pan the map right.
'C-p' is google-maps-pan-up: Pan the map up.
'C-n' is google-maps-pan-down: Pan the map down.
Google reader mode
Google reader is another mode for moving conflicting conkeror keybindings. It moves the following commands:
find-url, previously on 'g', is now on 'C-c g'.
save, previously on 's', is now on 'C-c s'.
follow-top, previously on 't', is now on 'C-c t'.
reload, previously on 'r', is now on 'C-c r'.
YouTube, Google Video, DailyMotion modes
These modes facilitate downloading and running external programs on the embedded videos from these websites. Conkeror has a built-in "media" browser object class that is selected by the "e" prefix key. This browser object class uses a "media scraper", which by default just looks for URLs matching certain patterns in the webpage HTML source code, in order to prepare a list of embedded media files from which the user can choose using the completion mechanism. These page modes override the default media scraper with a more sophisticated one that works correctly on those sites. Furthermore, they set the media browser object class to be the default browser object class for the save, shell-command, and shell-command-url commands. As a result, for example, the save command invoked without a prefix while one of these page modes is enabled will automatically choose the embedded flash video file as the target to download.
XKCD mode
The XKCD mode adds the title text of each image below the image itself.