mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 13:22:31 +01:00 
			
		
		
		
	[Keymap] sofle/keymaps/michal: rewrite (#19938)
This commit is contained in:
		
							parent
							
								
									ee90ad28e6
								
							
						
					
					
						commit
						b85a9abc96
					
				| @ -1,14 +1,8 @@ | ||||
| // Copyright 2022 Michal S. (@ihatethefrench)
 | ||||
| // SPDX-License-Identifier: GPL-2.0-only
 | ||||
| // Copyright 2023 Michal S. (@not-my-segfault)
 | ||||
| // SPDX-License-Identifier: GPL-3.0-only
 | ||||
| 
 | ||||
| #pragma once | ||||
| 
 | ||||
| // Enables features such as octave changer, suspend, etc.
 | ||||
| #define MIDI_ADVANCED | ||||
| 
 | ||||
| // This autoshift delay feels most natural for me I think
 | ||||
| #define AUTO_SHIFT_TIMEOUT 165 | ||||
| 
 | ||||
| // I don't use too many layers, so this is more than enough
 | ||||
| #define LAYER_STATE_8BIT | ||||
| 
 | ||||
|  | ||||
| @ -1,5 +1,5 @@ | ||||
| // Copyright 2022 Michal S. (@ihatethefrench)
 | ||||
| // SPDX-License-Identifier: GPL-2.0-only
 | ||||
| // Copyright 2023 Michal S. (@not-my-segfault)
 | ||||
| // SPDX-License-Identifier: GPL-3.0-only
 | ||||
| 
 | ||||
| #include QMK_KEYBOARD_H  | ||||
| 
 | ||||
| @ -7,20 +7,18 @@ | ||||
| enum sofle_layers { | ||||
|     _WORKMAN, | ||||
|     _QWERTY, | ||||
|     _MIDI, | ||||
|     _LOWER, | ||||
|     _RAISE, | ||||
|     _ADJUST | ||||
| }; | ||||
| 
 | ||||
| // This specifies any custom keycodes I might have set
 | ||||
| enum custom_keycodes { | ||||
|     KC_WORKMAN = SAFE_RANGE, | ||||
|     KC_QWERTY, | ||||
|     KC_MIDI, | ||||
|     KC_LOWER, | ||||
|     KC_RAISE, | ||||
|     KC_ADJUST | ||||
|     KC_ADJUST, | ||||
|     KC_TOGGLE, | ||||
| }; | ||||
| 
 | ||||
| // Here the keymaps are defined in matrix form using KC_XYZ form keycodes
 | ||||
| @ -71,28 +69,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|                    KC_LGUI, KC_LALT, KC_LCTL,  KC_LOWER, KC_SPC,      KC_ENT,  KC_RAISE, KC_RCTL, KC_RALT, KC_RGUI | ||||
| ), | ||||
| 
 | ||||
| /* MIDI
 | ||||
|  * ,-----------------------------------------.                    ,-----------------------------------------. | ||||
|  * | Pnic | OCT0 | OCT1 | OCT2 | OCT3 | OCT4 |                    | OCT5 | OCT6 | OCT7 |      |      | MTOG | | ||||
|  * |------+------+------+------+------+------|                    |------+------+------+------+------+------| | ||||
|  * |      |G#/Ab |Bb/A# |      |C#/Db |D#/Eb |                    |      |F#/Gb |G#/Ab |Bb/A# |      |      | | ||||
|  * |------+------+------+------+------+------|                    |------+------+------+------+------+------| | ||||
|  * |      | A    | B    | C    | D    | E    |-------.    ,-------| F    | G    | A    | B    | C    | Wkmn | | ||||
|  * |------+------+------+------+------+------|       |    |       |------+------+------+------+------+------| | ||||
|  * |      |      |      |      | TNSD | TNSU |-------|    |-------| BNDD | BNDU |      |      |      |      | | ||||
|  * `-----------------------------------------/       /     \      \-----------------------------------------' | ||||
|  *            |      |      |      | Susd | /OCTDN  /       \OCTUP \  |      |      |      |      | | ||||
|  *            |      |      |      |      |/       /         \      \ |      |      |      |      | | ||||
|  *            `----------------------------------'           '------''---------------------------' | ||||
|  */ | ||||
| [_MIDI] = LAYOUT( | ||||
|   MI_AOFF,   MI_OC0,   MI_OC1,   MI_OC2,   MI_OC3,   MI_OC4,                        MI_OC5,   MI_OC6,   MI_OC7,   _______, _______, MI_TOGG, | ||||
|   _______,   MI_Gs,    MI_As,    _______,  MI_Cs1,   MI_Ds1,                        _______,  MI_Fs1,   MI_Gs1,   MI_As1,  _______, _______, | ||||
|   _______,   MI_A,     MI_B,     MI_C1,    MI_D1,    MI_E1,                         MI_F1,    MI_G1,    MI_A1,    MI_B1,   MI_C2,  KC_WORKMAN, | ||||
|   _______,   _______,  _______,  _______,  MI_TRSD,  MI_TRSU,  _______,    _______, MI_BNDD,  MI_BNDU,  _______,  _______, _______, _______, | ||||
|                        _______,  _______,  _______,  MI_SUST,  MI_OCTD,    MI_OCTU, _______,  _______,  _______,  _______ | ||||
| ), | ||||
| 
 | ||||
| /* LOWER
 | ||||
|  * ,-----------------------------------------.                    ,-----------------------------------------. | ||||
|  * |      |  F1  |  F2  |  F3  |  F4  |  F5  |                    |  F6  |  F7  |  F8  |  F9  | F10  | F11  | | ||||
| @ -100,7 +76,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|  * |      |      |      |      |      |      |                    |      |      |      |      |      | F12  | | ||||
|  * |------+------+------+------+------+------|                    |------+------+------+------+------+------| | ||||
|  * |      |      |      |      |      |      |-------.    ,-------|      |      |      |      |      |   |  | | ||||
|  * |------+------+------+------+------+------|       |    | Run   |------+------+------+------+------+------| | ||||
|  * |------+------+------+------+------+------|       |    | Togg. |------+------+------+------+------+------| | ||||
|  * |      |  =   |  -   |  +   |   {  |   }  |-------|    |-------|   [  |   ]  |      |      |   \  |      | | ||||
|  * `-----------------------------------------/       /     \      \-----------------------------------------' | ||||
|  *            |      |      |      |LOWER | /       /       \      \  |      |      |      |      | | ||||
| @ -111,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|   _______,  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_PIPE, | ||||
|   _______,  KC_EQL,  KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______,       LALT(KC_F2), KC_LBRC, KC_RBRC, _______, _______, KC_BSLS, _______, | ||||
|   _______,  KC_EQL,  KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______,       KC_TOGGLE,   KC_LBRC, KC_RBRC, _______, _______, KC_BSLS, _______, | ||||
|                      _______, _______, _______, _______, _______,       _______,     _______, _______, _______, _______ | ||||
| ), | ||||
| 
 | ||||
| @ -121,9 +97,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
|  * |------+------+------+------+------+------|                    |------+------+------+------+------+------| | ||||
|  * |      |      |      |      |      |      |                    |      |      |  Up  |      |      | Del  | | ||||
|  * |------+------+------+------+------+------|                    |------+------+------+------+------+------| | ||||
|  * |      |      |      |      |      |      |-------.    ,-------|      | Left | Down | Rght |      | Wkmn | | ||||
|  * |      |      |      |      |      |      |-------.    ,-------|      | Left | Down | Rght |      |      | | ||||
|  * |------+------+------+------+------+------|       |    |       |------+------+------+------+------+------| | ||||
|  * |      |      |      | Midi |      |      |-------|    |-------|      |      | Home | End  |      | Qwrt | | ||||
|  * |      |      |      |      |      |      |-------|    |-------|      |      | Home | End  |      |      | | ||||
|  * `-----------------------------------------/       /     \      \-----------------------------------------' | ||||
|  *            |      |      |      |      | /       /       \      \  |RAISE |      |      |      | | ||||
|  *            |      |      |      |      |/       /         \      \ |      |      |      |      | | ||||
| @ -132,27 +108,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
| [_RAISE] = LAYOUT( | ||||
|   _______, _______, _______, _______, _______, _______,                         _______, _______, _______, _______, _______, AS_TOGG, | ||||
|   _______, _______, _______, _______, _______, _______,                         _______, _______, KC_UP,   _______, _______, KC_DEL, | ||||
|   _______, _______, _______, _______, _______, _______,                         _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_WORKMAN, | ||||
|   _______, _______, _______, KC_MIDI, _______, _______, _______,       _______, _______, _______, KC_HOME, KC_END,  _______, KC_QWERTY, | ||||
|   _______, _______, _______, _______, _______, _______,                         _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, XXXXXXX, | ||||
|   _______, _______, _______, _______, _______, _______, _______,       _______, _______, _______, KC_HOME, KC_END,  _______, _______, | ||||
|                     _______, _______, _______, _______, _______,       _______, _______, _______, _______, _______ | ||||
| )}; | ||||
| 
 | ||||
| // This section only compiles if OLED_ENABLE is set to `yes` in rules.mk
 | ||||
| #ifdef OLED_ENABLE | ||||
| 
 | ||||
| // Defining my custom text to draw to the screen :)
 | ||||
| static void oled_screen(void) { | ||||
|     oled_write_ln_P(PSTR(""), false); | ||||
|     oled_write_ln_P(PSTR(">nix "), false); | ||||
|     oled_write_ln_P(PSTR(">rust"), false); | ||||
|     oled_write_ln_P(PSTR(">hs &"), false); | ||||
|     oled_write_ln_P(PSTR(">rum"), false); | ||||
|     oled_write_ln_P(PSTR(""), false); | ||||
|     oled_write_ln_P(PSTR(" . ."), false); | ||||
|     oled_write_ln_P(PSTR("  u "), false); | ||||
|     oled_write_ln_P(PSTR("    d"), false); | ||||
|     oled_write_ln_P(PSTR(""), false); | ||||
|     oled_write_ln_P(PSTR("mchal"), false); | ||||
|     oled_set_cursor(0, 0); // Write nothing
 | ||||
| } | ||||
| 
 | ||||
| // Set correct rotation so the text doesn't end up sideways
 | ||||
| @ -174,7 +138,6 @@ bool oled_task_user(void) { | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| // This section defines custom keycodes, which I use to manage layers
 | ||||
| bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||
|     switch (keycode) { | ||||
|         case KC_QWERTY: | ||||
| @ -187,9 +150,10 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||
|                     set_single_persistent_default_layer(_WORKMAN); | ||||
|                 } | ||||
|                 return false; | ||||
|             case KC_MIDI: | ||||
|             case KC_TOGGLE: // Toggle between QWERTY and WORKMAN
 | ||||
|                 if (record->event.pressed) { | ||||
|                     set_single_persistent_default_layer(_MIDI); | ||||
|                     layer_invert(_QWERTY); | ||||
|                     layer_invert(_WORKMAN); | ||||
|                 } | ||||
|                 return false; | ||||
|             case KC_LOWER: | ||||
| @ -214,7 +178,6 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||||
|     return true; | ||||
| } | ||||
| 
 | ||||
| // This section only compiles if ENCODER_ENABLE is set to `yes` in rules.mk
 | ||||
| #ifdef ENCODER_ENABLE | ||||
| 
 | ||||
| // This section is like the keymap matrix, but for rotary encoders
 | ||||
| @ -224,7 +187,6 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { | ||||
|     [_QWERTY]  = { ENCODER_CCW_CW(_______,     _______), ENCODER_CCW_CW(KC_VOLD,     KC_VOLU      )}, | ||||
|     [_LOWER]   = { ENCODER_CCW_CW(_______,     _______), ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN)}, | ||||
|     [_RAISE]   = { ENCODER_CCW_CW(_______,     _______), ENCODER_CCW_CW(_______,     _______      )}, | ||||
|     [_ADJUST]  = { ENCODER_CCW_CW(_______,     _______), ENCODER_CCW_CW(_______,     _______      )}, | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
|  | ||||
| @ -11,11 +11,9 @@ MAGIC_ENABLE = no | ||||
| SPACE_CADET_ENABLE = no | ||||
| 
 | ||||
| # I actually use these features
 | ||||
| AUTO_SHIFT_ENABLE = yes | ||||
| ENCODER_ENABLE = yes | ||||
| ENCODER_MAP_ENABLE = yes | ||||
| EXTRAKEY_ENABLE = yes | ||||
| MIDI_ENABLE = yes | ||||
| MOUSEKEY_ENABLE = yes | ||||
| 
 | ||||
| # More space-saving
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Michal S
						Michal S