tmk_keyboard/keyboard/ergodox/keymap_max.c
Maximilian Friedersdorff f7bd5d2de7 Add print screen to layout
2024-07-04 15:36:23 +01:00

199 lines
10 KiB
C

/*
Copyright 2016 Paul Williamson <squarefrog@gmail.com>
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 <util/delay.h>
#include "bootloader.h"
#include "keymap_common.h"
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* Keymap 0: Default Colemak Layer
*
* This is a general purpose Colemak layout which should serve as a good
* basis for your own custom layout. Mac users may want to swap the
* position of the Alt and GUI keys.
*
* ,--------------------------------------------------. ,-------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | ~# | | | 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | F | P | G | [ | | ] | J | L | U | Y | ; | + |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | LShift | A | R | S | T | D |------| |------| H | N | E | I | O | ' |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | \ | Z | X | C | V | B | | | | K | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | PScrn| | LAlt | Home | BkSp | | Del | End | RAlt | | RCtrl |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | L1 | | PgUp | PgDn |
* ,------|------|------| |------+------+------.
* | | | | | RAlt | | |
* |Space | LCtrl|------| |------| LAlt | Enter|
* | | | LGui | | ~L2 | | |
* `--------------------' `--------------------'
*/
KEYMAP(
// left hand
ESC, 1, 2, 3, 4, 5, NUHS,
TAB, Q, W, F, P, G, LBRC,
LSFT,A, R, S, T, D,
NUBS,Z, X, C, V, B, NO,
PSCREEN, NO, LALT, HOME ,BSPC,
NO, FN1,
NO,
SPC,LCTL, LGUI,
// right hand
NO,6, 7, 8, 9, 0, MINS,
RBRC,J, L, U, Y, SCLN,EQL,
H, N, E, I, O, QUOT,
NO, K, M, COMM,DOT, SLSH,RSFT,
DEL, END, RALT,NO, RCTL,
PGUP,PGDN,
RALT,
FN2,LALT, ENT
),
/*
* Keymap 1: Default qwerty Layer
*
* This is a general purpose Colemak layout which should serve as a good
* basis for your own custom layout. Mac users may want to swap the
* position of the Alt and GUI keys.
*
* ,--------------------------------------------------. ,-------------------------------------------------.
* | Esc | 1 | 2 | 3 | 4 | 5 | ~# | | | 6 | 7 | 8 | 9 | 0 | - |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | + |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | LShift | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | \ | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | LAlt | Home | BkSp | | Del | End | RAlt | | RCtrl |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | L0 | | PgUp | PgDn |
* ,------|------|------| |------+------+------.
* | | | | | RAlt | | |
* |Space | LCtrl|------| |------| LAlt | Enter|
* | | | LGui | | ~L2 | | |
* `--------------------' `--------------------'
*/
KEYMAP(
// left hand
ESC, 1, 2, 3, 4, 5, NUHS,
TAB, Q, W, E, R, T, LBRC,
LSFT,A, S, D, F, G,
NUBS,Z, X, C, V, B, NO,
NO, NO, LALT, HOME ,BSPC,
NO, FN0,
NO,
SPC,LCTL, LGUI,
// right hand
NO, 6, 7, 8, 9, 0, MINS,
RBRC,Y, U, I, O, P, EQL,
H, J, K, L, SCLN,QUOT,
NO, N, M, COMM,DOT, SLSH,RSFT,
DEL, END, RALT,NO, RCTL,
PGUP,PGDN,
RALT,
FN2,LALT, ENT
),
/*
* Layer 2: Function keys
*
* This layer contains function keys, and media keys. *
* Most of the non-modifier keys are marked as NO, so it's immediately
* obvious if you start typing on a secondary layer.
*
* ,--------------------------------------------------. ,--------------------------------------------------.
* | ` | F1 | F2 | F3 | F4 | F5 | F11 | | F12 | F6 | F7 | F8 | F9 | F10 | TRNS |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TRNS | | UP | | | | TRNS | | TRNS | | | | | | TRNS |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | TRNS | LEFT | DOWN |RIGHT | | |------| |------| | | | | | TRNS |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | TRNS | | | | | | | | | | | | | | TRNS |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | TRNS | TRNS | Play | RW | FF | | Mute | Vol- | Vol+ | TRNS | TRNS |
* `----------------------------------' `----------------------------------'
* ,-------------. ,-------------.
* | | | | HOME | END |
* ,------|------|------| |------+------+------.
* | | | TRNS | | TRNS | | |
* | TRNS | |------| |------| TRNS | TRNS |
* | | | TRNS | | TRNS | | |
* `--------------------' `--------------------'
*/
KEYMAP(
// left hand
GRV ,F1, F2, F3, F4, F5, F11,
TRNS,NO, UP, NO, NO, NO, TRNS,
TRNS,LEFT,DOWN,RIGHT,NO, NO,
TRNS,NO, NO, NO, NO, NO, NO,
TRNS,TRNS,MPLY,MPRV,MNXT,
NO, NO,
TRNS,
TRNS,NO, TRNS,
// right hand
F12, F6, F7, F8, F9, F10, TRNS,
TRNS,NO, NO, NO, NO, NO, TRNS,
NO,NO,NO, NO,NO, TRNS,
NO, NO, NO, NO, NO, NO, TRNS,
MUTE,VOLD,VOLU,TRNS,TRNS,
HOME,END,
TRNS,
TRNS,TRNS,TRNS
)
};
/* id for user defined functions */
enum function_id {
TEENSY_KEY,
};
/*
* Fn action definition
*/
const action_t PROGMEM fn_actions[] = {
// Layer shifting
[0] = ACTION_LAYER_SET(0, ON_PRESS), // Switch to Layer 0
[1] = ACTION_LAYER_SET(1, ON_PRESS), // Switch to Layer 1
[2] = ACTION_LAYER_MOMENTARY(2), // Momentarily switch to layer 2
// Teensy
[31] = ACTION_FUNCTION(TEENSY_KEY),
};
void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
{
if (id == TEENSY_KEY) {
clear_keyboard();
print("\n\nJump to bootloader... ");
_delay_ms(250);
bootloader_jump(); // should not return
print("not supported.\n");
}
}