[PR #899] [MERGED] Add basic keymap handling #984

Closed
opened 2026-03-03 00:24:05 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/BoostIO/BoostNote-App/pull/899
Author: @Komediruzecki
Created: 4/6/2021
Status: Merged
Merged: 4/29/2021
Merged by: @Rokt33r

Base: masterHead: feature/keymap-profiles


📝 Commits (7)

  • 0037aaf Add basic keymap handling
  • 874f2d1 Add types for reviver and replacer
  • fe4c45a Fix reset button non-immediate component update
  • 2fd1335 Fix electron only API calls
  • cdef64b Add keymap updating instead of menu template
  • 3725b2e Do not allow null in keymap preferences
  • 5d98977 Add support for global search modal toggle

📊 Changes

14 files changed (+1191 additions, -347 deletions)

View changed files

📝 src/cloud/components/atoms/EditableInput.tsx (+1 -1)
src/components/PreferencesModal/KeymapTab.tsx (+110 -0)
📝 src/components/PreferencesModal/PreferencesModal.tsx (+13 -4)
📝 src/components/atoms/CodeEditor.tsx (+19 -7)
📝 src/components/atoms/CustomizedCodeEditor.tsx (+2 -1)
src/components/atoms/KeymapItemSection.tsx (+231 -0)
📝 src/components/organisms/NoteStorageNavigator.tsx (+13 -0)
📝 src/electron/index.ts (+32 -3)
📝 src/electron/menu.ts (+335 -321)
📝 src/lib/electronOnly.ts (+3 -0)
src/lib/keymap.ts (+214 -0)
📝 src/lib/preferences.ts (+208 -9)
📝 src/locales/enUS.ts (+3 -0)
📝 static/main-preload.js (+7 -1)

📄 Description

Add basic keymap handling (#752)

  • Add keymap to local lite storage
  • Add search keymap to app component from preferences
  • Add keymap tab in preferences
  • Add keymap item section
  • Add keymap assign handling
  • Add basic keymap UI
  • Add initial keymaps
  • Add handling of multiple identical shortcuts
  • Add support for dynamically changing menu items accelerators
  • Add initial loading of keymaps
  • Add keymap loading for menu accelerators
  • Add export open document shortcut customizability

How it looks now:
KeymapUI

Error handling on duplicate shortcut key:
KeymapUIError

Demo how it behaves:
https://user-images.githubusercontent.com/18196945/113772151-99ce8f00-9724-11eb-8057-89393119efce.mp4

Todo:

  • Define all customizable keymaps
  • Fix clashes with shortcuts not managed with keymaps
  • Add actual keymap profiles (default profile + create profile, set profile-specific keymap, change profiles)

Test:
In dev version


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/BoostIO/BoostNote-App/pull/899 **Author:** [@Komediruzecki](https://github.com/Komediruzecki) **Created:** 4/6/2021 **Status:** ✅ Merged **Merged:** 4/29/2021 **Merged by:** [@Rokt33r](https://github.com/Rokt33r) **Base:** `master` ← **Head:** `feature/keymap-profiles` --- ### 📝 Commits (7) - [`0037aaf`](https://github.com/BoostIO/BoostNote-App/commit/0037aaf4377eb9b2bc834c18105abaa1413ee704) Add basic keymap handling - [`874f2d1`](https://github.com/BoostIO/BoostNote-App/commit/874f2d1482f3e6c492a2bf36bb2b9c24fe1de1cf) Add types for reviver and replacer - [`fe4c45a`](https://github.com/BoostIO/BoostNote-App/commit/fe4c45a7e6023f2ba495b30c263dcc511c6e1fc9) Fix reset button non-immediate component update - [`2fd1335`](https://github.com/BoostIO/BoostNote-App/commit/2fd1335d10c4b9d79bc9d96fd310a24fad2c060b) Fix electron only API calls - [`cdef64b`](https://github.com/BoostIO/BoostNote-App/commit/cdef64b110158017a93c6452846fadbe0260093e) Add keymap updating instead of menu template - [`3725b2e`](https://github.com/BoostIO/BoostNote-App/commit/3725b2ef61260e4a4d4739313b69fcdf61d06c24) Do not allow null in keymap preferences - [`5d98977`](https://github.com/BoostIO/BoostNote-App/commit/5d989772a5f861671798bb46ae82c4478b7974f1) Add support for global search modal toggle ### 📊 Changes **14 files changed** (+1191 additions, -347 deletions) <details> <summary>View changed files</summary> 📝 `src/cloud/components/atoms/EditableInput.tsx` (+1 -1) ➕ `src/components/PreferencesModal/KeymapTab.tsx` (+110 -0) 📝 `src/components/PreferencesModal/PreferencesModal.tsx` (+13 -4) 📝 `src/components/atoms/CodeEditor.tsx` (+19 -7) 📝 `src/components/atoms/CustomizedCodeEditor.tsx` (+2 -1) ➕ `src/components/atoms/KeymapItemSection.tsx` (+231 -0) 📝 `src/components/organisms/NoteStorageNavigator.tsx` (+13 -0) 📝 `src/electron/index.ts` (+32 -3) 📝 `src/electron/menu.ts` (+335 -321) 📝 `src/lib/electronOnly.ts` (+3 -0) ➕ `src/lib/keymap.ts` (+214 -0) 📝 `src/lib/preferences.ts` (+208 -9) 📝 `src/locales/enUS.ts` (+3 -0) 📝 `static/main-preload.js` (+7 -1) </details> ### 📄 Description **Add basic keymap handling** (#752) - Add keymap to local lite storage - Add search keymap to app component from preferences - Add keymap tab in preferences - Add keymap item section - Add keymap assign handling - Add basic keymap UI - Add initial keymaps - Add handling of multiple identical shortcuts - Add support for dynamically changing menu items accelerators - Add initial loading of keymaps - Add keymap loading for menu accelerators - Add export open document shortcut customizability How it looks now: ![KeymapUI](https://user-images.githubusercontent.com/18196945/113772217-b36fd680-9724-11eb-90d3-7cf7061a5b77.png) Error handling on duplicate shortcut key: ![KeymapUIError](https://user-images.githubusercontent.com/18196945/113772221-b4086d00-9724-11eb-92b8-24edc7254298.png) Demo how it behaves: https://user-images.githubusercontent.com/18196945/113772151-99ce8f00-9724-11eb-8057-89393119efce.mp4 Todo: - Define all customizable keymaps - Fix clashes with shortcuts not managed with keymaps - Add actual keymap profiles (default profile + create profile, set profile-specific keymap, change profiles) Test: In dev version --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-03 00:24:05 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/BoostNote-App#984
No description provided.