Compare commits

...
8 Commits
Author SHA1 Message Date
Joel ChallisandRyan 5f9f62fb8c Reorder logic within common_features.mk (#8517)
* Reorder logic within common_features.mk

* Revert haptic logic

* Add back path to make tests happy

* Update common_features.mk

Co-Authored-By: Ryan <[email protected]>

Co-authored-by: Ryan <[email protected]>
2020-03-22 19:34:23 +11:00
Ryan 147bc6ec43 Remove BOOTLOADER_SIZE stuff from template (#8516) 2020-03-22 08:50:37 +01:00
shela bea62add55 [Docs] Trivial documentation fix (#8509)
* Trivial documentation fix

* fix

* fix

* fix translation
2020-03-22 13:53:58 +11:00
QMK Bot d511e52c1f format code according to conventions [skip ci] 2020-03-21 23:44:27 +00:00
Joel Challis 789e199450 Add support for Bootmagic lite when using SPLIT_HAND_PIN (#8347)
* Add support for Bootmagic lite when using SPLIT_HAND_PIN

* Deduplicate bootmagic_lite logic from within via

* Revert location of defaults so that user overrides still work for now

* Tidy up code slightly
2020-03-21 23:10:39 +00:00
James Young a747c1c3de FLX Lodestone: add ANSI and ISO layout data and keymaps (#8481)
* Lodestone: add ANSI and ISO layout data and keymaps

* rename layout macros

LAYOUT_ansi -> LAYOUT_65_ansi_blocker_split_bs
LAYOUT_iso -> LAYOUT_65_iso_blocker_split_bs

* use four-space indent on the new keymaps

* add 65_ansi_blocker and 65_iso_blocker layouts
2020-03-21 15:36:27 -07:00
James Young a521fc2b6c [Docs] Fixes for feature_rgblight.md (#8514)
* remove extra comma that breaks the RGBLight Layers example

* linting

- use four spaces instead of tabs for indenting
- remove trailing spaces
2020-03-21 20:11:06 +00:00
James Young 8651eef298 Claw44 rev1 Configurator layout support (#8488) 2020-03-21 12:43:27 -07:00
17 changed files with 708 additions and 270 deletions

No files matched your search

+95 -99
View File
@@ -13,26 +13,24 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
SERIAL_DIR := $(QUANTUM_DIR)/serial_link
SERIAL_PATH := $(QUANTUM_PATH)/serial_link SERIAL_PATH := $(QUANTUM_PATH)/serial_link
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c) QUANTUM_SRC += \
SERIAL_DEFS += -DSERIAL_LINK_ENABLE $(QUANTUM_DIR)/quantum.c \
COMMON_VPATH += $(SERIAL_PATH) $(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
ifeq ($(strip $(API_SYSEX_ENABLE)), yes) ifeq ($(strip $(API_SYSEX_ENABLE)), yes)
OPT_DEFS += -DAPI_SYSEX_ENABLE OPT_DEFS += -DAPI_SYSEX_ENABLE
SRC += $(QUANTUM_DIR)/api/api_sysex.c
OPT_DEFS += -DAPI_ENABLE OPT_DEFS += -DAPI_ENABLE
SRC += $(QUANTUM_DIR)/api.c
MIDI_ENABLE=yes MIDI_ENABLE=yes
SRC += $(QUANTUM_DIR)/api/api_sysex.c
SRC += $(QUANTUM_DIR)/api.c
endif endif
MUSIC_ENABLE := 0
ifeq ($(strip $(AUDIO_ENABLE)), yes) ifeq ($(strip $(AUDIO_ENABLE)), yes)
OPT_DEFS += -DAUDIO_ENABLE OPT_DEFS += -DAUDIO_ENABLE
MUSIC_ENABLE := 1 MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c SRC += $(QUANTUM_DIR)/process_keycode/process_audio.c
SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c SRC += $(QUANTUM_DIR)/process_keycode/process_clicky.c
SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c SRC += $(QUANTUM_DIR)/audio/audio_$(PLATFORM_KEY).c
@@ -42,19 +40,15 @@ endif
ifeq ($(strip $(MIDI_ENABLE)), yes) ifeq ($(strip $(MIDI_ENABLE)), yes)
OPT_DEFS += -DMIDI_ENABLE OPT_DEFS += -DMIDI_ENABLE
MUSIC_ENABLE := 1 MUSIC_ENABLE = yes
SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c SRC += $(QUANTUM_DIR)/process_keycode/process_midi.c
endif endif
ifeq ($(MUSIC_ENABLE), 1) MUSIC_ENABLE ?= no
ifeq ($(MUSIC_ENABLE), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_music.c SRC += $(QUANTUM_DIR)/process_keycode/process_music.c
endif endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
OPT_DEFS += -DCOMBO_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
endif
ifeq ($(strip $(STENO_ENABLE)), yes) ifeq ($(strip $(STENO_ENABLE)), yes)
OPT_DEFS += -DSTENO_ENABLE OPT_DEFS += -DSTENO_ENABLE
VIRTSER_ENABLE ?= yes VIRTSER_ENABLE ?= yes
@@ -76,28 +70,6 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/pointing_device.c SRC += $(QUANTUM_DIR)/pointing_device.c
endif endif
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c VALID_EEPROM_DRIVER_TYPES := vendor custom transient i2c
EEPROM_DRIVER ?= vendor EEPROM_DRIVER ?= vendor
ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),) ifeq ($(filter $(EEPROM_DRIVER),$(VALID_EEPROM_DRIVER_TYPES)),)
@@ -245,31 +217,18 @@ ifeq ($(strip $(RGB_KEYCODES_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c SRC += $(QUANTUM_DIR)/process_keycode/process_rgb.c
endif endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
OPT_DEFS += -DTAP_DANCE_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
endif
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
OPT_DEFS += -DKEY_LOCK_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
endif
ifeq ($(strip $(PRINTING_ENABLE)), yes) ifeq ($(strip $(PRINTING_ENABLE)), yes)
OPT_DEFS += -DPRINTING_ENABLE OPT_DEFS += -DPRINTING_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c SRC += $(QUANTUM_DIR)/process_keycode/process_printer.c
SRC += $(TMK_DIR)/protocol/serial_uart.c SRC += $(TMK_DIR)/protocol/serial_uart.c
endif endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
OPT_DEFS += -DAUTO_SHIFT_ENABLE
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif
ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes) ifeq ($(strip $(SERIAL_LINK_ENABLE)), yes)
SERIAL_SRC := $(wildcard $(SERIAL_PATH)/protocol/*.c)
SERIAL_SRC += $(wildcard $(SERIAL_PATH)/system/*.c)
SERIAL_DEFS += -DSERIAL_LINK_ENABLE
COMMON_VPATH += $(SERIAL_PATH)
SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC)) SRC += $(patsubst $(QUANTUM_PATH)/%,%,$(SERIAL_SRC))
OPT_DEFS += $(SERIAL_DEFS) OPT_DEFS += $(SERIAL_DEFS)
VAPTH += $(SERIAL_PATH) VAPTH += $(SERIAL_PATH)
@@ -368,29 +327,6 @@ ifeq ($(strip $(ENCODER_ENABLE)), yes)
OPT_DEFS += -DENCODER_ENABLE OPT_DEFS += -DENCODER_ENABLE
endif endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DDRV2605L
endif
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
SRC += solenoid.c
OPT_DEFS += -DSOLENOID_ENABLE
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(VELOCIKEY_ENABLE)), yes) ifeq ($(strip $(VELOCIKEY_ENABLE)), yes)
OPT_DEFS += -DVELOCIKEY_ENABLE OPT_DEFS += -DVELOCIKEY_ENABLE
SRC += $(QUANTUM_DIR)/velocikey.c SRC += $(QUANTUM_DIR)/velocikey.c
@@ -409,26 +345,11 @@ ifeq ($(strip $(DYNAMIC_KEYMAP_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dynamic_keymap.c SRC += $(QUANTUM_DIR)/dynamic_keymap.c
endif endif
ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes) ifeq ($(strip $(DIP_SWITCH_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/dip_switch.c OPT_DEFS += -DDIP_SWITCH_ENABLE
OPT_DEFS += -DDIP_SWITCH_ENABLE SRC += $(QUANTUM_DIR)/dip_switch.c
endif endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
QUANTUM_SRC:= \
$(QUANTUM_DIR)/quantum.c \
$(QUANTUM_DIR)/keymap_common.c \
$(QUANTUM_DIR)/keycode_config.c
VALID_CUSTOM_MATRIX_TYPES:= yes lite no VALID_CUSTOM_MATRIX_TYPES:= yes lite no
CUSTOM_MATRIX ?= no CUSTOM_MATRIX ?= no
@@ -486,6 +407,29 @@ ifeq ($(strip $(SPLIT_KEYBOARD)), yes)
COMMON_VPATH += $(QUANTUM_PATH)/split_common COMMON_VPATH += $(QUANTUM_PATH)/split_common
endif endif
HAPTIC_ENABLE ?= no
ifneq ($(strip $(HAPTIC_ENABLE)),no)
COMMON_VPATH += $(DRIVER_PATH)/haptic
SRC += haptic.c
OPT_DEFS += -DHAPTIC_ENABLE
endif
ifneq ($(filter DRV2605L, $(HAPTIC_ENABLE)), )
SRC += DRV2605L.c
QUANTUM_LIB_SRC += i2c_master.c
OPT_DEFS += -DDRV2605L
endif
ifneq ($(filter SOLENOID, $(HAPTIC_ENABLE)), )
SRC += solenoid.c
OPT_DEFS += -DSOLENOID_ENABLE
endif
ifeq ($(strip $(HD44780_ENABLE)), yes)
SRC += drivers/avr/hd44780.c
OPT_DEFS += -DHD44780_ENABLE
endif
ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes) ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
OPT_DEFS += -DOLED_DRIVER_ENABLE OPT_DEFS += -DOLED_DRIVER_ENABLE
COMMON_VPATH += $(DRIVER_PATH)/oled COMMON_VPATH += $(DRIVER_PATH)/oled
@@ -493,10 +437,34 @@ ifeq ($(strip $(OLED_DRIVER_ENABLE)), yes)
SRC += oled_driver.c SRC += oled_driver.c
endif endif
include $(DRIVER_PATH)/qwiic/qwiic.mk
ifeq ($(strip $(UCIS_ENABLE)), yes)
OPT_DEFS += -DUCIS_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_ucis.c
endif
ifeq ($(strip $(UNICODEMAP_ENABLE)), yes)
OPT_DEFS += -DUNICODEMAP_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicodemap.c
endif
ifeq ($(strip $(UNICODE_ENABLE)), yes)
OPT_DEFS += -DUNICODE_ENABLE
UNICODE_COMMON := yes
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode.c
endif
ifeq ($(strip $(UNICODE_COMMON)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_unicode_common.c
endif
SPACE_CADET_ENABLE ?= yes SPACE_CADET_ENABLE ?= yes
ifeq ($(strip $(SPACE_CADET_ENABLE)), yes) ifeq ($(strip $(SPACE_CADET_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c SRC += $(QUANTUM_DIR)/process_keycode/process_space_cadet.c
OPT_DEFS += -DSPACE_CADET_ENABLE OPT_DEFS += -DSPACE_CADET_ENABLE
endif endif
MAGIC_ENABLE ?= yes MAGIC_ENABLE ?= yes
@@ -515,3 +483,31 @@ ifeq ($(strip $(DYNAMIC_MACRO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c SRC += $(QUANTUM_DIR)/process_keycode/process_dynamic_macro.c
OPT_DEFS += -DDYNAMIC_MACRO_ENABLE OPT_DEFS += -DDYNAMIC_MACRO_ENABLE
endif endif
ifeq ($(strip $(COMBO_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_combo.c
OPT_DEFS += -DCOMBO_ENABLE
endif
ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_tap_dance.c
OPT_DEFS += -DTAP_DANCE_ENABLE
endif
ifeq ($(strip $(KEY_LOCK_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_key_lock.c
OPT_DEFS += -DKEY_LOCK_ENABLE
endif
ifeq ($(strip $(LEADER_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_leader.c
OPT_DEFS += -DLEADER_ENABLE
endif
ifeq ($(strip $(AUTO_SHIFT_ENABLE)), yes)
SRC += $(QUANTUM_DIR)/process_keycode/process_auto_shift.c
OPT_DEFS += -DAUTO_SHIFT_ENABLE
ifeq ($(strip $(AUTO_SHIFT_MODIFIERS)), yes)
OPT_DEFS += -DAUTO_SHIFT_MODIFIERS
endif
endif
+15 -4
View File
@@ -123,7 +123,7 @@ If you would like to change the hotkey assignments for Bootmagic, `#define` thes
# Bootmagic Lite :id=bootmagic-lite # Bootmagic Lite :id=bootmagic-lite
In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause. In addition to the full blown Bootmagic feature, is the Bootmagic Lite feature that only handles jumping into the bootloader. This is great for boards that don't have a physical reset button but you need a way to jump into the bootloader, and don't want to deal with the headache that Bootmagic can cause.
To enable this version of Bootmagic, you need to enable it in your `rules.mk` with: To enable this version of Bootmagic, you need to enable it in your `rules.mk` with:
@@ -131,7 +131,7 @@ To enable this version of Bootmagic, you need to enable it in your `rules.mk` wi
BOOTMAGIC_ENABLE = lite BOOTMAGIC_ENABLE = lite
``` ```
Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file: Additionally, you may want to specify which key to use. This is especially useful for keyboards that have unusual matrices. To do so, you need to specify the row and column of the key that you want to use. Add these entries to your `config.h` file:
```c ```c
#define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_ROW 0
@@ -144,9 +144,20 @@ And to trigger the bootloader, you hold this key down when plugging the keyboard
!> Using bootmagic lite will **always reset** the EEPROM, so you will lose any settings that have been saved. !> Using bootmagic lite will **always reset** the EEPROM, so you will lose any settings that have been saved.
## Split Keyboards
When handedness is predetermined via an option like `SPLIT_HAND_PIN`, you might need to configure a different key between halves. This To do so, add these entries to your `config.h` file:
```c
#define BOOTMAGIC_LITE_ROW_RIGHT 4
#define BOOTMAGIC_LITE_COLUMN_RIGHT 1
```
By default, these values are not set.
## Advanced Bootmagic Lite ## Advanced Bootmagic Lite
The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed. The `bootmagic_lite` function is defined weakly, so that you can replace this in your code, if you need. A great example of this is the Zeal60 boards that have some additional handling needed.
To replace the function, all you need to do is add something like this to your code: To replace the function, all you need to do is add something like this to your code:
@@ -163,4 +174,4 @@ void bootmagic_lite(void) {
} }
``` ```
You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware. You can additional feature here. For instance, resetting the eeprom or requiring additional keys to be pressed to trigger bootmagic. Keep in mind that `bootmagic_lite` is called before a majority of features are initialized in the firmware.
+16 -16
View File
@@ -175,23 +175,23 @@ const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
## Lighting Layers ## Lighting Layers
By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make By including `#define RGBLIGHT_LAYERS` in your `config.h` file you can enable lighting layers. These make
it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do. it easy to use your underglow LEDs as status indicators to show which keyboard layer is currently active, or the state of caps lock, all without disrupting any animations. [Here's a video](https://youtu.be/uLGE1epbmdY) showing an example of what you can do.
To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently: To define a layer, we modify `keymap.c` to list out LED ranges and the colors we want to overlay on them using an array of `rgblight_segment_t` using the `RGBLIGHT_LAYER_SEGMENTS` macro. We can define multiple layers and enable/disable them independently:
```c ```c
// Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore! // Light LEDs 6 to 9 and 12 to 15 red when caps lock is active. Hard to ignore!
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6 {6, 4, HSV_RED}, // Light 4 LEDs, starting with LED 6
{12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12 {12, 4, HSV_RED} // Light 4 LEDs, starting with LED 12
); );
// Light LEDs 9 & 10 in cyan when keyboard layer 1 is active // Light LEDs 9 & 10 in cyan when keyboard layer 1 is active
const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer1_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{9, 2, HSV_CYAN} {9, 2, HSV_CYAN}
); );
// Light LEDs 11 & 12 in purple when keyboard layer 2 is active // Light LEDs 11 & 12 in purple when keyboard layer 2 is active
const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t PROGMEM my_layer2_layer[] = RGBLIGHT_LAYER_SEGMENTS(
{11, 2, HSV_PURPLE}, {11, 2, HSV_PURPLE}
); );
// etc.. // etc..
``` ```
@@ -201,14 +201,14 @@ We combine these layers into an array using the `RGBLIGHT_LAYERS_LIST` macro, an
```c ```c
// Now define the array of layers. Later layers take precedence // Now define the array of layers. Later layers take precedence
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
my_capslock_layer, my_capslock_layer,
my_layer1_layer, // Overrides caps lock layer my_layer1_layer, // Overrides caps lock layer
my_layer2_layer // Overrides other layers my_layer2_layer // Overrides other layers
); );
void keyboard_post_init_user(void) { void keyboard_post_init_user(void) {
// Enable the LED layers // Enable the LED layers
rgblight_layers = my_rgb_layers; rgblight_layers = my_rgb_layers;
} }
``` ```
@@ -216,15 +216,15 @@ Finally, we enable and disable the lighting layers whenever the state of the key
```c ```c
layer_state_t layer_state_set_user(layer_state_t state) { layer_state_t layer_state_set_user(layer_state_t state) {
// Both layers will light up if both kb layers are active // Both layers will light up if both kb layers are active
rgblight_set_layer_state(1, layer_state_cmp(state, 1)); rgblight_set_layer_state(1, layer_state_cmp(state, 1));
rgblight_set_layer_state(2, layer_state_cmp(state, 2)); rgblight_set_layer_state(2, layer_state_cmp(state, 2));
return state; return state;
} }
bool led_update_user(led_t led_state) { bool led_update_user(led_t led_state) {
rgblight_set_layer_state(0, led_state.caps_lock); rgblight_set_layer_state(0, led_state.caps_lock);
return true; return true;
} }
``` ```
+6 -6
View File
@@ -1,8 +1,8 @@
# Eclipse を使った ARM デバッグ # Eclipse を使った ARM デバッグ
<!--- <!---
original document: eae21eed7:docs/arm_debugging.md original document: 0.8.58:docs/arm_debugging.md
git diff eae21eed7 HEAD -- docs/arm_debugging.md | cat git diff 0.8.58 HEAD -- docs/arm_debugging.md | cat
--> -->
このページでは、SWD アダプタとオープンソース/フリーツールを使って ARM MCU をデバッグするためのセットアップ方法について説明します。このガイドでは、GNU MCU Eclipse IDE for C/C++ Developers および OpenOCD を必要な依存関係と一緒にインストールします。 このページでは、SWD アダプタとオープンソース/フリーツールを使って ARM MCU をデバッグするためのセットアップ方法について説明します。このガイドでは、GNU MCU Eclipse IDE for C/C++ Developers および OpenOCD を必要な依存関係と一緒にインストールします。
@@ -60,7 +60,7 @@ Java は Eclipse で必要とされるため、[ここ](https://www.oracle.com/t
Eclipse に QMK をビルドしようとするデバイスを教える必要があります。QMK フォルダを右クリック -> Properties -> C/C++ Build -> Settings を選択します。Devices タブを選択し、Devices の下から MCU の適切な種類を選択します。私の例では、STM32F303CC です。 Eclipse に QMK をビルドしようとするデバイスを教える必要があります。QMK フォルダを右クリック -> Properties -> C/C++ Build -> Settings を選択します。Devices タブを選択し、Devices の下から MCU の適切な種類を選択します。私の例では、STM32F303CC です。
この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。 この間に、Build コマンドもセットアップしましょう。C/C++ Build を選択し、Behavior タブを選択します。Build コマンドのところで、`all` を必要な make コマンドに置き換えます。例えば、rev6 Planck の default キーマップの場合、これは `planck/rev6:default` になります。Apply and Close を選択します。
## ビルド ## ビルド
@@ -70,13 +70,13 @@ Eclipse に QMK をビルドしようとするデバイスを教える必要が
### デバッガの接続 ### デバッガの接続
ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を 完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。 ARM MCU は、クロック信号(SWCLK) とデータ信号(SWDIO) で構成される Single Wire Debug (SWD) プロトコルを使います。MCU を完全に操作するには、この2本のワイヤとグラウンドを接続するだけで十分です。ここでは、キーボードは USB を介して電力が供給されると想定しています。手動でリセットボタンを使えるため、RESET 信号は必要ありません。より高度なセットアップのために printf と scanf をホストに非同期にパイプする SWO 信号を使用できますが、私たちのセットアップでは無視します。
注意: SWCLK と SWDIO ピンがキーボードのマトリックスで使われていないことを確認してください。もし使われている場合は、一時的に他のピンに切り替えることができます。 注意: SWCLK と SWDIO ピンがキーボードのマトリックスで使われていないことを確認してください。もし使われている場合は、一時的に他のピンに切り替えることができます。
### デバッガの設定 ### デバッガの設定
QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは stm32f3discovery.cfg と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。 QMK フォルダを右クリックし、Debug As -> Debug Configurations... を選択します。ここで、GDB OpenOCD Debugging をダブルクリックします。Debugger タブを選択し、MCU に必要な設定を入力します。これを見つけるにはいじったりググったりする必要があるかもしれません。STM32F3 用のデフォルトスクリプトは `stm32f3discovery.cfg` と呼ばれます。OpenOCD に伝えるには、Config options で `-f board/stm32f3discovery.cfg` と入力します。
注意: 私の場合、この設定スクリプトはリセット操作を無効にするために編集が必要です。スクリプトの場所は、通常はパス `openocd/version/.content/scripts/board` の下の実際の実行可能フィールドの中で見つかります。ここで、私は `reset_config srst_only` を `reset_config none` に編集しました。 注意: 私の場合、この設定スクリプトはリセット操作を無効にするために編集が必要です。スクリプトの場所は、通常はパス `openocd/version/.content/scripts/board` の下の実際の実行可能フィールドの中で見つかります。ここで、私は `reset_config srst_only` を `reset_config none` に編集しました。
@@ -86,7 +86,7 @@ Apply and Close を選択します。
キーボードをリセットしてください。 キーボードをリセットしてください。
虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止するので、Play ボタンを押します。全てのデバッガのほとんどの機能は ARM MCU で動作しますが、正確な詳細については google があなたのお友達です! 虫アイコンをクリックし、もし全てうまく行けば Debug パースペクティブに移動します。ここでは、main 関数の最初でプログラムカウンタが停止し、Play ボタンが押されるのを待ちます。全てのデバッガのほとんどの機能は Arm MCU で動作しますが、正確な詳細については Google があなたのお友達です!
ハッピーデバッギング! ハッピーデバッギング!
+57
View File
@@ -0,0 +1,57 @@
{
"keyboard_name": "Claw44 rev1",
"url": "",
"maintainer": "yfuku",
"width": 17.5,
"height": 4.5,
"layouts": {
"LAYOUT": {
"layout": [
{"label":"L00", "x":0, "y":1.18},
{"label":"L01", "x":1, "y":1.03},
{"label":"L02", "x":2, "y":0.35},
{"label":"L03", "x":3, "y":0},
{"label":"L04", "x":4, "y":0.05},
{"label":"L05", "x":5, "y":0.10},
{"label":"R00", "x":11.5, "y":0.10},
{"label":"R01", "x":12.5, "y":0.05},
{"label":"R02", "x":13.5, "y":0},
{"label":"R03", "x":14.5, "y":0.35},
{"label":"R04", "x":15.5, "y":1.08},
{"label":"R05", "x":16.5, "y":1.18},
{"label":"L10", "x":0, "y":2.18},
{"label":"L11", "x":1, "y":2.03},
{"label":"L12", "x":2, "y":1.35},
{"label":"L13", "x":3, "y":1},
{"label":"L14", "x":4, "y":1.05},
{"label":"L15", "x":5, "y":1.10},
{"label":"R10", "x":11.5, "y":1.10},
{"label":"R11", "x":12.5, "y":1.05},
{"label":"R12", "x":13.5, "y":1},
{"label":"R13", "x":14.5, "y":1.35},
{"label":"R14", "x":15.5, "y":2.03},
{"label":"R15", "x":16.5, "y":2.18},
{"label":"L20", "x":0, "y":3.18},
{"label":"L21", "x":1, "y":3.03},
{"label":"L22", "x":2, "y":2.35},
{"label":"L23", "x":3, "y":2},
{"label":"L24", "x":4, "y":2.05},
{"label":"L25", "x":5, "y":2.10},
{"label":"R20", "x":11.5, "y":2.10},
{"label":"R21", "x":12.5, "y":2.05},
{"label":"R22", "x":13.5, "y":2},
{"label":"R23", "x":14.5, "y":2.35},
{"label":"R24", "x":15.5, "y":3.03},
{"label":"R25", "x":16.5, "y":3.18},
{"label":"L30", "x":4, "y":3.05},
{"label":"L31", "x":5, "y":3.10},
{"label":"L32", "x":6, "y":3.20, "w":1.25},
{"label":"L33", "x":7.25, "y":3.50},
{"label":"R30", "x":9.25, "y":3.50},
{"label":"R31", "x":10.25, "y":3.20, "w":1.25},
{"label":"R32", "x":11.5, "y":3.10},
{"label":"R33", "x":12.5, "y":3.05}
]
}
}
}
+366 -79
View File
@@ -1,84 +1,371 @@
{ {
"keyboard_name": "lodestone", "keyboard_name": "lodestone",
"url": "https://prototypist.net/", "url": "https://prototypist.net/",
"maintainer": "Flexerm", "maintainer": "Flexerm",
"width": 16, "width": 16,
"height": 5, "height": 5,
"layouts": { "layouts": {
"LAYOUT_all": { "LAYOUT_all": {
"layout": [ "layout": [
{"label":"K00 (B3,B2)", "x":0, "y":0}, {"label":"K00 (B3,B2)", "x":0, "y":0},
{"label":"K01 (B3,F5)", "x":1, "y":0}, {"label":"K01 (B3,F5)", "x":1, "y":0},
{"label":"K02 (B3,F6)", "x":2, "y":0}, {"label":"K02 (B3,F6)", "x":2, "y":0},
{"label":"K03 (B3,D0)", "x":3, "y":0}, {"label":"K03 (B3,D0)", "x":3, "y":0},
{"label":"K04 (B3,D1)", "x":4, "y":0}, {"label":"K04 (B3,D1)", "x":4, "y":0},
{"label":"K05 (B3,D2)", "x":5, "y":0}, {"label":"K05 (B3,D2)", "x":5, "y":0},
{"label":"K06 (B3,D3)", "x":6, "y":0}, {"label":"K06 (B3,D3)", "x":6, "y":0},
{"label":"K07 (B3,D5)", "x":7, "y":0}, {"label":"K07 (B3,D5)", "x":7, "y":0},
{"label":"K08 (B3,D4)", "x":8, "y":0}, {"label":"K08 (B3,D4)", "x":8, "y":0},
{"label":"K09 (B3,D6)", "x":9, "y":0}, {"label":"K09 (B3,D6)", "x":9, "y":0},
{"label":"K0A (B3,D7)", "x":10, "y":0}, {"label":"K0A (B3,D7)", "x":10, "y":0},
{"label":"K0B (B3,B4)", "x":11, "y":0}, {"label":"K0B (B3,B4)", "x":11, "y":0},
{"label":"K0C (B3,B5)", "x":12, "y":0}, {"label":"K0C (B3,B5)", "x":12, "y":0},
{"label":"K0D (B3,B6)", "x":13, "y":0}, {"label":"K0D (B3,B6)", "x":13, "y":0},
{"label":"K0E (B3,C6)", "x":14, "y":0}, {"label":"K0E (B3,C6)", "x":14, "y":0},
{"label":"K0F (B3,C7)", "x":15, "y":0}, {"label":"K0F (B3,C7)", "x":15, "y":0},
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5}, {"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B7,F5)", "x":1.5, "y":1}, {"label":"K11 (B7,F5)", "x":1.5, "y":1},
{"label":"K12 (B7,F6)", "x":2.5, "y":1}, {"label":"K12 (B7,F6)", "x":2.5, "y":1},
{"label":"K13 (B7,D0)", "x":3.5, "y":1}, {"label":"K13 (B7,D0)", "x":3.5, "y":1},
{"label":"K14 (B7,D1)", "x":4.5, "y":1}, {"label":"K14 (B7,D1)", "x":4.5, "y":1},
{"label":"K15 (B7,D2)", "x":5.5, "y":1}, {"label":"K15 (B7,D2)", "x":5.5, "y":1},
{"label":"K16 (B7,D3)", "x":6.5, "y":1}, {"label":"K16 (B7,D3)", "x":6.5, "y":1},
{"label":"K17 (B7,D5)", "x":7.5, "y":1}, {"label":"K17 (B7,D5)", "x":7.5, "y":1},
{"label":"K18 (B7,D4)", "x":8.5, "y":1}, {"label":"K18 (B7,D4)", "x":8.5, "y":1},
{"label":"K19 (B7,D6)", "x":9.5, "y":1}, {"label":"K19 (B7,D6)", "x":9.5, "y":1},
{"label":"K1A (B7,D7)", "x":10.5, "y":1}, {"label":"K1A (B7,D7)", "x":10.5, "y":1},
{"label":"K1B (B7,B4)", "x":11.5, "y":1}, {"label":"K1B (B7,B4)", "x":11.5, "y":1},
{"label":"K1C (B7,B5)", "x":12.5, "y":1}, {"label":"K1C (B7,B5)", "x":12.5, "y":1},
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5}, {"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
{"label":"K1F (B7,C7)", "x":15, "y":1}, {"label":"K1F (B7,C7)", "x":15, "y":1},
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75}, {"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F0,F5)", "x":1.75, "y":2}, {"label":"K21 (F0,F5)", "x":1.75, "y":2},
{"label":"K22 (F0,F6)", "x":2.75, "y":2}, {"label":"K22 (F0,F6)", "x":2.75, "y":2},
{"label":"K23 (F0,D0)", "x":3.75, "y":2}, {"label":"K23 (F0,D0)", "x":3.75, "y":2},
{"label":"K24 (F0,D1)", "x":4.75, "y":2}, {"label":"K24 (F0,D1)", "x":4.75, "y":2},
{"label":"K25 (F0,D2)", "x":5.75, "y":2}, {"label":"K25 (F0,D2)", "x":5.75, "y":2},
{"label":"K26 (F0,D3)", "x":6.75, "y":2}, {"label":"K26 (F0,D3)", "x":6.75, "y":2},
{"label":"K27 (F0,D5)", "x":7.75, "y":2}, {"label":"K27 (F0,D5)", "x":7.75, "y":2},
{"label":"K28 (F0,D4)", "x":8.75, "y":2}, {"label":"K28 (F0,D4)", "x":8.75, "y":2},
{"label":"K29 (F0,D6)", "x":9.75, "y":2}, {"label":"K29 (F0,D6)", "x":9.75, "y":2},
{"label":"K2A (F0,D7)", "x":10.75, "y":2}, {"label":"K2A (F0,D7)", "x":10.75, "y":2},
{"label":"K2B (F0,B4)", "x":11.75, "y":2}, {"label":"K2B (F0,B4)", "x":11.75, "y":2},
{"label":"K2C (F0,B5)", "x":12.75, "y":2}, {"label":"K2C (F0,B5)", "x":12.75, "y":2},
{"label":"K2D (F0,B6)", "x":13.75, "y":2, "w":1.25}, {"label":"K2D (F0,B6)", "x":13.75, "y":2, "w":1.25},
{"label":"K2F (F0,C7)", "x":15, "y":2}, {"label":"K2F (F0,C7)", "x":15, "y":2},
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25}, {"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
{"label":"K31 (F1,F5)", "x":1.25, "y":3}, {"label":"K31 (F1,F5)", "x":1.25, "y":3},
{"label":"K32 (F1,F6)", "x":2.25, "y":3}, {"label":"K32 (F1,F6)", "x":2.25, "y":3},
{"label":"K33 (F1,D0)", "x":3.25, "y":3}, {"label":"K33 (F1,D0)", "x":3.25, "y":3},
{"label":"K34 (F1,D1)", "x":4.25, "y":3}, {"label":"K34 (F1,D1)", "x":4.25, "y":3},
{"label":"K35 (F1,D2)", "x":5.25, "y":3}, {"label":"K35 (F1,D2)", "x":5.25, "y":3},
{"label":"K36 (F1,D3)", "x":6.25, "y":3}, {"label":"K36 (F1,D3)", "x":6.25, "y":3},
{"label":"K37 (F1,D5)", "x":7.25, "y":3}, {"label":"K37 (F1,D5)", "x":7.25, "y":3},
{"label":"K38 (F1,D4)", "x":8.25, "y":3}, {"label":"K38 (F1,D4)", "x":8.25, "y":3},
{"label":"K39 (F1,D6)", "x":9.25, "y":3}, {"label":"K39 (F1,D6)", "x":9.25, "y":3},
{"label":"K3A (F1,D7)", "x":10.25, "y":3}, {"label":"K3A (F1,D7)", "x":10.25, "y":3},
{"label":"K3B (F1,B4)", "x":11.25, "y":3}, {"label":"K3B (F1,B4)", "x":11.25, "y":3},
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75}, {"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3}, {"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3}, {"label":"K3F (F1,C7)", "x":15, "y":3},
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225}, {"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25}, {"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25}, {"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25}, {"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25}, {"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25}, {"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
{"label":"K4D (F4,B6)", "x":13, "y":4}, {"label":"K4D (F4,B6)", "x":13, "y":4},
{"label":"K4E (F4,C6)", "x":14, "y":4}, {"label":"K4E (F4,C6)", "x":14, "y":4},
{"label":"K4F (F4,C7)", "x":15, "y":4} {"label":"K4F (F4,C7)", "x":15, "y":4}
] ]
} },
} "LAYOUT_65_ansi_blocker": {
} "layout": [
{"label":"K00 (B3,B2)", "x":0, "y":0},
{"label":"K01 (B3,F5)", "x":1, "y":0},
{"label":"K02 (B3,F6)", "x":2, "y":0},
{"label":"K03 (B3,D0)", "x":3, "y":0},
{"label":"K04 (B3,D1)", "x":4, "y":0},
{"label":"K05 (B3,D2)", "x":5, "y":0},
{"label":"K06 (B3,D3)", "x":6, "y":0},
{"label":"K07 (B3,D5)", "x":7, "y":0},
{"label":"K08 (B3,D4)", "x":8, "y":0},
{"label":"K09 (B3,D6)", "x":9, "y":0},
{"label":"K0A (B3,D7)", "x":10, "y":0},
{"label":"K0B (B3,B4)", "x":11, "y":0},
{"label":"K0C (B3,B5)", "x":12, "y":0},
{"label":"K0D (B3,B6)", "x":13, "y":0, "w":2},
{"label":"K0F (B3,C7)", "x":15, "y":0},
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
{"label":"K1F (B7,C7)", "x":15, "y":1},
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
{"label":"K2D (F0,B6)", "x":12.75, "y":2, "w":2.25},
{"label":"K2F (F0,C7)", "x":15, "y":2},
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":2.25},
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
{"label":"K4D (F4,B6)", "x":13, "y":4},
{"label":"K4E (F4,C6)", "x":14, "y":4},
{"label":"K4F (F4,C7)", "x":15, "y":4}
]
},
"LAYOUT_65_ansi_blocker_split_bs": {
"layout": [
{"label":"K00 (B3,B2)", "x":0, "y":0},
{"label":"K01 (B3,F5)", "x":1, "y":0},
{"label":"K02 (B3,F6)", "x":2, "y":0},
{"label":"K03 (B3,D0)", "x":3, "y":0},
{"label":"K04 (B3,D1)", "x":4, "y":0},
{"label":"K05 (B3,D2)", "x":5, "y":0},
{"label":"K06 (B3,D3)", "x":6, "y":0},
{"label":"K07 (B3,D5)", "x":7, "y":0},
{"label":"K08 (B3,D4)", "x":8, "y":0},
{"label":"K09 (B3,D6)", "x":9, "y":0},
{"label":"K0A (B3,D7)", "x":10, "y":0},
{"label":"K0B (B3,B4)", "x":11, "y":0},
{"label":"K0C (B3,B5)", "x":12, "y":0},
{"label":"K0D (B3,B6)", "x":13, "y":0},
{"label":"K0E (B3,C6)", "x":14, "y":0},
{"label":"K0F (B3,C7)", "x":15, "y":0},
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
{"label":"K1D (B7,B6)", "x":13.5, "y":1, "w":1.5},
{"label":"K1F (B7,C7)", "x":15, "y":1},
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
{"label":"K2D (F0,B6)", "x":12.75, "y":2, "w":2.25},
{"label":"K2F (F0,C7)", "x":15, "y":2},
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":2.25},
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
{"label":"K4D (F4,B6)", "x":13, "y":4},
{"label":"K4E (F4,C6)", "x":14, "y":4},
{"label":"K4F (F4,C7)", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker": {
"layout": [
{"label":"K00 (B3,B2)", "x":0, "y":0},
{"label":"K01 (B3,F5)", "x":1, "y":0},
{"label":"K02 (B3,F6)", "x":2, "y":0},
{"label":"K03 (B3,D0)", "x":3, "y":0},
{"label":"K04 (B3,D1)", "x":4, "y":0},
{"label":"K05 (B3,D2)", "x":5, "y":0},
{"label":"K06 (B3,D3)", "x":6, "y":0},
{"label":"K07 (B3,D5)", "x":7, "y":0},
{"label":"K08 (B3,D4)", "x":8, "y":0},
{"label":"K09 (B3,D6)", "x":9, "y":0},
{"label":"K0A (B3,D7)", "x":10, "y":0},
{"label":"K0B (B3,B4)", "x":11, "y":0},
{"label":"K0C (B3,B5)", "x":12, "y":0},
{"label":"K0D (B3,B6)", "x":13, "y":0, "w":2},
{"label":"K0F (B3,C7)", "x":15, "y":0},
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
{"label":"K1F (B7,C7)", "x":15, "y":1},
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
{"label":"K2D (F0,B6)", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"K2F (F0,C7)", "x":15, "y":2},
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
{"label":"K4D (F4,B6)", "x":13, "y":4},
{"label":"K4E (F4,C6)", "x":14, "y":4},
{"label":"K4F (F4,C7)", "x":15, "y":4}
]
},
"LAYOUT_65_iso_blocker_split_bs": {
"layout": [
{"label":"K00 (B3,B2)", "x":0, "y":0},
{"label":"K01 (B3,F5)", "x":1, "y":0},
{"label":"K02 (B3,F6)", "x":2, "y":0},
{"label":"K03 (B3,D0)", "x":3, "y":0},
{"label":"K04 (B3,D1)", "x":4, "y":0},
{"label":"K05 (B3,D2)", "x":5, "y":0},
{"label":"K06 (B3,D3)", "x":6, "y":0},
{"label":"K07 (B3,D5)", "x":7, "y":0},
{"label":"K08 (B3,D4)", "x":8, "y":0},
{"label":"K09 (B3,D6)", "x":9, "y":0},
{"label":"K0A (B3,D7)", "x":10, "y":0},
{"label":"K0B (B3,B4)", "x":11, "y":0},
{"label":"K0C (B3,B5)", "x":12, "y":0},
{"label":"K0D (B3,B6)", "x":13, "y":0},
{"label":"K0E (B3,C6)", "x":14, "y":0},
{"label":"K0F (B3,C7)", "x":15, "y":0},
{"label":"K10 (B7,B2)", "x":0, "y":1, "w":1.5},
{"label":"K11 (B7,F5)", "x":1.5, "y":1},
{"label":"K12 (B7,F6)", "x":2.5, "y":1},
{"label":"K13 (B7,D0)", "x":3.5, "y":1},
{"label":"K14 (B7,D1)", "x":4.5, "y":1},
{"label":"K15 (B7,D2)", "x":5.5, "y":1},
{"label":"K16 (B7,D3)", "x":6.5, "y":1},
{"label":"K17 (B7,D5)", "x":7.5, "y":1},
{"label":"K18 (B7,D4)", "x":8.5, "y":1},
{"label":"K19 (B7,D6)", "x":9.5, "y":1},
{"label":"K1A (B7,D7)", "x":10.5, "y":1},
{"label":"K1B (B7,B4)", "x":11.5, "y":1},
{"label":"K1C (B7,B5)", "x":12.5, "y":1},
{"label":"K1F (B7,C7)", "x":15, "y":1},
{"label":"K20 (F0,B2)", "x":0, "y":2, "w":1.75},
{"label":"K21 (F0,F5)", "x":1.75, "y":2},
{"label":"K22 (F0,F6)", "x":2.75, "y":2},
{"label":"K23 (F0,D0)", "x":3.75, "y":2},
{"label":"K24 (F0,D1)", "x":4.75, "y":2},
{"label":"K25 (F0,D2)", "x":5.75, "y":2},
{"label":"K26 (F0,D3)", "x":6.75, "y":2},
{"label":"K27 (F0,D5)", "x":7.75, "y":2},
{"label":"K28 (F0,D4)", "x":8.75, "y":2},
{"label":"K29 (F0,D6)", "x":9.75, "y":2},
{"label":"K2A (F0,D7)", "x":10.75, "y":2},
{"label":"K2B (F0,B4)", "x":11.75, "y":2},
{"label":"K2C (F0,B5)", "x":12.75, "y":2},
{"label":"K2D (F0,B6)", "x":13.75, "y":1, "w":1.25, "h":2},
{"label":"K2F (F0,C7)", "x":15, "y":2},
{"label":"K30 (F1,B2)", "x":0, "y":3, "w":1.25},
{"label":"K31 (F1,F5)", "x":1.25, "y":3},
{"label":"K32 (F1,F6)", "x":2.25, "y":3},
{"label":"K33 (F1,D0)", "x":3.25, "y":3},
{"label":"K34 (F1,D1)", "x":4.25, "y":3},
{"label":"K35 (F1,D2)", "x":5.25, "y":3},
{"label":"K36 (F1,D3)", "x":6.25, "y":3},
{"label":"K37 (F1,D5)", "x":7.25, "y":3},
{"label":"K38 (F1,D4)", "x":8.25, "y":3},
{"label":"K39 (F1,D6)", "x":9.25, "y":3},
{"label":"K3A (F1,D7)", "x":10.25, "y":3},
{"label":"K3B (F1,B4)", "x":11.25, "y":3},
{"label":"K3C (F1,B5)", "x":12.25, "y":3, "w":1.75},
{"label":"K3E (F1,C6)", "x":14, "y":3},
{"label":"K3F (F1,C7)", "x":15, "y":3},
{"label":"K40 (F4,B2)", "x":0, "y":4, "w":1.225},
{"label":"K41 (F4,F5)", "x":1.25, "y":4, "w":1.25},
{"label":"K42 (F4,F6)", "x":2.5, "y":4, "w":1.25},
{"label":"K46 (F4,D3)", "x":3.75, "y":4, "w":6.25},
{"label":"K4A (F4,D7)", "x":10, "y":4, "w":1.25},
{"label":"K4B (F4,B4)", "x":11.25, "y":4, "w":1.25},
{"label":"K4D (F4,B6)", "x":13, "y":4},
{"label":"K4E (F4,C6)", "x":14, "y":4},
{"label":"K4F (F4,C7)", "x":15, "y":4}
]
}
}
}
@@ -0,0 +1,20 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
[0] = LAYOUT_65_ansi_blocker_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
// Fn1 Layer
[1] = LAYOUT_65_ansi_blocker_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS,
KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
@@ -0,0 +1 @@
# The default ANSI keymap for Lodestone
@@ -0,0 +1,20 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Default layer
[0] = LAYOUT_65_iso_blocker_split_bs(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_PGUP,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
// Fn1 Layer
[1] = LAYOUT_65_iso_blocker_split_bs(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, KC_TRNS,
KC_CAPS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS,
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};
@@ -0,0 +1 @@
# The default ISO keymap for Lodestone
+56
View File
@@ -35,3 +35,59 @@
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \ { K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
} }
#define LAYOUT_65_ansi_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, ___, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___, K2F }, \
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
}
#define LAYOUT_65_ansi_blocker_split_bs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, ___, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___, K2F }, \
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
}
#define LAYOUT_65_iso_blocker( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, ___, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, ___, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
}
#define LAYOUT_65_iso_blocker_split_bs( \
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2F, \
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
K40, K41, K42, K46, K4A, K4B, K4D, K4E, K4F \
) { \
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, ___, K1F }, \
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___, K2F }, \
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, K4D, K4E, K4F }, \
}
+2
View File
@@ -31,3 +31,5 @@ AUDIO_ENABLE = no # Audio output on port C6
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
HD44780_ENABLE = no # Enable support for HD44780 based LCDs HD44780_ENABLE = no # Enable support for HD44780 based LCDs
LTO_ENABLE = yes LTO_ENABLE = yes
LAYOUTS = 65_ansi_blocker 65_iso_blocker
-26
View File
@@ -581,32 +581,6 @@ void tap_random_base64(void) {
} }
} }
__attribute__((weak)) void bootmagic_lite(void) {
// The lite version of TMK's bootmagic based on Wilba.
// 100% less potential for accidentally making the
// keyboard do stupid things.
// We need multiple scans because debouncing can't be turned off.
matrix_scan();
#if defined(DEBOUNCE) && DEBOUNCE > 0
wait_ms(DEBOUNCE * 2);
#else
wait_ms(30);
#endif
matrix_scan();
// If the Esc and space bar are held down on power up,
// reset the EEPROM valid state and jump to bootloader.
// Assumes Esc is at [0,0].
// This isn't very generalized, but we need something that doesn't
// rely on user's keymaps in firmware or EEPROM.
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
eeconfig_disable();
// Jump to bootloader.
bootloader_jump();
}
}
void matrix_init_quantum() { void matrix_init_quantum() {
#ifdef BOOTMAGIC_LITE #ifdef BOOTMAGIC_LITE
bootmagic_lite(); bootmagic_lite();
-10
View File
@@ -11,16 +11,6 @@ MCU = atmega32u4
# ATmega328P USBasp # ATmega328P USBasp
BOOTLOADER = atmel-dfu BOOTLOADER = atmel-dfu
# If you don't know the bootloader type, then you can specify the
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
# Otherwise, delete this section
# Teensy halfKay 512
# Teensy++ halfKay 1024
# Atmel DFU loader 4096
# LUFA bootloader 4096
# USBaspLoader 2048
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
# Build Options # Build Options
# change yes to no to disable # change yes to no to disable
# #
-30
View File
@@ -92,36 +92,6 @@ void via_eeprom_reset(void) {
eeconfig_disable(); eeconfig_disable();
} }
// Override bootmagic_lite() so it can flag EEPROM as invalid
// as well as jump to bootloader, thus performing a "factory reset"
// of dynamic keymaps and optionally backlight/other settings.
void bootmagic_lite(void) {
// The lite version of TMK's bootmagic based on Wilba.
// 100% less potential for accidentally making the
// keyboard do stupid things.
// We need multiple scans because debouncing can't be turned off.
matrix_scan();
#if defined(DEBOUNCE) && DEBOUNCE > 0
wait_ms(DEBOUNCE * 2);
#else
wait_ms(30);
#endif
matrix_scan();
// If the Esc and space bar are held down on power up,
// reset the EEPROM valid state and jump to bootloader.
// Assumes Esc is at [0,0].
// This isn't very generalized, but we need something that doesn't
// rely on user's keymaps in firmware or EEPROM.
if (matrix_get_row(BOOTMAGIC_LITE_ROW) & (1 << BOOTMAGIC_LITE_COLUMN)) {
// This is the only difference from the default implementation.
via_eeprom_reset();
// Jump to bootloader.
bootloader_jump();
}
}
// Override this at the keyboard code level to check // Override this at the keyboard code level to check
// VIA's EEPROM valid state and reset to defaults as needed. // VIA's EEPROM valid state and reset to defaults as needed.
// Used by keyboards that store their own state in EEPROM, // Used by keyboards that store their own state in EEPROM,
+2
View File
@@ -34,6 +34,8 @@ ifneq ($(strip $(BOOTMAGIC_ENABLE)), no)
endif endif
ifeq ($(strip $(BOOTMAGIC_ENABLE)), lite) ifeq ($(strip $(BOOTMAGIC_ENABLE)), lite)
TMK_COMMON_DEFS += -DBOOTMAGIC_LITE TMK_COMMON_DEFS += -DBOOTMAGIC_LITE
TMK_COMMON_SRC += $(COMMON_DIR)/bootmagic_lite.c
TMK_COMMON_DEFS += -DMAGIC_ENABLE TMK_COMMON_DEFS += -DMAGIC_ENABLE
TMK_COMMON_SRC += $(COMMON_DIR)/magic.c TMK_COMMON_SRC += $(COMMON_DIR)/magic.c
else else
+51
View File
@@ -0,0 +1,51 @@
#include "quantum.h"
bool is_keyboard_left(void);
/** \brief Reset eeprom
*
* ...just incase someone wants to only change the eeprom behaviour
*/
__attribute__((weak)) void bootmagic_lite_reset_eeprom(void) {
#if defined(VIA_ENABLE)
via_eeprom_reset();
#else
eeconfig_disable();
#endif
}
/** \brief The lite version of TMK's bootmagic based on Wilba.
*
* 100% less potential for accidentally making the keyboard do stupid things.
*/
__attribute__((weak)) void bootmagic_lite(void) {
// We need multiple scans because debouncing can't be turned off.
matrix_scan();
#if defined(DEBOUNCE) && DEBOUNCE > 0
wait_ms(DEBOUNCE * 2);
#else
wait_ms(30);
#endif
matrix_scan();
// If the configured key (commonly Esc) is held down on power up,
// reset the EEPROM valid state and jump to bootloader.
// This isn't very generalized, but we need something that doesn't
// rely on user's keymaps in firmware or EEPROM.
uint8_t row = BOOTMAGIC_LITE_ROW;
uint8_t col = BOOTMAGIC_LITE_COLUMN;
#if defined(SPLIT_KEYBOARD) && defined(BOOTMAGIC_LITE_ROW_RIGHT) && defined(BOOTMAGIC_LITE_COLUMN_RIGHT)
if (!is_keyboard_left()) {
row = BOOTMAGIC_LITE_ROW_RIGHT;
col = BOOTMAGIC_LITE_COLUMN_RIGHT;
}
#endif
if (matrix_get_row(row) & (1 << col)) {
bootmagic_lite_reset_eeprom();
// Jump to bootloader.
bootloader_jump();
}
}