discourse/discourse — pull request #1457 by skisulli (2013-09-21 17:51:33+00:00)
Title: Global Gmail style keyboard shortcuts

**WIP - Opening early to get feedback on design**

I would like Discourse to have Gmail style keyboard shortcuts, and have begun implementation using Mousetrap. Below are my proposed shortcuts. The jump to shortcuts have been implemented, but not tested yet.

I am opening this PR early to get feedback on the following:

1. Best place to organize the code. I currently added a `Discourse.KeyboardShortcuts` class under components and initialize the bindings on start, after `bindDOMEvents`
2. How to best test the shortcuts. I am new to testing Ember and using QUnit, so any feedback or advice on how to best test the keybindings would be appreciated.
3. The shortcuts themselves, am I missing anything, do they all make sense?

**Jump To**
* `g` then `h` - Home (Latest)
* `g` then `l` - Latest
* `g` then `n` - New
* `g` then `u` - Unread
* `g` then `f` - Favorited
* `g` then `c` - Categories List

**Navigation**
* `u` - Back to topic list
* `k` / `j` - Newer/Older conversation or post
* `o` or `Enter` - Open selected conversation
* ` - Go to next section
* `~` - Go to previous section

**Application**
* `c` - Create a new topic
* `n` - Open notifications menu
* `/` - Search
* `?` - Open keyboard shortcut help

**Actions**
* `f` - Favorite topic
* `s` - Share topic
* `` + `s` - Share selected post
* `r` - Reply to topic
* `` + `r` - Reply to selected post
* `l` - Like selected post
* `!` - Flag selected post
* `b` - Bookmark selected post
* `e` - Edit selected post
* `d` - Delete selected post
* `m` then `m` - Mark topic as muted
* `m` then `r` - Mark topic as regular
* `m` then `t` - Mark topic as tracking
* `m` then `w` - Mark topic as watching