An open API service indexing awesome lists of open source software.

https://github.com/nnbnh/bmap

⌨️ SuperB Keymap System
https://github.com/nnbnh/bmap

bmap keybind keybinding keybindings keybinds keyboard keymap keymapping keymappings keymaps

Last synced: 4 months ago
JSON representation

⌨️ SuperB Keymap System

Awesome Lists containing this project

README

          


SuperB Keymap System

## 💡 About

**Bmap** is a universal keymap system design for almost all applications and even games. By define each key on the keyboard with a meanings, the applications can map there own set of shortcuts/actions to fit those meanings.


### ✨ Features

- Familiarity: The design is taking from standard keymap from many popular applications, there for it's:
- Easy to learn and get used to.
- Many GUI applications have already roughly follow this keymap system.
- Ergonomic:
- It keep your hand on home position (unlike WASD and HJKL that shift all your finger to the left 1 key)
- Have left-handed variant (swap variant).



## 📒 Design

Here is the full design where each keys is define with a meaning:


KLE file


### 🔰 Basic

#### 🚥 Mods

These key don't do anything by itself, but it can be combined with each other and other key to alter the meaning.

- Shift: Do something stronger, wider of do in reverse.
- Control: Do something more focus, more specific or with more control.
- Mod: Do something but differently, with small change or do in alternative meta.
- System: Do systemwide operation.


#### 🧰 Functions

Further explanation:
- Area: Switch tabs, open panel, expand drawing area, toggle GUI.
- Advance: Open advance/pipe menu, jump (in game).



### ❤️ Core

Bmap have two keymap groups, one for movement and one for action. These are all used frequently and deserve to be place on the most easy to reach and comfortable to press positions:


#### ↔️ Movement


#### 🅰️ Action


#### 🔀 Swap variant

Depend on the application, user preference or if you are left handed, you could use this variant.



### 🧩 Extra

#### 🐎 ZXCV

Four famous standard keys appear on literally every application.

Further explanation:
- Time: Undo/redo, timeline operation, open history, running (in game).
- Cut: Delete (but also copy), close.
- In: Copy, interac to get/set something from the environment (e.g: get items, talk to NPC, toggle zoom).
- Out: Paste, interac to give/put something from the environment (e.g: fire special weapon).


#### 📃 Modern standard

Standard from modern productivity tools and editors.

Further explanation:
- Target: Jump to next/previous target.
- Play: Play/pause something, print out.
- Previous/Next: Changes selected items to next/previous value.
- Code: Comment, code format.

Reason:
- Target: In many tools: press Ctrl+F to "Find", press Ctrl+H to "Find and Replace". But because we have already use F so we will use H to target.
- Code:
- Ctrl+/ often be use to comment lines in many code editor.
- / often be use to open console commands in some games.


#### 📜 classic standard

Standard from [`vi` editor](https://en.wikipedia.org/wiki/Vi).

Further explanation:
- Assign: Select a register.
- Command: Open command prompt.


#### 🎮 Gaming standard

These keymap are based on popular game genres keymaps with [ESDF mod](http://use-esdf.org) in mind (every keys are shift to the right 1 key).

Further explanation:
- Focus: Crawl, stealthily, change operating range.
- Self: Flip selection cursor and anchor, do something to/about self.
- Item: Rotate main selection, cycle through items, switch item.
- Communicated: Talk/chat (with team), ping, taunt.


#### 🎲 Other

Further explanation:
- Local: Do something in close range.
- Movement: Jump (in text editor), quick teleport, open map.



## 🚀 Implements

We are focus on heavy keyboard usage productivity applications, specifically [text editor](http://www.keyboard-layout-editor.com/#/gists/e12289897003889ee40f5628e31975ca).



## 💌 Credits

Special thanks to:
- [**Keybinding design blogs**](http://xahlee.info/kbd/keybinding_index.html) by [Xah Lee](http://xahlee.info/index.html)
- [**Ergoemacs-mode**](https://ergoemacs.github.io) by [Xah Lee, David Capello, Kin Storm, Walter Landry and Matthew Fidler](https://github.com/ergoemacs/ergoemacs-mode/graphs/contributors)
- [**Vim keymap**](https://www.vim.org) by [Bram Moolenaar](https://en.wikipedia.org/wiki/Bram_Moolenaar)
- [**Kakoune keymap**](https://kakoune.org) by [Maxime Coste](https://github.com/mawww)
- [**Helix keymap**](https://helix-editor.com) by [Blaž Hrastnik](https://github.com/archseer)
- [**Pepper keymap**](https://github.com/vamolessa/pepper) by [Matheus Lessa](https://github.com/vamolessa)


Made with <3 by NNB