[Keymap] Add prog_qgmlwb keymap (#16890)
This commit is contained in:
parent
ef633cf461
commit
a80943579c
27 changed files with 750 additions and 0 deletions
36
users/davidkristoffersen/macros/debug.c
Normal file
36
users/davidkristoffersen/macros/debug.c
Normal file
|
@ -0,0 +1,36 @@
|
|||
// Copyright 2022 David Kristoffersen (@davidkristoffersen)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
// Replace key records with macros
|
||||
bool handle_test(uint16_t keycode) {
|
||||
switch (keycode) {
|
||||
case KC_T0: {
|
||||
// Test QK_MAKE command
|
||||
SEND_STRING("qmk compile -kb " QMK_KEYBOARD " -km " QMK_KEYMAP);
|
||||
break;
|
||||
}
|
||||
case KC_T1:
|
||||
// Test ascii characters
|
||||
SEND_STRING(" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~");
|
||||
break;
|
||||
case KC_T2:
|
||||
#ifdef LAYER_NO
|
||||
// Test other characters
|
||||
tap_code16(NO_AE);
|
||||
tap_code16(NO_OE);
|
||||
tap_code16(NO_AA);
|
||||
tap_code16(S(NO_AE));
|
||||
tap_code16(S(NO_OE));
|
||||
tap_code16(S(NO_AA));
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
bool process_debug(uint16_t keycode, keyrecord_t* record) {
|
||||
HANDLE_FALSE(handle_test(keycode));
|
||||
return true;
|
||||
}
|
40
users/davidkristoffersen/macros/language.c
Normal file
40
users/davidkristoffersen/macros/language.c
Normal file
|
@ -0,0 +1,40 @@
|
|||
// Copyright 2022 David Kristoffersen (@davidkristoffersen)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
bool handle_language(uint16_t keycode) {
|
||||
#ifdef LAYER_NO
|
||||
// Handle conversion of English to Norwegian codes
|
||||
uint16_t org_keycode = keycode;
|
||||
keycode = get_norwegian_code(keycode);
|
||||
#endif
|
||||
|
||||
#ifndef NO_SPECIAL_SHIFT
|
||||
// Handle conversion of special shift codes
|
||||
if (get_mods() & MOD_MASK_SHIFT) {
|
||||
uint16_t shifted_key = get_special_shifted_code(keycode);
|
||||
if (shifted_key != keycode) {
|
||||
// Tap shifted key while shift is disabled
|
||||
unregister_code(KC_LSFT);
|
||||
tap_code16(shifted_key);
|
||||
register_code(KC_LSFT);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef LAYER_NO
|
||||
// Tap new language key
|
||||
if (keycode != org_keycode) {
|
||||
tap_code16(keycode);
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
bool process_language(uint16_t keycode, keyrecord_t* record) {
|
||||
HANDLE_FALSE(handle_language(keycode));
|
||||
return true;
|
||||
}
|
16
users/davidkristoffersen/macros/macros.c
Normal file
16
users/davidkristoffersen/macros/macros.c
Normal file
|
@ -0,0 +1,16 @@
|
|||
// Copyright 2022 David Kristoffersen (@davidkristoffersen)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#include "macros.h"
|
||||
|
||||
// Prepend key records with macros
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
||||
if (record->event.pressed) {
|
||||
#ifdef SPLIT_SPACE
|
||||
handle_split_space(keycode, record);
|
||||
#endif
|
||||
HANDLE_FALSE(process_debug(keycode, record));
|
||||
HANDLE_FALSE(process_language(keycode, record));
|
||||
}
|
||||
return true;
|
||||
}
|
23
users/davidkristoffersen/macros/macros.h
Normal file
23
users/davidkristoffersen/macros/macros.h
Normal file
|
@ -0,0 +1,23 @@
|
|||
// Copyright 2022 David Kristoffersen (@davidkristoffersen)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "davidkristoffersen.h"
|
||||
|
||||
enum keycodes {
|
||||
// Test keys
|
||||
KC_T0 = SAFE_RANGE,
|
||||
KC_T1,
|
||||
KC_T2,
|
||||
// Norwegian Æ, Ø, Å
|
||||
KC_AE,
|
||||
KC_OE,
|
||||
KC_AA
|
||||
};
|
||||
|
||||
bool process_debug(uint16_t keycode, keyrecord_t* record);
|
||||
bool process_language(uint16_t keycode, keyrecord_t* record);
|
||||
|
||||
// Prepend key records with macros
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t* record);
|
19
users/davidkristoffersen/macros/norwegian.h
Normal file
19
users/davidkristoffersen/macros/norwegian.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
// Copyright 2022 David Kristoffersen (@davidkristoffersen)
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "keymap_extras/keymap_norwegian.h"
|
||||
#include "davidkristoffersen.h"
|
||||
|
||||
// Better norwegian defines
|
||||
#undef NO_LESS
|
||||
#define NO_LESS KC_NUBS // <
|
||||
#undef NO_GRTR
|
||||
#define NO_GRTR S(NO_LESS) // >
|
||||
#undef NO_AE
|
||||
#define NO_AE KC_QUOT // Æ
|
||||
#undef NO_OE
|
||||
#define NO_OE KC_SCLN // Ø
|
||||
#undef NO_AA
|
||||
#define NO_AA KC_LBRC // Å
|
3
users/davidkristoffersen/macros/readme.md
Normal file
3
users/davidkristoffersen/macros/readme.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
# Macros
|
||||
|
||||
This directory contains any type of dynamic and static macros.
|
Loading…
Add table
Add a link
Reference in a new issue