Added my keyboard
This commit is contained in:
		
							parent
							
								
									35edec2998
								
							
						
					
					
						commit
						117be9eef5
					
				
					 17 changed files with 1415 additions and 0 deletions
				
			
		
							
								
								
									
										56
									
								
								keyboards/callmemero/callmemero.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								keyboards/callmemero/callmemero.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,56 @@
 | 
			
		|||
/* Copyright 2022
 | 
			
		||||
 * GEIST @geigeigeist
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include "callmemero.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef SWAP_HANDS_ENABLE
 | 
			
		||||
 | 
			
		||||
__attribute__ ((weak))
 | 
			
		||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] =
 | 
			
		||||
    // The LAYOUT macro could work for this, but it was harder to figure out the
 | 
			
		||||
    // identity using it.
 | 
			
		||||
 | 
			
		||||
    // This is the identity layout.
 | 
			
		||||
/*
 | 
			
		||||
{ \
 | 
			
		||||
 { {0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0} }, \
 | 
			
		||||
 { {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1} }, \
 | 
			
		||||
 { {0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2} }, \
 | 
			
		||||
 { {0, 3}, {2, 3}, {3, 3}, {4, 3} },         \
 | 
			
		||||
    \
 | 
			
		||||
 { {0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4} }, \
 | 
			
		||||
 { {0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5} }, \
 | 
			
		||||
 { {0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6} }, \
 | 
			
		||||
 { {0, 7}, {1, 7}, {2, 7}, {4, 7},           \
 | 
			
		||||
};
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
    // This is the mirror, q <-> p, w <-> o, etc...
 | 
			
		||||
{ \
 | 
			
		||||
 { {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4} }, \
 | 
			
		||||
 { {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5} }, \
 | 
			
		||||
 { {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6} }, \
 | 
			
		||||
 { {4, 7},         {2, 7}, {1, 7}, {0, 7} }, \
 | 
			
		||||
                                             \
 | 
			
		||||
 { {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0} }, \
 | 
			
		||||
 { {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1} }, \
 | 
			
		||||
 { {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2} }, \
 | 
			
		||||
 { {4, 3}, {3, 3}, {2, 3},         {0, 3} }, \
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif //SWAP_HANDS_ENABLE
 | 
			
		||||
							
								
								
									
										55
									
								
								keyboards/callmemero/callmemero.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								keyboards/callmemero/callmemero.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,55 @@
 | 
			
		|||
/* Copyright 2022
 | 
			
		||||
 * GEIST @geigeigeist
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
//#pragma once
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
/* This a shortcut to help you visually see your layout.
 | 
			
		||||
 *
 | 
			
		||||
 * The first section contains all of the arguments representing the physical
 | 
			
		||||
 * layout of the board and position of the keys.
 | 
			
		||||
 *
 | 
			
		||||
 * The second converts the arguments into a two-dimensional array which
 | 
			
		||||
 * represents the switch matrix.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// readability
 | 
			
		||||
#define ___ KC_NO
 | 
			
		||||
 | 
			
		||||
//      |SW01|SW02|SW03|SW04|SW05|  |SW05|SW04|SW03|SW02|SW01|
 | 
			
		||||
//      |SW06|SW07|SW08|SW09|SW10|  |SW10|SW09|SW08|SW07|SW06| 
 | 
			
		||||
// |SW16|SW11|SW12|SW13|SW14|SW15|  |SW15|SW14|SW13|SW12|SW11|SW16|
 | 
			
		||||
//                |SW17|SW18|SW19|  |SW19|SW18|SW17|
 | 
			
		||||
 | 
			
		||||
#define LAYOUT( \
 | 
			
		||||
         L00, L01, L02, L03, L04,    R00, R01, R02, R03, R04,     \
 | 
			
		||||
         L10, L11, L12, L13, L14,    R10, R11, R12, R13, R14,     \
 | 
			
		||||
    L30, L20, L21, L22, L23, L24,    R20, R21, R22, R23, R24, R34,\
 | 
			
		||||
                   L32, L33, L34,    R30, R31, R32                \
 | 
			
		||||
    )                                        \
 | 
			
		||||
    {                                        \
 | 
			
		||||
        { L00,   L01,   L02,   L03,   L04 }, \
 | 
			
		||||
        { L10,   L11,   L12,   L13,   L14 }, \
 | 
			
		||||
        { L20,   L21,   L22,   L23,   L24 }, \
 | 
			
		||||
        { L30,   ___,   L32,   L33,   L34 }, \
 | 
			
		||||
        { R04,   R03,   R02,   R01,   R00 }, \
 | 
			
		||||
        { R14,   R13,   R12,   R11,   R10 }, \
 | 
			
		||||
        { R24,   R23,   R22,   R21,   R20 }, \
 | 
			
		||||
        { R34,   ___,   R32,   R31,   R30 }, \
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										50
									
								
								keyboards/callmemero/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								keyboards/callmemero/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,50 @@
 | 
			
		|||
/*
 | 
			
		||||
Copyright 2022 GEIST <@geigeigeist>
 | 
			
		||||
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
// Rows are doubled-up
 | 
			
		||||
#define MATRIX_ROWS 8
 | 
			
		||||
#define MATRIX_COLS 5
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// wiring of each half
 | 
			
		||||
#define MATRIX_ROW_PINS { GP26, GP27, GP28, GP29 }
 | 
			
		||||
#define MATRIX_COL_PINS { GP6, GP7, GP3, GP4, GP2 }
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//#define NO_ACTION_MACRO
 | 
			
		||||
//#define NO_ACTION_FUNCTION
 | 
			
		||||
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Serial settings */
 | 
			
		||||
#define USE_SERIAL
 | 
			
		||||
/* serial.c configuration for split keyboard */
 | 
			
		||||
#define SOFT_SERIAL_PIN GP0
 | 
			
		||||
//#define SPLIT_LAYER_STATE_ENABLE
 | 
			
		||||
//#define SPLIT_USB_DETECT
 | 
			
		||||
#define SERIAL_USE_MULTI_TRANSACTION
 | 
			
		||||
/* communication between sides */
 | 
			
		||||
#define SERIAL_PIO_USE_PIO1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
 | 
			
		||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
 | 
			
		||||
							
								
								
									
										7
									
								
								keyboards/callmemero/halconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								keyboards/callmemero/halconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,7 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#define HAL_USE_I2C TRUE
 | 
			
		||||
#define HAL_USE_PWM TRUE
 | 
			
		||||
#define HAL_USE_PAL TRUE
 | 
			
		||||
 | 
			
		||||
#include_next <halconf.h>
 | 
			
		||||
							
								
								
									
										168
									
								
								keyboards/callmemero/info.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										168
									
								
								keyboards/callmemero/info.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,168 @@
 | 
			
		|||
{
 | 
			
		||||
    "keyboard_name": "TOTEM",
 | 
			
		||||
    "url": "https://github.com/GEIGEIGEIST/TOTEM",
 | 
			
		||||
    "manufacturer": "GEIST",
 | 
			
		||||
    "usb": {
 | 
			
		||||
        "vid": "0x3A3C",
 | 
			
		||||
        "pid": "0x0002",
 | 
			
		||||
        "device_version": "0.3.0"
 | 
			
		||||
    },
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 5,
 | 
			
		||||
                    "y": 12.35
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 15,
 | 
			
		||||
                    "y": 12.35
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 6,
 | 
			
		||||
                    "y": 12.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 14,
 | 
			
		||||
                    "y": 12.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 7,
 | 
			
		||||
                    "y": 13.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 13,
 | 
			
		||||
                    "y": 13.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 5,
 | 
			
		||||
                    "y": 13.25
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 15,
 | 
			
		||||
                    "y": 13.25
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 6,
 | 
			
		||||
                    "y": 13.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 14,
 | 
			
		||||
                    "y": 13.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 7,
 | 
			
		||||
                    "y": 14.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 13,
 | 
			
		||||
                    "y": 14.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 5,
 | 
			
		||||
                    "y": 14.35
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 15,
 | 
			
		||||
                    "y": 14.35
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 6,
 | 
			
		||||
                    "y": 15.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 14,
 | 
			
		||||
                    "y": 15.85
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 7,
 | 
			
		||||
                    "y": 15.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 13,
 | 
			
		||||
                    "y": 15.1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.6,
 | 
			
		||||
                    "y": 11.5000000000000004
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.4,
 | 
			
		||||
                    "y": 7.900000000000001
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.5,
 | 
			
		||||
                    "y": 5.900000000000001
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.5,
 | 
			
		||||
                    "y": 6.900000000000001
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.5,
 | 
			
		||||
                    "y": 7.900000000000001
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.75,
 | 
			
		||||
                    "y": 6.55
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.75,
 | 
			
		||||
                    "y": 7.55
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 2.75,
 | 
			
		||||
                    "y": 20.2500000000000007
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.75,
 | 
			
		||||
                    "y": 29.6500000000000006
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.6,
 | 
			
		||||
                    "y": 4.9500000000000005
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.6,
 | 
			
		||||
                    "y": 4.9500000000000005
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.4,
 | 
			
		||||
                    "y": 1.350000000000002
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.4,
 | 
			
		||||
                    "y": 1.350000000000002
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.0,
 | 
			
		||||
                    "y": 0
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.0,
 | 
			
		||||
                    "y": 1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 0,
 | 
			
		||||
                    "y": 13.700000000000002
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.0,
 | 
			
		||||
                    "y": 2
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.25,
 | 
			
		||||
                    "y": 0
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.25,
 | 
			
		||||
                    "y": 1
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    "x": 1.25,
 | 
			
		||||
                    "y": 2
 | 
			
		||||
                }
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										171
									
								
								keyboards/callmemero/keyboard-layout.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										171
									
								
								keyboards/callmemero/keyboard-layout.json
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,171 @@
 | 
			
		|||
[
 | 
			
		||||
  {
 | 
			
		||||
    "backcolor": "#656565",
 | 
			
		||||
    "css": ".keylabel  {\n    font-weight: bold;\n}\n\n.keylabel2 {\n    color: #dbff00 !important;\n    font-size: 10px;\n}\n\n.keylabel5 {\n    color: #0700ff !important;\n    font-size: 10px;\n}\n\n.keylabel6 {\n    color: #9c5b00 !important;\n    font-size: 10px;\n}\n\n.keylabel2 {\n    color: #009616 !important;\n    font-size: 10px;\n}\n\n.keytop {\n    background-color: rgb(255 255 255 / 0.1) !important;\n}"
 | 
			
		||||
  },
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        1
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "Q\nF12\nboot\n\n\n\n\n+",
 | 
			
		||||
    "W\nF7\n\n\n\n\n\n7",
 | 
			
		||||
    "E\nF8\n\n\n\n\n\n8",
 | 
			
		||||
    "R\nF9\n\n\n\n\n\n9",
 | 
			
		||||
    "T\n\n\n\n\n\n\n*",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 0.75
 | 
			
		||||
    },
 | 
			
		||||
    "Y",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n#dbff00",
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        1
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "U\n\n<i class='fa fa-step-backward'></i>\nHome",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "I\n\n<i class='fa fa-volume-up'></i>\n<i class='fa fa-caret-up'></i>",
 | 
			
		||||
    "O\n\n<i class='fa fa-step-forward'></i>\nEnd",
 | 
			
		||||
    "P\n\n\nPgUp"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 1,
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 0,
 | 
			
		||||
      "fa": [
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        1,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        0,
 | 
			
		||||
        1
 | 
			
		||||
      ]
 | 
			
		||||
    },
 | 
			
		||||
    "A\nF11\n\n\nCTRL\n\n\n0",
 | 
			
		||||
    "S\nF4\n\n\nALT\n\n\n4",
 | 
			
		||||
    "D\nF5\n\n\nGUI\n\n\n5",
 | 
			
		||||
    "F\nF6\n\n\nSHFT\n\n\n6",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    "G\n\n\n\n\n\n\n=",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 0.75
 | 
			
		||||
    },
 | 
			
		||||
    "H",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n#dbff00",
 | 
			
		||||
      "a": 0,
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "J\n\n\n<i class='fa fa-caret-left'></i>\nSHFT",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "K\n\n<i class='fa fa-volume-down'></i>\n<i class='fa fa-caret-down'></i>\nGUI",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "L\n\n\n<i class='fa fa-caret-right'></i>\nALT",
 | 
			
		||||
    "\"\n\n\nPgDn\nCTRL\n\n'"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    "TAB\n\n\n\n\n\n\n(",
 | 
			
		||||
    "Z\nF10\n\n\n\n\n\n-",
 | 
			
		||||
    {
 | 
			
		||||
      "f": 3
 | 
			
		||||
    },
 | 
			
		||||
    "X\nF1\n\n\n\n\n\n1",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n\n\n\n\n#0700ff"
 | 
			
		||||
    },
 | 
			
		||||
    "C\nF2\n\n\n\n\n\n2",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 0
 | 
			
		||||
    },
 | 
			
		||||
    "V\nF3\n\n\nHYPR\n\n\n3",
 | 
			
		||||
    {
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    "B\n\n\n\n\n\n\n/",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 0.75,
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "N",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n#dbff00",
 | 
			
		||||
      "a": 0
 | 
			
		||||
    },
 | 
			
		||||
    "M\n\n\n~\nHYPR",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    ";\n\n<i class='fa fa-play'></i>\n\n\n\n,",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n#dbff00"
 | 
			
		||||
    },
 | 
			
		||||
    ":\n\n\n/\n\n\n.",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000"
 | 
			
		||||
    },
 | 
			
		||||
    "!\n\n\n\n\n\n?",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n\n\n\n\n#0700ff"
 | 
			
		||||
    },
 | 
			
		||||
    "TAB\n\n\n\n\n\n\n)"
 | 
			
		||||
  ],
 | 
			
		||||
  [
 | 
			
		||||
    {
 | 
			
		||||
      "x": 3,
 | 
			
		||||
      "t": "#000000\n\n\n\n#009616",
 | 
			
		||||
      "a": 0
 | 
			
		||||
    },
 | 
			
		||||
    "ESC\n\n\n\nUTIL",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n\n#dbff00"
 | 
			
		||||
    },
 | 
			
		||||
    "Spc\n\n\n\nNAV",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000",
 | 
			
		||||
      "a": 4
 | 
			
		||||
    },
 | 
			
		||||
    "!Shft",
 | 
			
		||||
    {
 | 
			
		||||
      "x": 0.75
 | 
			
		||||
    },
 | 
			
		||||
    "Ent",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n\n#0700ff",
 | 
			
		||||
      "a": 0
 | 
			
		||||
    },
 | 
			
		||||
    "Bsp\n\n\n\nNUM",
 | 
			
		||||
    {
 | 
			
		||||
      "t": "#000000\n\n\n\n#9c5b00"
 | 
			
		||||
    },
 | 
			
		||||
    "Del\n\n<i class='kb kb-Multimedia-Mute-2'></i>\n\nFUN"
 | 
			
		||||
  ]
 | 
			
		||||
]
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								keyboards/callmemero/keyboard-layout.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/callmemero/keyboard-layout.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 23 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								keyboards/callmemero/keymap.png
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								keyboards/callmemero/keymap.png
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 201 KiB  | 
							
								
								
									
										33
									
								
								keyboards/callmemero/keymaps/default/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/callmemero/keymaps/default/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* The way how "handedness" is decided (which half is which),
 | 
			
		||||
see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness
 | 
			
		||||
for more options.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define MASTER_LEFT
 | 
			
		||||
// #define MASTER_RIGHT
 | 
			
		||||
 | 
			
		||||
/* QMK */
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
 | 
			
		||||
/* Miryoku, see https://sunaku.github.io/home-row-mods.html*/
 | 
			
		||||
#define BILATERAL_COMBINATIONS_LIMIT_CHORD_TO_N_KEYS 4 /* GUI, Alt, Ctrl, Shift */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_DELAY_MODS_THAT_MATCH MOD_MASK_GUI
 | 
			
		||||
#define BILATERAL_COMBINATIONS_DELAY_MATCHED_MODS_BY 120  /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_ALLOW_CROSSOVER_AFTER 80   /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_ALLOW_SAMESIDED_AFTER 3000 /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_TYPING_STREAK_TIMEOUT 160  /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_TYPING_STREAK_MODMASK (~MOD_MASK_SHIFT)
 | 
			
		||||
 | 
			
		||||
#undef LOCKING_SUPPORT_ENABLE
 | 
			
		||||
#undef LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
 | 
			
		||||
#define CAPS_WORD_INVERT_ON_SHIFT
 | 
			
		||||
//#define NO_ACTION_ONESHOT
 | 
			
		||||
//#define NO_ACTION_TAPPING
 | 
			
		||||
//#define NO_MUSIC_MODE
 | 
			
		||||
 | 
			
		||||
#define COMBO_COUNT 28
 | 
			
		||||
#define COMBO_MUST_TAP_PER_COMBO
 | 
			
		||||
							
								
								
									
										377
									
								
								keyboards/callmemero/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										377
									
								
								keyboards/callmemero/keymaps/default/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,377 @@
 | 
			
		|||
/*
 | 
			
		||||
                                             ▀▀▀▀▀     ▀▀▀▀▀          ▀▀█▀▀
 | 
			
		||||
                                             ▄▀▀▀▄  ▄  ▄▀▀▀▄  ▄  ▄▀▀▀▄  █  ▄▀▀▀▄
 | 
			
		||||
                                             █   █  █  █   █  █  █   █  █  █   █
 | 
			
		||||
                                              ▀▀▀   █   ▀▀▀   █   ▀▀▀   ▀   ▀▀▀
 | 
			
		||||
                                                    █      ▄▄▄█▄▄▄    █   █
 | 
			
		||||
                                                    ▀      █  █  █     █▄█
 | 
			
		||||
                                                  ▀▀▀▀▀    █  █  █      ▀   ┌─┐┌─╴╷┌──┬─
 | 
			
		||||
                                                           ▀  ▀  ▀          │ ┐├─╴│└─┐│
 | 
			
		||||
                                                                            └─┘└─╴╵╶─┘╵
 | 
			
		||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "callmemero.h"
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ D E F I N I T I O N S                                                                                                  │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   l a y e r s                       │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
enum totem_layers {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _NAV,
 | 
			
		||||
    _NUM,
 | 
			
		||||
    _FUN,
 | 
			
		||||
    _UTIL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   k e y c o d e s                   │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    NAV = SAFE_RANGE,
 | 
			
		||||
    NUM,
 | 
			
		||||
    FUN,
 | 
			
		||||
    UTIL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   m a c r o n a m e s               │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// LEFT HAND HOME ROW MODS ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define CTL_A MT(MOD_LCTL, KC_A)
 | 
			
		||||
#define ALT_R MT(MOD_LALT, KC_R)
 | 
			
		||||
#define GUI_S MT(MOD_LGUI, KC_S)
 | 
			
		||||
#define SHT_T MT(MOD_LSFT, KC_T)
 | 
			
		||||
#define HYP_D MT(MOD_HYPR, KC_D)
 | 
			
		||||
#define MEH_C MT(MOD_MEH, KC_C)
 | 
			
		||||
 | 
			
		||||
// RIGHT HAND HOME ROW MODS ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define SHT_N MT(MOD_RSFT, KC_N)
 | 
			
		||||
#define GUI_E MT(MOD_LGUI, KC_E)
 | 
			
		||||
#define ALT_I MT(MOD_LALT, KC_I)
 | 
			
		||||
#define CTL_O MT(MOD_LCTL, KC_O)
 | 
			
		||||
#define HYP_H MT(MOD_HYPR, KC_H)
 | 
			
		||||
#define MEH_COM MT(MOD_MEH, KC_COMM)
 | 
			
		||||
 | 
			
		||||
// LAYER TAP KEYS          ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define NAV LT(_NAV, KC_SPACE)
 | 
			
		||||
#define NUM LT(_NUM, KC_BSPC)
 | 
			
		||||
#define FUN LT(_FUN, KC_DEL)
 | 
			
		||||
#define UTIL LT(_UTIL, KC_ESC)
 | 
			
		||||
 | 
			
		||||
// OTHER KEY DEFINITIONS   ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define OS_SHT OSM(MOD_LSFT)
 | 
			
		||||
#define BACK G(KC_LBRC)
 | 
			
		||||
#define FWD G(KC_RBRC)
 | 
			
		||||
 | 
			
		||||
#define S_CUT G(KC_X)
 | 
			
		||||
#define S_COPY G(KC_C)
 | 
			
		||||
#define S_PASTE G(KC_V)
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   c o m b o s                       │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// Left hand vertical combos
 | 
			
		||||
// Between top and home row
 | 
			
		||||
const uint16_t PROGMEM at_combo[] = {KC_W, ALT_R, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM hash_combo[] = {KC_F, GUI_S, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM dollar_combo[] = {KC_P, SHT_T, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM perc_combo[] = {KC_B, KC_G, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Between home and bottom row
 | 
			
		||||
const uint16_t PROGMEM grave_combo[] = {ALT_R, KC_X, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM bsls_combo[] = {GUI_S, MEH_C, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM eql_combo[] = {SHT_T, HYP_D, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM tilde_combo[] = {KC_G, KC_V, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// horizontal combos
 | 
			
		||||
const uint16_t PROGMEM esc_combo[] = {ALT_R, SHT_T, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM copy_combo[] = {KC_X, MEH_C, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM paste_combo[] = {MEH_C, HYP_D, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM cut_combo[] = {KC_X, HYP_D, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Right hand vertical combos
 | 
			
		||||
// Between top and home row
 | 
			
		||||
const uint16_t PROGMEM caret_combo[] = {KC_J, KC_M, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM plus_combo[] = {KC_L, SHT_N, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM star_combo[] = {KC_U, GUI_E, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM amp_combo[] = {KC_Y, ALT_I, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Between home and bottow row
 | 
			
		||||
const uint16_t PROGMEM unds_combo[] = {KC_M, KC_K, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM mins_combo[] = {SHT_N, HYP_H, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM slsh_combo[] = {GUI_E, MEH_COM, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM pipe_combo[] = {ALT_I, KC_DOT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Horizontal combos: brackets
 | 
			
		||||
const uint16_t PROGMEM lsqr_combo[] = {KC_L, KC_U, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rsqr_combo[] = {KC_U, KC_Y, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM lpar_combo[] = {SHT_N, GUI_E, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rpar_combo[] = {GUI_E, ALT_I, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM lcbr_combo[] = {HYP_H, MEH_COM, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rcbr_combo[] = {MEH_COM, KC_DOT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM lt_combo[] = {KC_M, SHT_N, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM gt_combo[] = {ALT_I, CTL_O, COMBO_END};
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[COMBO_COUNT] = {
 | 
			
		||||
  COMBO(at_combo, KC_AT),
 | 
			
		||||
  COMBO(hash_combo, KC_HASH),
 | 
			
		||||
  COMBO(dollar_combo, KC_DLR),
 | 
			
		||||
  COMBO(perc_combo, KC_PERC),
 | 
			
		||||
  COMBO(grave_combo, KC_GRV),
 | 
			
		||||
  COMBO(bsls_combo, KC_BSLS),
 | 
			
		||||
  COMBO(eql_combo, KC_EQL),
 | 
			
		||||
  COMBO(tilde_combo, KC_TILD),
 | 
			
		||||
  COMBO(esc_combo, KC_ESC),
 | 
			
		||||
  COMBO(copy_combo, S_COPY),
 | 
			
		||||
  COMBO(paste_combo, S_PASTE),
 | 
			
		||||
  COMBO(cut_combo, S_CUT),
 | 
			
		||||
  COMBO(caret_combo, KC_CIRC),
 | 
			
		||||
  COMBO(plus_combo, KC_PLUS),
 | 
			
		||||
  COMBO(star_combo, KC_ASTR),
 | 
			
		||||
  COMBO(amp_combo, KC_AMPR),
 | 
			
		||||
  COMBO(unds_combo, KC_UNDS),
 | 
			
		||||
  COMBO(mins_combo, KC_MINS),
 | 
			
		||||
  COMBO(slsh_combo, KC_SLSH),
 | 
			
		||||
  COMBO(pipe_combo, KC_PIPE),
 | 
			
		||||
  COMBO(lsqr_combo, KC_LBRC),
 | 
			
		||||
  COMBO(rsqr_combo, KC_RBRC),
 | 
			
		||||
  COMBO(lpar_combo, KC_LPRN),
 | 
			
		||||
  COMBO(rpar_combo, KC_RPRN),
 | 
			
		||||
  COMBO(lcbr_combo, KC_LCBR),
 | 
			
		||||
  COMBO(rcbr_combo, KC_RCBR),
 | 
			
		||||
  COMBO(lt_combo, KC_LT),
 | 
			
		||||
  COMBO(gt_combo, KC_GT)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   k e y   o v e r r i d e s         │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// shift + ? = !
 | 
			
		||||
const key_override_t quexclam_override = ko_make_basic(MOD_MASK_SHIFT, KC_QUES, KC_EXLM);
 | 
			
		||||
 | 
			
		||||
// Override comma key: no mod = , | shift = ; | ctrl+shift = <
 | 
			
		||||
const key_override_t semicolon_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
      MOD_MASK_SHIFT,       // Trigger modifiers: shift
 | 
			
		||||
      MEH_COM,             // Trigger key: meh_comma hold tap key
 | 
			
		||||
      KC_SCLN,             // Replacement key: ;
 | 
			
		||||
      ~0,                  // Activate on all layers
 | 
			
		||||
      MOD_MASK_CA,         // Do not activate when ctrl, alt or gui is pressed
 | 
			
		||||
      ko_option_no_reregister_trigger);
 | 
			
		||||
const key_override_t lt_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
    MOD_MASK_CS,      // Trigger modifiers: ctrl+shift
 | 
			
		||||
    MEH_COM,         // Trigger key: meh_comma hold tap key
 | 
			
		||||
    KC_LT,         // Replacemeng key: <
 | 
			
		||||
    ~0,              // All layers
 | 
			
		||||
    MOD_MASK_AG,     // Do not activate when alt or gui is pressed
 | 
			
		||||
    ko_option_no_reregister_trigger);
 | 
			
		||||
 | 
			
		||||
// Override . key: no mod = . | shift = : | ctrl+shift = >
 | 
			
		||||
const key_override_t colon_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
      MOD_MASK_SHIFT,      // Trigger modifiers: shift
 | 
			
		||||
      KC_DOT,              // Trigger key: dot key
 | 
			
		||||
      KC_COLN,             // Replacement key: :
 | 
			
		||||
      ~0,                  // Activate on all layers
 | 
			
		||||
      MOD_MASK_CA,        // Do not activate when ctrl or alt is pressed
 | 
			
		||||
      ko_option_no_reregister_trigger);
 | 
			
		||||
const key_override_t gt_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
    MOD_MASK_CS,           // Trigger modifiers: ctrl+shift
 | 
			
		||||
    KC_DOT,                // Trigger key: dot key
 | 
			
		||||
    KC_GT,                 // Replacemeng key: >
 | 
			
		||||
    ~0,                    // All layers
 | 
			
		||||
    MOD_MASK_AG,           // Do not activate when alt or gui is pressed
 | 
			
		||||
    ko_option_no_reregister_trigger);
 | 
			
		||||
 | 
			
		||||
// This globally defines all key overrides to be used ├───────────┐
 | 
			
		||||
const key_override_t **key_overrides = (const key_override_t *[]){
 | 
			
		||||
  &quexclam_override,
 | 
			
		||||
  &semicolon_override,
 | 
			
		||||
  <_override,
 | 
			
		||||
  &colon_override,
 | 
			
		||||
  >_override,
 | 
			
		||||
  NULL // Null terminate the array of overrides!
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ K E Y M A P S                                                                                                          │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ b a s e                                         │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
       ┄┈┈───═╡    Q    │    W    │    F    │    P    │    B    ││    J    │    L    │    U    │    Y    │    '    │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │    A    │    R    │    S    │    T    │    G    ││    M    │    N    │    E    │    I    │    O    │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │   TAB   │    Z    │    X    │    C    │    D    │    V    ││    K    │    H    │    ,;   │    .:   │   ?!    │    TAB  │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │  UTIL   │  NAV    │  SHIFT  ││   ENT   │    NUM  │   FUN   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
 | 
			
		||||
 | 
			
		||||
   [_BASE] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              KC_Q,     KC_W,     KC_F,     KC_P,     KC_B,      KC_J,     KC_L,     KC_U,     KC_Y,     KC_QUOT,
 | 
			
		||||
              CTL_A,    ALT_R,    GUI_S,    SHT_T,    KC_G,      KC_M,     SHT_N,    GUI_E,    ALT_I,    CTL_O,
 | 
			
		||||
    KC_TAB,   KC_Z,     KC_X,     MEH_C,    HYP_D,    KC_V,      KC_K,     HYP_H,    MEH_COM,  KC_DOT,   KC_QUES,  KC_TAB,
 | 
			
		||||
                                  UTIL,     NAV,      OS_SHT,    KC_ENT,      NUM,      FUN
 | 
			
		||||
 ),
 | 
			
		||||
 /*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ n a v                                           │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
     ╌┄┈┈───═╡          │         │         │         │         ││         │  HOME   │   UP    │   END   │  PGUP   │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │  CTRL   │  ALT    │  CMD    │   SHFT  │         ││         │  LEFT   │  DOWN   │  RIGHT  │  PGDN   │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │ BACK    │         │         │  MEH    │  HYPR   │         ││         │   ~     │         │    /    │         │  FWD    │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││   ENT   │  BSPC   │   DEL   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_NAV] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              _______,  _______,  _______,  _______, _______,    _______,  KC_HOME,  KC_UP,    KC_END,   KC_PGUP,
 | 
			
		||||
              KC_LCTL,  KC_LALT,  KC_LGUI,  KC_LSFT, _______,    _______,  KC_LEFT,  KC_DOWN,  KC_RIGHT, KC_PGDN,
 | 
			
		||||
    BACK,     _______,  _______,  KC_MEH,   KC_HYPR, _______,    _______,  KC_TILD,  _______,  KC_SLSH,  _______,   FWD,
 | 
			
		||||
                                  _______,  _______, _______,    KC_ENT,   KC_BSPC,   KC_DEL
 | 
			
		||||
 ),
 | 
			
		||||
 /*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ n u m                                           │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
     ╌┄┈┈── ─═╡    +    │    7    │    8    │    9    │    *    ││         │         │         │         │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │    0    │    4    │    5    │    6    │    =    ││         │   SHFT  │   CMD   │   ALT   │   CTRL  │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │    (    │    -    │    1    │    2    │    3    │    /    ││         │   HYPR  │   MEH   │         │         │    )    │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │    .    │    :    ││         │         │         │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_NUM] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              KC_PLUS,    KC_7,    KC_8,     KC_9,    KC_ASTR,   _______,  _______,  _______,  _______, _______,
 | 
			
		||||
              KC_0,       KC_4,    KC_5,     KC_6,    KC_EQL,    _______,  KC_LSFT,  KC_LGUI,  KC_LALT, KC_LCTL,
 | 
			
		||||
    KC_LPRN,  KC_MINS,    KC_1,    KC_2,     KC_3,    KC_SLSH,   _______,  KC_HYPR,  KC_MEH,   _______, _______,  KC_RPRN,
 | 
			
		||||
                                   _______,  KC_DOT,  KC_SCLN,   _______,  _______,  _______
 | 
			
		||||
 ),
 | 
			
		||||
/*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ f u n c t i o n                                 │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
     ╌┄┈ ┈───═╡   F12   │   F7    │   F8    │   F9    │         ││         │         │         │         │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │   F11   │   F4    │   F5    │   F6    │         ││         │  SHFT   │   CMD   │   ALT   │  CTRL   │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │         │   F10   │   F1    │   F2    │   F3    │         ││         │  HYPR   │   MEH   │         │         │         │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││         │         │         │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_FUN] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
               KC_F12,   KC_F7,    KC_F8,    KC_F9,   _______,  _______,  _______,  _______,  _______,   _______,
 | 
			
		||||
               KC_F11,   KC_F4,    KC_F5,    KC_F6,   _______,  _______,  KC_LSFT,  KC_LGUI,  KC_LALT, KC_LCTL,
 | 
			
		||||
    _______,   KC_F10,   KC_F1,    KC_F2,    KC_F3,   _______,  _______,  KC_HYPR,  KC_MEH,   _______, _______,  _______,
 | 
			
		||||
                                _______,  _______,   _______,   _______,  _______,  _______
 | 
			
		||||
 ),
 | 
			
		||||
/*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ u t i l i t y                                   │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
     ╌┄┈ ┈───═╡   BOOT  │         │         │         │         ││         │         │  VOL+   │         │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │         │         │         │         │         ││         │         │  VOL-   │         │         │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │         │         │         │         │         │         ││         │         │         │         │         │         │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││         │         │  MUTE   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_UTIL] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              QK_BOOT,  _______,  _______,  _______,   _______,  _______,  _______,  KC_VOLU,  _______,   _______,
 | 
			
		||||
              _______,  _______,  _______,  _______,   _______,  _______,  _______,  KC_VOLD,  _______,   _______,
 | 
			
		||||
    _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,   _______, KC_MCTL,
 | 
			
		||||
                                  _______,  _______,   _______,  _______,  _______,  KC_MUTE
 | 
			
		||||
 )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ M A C R O S                                                                                                            │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
// Make sure combos are always tapped and not held
 | 
			
		||||
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
 | 
			
		||||
    // If you want all combos to be tap-only, just uncomment the next line
 | 
			
		||||
    return true;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                                          ██████
 | 
			
		||||
                                                            ██  ▄▄▄▄
 | 
			
		||||
                                                            ██ ██▀▀██
 | 
			
		||||
                                                            ▀▀ ██▄▄██
 | 
			
		||||
                                                        ██████  ▀▀▀▀
 | 
			
		||||
                                                          ██ ▄▄▄▄▄▄
 | 
			
		||||
                                                          ██ ██▀▀▀▀
 | 
			
		||||
                                                          ██ ██████
 | 
			
		||||
                                                             ██▄▄▄▄
 | 
			
		||||
                                                             ▀▀▀▀▀▀
 | 
			
		||||
                                                           ████████
 | 
			
		||||
                                                           ██ ██ ██
 | 
			
		||||
                                                           ██ ██ ██
 | 
			
		||||
                                                           ▀▀ ▀▀ ▀▀
 | 
			
		||||
                                                          ████████
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								keyboards/callmemero/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/callmemero/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
DYNAMIC_MACRO_ENABLE = yes
 | 
			
		||||
COMBO_ENABLE = yes
 | 
			
		||||
KEY_OVERRIDE_ENABLE = yes
 | 
			
		||||
CAPS_WORD_ENABLE = yes
 | 
			
		||||
							
								
								
									
										33
									
								
								keyboards/callmemero/keymaps/totem/config.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								keyboards/callmemero/keymaps/totem/config.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,33 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
/* The way how "handedness" is decided (which half is which),
 | 
			
		||||
see https://docs.qmk.fm/#/feature_split_keyboard?id=setting-handedness
 | 
			
		||||
for more options.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#define MASTER_LEFT
 | 
			
		||||
// #define MASTER_RIGHT
 | 
			
		||||
 | 
			
		||||
/* QMK */
 | 
			
		||||
#define TAPPING_TERM 200
 | 
			
		||||
 | 
			
		||||
/* Miryoku, see https://sunaku.github.io/home-row-mods.html*/
 | 
			
		||||
#define BILATERAL_COMBINATIONS_LIMIT_CHORD_TO_N_KEYS 4 /* GUI, Alt, Ctrl, Shift */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_DELAY_MODS_THAT_MATCH MOD_MASK_GUI
 | 
			
		||||
#define BILATERAL_COMBINATIONS_DELAY_MATCHED_MODS_BY 120  /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_ALLOW_CROSSOVER_AFTER 80   /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_ALLOW_SAMESIDED_AFTER 3000 /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_TYPING_STREAK_TIMEOUT 160  /* ms */
 | 
			
		||||
#define BILATERAL_COMBINATIONS_TYPING_STREAK_MODMASK (~MOD_MASK_SHIFT)
 | 
			
		||||
 | 
			
		||||
#undef LOCKING_SUPPORT_ENABLE
 | 
			
		||||
#undef LOCKING_RESYNC_ENABLE
 | 
			
		||||
 | 
			
		||||
#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
 | 
			
		||||
#define CAPS_WORD_INVERT_ON_SHIFT
 | 
			
		||||
//#define NO_ACTION_ONESHOT
 | 
			
		||||
//#define NO_ACTION_TAPPING
 | 
			
		||||
//#define NO_MUSIC_MODE
 | 
			
		||||
 | 
			
		||||
#define COMBO_COUNT 31
 | 
			
		||||
#define COMBO_MUST_TAP_PER_COMBO
 | 
			
		||||
							
								
								
									
										387
									
								
								keyboards/callmemero/keymaps/totem/keymap.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										387
									
								
								keyboards/callmemero/keymaps/totem/keymap.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,387 @@
 | 
			
		|||
/*
 | 
			
		||||
                                             ▀▀▀▀▀     ▀▀▀▀▀          ▀▀█▀▀
 | 
			
		||||
                                             ▄▀▀▀▄  ▄  ▄▀▀▀▄  ▄  ▄▀▀▀▄  █  ▄▀▀▀▄
 | 
			
		||||
                                             █   █  █  █   █  █  █   █  █  █   █
 | 
			
		||||
                                              ▀▀▀   █   ▀▀▀   █   ▀▀▀   ▀   ▀▀▀
 | 
			
		||||
                                                    █      ▄▄▄█▄▄▄    █   █
 | 
			
		||||
                                                    ▀      █  █  █     █▄█
 | 
			
		||||
                                                  ▀▀▀▀▀    █  █  █      ▀   ┌─┐┌─╴╷┌──┬─
 | 
			
		||||
                                                           ▀  ▀  ▀          │ ┐├─╴│└─┐│
 | 
			
		||||
                                                                            └─┘└─╴╵╶─┘╵
 | 
			
		||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include QMK_KEYBOARD_H
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include "callmemero.h"
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ D E F I N I T I O N S                                                                                                  │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   l a y e r s                       │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
enum totem_layers {
 | 
			
		||||
    _BASE,
 | 
			
		||||
    _NAV,
 | 
			
		||||
    _NUM,
 | 
			
		||||
    _FUN,
 | 
			
		||||
    _UTIL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   k e y c o d e s                   │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
enum custom_keycodes {
 | 
			
		||||
    NAV = SAFE_RANGE,
 | 
			
		||||
    NUM,
 | 
			
		||||
    FUN,
 | 
			
		||||
    UTIL
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   m a c r o n a m e s               │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// LEFT HAND HOME ROW MODS ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define CTL_A MT(MOD_LCTL, KC_A)
 | 
			
		||||
#define ALT_S MT(MOD_LALT, KC_S)
 | 
			
		||||
#define GUI_D MT(MOD_LGUI, KC_D)
 | 
			
		||||
#define SHT_F MT(MOD_LSFT, KC_F)
 | 
			
		||||
#define HYP_V MT(MOD_HYPR, KC_V)
 | 
			
		||||
#define MEH_C MT(MOD_MEH, KC_C)
 | 
			
		||||
 | 
			
		||||
// RIGHT HAND HOME ROW MODS ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define SHT_J MT(MOD_RSFT, KC_J)
 | 
			
		||||
#define GUI_K MT(MOD_LGUI, KC_K)
 | 
			
		||||
#define ALT_L MT(MOD_LALT, KC_L)
 | 
			
		||||
#define CTL_QUOT MT(MOD_LCTL, KC_QUOT)
 | 
			
		||||
#define HYP_M MT(MOD_HYPR, KC_M)
 | 
			
		||||
#define MEH_COM MT(MOD_MEH, KC_COMM)
 | 
			
		||||
 | 
			
		||||
// LAYER TAP KEYS          ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define NAV LT(_NAV, KC_SPACE)
 | 
			
		||||
#define NUM LT(_NUM, KC_BSPC)
 | 
			
		||||
#define FUN LT(_FUN, KC_DEL)
 | 
			
		||||
#define UTIL LT(_UTIL, KC_ESC)
 | 
			
		||||
 | 
			
		||||
// OTHER KEY DEFINITIONS   ├───────────────────────────────────┐
 | 
			
		||||
 | 
			
		||||
#define OS_SHT OSM(MOD_LSFT)
 | 
			
		||||
#define EURO_SIGN RALT(KC_5)
 | 
			
		||||
 | 
			
		||||
// TODO, create marco for undo and redo
 | 
			
		||||
// todo, add keybind for capslock
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   c o m b o s                       │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// Left hand vertical combos
 | 
			
		||||
// Between top and home row
 | 
			
		||||
const uint16_t PROGMEM at_combo[] = {KC_W, ALT_S, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM hash_combo[] = {KC_E, GUI_D, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM dollar_combo[] = {KC_R, SHT_F, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM perc_combo[] = {KC_T, KC_G, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Between home and bottom row
 | 
			
		||||
const uint16_t PROGMEM grave_combo[] = {ALT_S, KC_X, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM bsls_combo[] = {GUI_D, MEH_C, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM eql_combo[] = {SHT_F, HYP_V, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM tilde_combo[] = {KC_G, KC_B, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// horizontal combos
 | 
			
		||||
const uint16_t PROGMEM esc_combo[] = {ALT_S, SHT_F, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM copy_combo[] = {KC_X, MEH_C, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM paste_combo[] = {MEH_C, HYP_V, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM cut_combo[] = {KC_X, HYP_V, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Right hand vertical combos
 | 
			
		||||
// Between top and home row
 | 
			
		||||
const uint16_t PROGMEM caret_combo[] = {KC_Y, KC_H, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM plus_combo[] = {KC_U, SHT_J, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM star_combo[] = {KC_I, GUI_K, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM amp_combo[] = {KC_O, ALT_L, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Between home and bottow row
 | 
			
		||||
const uint16_t PROGMEM unds_combo[] = {KC_H, KC_N, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM mins_combo[] = {SHT_J, HYP_M, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM slsh_combo[] = {GUI_K, MEH_COM, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM pipe_combo[] = {ALT_L, KC_DOT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Horizontal combos: brackets
 | 
			
		||||
const uint16_t PROGMEM lsqr_combo[] = {KC_U, KC_I, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rsqr_combo[] = {KC_I, KC_O, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM lpar_combo[] = {SHT_J, GUI_K, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rpar_combo[] = {GUI_K, ALT_L, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM lcbr_combo[] = {HYP_M, MEH_COM, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM rcbr_combo[] = {MEH_COM, KC_DOT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// Vertical combos: Umlaute
 | 
			
		||||
const uint16_t PROGMEM ae_combo[] = {KC_R, KC_T, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM oe_combo[] = {SHT_F, KC_G, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM ue_combo[] = {HYP_V, KC_B, COMBO_END};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM lt_combo[] = {KC_H, SHT_J, COMBO_END};
 | 
			
		||||
const uint16_t PROGMEM gt_combo[] = {ALT_L, CTL_QUOT, COMBO_END};
 | 
			
		||||
 | 
			
		||||
// todo, create combo for ß
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
combo_t key_combos[COMBO_COUNT] = {
 | 
			
		||||
  COMBO(at_combo, KC_AT),
 | 
			
		||||
  COMBO(hash_combo, KC_HASH),
 | 
			
		||||
  COMBO(dollar_combo, KC_DLR),
 | 
			
		||||
  COMBO(perc_combo, KC_PERC),
 | 
			
		||||
  COMBO(grave_combo, KC_GRV),
 | 
			
		||||
  COMBO(bsls_combo, KC_BSLS),
 | 
			
		||||
  COMBO(eql_combo, KC_EQL),
 | 
			
		||||
  COMBO(tilde_combo, KC_TILD),
 | 
			
		||||
  COMBO(esc_combo, KC_ESC),
 | 
			
		||||
  COMBO(copy_combo, LCTL(KC_C)),
 | 
			
		||||
  COMBO(paste_combo, LCTL(KC_V)),
 | 
			
		||||
  COMBO(cut_combo, LCTL(KC_X)),
 | 
			
		||||
  COMBO(caret_combo, KC_CIRC),
 | 
			
		||||
  COMBO(plus_combo, KC_PLUS),
 | 
			
		||||
  COMBO(star_combo, KC_ASTR),
 | 
			
		||||
  COMBO(amp_combo, KC_AMPR),
 | 
			
		||||
  COMBO(unds_combo, KC_UNDS),
 | 
			
		||||
  COMBO(mins_combo, KC_MINS),
 | 
			
		||||
  COMBO(slsh_combo, KC_SLSH),
 | 
			
		||||
  COMBO(pipe_combo, KC_PIPE),
 | 
			
		||||
  COMBO(lsqr_combo, KC_LBRC),
 | 
			
		||||
  COMBO(rsqr_combo, KC_RBRC),
 | 
			
		||||
  COMBO(lpar_combo, KC_LPRN),
 | 
			
		||||
  COMBO(rpar_combo, KC_RPRN),
 | 
			
		||||
  COMBO(lcbr_combo, KC_LCBR),
 | 
			
		||||
  COMBO(rcbr_combo, KC_RCBR),
 | 
			
		||||
  COMBO(ae_combo, RALT(KC_Q)),
 | 
			
		||||
  COMBO(oe_combo, RALT(KC_P)),
 | 
			
		||||
  COMBO(ue_combo, RALT(KC_Y)),
 | 
			
		||||
  COMBO(lt_combo, KC_LT),
 | 
			
		||||
  COMBO(gt_combo, KC_GT),
 | 
			
		||||
  COMBO(euro_combo, EURO_SIGN)
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌─────────────────────────────────────────────────┐
 | 
			
		||||
// │ d e f i n e   k e y   o v e r r i d e s         │
 | 
			
		||||
// └─────────────────────────────────────────────────┘
 | 
			
		||||
 | 
			
		||||
// shift + ? = !
 | 
			
		||||
const key_override_t quexclam_override = ko_make_basic(MOD_MASK_SHIFT, KC_QUES, KC_EXLM);
 | 
			
		||||
 | 
			
		||||
// Override comma key: no mod = , | shift = ; | ctrl+shift = <
 | 
			
		||||
const key_override_t semicolon_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
      MOD_MASK_SHIFT,       // Trigger modifiers: shift
 | 
			
		||||
      MEH_COM,             // Trigger key: meh_comma hold tap key
 | 
			
		||||
      KC_SCLN,             // Replacement key: ;
 | 
			
		||||
      ~0,                  // Activate on all layers
 | 
			
		||||
      MOD_MASK_CA,         // Do not activate when ctrl, alt or gui is pressed
 | 
			
		||||
      ko_option_no_reregister_trigger);
 | 
			
		||||
const key_override_t lt_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
    MOD_MASK_CS,      // Trigger modifiers: ctrl+shift
 | 
			
		||||
    MEH_COM,         // Trigger key: meh_comma hold tap key
 | 
			
		||||
    KC_LT,         // Replacemeng key: <
 | 
			
		||||
    ~0,              // All layers
 | 
			
		||||
    MOD_MASK_AG,     // Do not activate when alt or gui is pressed
 | 
			
		||||
    ko_option_no_reregister_trigger);
 | 
			
		||||
 | 
			
		||||
// Override . key: no mod = . | shift = : | ctrl+shift = >
 | 
			
		||||
const key_override_t colon_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
      MOD_MASK_SHIFT,      // Trigger modifiers: shift
 | 
			
		||||
      KC_DOT,              // Trigger key: dot key
 | 
			
		||||
      KC_COLN,             // Replacement key: :
 | 
			
		||||
      ~0,                  // Activate on all layers
 | 
			
		||||
      MOD_MASK_CA,        // Do not activate when ctrl or alt is pressed
 | 
			
		||||
      ko_option_no_reregister_trigger);
 | 
			
		||||
const key_override_t gt_override =
 | 
			
		||||
  ko_make_with_layers_negmods_and_options(
 | 
			
		||||
    MOD_MASK_CS,           // Trigger modifiers: ctrl+shift
 | 
			
		||||
    KC_DOT,                // Trigger key: dot key
 | 
			
		||||
    KC_GT,                 // Replacemeng key: >
 | 
			
		||||
    ~0,                    // All layers
 | 
			
		||||
    MOD_MASK_AG,           // Do not activate when alt or gui is pressed
 | 
			
		||||
    ko_option_no_reregister_trigger);
 | 
			
		||||
 | 
			
		||||
// This globally defines all key overrides to be used ├───────────┐
 | 
			
		||||
const key_override_t *key_overrides[] = {
 | 
			
		||||
  &quexclam_override,
 | 
			
		||||
  &semicolon_override,
 | 
			
		||||
  <_override,
 | 
			
		||||
  &colon_override,
 | 
			
		||||
  >_override
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ K E Y M A P S                                                                                                          │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ b a s e                                         │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
             │    Q    │    W    │    E    │    R    │    T    ││    Y    │    U    │    I    │    O    │    P    │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │    A    │    S    │    D    │    F    │    G    ││    H    │    J    │    K    │    L    │    '    │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │   TAB   │    Y    │    X    │    C    │    V    │    B    ││    N    │    M    │    ,;   │    .:   │   ?!    │    TAB  │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │  UTIL   │  NAV    │  SHIFT  ││   ENT   │    NUM  │   FUN   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/
 | 
			
		||||
 | 
			
		||||
   [_BASE] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,
 | 
			
		||||
              CTL_A,    ALT_S,    GUI_D,    SHT_F,    KC_G,      KC_H,     SHT_J,    GUI_K,    ALT_L,    CTL_QUOT,
 | 
			
		||||
    KC_TAB,   KC_Z,     KC_X,     MEH_C,    HYP_V,    KC_B,      KC_N,     HYP_M,    MEH_COM,  KC_DOT,   KC_QUES,  KC_TAB,
 | 
			
		||||
                                  UTIL,     NAV,      OS_SHT,    KC_ENT,      NUM,      FUN
 | 
			
		||||
 ),
 | 
			
		||||
 /*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ n a v                                           │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
             │         │         │         │         │         ││         │  HOME   │   UP    │   END   │  PGUP   │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │  CTRL   │  ALT    │  CMD    │   SHFT  │         ││         │  LEFT   │  DOWN   │  RIGHT  │  PGDN   │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │ BACK    │         │         │  MEH    │  HYPR   │         ││         │   ~     │         │    /    │         │  FWD    │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││   ENT   │  BSPC   │   DEL   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_NAV] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              _______,  _______,  _______,  _______, _______,    _______,  KC_HOME,  KC_UP,    KC_END,   KC_PGUP,
 | 
			
		||||
              KC_LCTL,  KC_LALT,  KC_LGUI,  KC_LSFT, _______,    _______,  KC_LEFT,  KC_DOWN,  KC_RIGHT, KC_PGDN,
 | 
			
		||||
    _______,  _______,  _______,  KC_MEH,   KC_HYPR, _______,    _______,  KC_TILD,  _______,  KC_SLSH,  _______,   _______,
 | 
			
		||||
                                  _______,  _______, _______,    KC_ENT,   KC_BSPC,   KC_DEL
 | 
			
		||||
 ),
 | 
			
		||||
 /*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ n u m                                           │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
             │    +    │    7    │    8    │    9    │    *    ││         │         │         │         │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │    0    │    4    │    5    │    6    │    =    ││         │   SHFT  │   CMD   │   ALT   │   CTRL  │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │    (    │    -    │    1    │    2    │    3    │    /    ││         │   HYPR  │   MEH   │         │         │    )    │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │    .    │    :    ││         │         │         │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_NUM] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              KC_PLUS,    KC_7,    KC_8,     KC_9,    KC_ASTR,   _______,  _______,  _______,  _______, _______,
 | 
			
		||||
              KC_0,       KC_4,    KC_5,     KC_6,    KC_EQL,    _______,  KC_LSFT,  KC_LGUI,  KC_LALT, KC_LCTL,
 | 
			
		||||
    KC_LPRN,  KC_MINS,    KC_1,    KC_2,     KC_3,    KC_SLSH,   _______,  KC_HYPR,  KC_MEH,   _______, _______,  KC_RPRN,
 | 
			
		||||
                                   _______,  KC_DOT,  KC_SCLN,   _______,  _______,  _______
 | 
			
		||||
 ),
 | 
			
		||||
/*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ f u n c t i o n                                 │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
             │   F12   │   F7    │   F8    │   F9    │         ││         │         │         │         │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │   F11   │   F4    │   F5    │   F6    │         ││         │  SHFT   │   CMD   │   ALT   │  CTRL   │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │         │   F10   │   F1    │   F2    │   F3    │         ││         │  HYPR   │   MEH   │         │         │         │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││         │         │         │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_FUN] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
               KC_F12,   KC_F7,    KC_F8,    KC_F9,   _______,  _______,  _______,  _______,  _______,   _______,
 | 
			
		||||
               KC_F11,   KC_F4,    KC_F5,    KC_F6,   _______,  _______,  KC_LSFT,  KC_LGUI,  KC_LALT, KC_LCTL,
 | 
			
		||||
    _______,   KC_F10,   KC_F1,    KC_F2,    KC_F3,   _______,  _______,  KC_HYPR,  KC_MEH,   _______, _______,  _______,
 | 
			
		||||
                                _______,  _______,   _______,   _______,  _______,  _______
 | 
			
		||||
 ),
 | 
			
		||||
/*
 | 
			
		||||
   ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
   ┌─────────────────────────────────────────────────┐
 | 
			
		||||
   │ u t i l i t y                                   │      ╭╮╭╮╭╮╭╮
 | 
			
		||||
   └─────────────────────────────────────────────────┘      │╰╯╰╯╰╯│
 | 
			
		||||
             ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐
 | 
			
		||||
             │   BOOT  │         │         │         │         ││    €    │  <<<<<  │  VOL+   │  >>>>>  │         │
 | 
			
		||||
             ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤
 | 
			
		||||
             │         │         │         │         │         ││         │         │  VOL-   │         │         │
 | 
			
		||||
   ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐
 | 
			
		||||
   │         │         │         │         │         │         ││         │         │  PL/PA  │         │         │         │
 | 
			
		||||
   └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘
 | 
			
		||||
                                 │         │         │         ││         │         │  MUTE   │
 | 
			
		||||
                                 └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */
 | 
			
		||||
 | 
			
		||||
   [_UTIL] = LAYOUT(
 | 
			
		||||
 //╷         ╷         ╷         ╷         ╷         ╷         ╷╷         ╷         ╷         ╷         ╷         ╷         ╷
 | 
			
		||||
              QK_BOOT,  _______,  _______,  _______,   _______,  EURO_SIGN,  KC_MPRV,  KC_VOLU,  KC_MNXT,   _______,
 | 
			
		||||
              _______,  _______,  _______,  _______,   _______,  _______,  _______,  KC_VOLD,  _______,   _______,
 | 
			
		||||
    _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  KC_MPLY,  _______,   _______, _______,
 | 
			
		||||
                                  _______,  _______,   _______,  _______,  _______,  KC_MUTE
 | 
			
		||||
 )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
 | 
			
		||||
// │ M A C R O S                                                                                                            │
 | 
			
		||||
// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
 | 
			
		||||
// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘
 | 
			
		||||
 | 
			
		||||
// Make sure combos are always tapped and not held
 | 
			
		||||
bool get_combo_must_tap(uint16_t index, combo_t *combo) {
 | 
			
		||||
    // If you want all combos to be tap-only, just uncomment the next line
 | 
			
		||||
    return true;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
  ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
                                                          ██████
 | 
			
		||||
                                                            ██  ▄▄▄▄
 | 
			
		||||
                                                            ██ ██▀▀██
 | 
			
		||||
                                                            ▀▀ ██▄▄██
 | 
			
		||||
                                                        ██████  ▀▀▀▀
 | 
			
		||||
                                                          ██ ▄▄▄▄▄▄
 | 
			
		||||
                                                          ██ ██▀▀▀▀
 | 
			
		||||
                                                          ██ ██████
 | 
			
		||||
                                                             ██▄▄▄▄
 | 
			
		||||
                                                             ▀▀▀▀▀▀
 | 
			
		||||
                                                           ████████
 | 
			
		||||
                                                           ██ ██ ██
 | 
			
		||||
                                                           ██ ██ ██
 | 
			
		||||
                                                           ▀▀ ▀▀ ▀▀
 | 
			
		||||
                                                          ████████
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										4
									
								
								keyboards/callmemero/keymaps/totem/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								keyboards/callmemero/keymaps/totem/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,4 @@
 | 
			
		|||
DYNAMIC_MACRO_ENABLE = yes
 | 
			
		||||
COMBO_ENABLE = yes
 | 
			
		||||
KEY_OVERRIDE_ENABLE = yes
 | 
			
		||||
CAPS_WORD_ENABLE = yes
 | 
			
		||||
							
								
								
									
										9
									
								
								keyboards/callmemero/mcuconf.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								keyboards/callmemero/mcuconf.h
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include_next <mcuconf.h>
 | 
			
		||||
 | 
			
		||||
#undef RP_PWM_USE_PWM4
 | 
			
		||||
#define RP_PWM_USE_PWM4 TRUE
 | 
			
		||||
 | 
			
		||||
#undef RP_PWM_USE_TIM1
 | 
			
		||||
#define RP_PWM_USE_TIM1 TRUE
 | 
			
		||||
							
								
								
									
										26
									
								
								keyboards/callmemero/readme.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								keyboards/callmemero/readme.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
```
 | 
			
		||||
                                                       ▀▀▀▀▀     ▀▀▀▀▀          ▀▀█▀▀
 | 
			
		||||
                                                       ▄▀▀▀▄  ▄  ▄▀▀▀▄  ▄  ▄▀▀▀▄  █  ▄▀▀▀▄
 | 
			
		||||
                                                       █   █  █  █   █  █  █   █  █  █   █
 | 
			
		||||
                                                        ▀▀▀   █   ▀▀▀   █   ▀▀▀   ▀   ▀▀▀
 | 
			
		||||
                                                              █      ▄▄▄█▄▄▄    █   █  
 | 
			
		||||
                                                              ▀      █  █  █     █▄█
 | 
			
		||||
                                                            ▀▀▀▀▀    █  █  █      ▀
 | 
			
		||||
                                                                     ▀  ▀  ▀
 | 
			
		||||
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
 | 
			
		||||
       
 | 
			
		||||
```
 | 
			
		||||
# TOTEM split keyboard
 | 
			
		||||
 | 
			
		||||
TOTEM is 34 keys column-staggered split keyboard made by @geigeigeist. It uses the Seeed XIAO RP2040.
 | 
			
		||||
 | 
			
		||||
You can use this command to compile the firmware
 | 
			
		||||
`qmk compile -kb callmemero -km totem`
 | 
			
		||||
 | 
			
		||||
<figure>
 | 
			
		||||
<img src="./keyboard-layout.png" alt="Miryoku inspired keymap for TOTEM keyboard, showing all six layers" width="100%" />
 | 
			
		||||
</figure>
 | 
			
		||||
 | 
			
		||||
<figure>
 | 
			
		||||
<img src="./keymap.png" alt="Miryoku inspired keymap for TOTEM keyboard, showing all six layers" width="100%" />
 | 
			
		||||
</figure>
 | 
			
		||||
							
								
								
									
										35
									
								
								keyboards/callmemero/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/callmemero/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
# MCU name
 | 
			
		||||
MCU = RP2040
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = rp2040
 | 
			
		||||
 | 
			
		||||
# Ignore some warnings during the build, likely to be fixed before RP2040 PR is merged
 | 
			
		||||
ALLOW_WARNINGS = yes
 | 
			
		||||
 | 
			
		||||
# For bilateral combinations patch
 | 
			
		||||
DEFERRED_EXEC_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
# LTO must be disabled for RP2040 builds
 | 
			
		||||
LTO_ENABLE = no
 | 
			
		||||
 | 
			
		||||
SPLIT_KEYBOARD = yes
 | 
			
		||||
SWAP_HANDS_ENABLE = yes
 | 
			
		||||
 | 
			
		||||
# PIO serial/WS2812 drivers must be used on RP2040
 | 
			
		||||
SERIAL_DRIVER = vendor
 | 
			
		||||
WS2812_DRIVER = vendor
 | 
			
		||||
 | 
			
		||||
#SPACE SAVING
 | 
			
		||||
EXTRAKEY_ENABLE = yes
 | 
			
		||||
AUDIO_ENABLE = no
 | 
			
		||||
MUSIC_ENABLE = no
 | 
			
		||||
AUTO_SHIFT_ENABLE = no
 | 
			
		||||
LTO_ENABLE = no
 | 
			
		||||
CONSOLE_ENABLE = no
 | 
			
		||||
COMMAND_ENABLE = no
 | 
			
		||||
MOUSEKEY_ENABLE = yes
 | 
			
		||||
SPACE_CADET_ENABLE = no
 | 
			
		||||
GRAVE_ESC_ENABLE = no 
 | 
			
		||||
MAGIC_ENABLE = no
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue