Contribute to Open Source. Search issue labels to find the right project for you!

reactions popover: pressing up to go back to reactions filter should put tooltip at the end of search


Currently, when you go down into the reactions via down arrow key and go back up into the reactions filter via up arrow key, the tooltip jumps to the front of the search term.

We probably either want to keep the original position before going down into the reactions grid or just set it to be at the end of the reaction filter.

Updated 25/04/2017 05:46 1 Comments

Make r/enter work for empty narrows.


Most of the time when you hit r/enter to reply to the “selected” message, there actually is a message to reply to.

We should handle the case where there’s no selected message, because the narrow is empty, but there’s still an implicit stream/topic/person to whom we are replying, based on the narrow. I think we should always open the compose box and fill in as many fields as we can. If we’re narrowed to a topic, then fill in both stream and topic. If we’re narrowed to PMs, open the compose box with the focus on the “to:” field. Etc. The one edge case here would be that you’re in a home view (or a search view) with no messages, and then I don’t know what the correct behavior should be, but it’s probably fine to just make an arbitrary decision.

Updated 14/04/2017 06:41 3 Comments

New feature: make navigation in help menu keyboard-friendly


Help menu can be accessed through the hotkey ?.

Currently, when we try moving up/down in this menu, it seems to disregarding the help menu and moving the selected message up and down. We want to disable this.

Also, we would like to be able to switch tabs from Keyboard Shortcuts to Message formatting/Search operators by allowing tabbing or navigation with right/left arrows.

Read more here.

Updated 12/04/2017 18:17 3 Comments

Add hotkeys for switching between the three main panels.


Currently, there is no easy way to switch between the three main panels (navigation, chat, users) without using the mouse: image

It would come in handy if there were hotkeys for switching between those. The most intuitive keys would be the left/right arrow keys. * The right arrow key is currently unbound. * The left arrow key is currently used for editing one’s last message.

Any implementation should try to find consensus with other Zulip users regarding the chosen hotkeys, especially when they override older ones.

Updated 07/04/2017 02:18 1 Comments

Improve documentation for drafts hotkeys


I think we want to do a few things: * Add a section for the hotkeys you can use inside the drafts modal (enter/ * Document the hotkeys inside the hover behavior for the “drafts” button, trash can icon, and pencil icon in the drafts view.

I think while we’re at this it’s probably also worth making delete do the same thing as backspace, since one some keyboards that’s a lot easier to press.

Updated 18/04/2017 18:11 7 Comments

Add a hotkey to open the lightbox on the nearest image above your current place in feed


This would make it super convenient to just browse through recent designs or other images that are being shared, even if there’s been a lot of back-and-forth.

This should probably be V, the analog of v (which only works if the current message has an image). Or maybe we should just make v find an image if there aren’t any in the current message. Thoughts?

Updated 19/04/2017 06:34 1 Comments

Add hotkey for jumping to next unread topic


This has been discussed in #3926 and #1679 and I think would be a big improvement; I think it’s important enough to get its own issue.

I think we can start with logic that’s basically “jump to next topic in current stream with unread messages, or if none, jump to next stream in left sidebar order with unread messages”.

In terms of key choice, I think n for “next unread” could be a good choice; we can prototype with that and discuss once it’s basically there.

We may find we need a similar to key to jump to next unread PM thread, which might be a good use for p.

Updated 18/04/2017 18:09 5 Comments

refactor/test: Clean up hotkey.js.


We can accomplish a couple goals with static/js/hotkey.js:

  • Eliminate nearly all jQuery calls (besides keydown/keypress) by delegating to other modules like settings.js, compose.js, popover.js, etc.
  • Add more coverage to hotkey.js (via frontend_tests/node_tests/hotkey.js)

This is a good task for a relative newbie who has a little bit of experience with Zulip node tests.

The best way to accomplish this is with a series of pretty small commits. You will want to be thorough with both adding automated tests and manually testing your changes.

Updated 18/04/2017 07:17 3 Comments

Update the hotkeys (meta-issue)



With the addition of emoji reactions, having a quick way to react to a message has become quite important. Hotkeys could be a good way to approach this (see #3911).

This would imply making some changes in the whole hotkey-action scheme, hence this meta-issue, that includes a list of all the hotkeys that we should update (even for actions not related to emoji reactions).

The information here is mostly taken from this topic in Zulip’s development chat.

New hotkeys

Emoji reactions

  • [x] +/- — :+1: and :-1: emoji reactions (#3910)
  • [ ] = — Agree! (emoji TBD)
  • [ ] (TBD) — I’m on it!/Working on it! (emoji TBD; maybe :wrench:? Feedback wanted!)
  • [x] : — Open the emoji reaction UI and focus the text box (#3911)

Navigation and message view interactions

  • [x] * — Star currently selected message
  • [x] M — Mute selected topic in stream (open PR)
  • [x] v — Open lightbox to show the first image in a given message big<sup>1</sup>
  • [ ] Ctrl + j — Launch a quick jump menu to type in a stream name
  • [x] P — View all private messages (aka enter is:private narrow)
  • [ ] n — Narrow to next unread stream/topic
  • [ ] p — Narrow to next unread pm thread
  • [ ] u – View profile of user who sent the message


  • [x] t — Create a new topic
  • [x] g — Open the gear menu
  • [x] d — Open drafts
  • [ ] h — Open help menu
  • [ ] (TBD) — Open stream management menu
  • [ ] (TBD) — open settings
  • [ ] Ctrl + l — Tab to left sidebar
  • [ ] Ctrl + r — Tab to right sidebar
  • [ ] Ctrl + m — Tab to message pane

<sup>1</sup> It could be interesting as well to allow moving between different messages' images with the arrow keys, once inside the lightbox.

Possible Vim-like hotkeys (#1679)

It’s not clear we want to add these, but it has also been discussed to add a hotkey system, similar to the Vim text editor. Even though there has been some disagreement on whether this is worth adding or not, here is the list of proposed hotkeys:

  • [ ] gg — Jump to the top of the stream/topic
  • [x] G — Jump to the bottom of the stream/topic
  • [ ] zc — Mute stream (zc collapses a fold in Vim) Conflicts with the M/U keys, see above!
  • [ ] zr — Expand collapsed message
  • [ ] Ctrl + e — Scroll down the stream/topic while composing a message
  • [ ] Ctrl + y — Scroll up the stream/topic while composing a message
  • [x] Ctrl + [ — Should be accepted as escape
Updated 19/04/2017 06:30 8 Comments

ESC button behavior is unpredictable in message editing and viewing source

  1. Go to an old message and narrow to that topic. For example testing123.

  2. Click any message and look at its source.

  3. Now press ESC. This brings you back to the homepage. This shouldn’t happen and should only close the viewing source ideally.

Not sure if this is supposed to happen or that it is actually a feature because when you view a source, the CLOSE button is automatically selected and you can press enter to exit viewing source.

Updated 26/02/2017 19:56 11 Comments

Additional keyboard shortcuts


The keys seem to be at least partially inspired by vim, so here are a few other ideas that might be useful: - gg: jump to top of stream/topic - G: jump to bottom of stream/topic - zc: mute stream (zc collapses a fold in vim) - zr: expand collapsed message - ctrl+e/ctrl+y: scroll down/up the stream/topic while composing a message - ctrl+[: should be accepted as escape

Updated 23/02/2017 20:54 5 Comments

Fork me on GitHub