QMK Layer Indicator
A VS Code extension that displays your current QMK keyboard layer in the status bar with color-coded indicators and layer icons.

🎯 Recommended Pairing
This extension works best when paired with the QMK CRKBD Firmware Configuration - a custom Corne keyboard firmware that includes:
- 6 distinct layers with unique functionalities
- RGB underglow that changes color based on the active layer
- 4 encoders with RGB control mappings
- Pre-configured layer output for seamless integration with this extension
The firmware is specifically designed to work with this VS Code extension, providing both visual feedback in your editor and physical RGB feedback on your keyboard.
Features
- 🔴 Real-time layer detection - Automatically detects QMK layer changes
- 🎨 Color-coded layers - Each layer has a distinct color for easy identification
- 🎯 Layer icons - Visual icons for different layer types
- ⚡ Click to connect - Simple click-to-connect functionality
- ⚙️ Configurable - Customize QMK CLI path, colors, and display options
Layer Types
The extension supports the following layer types with default icons and colors:
Layer |
Icon |
Color |
Description |
BASE |
⌨️ |
White |
Default typing layer |
NUMS |
🔢 |
Orange |
Number pad layer |
MEDIA |
🎵 |
Red |
Media controls layer |
SYSTEM |
⚙️ |
Blue |
System functions layer |
Installation
From VS Code Marketplace
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "QMK Layer Indicator"
- Click Install
From VSIX
- Download the latest
.vsix
file from Releases
- Open VS Code
- Run
Extensions: Install from VSIX...
from the Command Palette (Ctrl+Shift+P)
- Select the downloaded
.vsix
file
Requirements
- QMK CLI must be installed and accessible in your PATH
- QMK firmware must be configured to output layer information to console
QMK Setup
For the best experience, use the QMK CRKBD Firmware Configuration which includes pre-configured layer output and RGB feedback.
Alternatively, you can add the following to your QMK keymap to enable layer output:
// In your keymap.c file
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case _BASE:
uprintf("LAYER:BASE\n");
break;
case _NUMS:
uprintf("LAYER:NUMS\n");
break;
case _MEDIA:
uprintf("LAYER:MEDIA\n");
break;
case _SYSTEM:
uprintf("LAYER:SYSTEM\n");
break;
}
return state;
}
Note: The recommended CRKBD firmware includes additional RGB underglow feedback that changes color based on your active layer, providing both visual feedback in VS Code and physical feedback on your keyboard.
Usage
- Connect to QMK: Click the "🔌 QMK Disconnected" status bar item to start monitoring
- Layer switching: Change layers on your keyboard - the status bar will update automatically
- Disconnect: Click the layer indicator to stop monitoring
Commands
QMK Layer Indicator: Start QMK Layer Monitoring
- Start monitoring layer changes
QMK Layer Indicator: Stop QMK Layer Monitoring
- Stop monitoring
QMK Layer Indicator: Restart QMK Layer Monitoring
- Restart the monitoring process
Configuration
Open VS Code settings and search for "QMK Layer Indicator" to configure:
Settings
Setting |
Default |
Description |
qmkLayerIndicator.qmkPath |
qmk |
Path to QMK CLI executable |
qmkLayerIndicator.showIcon |
true |
Show layer icon in status bar |
qmkLayerIndicator.colorEnabled |
true |
Enable color coding for layers |
Example Configuration
{
"qmkLayerIndicator.qmkPath": "/usr/local/bin/qmk",
"qmkLayerIndicator.showIcon": true,
"qmkLayerIndicator.colorEnabled": true
}
Troubleshooting
Extension not connecting
- Ensure QMK CLI is installed:
qmk --version
- Check if your keyboard is properly connected
- Verify QMK firmware includes layer output code
No layer changes detected
- Confirm your keymap includes
uprintf("LAYER:LAYERNAME\n");
statements
- Check that layer names match those in your keymap
- Try restarting the monitoring process
QMK CLI not found
- Install QMK CLI:
pip install qmk
- Set the correct path in settings:
qmkLayerIndicator.qmkPath
Development
Building from Source
# Clone the repository
git clone https://github.com/ricardoescaran/qmk-vscode-status-bar.git
cd qmk-vscode-status-bar
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Package extension
npx vsce package
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Changelog
See CHANGELOG.md for a complete history of changes.
Support
If you encounter any issues or have suggestions, please create an issue on GitHub.