- Created CONFIG_HIERARCHY.md to explain configuration file hierarchy and settings placement. - Added FLASH_HANDEDNESS.md detailing the flashing process for split keyboard handedness using Liatris controllers. - Introduced LIATRIS_QUICK_START.txt as a quick reference for handedness setup and flashing steps. - Included LICENSE file for GNU General Public License v2. - Added Makefile for building QMK firmware with user-specific configurations. - Updated README.md with instructions for configuring and building QMK userspace. - Created build_all.sh script to automate the building of regular and handedness initialization firmware. - Added qmk.json to define userspace version and build targets.
		
			
				
	
	
	
	
		
			3.7 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.7 KiB
		
	
	
	
	
	
	
	
QMK Configuration Hierarchy
Understanding where to put your settings in QMK userspace.
Configuration Priority (Highest to Lowest)
1. keyboards/.../keymaps/smathev/config.h  ← HIGHEST PRIORITY (keyboard-specific)
   ↓ overrides
2. users/smathev/config.h                   ← USER DEFAULTS (all keyboards)
   ↓ overrides  
3. keyboards/.../config.h                   ← KEYBOARD DEFAULTS
   ↓ overrides
4. QMK defaults                             ← LOWEST PRIORITY
Your Current Setup
📁 users/smathev/config.h
Purpose: Settings that apply to ALL your keyboards
What belongs here:
- ✅ Tapping terms (
TAPPING_TERM,PERMISSIVE_HOLD) - ✅ Auto-shift settings (
AUTO_SHIFT_TIMEOUT,RETRO_SHIFT) - ✅ Combo preferences (
COMBO_REF_DEFAULT) - ✅ Personal preferences that don't change between keyboards
 - ✅ Layout aliases (
LAYOUT_sweeeeep) 
Example:
#define TAPPING_TERM 140
#define PERMISSIVE_HOLD
#define CASEMODES_ENABLE
📁 keyboards/fingerpunch/sweeeeep/keymaps/smathev/config.h
Purpose: Settings specific to THIS keyboard/keymap
What belongs here:
- ✅ Split keyboard settings (
EE_HANDS,SPLIT_USB_DETECT) - ✅ Hardware-specific features (
OLED_FONT_H) - ✅ Keyboard-specific overrides
 - ✅ Split communication settings
 
Example:
#define EE_HANDS
#define SPLIT_USB_DETECT
#define OLED_FONT_H "path/to/font.c"
Why This Matters
❌ Wrong Approach:
Putting everything in users/smathev/config.h
- Split keyboard settings affect non-split keyboards
 - OLED settings break keyboards without OLED
 - Hardware-specific settings cause conflicts
 
✅ Correct Approach:
- Userspace (
users/): Personal preferences that work everywhere - Keymap (
keymaps/): Keyboard-specific hardware and features 
Common Settings Placement
| Setting | Location | Reason | 
|---|---|---|
TAPPING_TERM | 
users/ | 
Personal preference | 
EE_HANDS | 
keymaps/ | 
Split keyboard specific | 
OLED_FONT_H | 
keymaps/ | 
Hardware specific | 
COMBO_REF_DEFAULT | 
users/ | 
User preference | 
SPLIT_USB_DETECT | 
keymaps/ | 
Split keyboard specific | 
AUTO_SHIFT_TIMEOUT | 
users/ | 
Personal preference | 
PERMISSIVE_HOLD | 
users/ | 
Personal preference | 
Your Configuration Files
Current Structure:
qmk_userspace/
├── users/smathev/
│   ├── config.h              ← User-wide settings
│   ├── rules.mk              ← User-wide features
│   ├── combos.c/h
│   └── ...
└── keyboards/
    └── fingerpunch/sweeeeep/
        └── keymaps/smathev/
            ├── config.h      ← Keyboard-specific settings (EE_HANDS here!)
            ├── keymap.c
            └── keymap.json
Testing Your Configuration
# Compile to see if settings are applied correctly
qmk compile -kb fingerpunch/sweeeeep -km smathev
# Check for configuration conflicts in warnings
qmk compile -kb fingerpunch/sweeeeep -km smathev 2>&1 | grep "config.h"
Pro Tips
💡 Use Comments: Clearly mark which config file is for what purpose
💡 Test on Multiple Keyboards: If you add more keyboards, userspace settings will automatically apply
💡 Override When Needed: Keymap config.h can override userspace defaults
💡 Keep It DRY: Don't repeat settings - put them in the most appropriate place
If You Add More Keyboards
When you add another keyboard (e.g., a 60% board):
- User settings automatically apply (tapping, combos, etc.)
 - Create keyboard-specific config.h only for that keyboard's unique needs
 - Split settings don't affect your non-split boards
 
This is the power of QMK userspace! 🚀