Keyboard shortcuts

The core team had a hackathon a while ago and one of the projects was adding keyboard shortcuts across Mattermost,

We ended up not checking it in because no one was really sure about what keyboard shortcuts made the most sense, and we worried about getting users accustomed to a set of shortcuts that worked for a small group of users, but didn’t scale to our fast, obvious, forgiving design principle longer term.

Starting a thread for community suggestions about what the most appropriate keyboard shortcuts should be, so we can open a ticket accepting pull requests for changes.

Shortcuts so far:

In a message box:

  • ENTER - Sends a message
  • CTRL+ENTER - Adds a carriage return to a message
  • UP - Edits last message posted by user in channel

We’re interested in feedback on keyboard shortcuts and in particular why they should map a certain way (over the configuration another user might prefer),

To make things simple, the decision on which shortcuts are added remains with the design team. The end goal is Mattermost is fast, obvious and forgiving in its design,

PS: Yes, we could have the configurable potentially in future, what we’re looking for to start is defaults,

2 Likes

Instead of CTRL+ENTER, I’d propose either:

A) Use OS-specific bindings, several native Mac apps use OPTION+ENTER

if OSX:
  OPTION+ENTER
else:
  CTRL+ENTER

B) Just SHIFT+ENTER on all systems - which is what HipChat and Slack do

1 Like

How about these…

at any non-trivial team size having a nice channel switcher becomes absolutely necessary. Maybe CTRL+K as Slack does it, with maybe a fuzzy matching search box to go along with it?

1 Like

I would like to quickly access my message history like you can on a Terminal in case you need to retype the same or similar thing repeatedly (not for spamming of course :wink: ).
I think SHIFT+UP and SHIFT+DOWN would be quite obvious controls for that (as UP alone is in use already and I feel CTRL/ALT/CMD are better used for more global functions, like channel manipulation, etc.)

A suggestions to avoid collisions with browser or OS-wide shortcuts: maybe use VIM style direction keys ( e.g. h,j,k,l,gg,G ) with a modifier for switching channels, mark sth. read, open a channel or direct chat, etc.
This could be extended to :command style syntax within the text field of any chat.

1 Like

I would really like to be able to quickly move to a conversation (either a channel or a private chat).
For that a keyboard shortcut to search for channel/user name would be vital!
We are currently transitioning from Skype and there i can use Alt+1 and search. It’s super quick. In mattermost I have to use the mouse and even scroll to find the channel/person I want.

What about just typing “@channel/username” when a text field does not have focus? If this then had fuzzy search as mentioned above and would open the nearest match on Enter, that would work nicely.

We love the up arrow to edit last message like in Skype. Searching Google for keyboard shortcut to switch to a different channel brought me here, hoping to find one…

The UP binding seems problematic to me. The most natural thing for that to be would to scroll up in the history. What about using CTRL+UP or some such modifier as the edit-previous-message binding?