philc / philc/vimium

Allow excluding composed keys like <space> and <escape> from sites

Open
#4,284 4 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
JavaScript
Stars
27k
Forks
2.6k
PR merge metrics
No merged PRs in 30d

Description

There's many issues which touch on this, but I'll try to bring the discussion together here.

The ESC key is used in Vimium to exit insert mode, find mode, link hints, etc.

Many sites also use ESC for similar purposes. Vimium prevents the site from receiving the ESC keypress.

#1985 introduced a passNextKey command, so that you can pass through a one-off escape keypress to the site.

Many issues have asked for the opposite: disable Vimium's ESC key on specific sites, and instead map the vimium escape functionality to another key.

This is not possible because we only allow single-letter keys to be excluded, and we do not support unmap <escape>.

A solution is to allow excluding and unmapping composed key strings like <escape> and <space>. This is viable, but does change the exclusions UI a bit and require a preferences data migration.

Some related issues:

  • #3022
  • #3203
  • #3948 and (@gdh1995's comment)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the exclusions UI, key handling, and preferences data migration described in the issue, along with the related issues #3022, #3203, and #3948. Done means composed keys such as and can be excluded and unmapped for selected sites without breaking existing preferences.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.