Ignore caps lock in normal mode
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 15.2k
- Forks
- 1.5k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 6
Description
Is your feature request related to a problem? Please describe.
Caps lock in normal mode causes havoc. After almost every time I type something in caps, I forget to turn off caps lock when returning to normal mode. I then try to move the cursor and end up joining a bunch of lines and a lot of other things I don't expect to be happening.
Describe the solution you'd like
Perhaps when in normal mode, VSCodeVim could ignore caps lock. If VSCodeVim cannot tell directly if caps lock is toggled, perhaps it uses the status of the shift key to drive behavior. If shift is pressed, the key is considered uppercase. If not, it is considered lowercase.
Describe alternatives you've considered
AutoHotkey works perfectly on Windows, because I can make the escape key also toggle caps lock off, so that after exiting insert mode, caps lock is off. However, I have been very frustrated finding a good solution on OSX or Ubuntu - both of which I use on a regular basis. It would be best if the extension could offer a platform-agnostic solution.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No file, test, or entry point is named. Start by investigating how VSCodeVim receives keyboard input and handles normal-mode mappings, then check what VS Code exposes for Caps Lock and Shift on Windows, macOS, and Ubuntu. Done means a platform-agnostic normal mode does not interpret Caps Lock as unintended commands while preserving intentional Shift behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100