Skip to content

LittleWalter/spacecentricity-mk47

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌌 Spacecentricity — A Planck MIT Keymap for the Inland MK-47

Spacecentricity is a maximalist modal keymap built around a modified Dvorak base, heavy thumb usage, and mirrored layers for navigation, Vim‑style editing, and programming. It emphasizes home‑position access to high‑frequency characters and movement keys — arrows, numbers, symbols, and common programming n‑grams — through macros and tap dances. Key redundancy provides alternative ways to perform the same actions, helping reduce strain and fatigue.

Each layer includes its own RGB matrix pattern, making it easy to see which layer is active at a glance.

Note

See design notes for deeper explanations of key placement and layer philosophy.

Table of Contents

Keyboard

The Inland MK-47 is an affordable 47‑key ortholinear mechanical keyboard sold by Micro Center. Despite its low price, it includes features usually found on enthusiast‑grade boards:

  • QMK-compatible firmware (fully programmable)
  • VIA support for on‑the‑fly keymap editing
  • Per‑key RGB lighting
  • Hot‑swappable switch sockets
  • USB‑C wired connection

The MK‑47 has become a popular entry‑level option for people interested in experimenting with custom firmware, unusual layouts, or switch testing without spending much. Its compact footprint also makes it a convenient one‑piece travel or backup board — it even fits neatly inside a Nintendo Switch carrying case, which makes it easy to throw in a bag. Some users also repurpose the Planck form factor as a macropad.

Availability

The MK‑47 is typically an in‑store Micro Center exclusive, but it’s occasionally available for shipping within the U.S. depending on stock. If you don’t live near a Micro Center, checking eBay and similar marketplaces is often worthwhile, as units show up there fairly regularly.

Tip

Not familiar with Planck keyboards? See this brief video by Jack Humbert introducing the Planck.

Layout

Each layer is presented as a rendered diagram generated with keyboard-layout-editor.com for quick visual reference.

Important

On macOS, this keymap is designed to be used with the ABC – Extended input source. Other layouts may alter how Option‑based characters or dead‑key sequences behave, leading to inconsistent output. Apple provides this input source for English‑language users who need a more complete set of diacritical marks and international symbols without switching to a separate language layout. This input source does not interfere with standard system shortcuts.

Because Linux and Microsoft Windows accept Unicode directly from HID, the standard US layout works correctly when the keyboard is used in those modes.

Legend

Keyboard Image Legends/key

This keymap uses QMK’s quad‑tap dance pattern, allowing up to four distinct actions per key:

Position Action
1 Tap
2 Double Tap
3 Tap-and-Hold
4 Hold

Note

Triple‑tap actions are supported but not shown in the diagram because they are used only for rare or “deep‑storage” functions. When a key includes a triple‑tap action, it is mentioned in that key’s description.

Note

See the README for hex color values in the assets/ directory.

Base: Modified Dvorak

Base: Modified Dvorak

Most layer keys are momentary holds.

The Lower and Upper keys behave the same, but you can lock them with tap‑and‑hold and unlock with a tap back to Base.

Backspace Key

The top-right corner key is a semantic Backspace, available on multiple layers:

Action Behavior Notes
Tap Delete previous character Sends Backspace
Tap-and-Hold Delete to beginning of line Implemented as LSFT‑LCTL‑LeftBackspace
Hold Delete previous word macOS: LALT-Backspace; Linux/Microsoft Windows: LCTL-Backspace

Esc Key

Action Behavior Notes
Tap Esc
Tap-and-Hold Close Active Window macOS: CMD‑W; Linux/Microsoft Windows: Alt-F4
Hold Momentary Layer macOS Activates macOS layer while held; returns to Base on release

Access to Mouse & Function Keys

The bottom‑left corner key toggles special modes:

Action Behavior
Tap Mouse Layer
Hold (≈350 ms or longer) Function layer (F1F12)

This key is not momentary — it switches layers rather than holding them.

Media Cluster

The media cluster lives out of the way on the bottom left. Note that Mute Tab (Ctrl‑M on hold) works in Firefox and Firefox‑based browsers, but not in most Chromium‑based browsers. Screen‑brightness controls sit on Tap‑and‑Hold for convenient access from the top layer.

Special Characters

The * key emits ×(multiplication, not the letter x) on triple tap.

The navigation cluster emits the arrow symbols on triple tap: , , , .

Lower: Numpad

Lower: Numpad with hexadecimal

Tap the HELD key when this layer is locked to return to Base.

Hold 16 for hexadecimal AF.

Momentary hold 0 to access Adjustment layer to change keyboard settings.

Upper: Primary Number Layer

Upper: Primary Numpad Layer

Tap the HELD key when this layer is locked to return to Base.

Caps Key

The Caps key provides three related text-entry modes, each with its own visual indicator on the Base layer:

Action Behavior Base RGB Notes
Tap Activates Caps Word 🟡 Golden yellow Auto‑disables after 5 seconds of inactivity
Double Tap Toggle SCREAMING_SNAKE_CASE 🟢 Neon mint Auto‑disables after 5 seconds of inactivity
Hold Toggle Caps Lock 🔴 Blinking red Must be manually turned off

Tip

Caps Word temporarily capitalizes letters as you type and automatically turns itself off at the end of the word, making it ideal for acronyms, identifiers, and short uppercase sequences without toggling Caps Lock. See the QMK documentation for more information.

SCREAMING_SNAKE_CASE behaves similarly to Caps Word, but transforms the spacebar into _ and is intended for constant identifiers commonly used in C‑style languages and shells.

Del Key

The top-right corner key provides a forward delete, analogous to the Base layer’s semantic Backspace:

Action Behavior Notes
Tap Delete next character Sends Del
Tap-and-Hold Delete to end of line Implemented as LSFT‑LCTL‑RightDel
Hold Delete next word macOS: LALT‑Del; Linux/Windows: LCTL‑Del

Semantic Punctuation

Directly above the HELD key lives a prose‑oriented semantic punctuation key. It emits punctuation‑space bigrams, and for sentence‑ending marks it automatically capitalizes the next alphabetic character.

Action Behavior Notes
Tap ,␣ (comma-space) Mid-sentence separator
Double Tap !␣ (exclamation-space) Triggers auto-capitalization
Tap-and-Hold ?␣ (question-space) Triggers auto-capitalization
Hold .␣ (period-space) Triggers auto-capitalization

Special Characters

Smart quotes live on the lower row, inserting paired curly quotes with the cursor centered for fancy, typographic writing. Tap for double smart quotes; hold for single smart quotes. Use these macros if you prefer not to rely on OS‑ or app‑level substitutions.

The . key remains in the standard Dvorak position but includes additional dot‑related tap dances:

Action Behavior
Tap . (dot/period)
Double Tap (horizontal ellipsis)
Tap-and-Hold (vertical ellipsis)
Hold (bullet)
Triple Tap · (centered dot)

Additional triple‑tap symbols: +× (multiplication, not the letter x), [, ].

Note

On macOS mode, the vertical ellipsis (⋮) has no direct keyboard shortcut and is produced with a macro that uses compact the Emoji & Symbols popover. On Linux and Microsoft Windows modes, the Unicode character is sent directly.

Leader Replay

This keymap includes optional Leader Replay support, allowing you to repeat recent or favorited Leader actions using holds of the number keys (09).

Replay functionality can be enabled or disabled with the @ toggle key, and the same key also switches between History and Favorites replay modes.

See LEADER.md for full details.

Adjustment: Keyboard Settings

Adjustment: Keyboard Settings

The OS MODE key switches the keyboard’s active operating‑system profile. It adjusts copy/paste behavior, special symbol mappings, and virtual desktop/workspace navigation to match the selected OS.

The backlight color indicates which OS is currently active:

Color OS
🔵 Blue Apple macOS (Default)
🟢 Green Linux
🔴 Red Microsoft Windows

Warning

Linux and Microsoft Windows behavior is currently untested!

I’m unlikely to test Windows myself, but the functionality is included for completeness.

Function: F1F12

Function: F1–F12

Provides F1F12 and modifier combinations for shortcut execution. The home and top rows mirror the Upper layer’s number layout, and the lower row includes a redundant, standard linear layout for familiarity and ease of use.

Arrows

Arrows: Right-Hand Side

Arrows: Left-Hand Side

Spanish punctuation and combining diacritics sit on the home row for light multilingual support.

The bottom-left corner key activates mnemonic Leader sequences. See LEADER.md for the full list of available actions.

Center Keys

Action Behavior
Tap ?
Double Tap ¿
Tap-and-Hold ˋ (combining grave)
Hold ´ (combining acute)

Ring-Finger Keys

Action Behavior
Tap !
Double Tap ¡
Tap-and-Hold ˜ (combining tilde)
Hold ¨ (combining umlaut)

Lower Row Accent Keys

Action Behavior
Tap ˆ (combining circumflex)
Double Tap ¯ (combining macron)
Tap-and-Hold ˘ (combining breve)
Hold ˇ (combining caron)

Warning

On macOS, the lower row combining marks rely on the ABC – Extended input source. Other layouts do not provide the required dead‑key sequences and will produce incorrect output.

Application Switching

Hold the center key to activate the application switcher. macOS uses CMD; Linux and Microsoft Windows uses LALT.

Tap Tab or Shift–Tab on the bottom row to navigate.

Vim

Vim: Right-Hand Side

Vim: Left-Hand Side

These layers provide ergonomic access to common Vim navigation, window management, and viewport‑control commands, optimized for modal editing.

Movements that interact with counts (<number>movement) intentionally omit the Esc prefix to preserve numeric prefixes and avoid breaking repeatable motions.

Home Row Navigation Cluster

Action Behavior
Tap Move backward/forward by WORD; move down/up in a wrapped line
Double Tap Jump to end of previous/next WORD
Tap-and-Hold Navigate backward/forward through the edit list; unindent/indent current line
Hold Navigate backward/forward through the jump list

WORD and wrapped‑line motions omit the Esc prefix to maintain compatibility with <count>‑prefixed movements.

Bottom Row Navigation Cluster

Action Behavior
Tap Change active window split (left / down / up / right)
Double Tap Resize active window split (decrease width / decrease height / increase height / increase width)
Tap-and-Hold Switch active tab (first / previous / next / last)
Hold Switch active buffer (first / previous / next / last)

Window‑resize commands omit the Esc prefix to preserve compatibility with <count>‑based resizing.

Center Navigation Cluster

Actions Behavior
Tap zt, zz, zb (scroll viewport to top / center / bottom)
Hold H, M, L (move cursor to top / middle / bottom of screen)

Semantic Deletion Key

Action Behavior Notes
Tap db (delete previous word) Moves right one column to mimic standard OS word‑deletion behavior
Double Tap dB (delete previous WORD) Also includes the right‑movement for consistency
Tap-and-Hold d^ (delete to beginning of line) Deletes everything back to the first non‑whitespace character
Hold d$ (delete to end of line) Deletes everything to the right of (and under) the cursor

Folds

Actions Behavior
Tap za (toggle fold under cursor)
Tap-and-Hold zM (close all folds in buffer)
Hold zR (open all folds in buffer)

Programming

Programming: Right-Hand Side

Programming: Left-Hand Side

Paired characters (quotes, brackets, braces) automatically place the cursor inside. This is the primary purpose of the layer, since these keys sit directly under the home row. Many editors and IDEs already provide similar behavior, so this layer is optional.

C‑style programming keywords and operators are included for completeness. Many n‑grams insert with smart spacing before and/or after to match typical coding style and reduce keystrokes.

The camelCase / PascalCase and snake_case / SCREAMING_SNAKE_CASE keys toggle temporary case modes.

Terminal

Terminal

An optional convenience layer centered on left‑hand navigation (Home, Page Up, Page Down, End under the home row) and a handful of shell‑adjacent shortcuts. The “terminal keys” are intentionally lightweight — more for comfort and fun than necessity — since shell history, aliases, and muscle memory usually handle most workflows.

Apple macOS

Apple macOS Layer

The center-thumb key (spacebar) opens core macOS functionality:

Action Behavior
Tap Toggle Spotlight Search
Double Tap Toggle Emoji & Symbols Menu
Hold Open Finder

The right‑thumb key provides quick file‑deletion actions:

Action Behavior
Tap Delete selected item(s)
Double Tap Open the Trash folder in Finder
Hold Empty the Trash (Finder); open clear browser data menu (Firefox, Chromium)

The top‑right corner key handles screen-capture shortcuts:

Action Behavior
Tap Partial screenshot
Tap-and-Hold Opens all screenshot options
Hold Full screenshot (all displays)

The center key provides window and device controls:

Action Behavior
Tap Toggle application full-screen mode
Hold Lock Mac / iDevice

Mouse

Mouse Keys Layer

This layer is typically accessed with a left‑palm tap on Base, using a taller keycap (flat SA Row 3) for easier targeting while keeping the hands in home position for quick entry and exit.

Doom Classic

Doom Classic layer

An optional compact gaming layer modeled after vanilla Doom (1993), built around a tight movement cluster, dedicated strafing keys, and thumb‑based actions for firing, opening doors, and running. Quick weapon switching is handled through the Upper layer, and the layout also works as a simple arrows‑plus‑mouse‑keys mode using traditional T‑shaped clusters for general navigation.

Temporary Lexical Modes

This keymap supports several lightweight, real‑time text‑transformation modes that modify characters as you type. These modes are designed for programming, documentation, and command‑line workflows, and all of them automatically disable after a short period of inactivity.

Built‑in QMK Mode

Mode Description Typical Use
Caps Word Temporarily capitalizes letters and ends automatically at word boundaries Acronyms, identifiers, short uppercase sequences

For more information, refer to the QMK documentation.

Custom Case Modes

Mode Description Typical Use
camelCase Swallows separators and capitalizes the next letter Java, JavaScript, Go, JSON
PascalCase Like camelCase, but capitalizes the first letter Type names, classes
snake_case Converts separators into _ Python, Rust, C identifiers
SCREAMING_SNAKE_CASE Uppercase snake_case with _ separators Constants, shell environment variables
kebab-case Converts separators into - Filenames, URLs, CLI flags
dot.case Converts separators into . Namespaces, config keys, long filenames
path/to/case Converts separators into / File paths, import statements
PUNC mode Capitalizes the next character after punctuation Sentence starts, documentation, prose

The spacebar applies the correct separator or capitalization for the mode.

These case modes are:

  • Temporary
    • Disables after a preset idle timeout (5 seconds)
    • End automatically when pressing Enter, Super/CMD, etc.
  • Deterministic (no buffering or rewriting)
  • Separator‑aware (dash, dot, slash, underscore)
  • Compatible with tap‑dance, mod‑tap, and macros

Using This Keymap with QMK

This keymap is maintained outside the QMK source tree. To use it, create a symbolic link inside your local QMK checkout so QMK can see it as a normal keymap.

🧲 Download the Keymap Source Code

mkdir -p ~/your/preferred/path/      # Optional: create a directory
cd ~/your/preferred/path/
git clone https://github.com/LittleWalter/spacecentricity-mk47

🔗 Create the Symlink

cd ~/qmk_firmware/keyboards/inland/mk47/keymaps    # Inland MK-47 keymaps path
ln -s /path/to/this/planck/repo <your-keymap-name> # link the repo

Example

ln -s ~/projects/mk47-spacecentricity \
      ~/qmk_firmware/keyboards/inland/mk47/keymaps/spacecentricity

🏭 Build

qmk compile -kb inland/mk47 -km spacecentricity

⚡️ Flash

qmk flash -kb inland/mk47 -km spacecentricity

Tip

To enter bootloader mode and install the new firmware, hold the top-left key down while plugging the keyboard in. Alternatively, press the key assigned to QK_BOOTLOADER/QK_BOOT on the keymap.

🔧 Helper Scripts (Optional)

This repo includes small POSIX‑compliant scripts in scripts/ that automate common tasks, including:

  • Creating and removing the symlink in your QMK checkout
  • Building and flashing the keymap
  • Cleaning previous build artifacts
  • Checking QMK paths and symlink status

These scripts are entirely optional — the build script simply wraps QMK’s CLI — but they streamline common workflows if you prefer a single‑command interface and want to reduce repetitive steps and cognitive overhead.

Note

For details on available scripts and how to use them, see the README in scripts/.

⚠️ Layout Stability

This keymap is actively maintained and may evolve over time as layouts, layers, and features are refined, added, or removed.

Most layers are fairly stable at this point, but some of the more specialized/optional ones (such as Terminal and Programming) may be reworked, consolidated, or removed as the design continues to mature.

This keymap has not been tested on Linux or Microsoft Windows operating systems.

About

A maximalist, modal Dvorak‑based keymap with mirrored layers, thumb‑centric ergonomics, and Vim‑style editing for Planck MIT keyboards (Inland MK‑47).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors