You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A plugin for powercord, similar to the Vimium plugins for Chrome and Firefox, that lets you use vim-style hotkeys to navigate the Discord interface.
More info
Ideally the hotkeys would be very similar to what's already available in Vimium (and by extension Vim). For example, pressing / would let you search message history (ideally using Regex like Vim does, but focusing on the searchbar is probably enough).
Proposed keybinds:
i : focus on searchbar (settings) or chat bar (chat view). Place cursor at the beginning of the text.
I : focus on searchbar (settings) or chat bar (chat view). Clear the focused bar.
a : focus on searchbar (settings) or chat bar (chat view). Place cursor at end of preexisting text. a for append.
O : Alias for the quick switcher.
h : Highlight previous message.
l : Highlight next message.
k : Scroll down. Don't change the highlighted message.
l : Scroll up. Don't change the highlighted message.
/ : Focus on the search bar (chat view). Any other view, open a Ctrl-F style menu for searching for text in the interface.
H : Move to previous channel.
L : Move to next channel.
K : Move to previous server.
J : Move to next server.
r : reload discord
R : reload Powercord's plugins/themes (if that's possible)
yt : Copy highlighted text to clipboard. If no text is highlighted, but a message is, copy the raw contents of the highlighted message. yt is for yank text and because they're close together.
yy : Copy a link pointing to the highlighted discord message.
yi : Copy a link to an embedded image on the highlighted discord message.
yu : Copy a mention to the user who wrote the highlighted message (yank user).
v : enter visual select mode, where hjkl moves the carat and holding shift with hjkl lets you highlight text. Carat starts at the beginning of the selected message, or if none are selected, at the most recently sent message.
V : enter Visual Line Mode. Identical to visual select mode, but selects one full line at a time.
gg : scroll up to the last read message & highlight it
G : scroll down to the most recent message & highlight it
g<n> : Go to the specified message number n, counting up where 0 is the most recent message. Highlight it.
gu : Go up. Return to the channel higher in "hierarchy" to the current one. When in a thread, exit it and go to the parent channel. When in a channel, exit it and move to the default channel for the server (e.x. #general). When already in the default channel, go the discord home.
gi<n> : Focus on the nth text input box on the page. Useful for keyboardless settings menus. Highlight all existing content (as it would be if you tabbed to it).
ga<n> : Focus on the nth text input box on the page. Place cursor after existing content.
[[ : Go back to the previously viewed channel.
]] : Go to the next viewed channel in history (like the forward button on a browser).
m<a> : Create a new mark at the highlighted message. a is any character on the keyboard that isn't m. Marks persist between restarts.
` <a> : Hop to the position at mark a. a is any character that isn't m. Marks persist between restarts.
mm : Open a modal that shows all existing marks. Within this modal, hjkl are used to change focus (or mouse). Pressing d will delete the highlighted mark, pressing g will jump to it. Beside each mark, display server and channel name. Depending on layout might also have room for a message preview, up to implementer.
p : Open the URL that's on your clipboard. If it's a discord message link, go to it. Otherwise, open it in the system's default browser.
n : While the search menu is open, go to next match.
N : While the search menu is open, go to the previous match.
c/ : change search. Cycles to the next sorting mode (to the right) in order while the search pane is open.
cs : change settings. Opens the settings menu.
cc : change channel. Opens a modal, in the same style as the quick switcher, but that shows voice channels. Will move you to a voice channel by name. If you don't specify a voice channel, and just hit enter, will move you back to the last voice channel you were in. Good for quickly switching back or rejoining if someone kicks you or you get moved to #afk.
cm : change mute. Toggles mute.
cd : change deafen. Toggles deafen.
ct : change stream. Opens the selector panel that lets you pick what content you're streaming.
xd : exit discord. Minimizes discord to the system tray.
xc : exit channel. Leaves the current voice channel.
XX : fully quit discord. No minimizing, just quit. If possible.
. : Open a modal that lets you run powercord commands without using the chatbar, for example while you're in the settings menu, styled after the quick switcher.
f : put a tag on each clickable link/interface button with a 1-2 character combo that will trigger it.
Esc : escape the current mode (defocus when in insert mode, remove the tags added by f, etc.)
Ui : upload image. Opens the upload dialog, to a configurable Pictures folder.
Uo : upload other. Opens the upload dialog, to a configurable documents folder.
Un : upload no-dialog. Opens a short modal (quick-switcher style, of course) that you type a path into (with autocomplete) to upload an image. Starts relative paths from the preconfigured documents path (or a separately configured one, if preferred). Absolute paths work as expected.
dd : deletes the highlighted message, if you have the perms to. Never fails to delete one of your own messages.
u : undo. If you deleted one of your own messages and press this, it will re-send its content. Not perfect, as it screws up time order.
yy : copy link to highlighted message to clipboard.
gs : ctrl-shift-i for people who hate modifier keys
cp : opens settings to plugin menu
ct : opens settings to theme menu
cM : toggles showing members
sc : start call. Starts an audio call with the user who wrote the highlighted message (in DMs) (or, in a DM, the other person in the DM).
sv : start video call. Starts a video call with the user who wrote the highlighted message (in DMs) (or, in a DM, the other person in the DM).
sd : starts/switches to DMs with the user who wrote the highlighted message.
t : go to home.
T : go to home and behave like you pressed the plus button next to Direct Messages.
er : reply to highlighted message. Snap focus to message bar and behave like insert mode.
eR : reply but don't enter insert mode.
ee : react to highlighted message.
eE : react to the highlighted message with a default reaction (star, pin, etc.). Configurable default emoji for each server. One server could be star, the other pin.
ep : pin it pin it pin it (only if you have perms)
eF : quick-friend-request the person who wrote the highlighted message
ef : open modal for author of message.
ed : removes embeds from a message.
No hotkeys should confirm. Look into possibly executing things client side (hiding a deleted message, for example) but refraining from sending packets to Discord's server for a few seconds to allow a proper split-second undo? Seems hard to implement.
In addition, should also support user-defined hotkeys starting with a leader for a series of basic actions. For example, if I wanted to set my leader to space I could then define + th to open the themes menu.
Description
A plugin for powercord, similar to the Vimium plugins for Chrome and Firefox, that lets you use vim-style hotkeys to navigate the Discord interface.
More info
Ideally the hotkeys would be very similar to what's already available in Vimium (and by extension Vim). For example, pressing
/
would let you search message history (ideally using Regex like Vim does, but focusing on the searchbar is probably enough).Proposed keybinds:
i
: focus on searchbar (settings) or chat bar (chat view). Place cursor at the beginning of the text.I
: focus on searchbar (settings) or chat bar (chat view). Clear the focused bar.a
: focus on searchbar (settings) or chat bar (chat view). Place cursor at end of preexisting text. a for append.O
: Alias for the quick switcher.h
: Highlight previous message.l
: Highlight next message.k
: Scroll down. Don't change the highlighted message.l
: Scroll up. Don't change the highlighted message./
: Focus on the search bar (chat view). Any other view, open a Ctrl-F style menu for searching for text in the interface.H
: Move to previous channel.L
: Move to next channel.K
: Move to previous server.J
: Move to next server.r
: reload discordR
: reload Powercord's plugins/themes (if that's possible)yt
: Copy highlighted text to clipboard. If no text is highlighted, but a message is, copy the raw contents of the highlighted message. yt is for yank text and because they're close together.yy
: Copy a link pointing to the highlighted discord message.yi
: Copy a link to an embedded image on the highlighted discord message.yu
: Copy a mention to the user who wrote the highlighted message (yank user).v
: enter visual select mode, where hjkl moves the carat and holding shift with hjkl lets you highlight text. Carat starts at the beginning of the selected message, or if none are selected, at the most recently sent message.V
: enter Visual Line Mode. Identical to visual select mode, but selects one full line at a time.gg
: scroll up to the last read message & highlight itG
: scroll down to the most recent message & highlight itg<n>
: Go to the specified message number n, counting up where 0 is the most recent message. Highlight it.gu
: Go up. Return to the channel higher in "hierarchy" to the current one. When in a thread, exit it and go to the parent channel. When in a channel, exit it and move to the default channel for the server (e.x. #general). When already in the default channel, go the discord home.gi<n>
: Focus on the nth text input box on the page. Useful for keyboardless settings menus. Highlight all existing content (as it would be if you tabbed to it).ga<n>
: Focus on the nth text input box on the page. Place cursor after existing content.[[
: Go back to the previously viewed channel.]]
: Go to the next viewed channel in history (like the forward button on a browser).m<a>
: Create a new mark at the highlighted message.a
is any character on the keyboard that isn'tm
. Marks persist between restarts.` <a>
: Hop to the position at marka
.a
is any character that isn'tm
. Marks persist between restarts.mm
: Open a modal that shows all existing marks. Within this modal, hjkl are used to change focus (or mouse). Pressingd
will delete the highlighted mark, pressingg
will jump to it. Beside each mark, display server and channel name. Depending on layout might also have room for a message preview, up to implementer.p
: Open the URL that's on your clipboard. If it's a discord message link, go to it. Otherwise, open it in the system's default browser.n
: While the search menu is open, go to next match.N
: While the search menu is open, go to the previous match.c/
: change search. Cycles to the next sorting mode (to the right) in order while the search pane is open.cs
: change settings. Opens the settings menu.cc
: change channel. Opens a modal, in the same style as the quick switcher, but that shows voice channels. Will move you to a voice channel by name. If you don't specify a voice channel, and just hit enter, will move you back to the last voice channel you were in. Good for quickly switching back or rejoining if someone kicks you or you get moved to #afk.cm
: change mute. Toggles mute.cd
: change deafen. Toggles deafen.ct
: change stream. Opens the selector panel that lets you pick what content you're streaming.xd
: exit discord. Minimizes discord to the system tray.xc
: exit channel. Leaves the current voice channel.XX
: fully quit discord. No minimizing, just quit. If possible..
: Open a modal that lets you run powercord commands without using the chatbar, for example while you're in the settings menu, styled after the quick switcher.f
: put a tag on each clickable link/interface button with a 1-2 character combo that will trigger it.f
, etc.)Ui
: upload image. Opens the upload dialog, to a configurable Pictures folder.Uo
: upload other. Opens the upload dialog, to a configurable documents folder.Un
: upload no-dialog. Opens a short modal (quick-switcher style, of course) that you type a path into (with autocomplete) to upload an image. Starts relative paths from the preconfigured documents path (or a separately configured one, if preferred). Absolute paths work as expected.dd
: deletes the highlighted message, if you have the perms to. Never fails to delete one of your own messages.u
: undo. If you deleted one of your own messages and press this, it will re-send its content. Not perfect, as it screws up time order.yy
: copy link to highlighted message to clipboard.gs
: ctrl-shift-i for people who hate modifier keyscp
: opens settings to plugin menuct
: opens settings to theme menucM
: toggles showing memberssc
: start call. Starts an audio call with the user who wrote the highlighted message (in DMs) (or, in a DM, the other person in the DM).sv
: start video call. Starts a video call with the user who wrote the highlighted message (in DMs) (or, in a DM, the other person in the DM).sd
: starts/switches to DMs with the user who wrote the highlighted message.t
: go to home.T
: go to home and behave like you pressed the plus button next to Direct Messages.er
: reply to highlighted message. Snap focus to message bar and behave like insert mode.eR
: reply but don't enter insert mode.ee
: react to highlighted message.eE
: react to the highlighted message with a default reaction (star, pin, etc.). Configurable default emoji for each server. One server could be star, the other pin.ep
: pin it pin it pin it (only if you have perms)eF
: quick-friend-request the person who wrote the highlighted messageef
: open modal for author of message.ed
: removes embeds from a message.No hotkeys should confirm. Look into possibly executing things client side (hiding a deleted message, for example) but refraining from sending packets to Discord's server for a few seconds to allow a proper split-second undo? Seems hard to implement.
In addition, should also support user-defined hotkeys starting with a leader for a series of basic actions. For example, if I wanted to set my leader to
space
I could then define + th to open the themes menu.The text was updated successfully, but these errors were encountered: