Discord's keyboard shortcuts suck because they use the arrow keys. DiscordVim lets you navigate (almost) all of Discord without taking your hands off the home row, just as God intended.
DiscordVim currently only works in the browser.
Install Violentmonkey, an open-source userscript manager. Add this script to it.
j/k navigate messages
o if the message has a link or image, open the first one
p if the selected message is a reply, go to its parent
(if you have permission to pin messages, use Ctrl+P instead to avoid triggering pin functionality)
i focus on textbox
Esc/Ctrl+[ select the last message in the channel, or escape the image viewer if it's open
Alt+j/k navigate channels
Alt+Shift+j/k navigate unread channels
Alt+Ctrl+j/k navigate servers