Right now the “r” hotkey allows users to reply either the stream containing the highlighted(/selected) message or the author of the message they have highlighted (w/ “R”). However, the selected box does not update over through time, thus you have to either use the arrow keys to scroll up and down to get to the appropriate message or narrow your scope by selecting one specific stream/pm to be in focus. I prefer to sit at the global screen to process all my messages but it is very inefficient/inconvenient to repeatedly scroll up and down to get to the right place. Having the selected box automatically update as new messages come in would be slightly better, but would still lock me into one stream. Also, while “c” allows me to send a message to anywhere, it would result in non-trivial time wasted and introduces potential errors (misspelling a stream or topic name or failing to use the drop down box correctly).
Therefore, I would like (and I think it would be useful for other like minded users) to have a new hot key binding that hopped back through time to the topics you most recently replied in. For instance, if I messaged (stream/topic): “IT/maintenance”, “IT/upgrades” and then “Everyone/helpdesk”, this new hotkey (arbitrarily for example setting it to “ctrl+t”) if pressed from the global screen would start composing a new message to “Everyone/helpdesk”, pressing ctrl+t would switch the message to “IT/upgrades” and another ctrl+t would switch the message to “IT/maintenance”. ctrl+T should do the same but for private messages. I think that having it be a key pairing is important, so that it could be invoked multiple times (i.e. if it is just “t”, then pressing “t” a second time would add the literal character to a message).
Several immediate questions and my proposals:
Q. How frequently are these stacks updated?
A. Each time a message is sent, the stacks should be updated, using MRU (probably).
Q. What happens if you have nothing in that stack and try to use it?
A. The same functionality as “c” (or “C”)
Q. What happens if you try to hop back through more history than you have (i.e. you press it 4 times when you’ve only sent messages to 3 unique locations)?
A. It cycles through back to the first one
Q. How many hops are stored in this stack?
A. There would be some fixed limit (potentially configurable) (e.g. 10 hops). There would also be some timeout (potentially configurable / togglable) that would remove old entries (i.e. when you send the one message to random user X, it gets removed from your history after X hours, so that if you don’t exceed the fixed limit, it still removes cruft).
Q. What happens if you are not at the global scope?
A. If your scope is narrowed to a stream, stream hops (ctrl+t) would only show topics within that stream, pm hops (ctrl+T), would show all PMs. If your scope was narrowed to a topic, stream hops would do nothing, pm hops would still traverse all PMs. If your scope is narrowed to a PM, stream hops would iterate all streams and pm hops would do nothing.