/* Copyright 2021 Mats Nilsson * * 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 . */ #pragma once #include QMK_KEYBOARD_H #include "keymap_swedish.h" // Layers enum layers { _COLEMAK, _QWERTY, _SYMBOLS, _NAVIGATION, _NUMPAD, }; // Custom Keycodes #define _NAV_SPC LT(_NAVIGATION, KC_SPC) // _NAVIGATION when held, SPACE when tapped #define _SYM_ENT LT(_SYMBOLS, KC_ENT) // _SYMBOLS when held, ENTER when tapped #define CTL_BSPC MT(MOD_LCTL, KC_BSPC) // CTRL when held, BACKSPACE when tapped #define ALT_DEL MT(MOD_LALT, KC_DEL) // ALT when held, DELETE when tapped #define SFT_TAB MT(MOD_LSFT, KC_TAB) // SHIFT when held, TAB when tapped #define C_TAB C(KC_TAB) // CTRL+TAB #define CS_TAB C(S(KC_TAB)) // SHIFT+CTRL+TAB #define CUT C(KC_X) // CTRL+X #define COPY C(KC_INS) // CTRL+INSERT #define PASTE S(KC_INS) // SHIFT+INSERT #define AUTOFILL C(S(KC_L)) // Bitwarden Autofill, CTRL+SHIFT+L // i3 config #define I3MOD KC_LGUI // $mod #define OPEN G(KC_SPC) // $mod+SPACE #define QUIT G(S(KC_Q)) // $mod+SHIFT+Q #define WIN G(C(KC_SPC)) // $mod+CTRL+SPACE #define BROWSER G(KC_ENTER) // $mod+ENTER #define TERM G(S(KC_ENTER)) // $mod+CTRL+ENTER #define NXTWS G(KC_TAB) // $mod+TAB #define PRVWS G(S(KC_TAB)) // $mod+SHIFT+TAB #define MOVWS G(KC_LSFT) // $mod+SHIFT+$X #define CRYWS G(KC_LALT) // $mod+ALT+$X #define MVWSL G(C(S(KC_LEFT))) // $mod+CTRL+SHIFT+LEFT #define MVWSR G(C(S(KC_RGHT))) // $mod+CTRL+SHIFT+RIGHT enum custom_keycodes { M_TILD = SAFE_RANGE, // ~ M_CIRC, // ^ M_BTCK, // ` QWE_COL, // Swaps default layer }; // Tap Dance typedef struct { bool is_press_action; int state; } tap; // Define a type for as many tap dance states as you need enum { SINGLE_TAP = 1, SINGLE_HOLD = 2, DOUBLE_TAP = 3, DOUBLE_HOLD = 4, DOUBLE_SINGLE_TAP = 5, // send two single taps TRIPLE_TAP = 6, TRIPLE_HOLD = 7 }; enum { AAE = 0, // a and ae OAA, // o and aa };