element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
GNU Affero General Public License v3.0
11.28k stars 2.02k forks source link

Add vi-like keybindings UI option. #18907

Open apotheon opened 3 years ago

apotheon commented 3 years ago

Your use case

What would you like to do?

I would like to be able to use vi-like keybindings in the Element.io web UI.

Why would you like to do it?

The biggest hindrance to my use of Matrix at this time is lack of a client that offers user experience that suits my preferences. The closest option is WeeChat with the Matrix plugin, but it does not support needed functionality for my needs, that plugin does not work on some platforms, and there is evidently only one plugin for vi-like keybindings (which happens to not be a great design for a vi-like keybinding option).

In short, I would like vi-like keybindings so I will be motivated to use Matrix rather than sticking with only irssi and IRC.

How would you like to achieve it?

I would like to have a simple, straightforward, easily discovered way to choose vi-like keybindings as an option in the Element.io web UI and, preferably, more UI keybinding configurability in general. Ideally, this would also be incorporated into the Element "desktop" application, so that if and when it gets ported to my preferred platform(s) I will be able to use that as easily as the web application.

Have you considered any alternatives?

The alternatives at the moment seem to be:

  1. WeeChat with Matrix plugin
  2. always using IRC instead of Matrix

As indicated in the use case information, the WeeChat option is deeply flawed. Just using IRC instead of Matrix defeats the interest in Matrix privacy and pseudo-decentralization capabilities.

Additional context

I manage some communities in IRC that may benefit from a move to Matrix, but are not really migratable to Matrix at this time due to hindrances for my own preferences in chat client usage, as well as due to client portability limitations so that not all user platforms for these communities are reasonably easy to get set up with acceptable Matrix clients. I am a privacy advocate, and others in these communities have similar sympathies, but moving to Matrix under current conditions would result in community fragmentation.

FlanOfHarmony commented 2 years ago

This can probably be considered a duplicate of #15076 because if custom keybindings are implemented, one can implement vi-like keybindings

apotheon commented 2 years ago

That's not necessarily the case. A modal interface is not supported by many applications' custom keybinding capabilities, for instance, and some systems make configured attempts at vi-like keybindings too cumbersome to bother using (e.g. via requirements for modifier keys where vi would not use them). The combination of keybindings in series, with numeric prefix arguments and something of a language grammar would need to be supported or at least largely simulatable via custom keybinding configs.

apotheon commented 2 years ago

In revisiting this, I should note that supporting vi-like keybindings in the Element web application itself is not actually all that important. It seems to be highly compatible with vi-like keybinding browser extensions (at least including cVim for Firefox). As long as it continues to work well with such vi-like keybnding browser extensions, my needs are met.