* This program is free software: you can redistribute it and/or modify
* 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
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
* (at your option) any later version.
*
*
* This program is distributed in the hope that it will be useful,
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* GNU General Public License for more details.
*
*
* You should have received a copy of the GNU General Public License
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
// sdgudev branch
// sdgukeymaps branch
/* @@@@@ maybe implement @@@@@
/* @@@@@ maybe implement @@@@@
- similarly, explore what combos to use for numbers for reason as above
- similarly, explore what combos to use for numbers for reason as above
- how does chording work for combos? any time you press multiple keys, it check if it's a combo? look into how layer independent combos work
- how does chording work for combos? any time you press multiple keys, it check if it's a combo? look into how layer independent combos work
- maybe leader key on outer columns, maybe leader key for selecting words/lines
- maybe leader key on outer columns, maybe leader key for selecting words/lines
- maybe only have shift for combo and use modtaps for the other three
- maybe only have shift for combo and use modtaps for the other three
- make more use of keyboard shortcuts for navigation
- make more use of keyboard shortcuts for navigation
- look into vim more
- look into vim more
- block out tab on raise layers and such
- block out tab on raise layers and such
- maybe have the enter slot be trns on all layers, so that all layers can access enter. would need to move delete on raise
- maybe have the enter slot be trns on all layers, so that all layers can access enter. would need to move delete on raise
- consider numpad number layout
- consider numpad number layout
- macro for control+/
- macro for control+/
- < and > in symbol layer?
- < and > in symbol layer?
- oneshot setup for some things
- oneshot setup for some things
- tap dance on num layer for parens and braces (instead of having another layer)
- tap dance on num layer for parens and braces (instead of having another layer)
- combo for underscore on main layer FOR_TYPING_THESE_THINGS
- combo for underscore on main layer FOR_TYPING_THESE_THINGS
- double shift to deactivate cap word, or block double shift while in caps word (currently can cause issues if trying to double shift during caps word)
- double shift to deactivate cap word, or block double shift while in caps word (currently can cause issues if trying to double shift during caps word)
- shift combo custom key release to type one of the letters (type the letter that you let go or the letter still held?)
- shift combo custom key release to type one of the letters (type the letter that you let go or the letter still held?)
- combos for parens/brackets with key release (or key still held) determining which to send
- combos for parens/brackets with key release (or key still held) determining which to send
- move gui combo since it gets accidentally double hit a lot
- move gui combo since it gets accidentally double hit a lot
- macro for "w" and "r"
- macro for "w" and "r"
- TD_DOT: Double tap the dot key to produce . space One-Shot Shift to quickly flow from one sentence to another. (from precondition)
- TD_DOT: Double tap the dot key to produce . space One-Shot Shift to quickly flow from one sentence to another. (from precondition)
- or, steno period. ,.cr for period with space and next letter cap
- or, steno period. ,.cr for period with space and next letter cap
- need a fix for typing .., like going up one directory
- need a fix for typing .., like going up one directory
- control + + and control + - macros (zooming)
- control + + and control + - macros (zooming)
- clean up organization of other files
- clean up organization of other files
- indicator if oneshot shift (or other oneshot mods?) is on
- indicator if oneshot shift (or other oneshot mods?) is on
- multi-shot key (activate one-shot after using it, can string keypresses on another layer together, like if numbers are on a different layer) https://discord.com/channels/440868230475677696/869812721552601088/918251721791258686
- multi-shot key (activate one-shot after using it, can string keypresses on another layer together, like if numbers are on a different layer) https://discord.com/channels/440868230475677696/869812721552601088/918251721791258686
- one key alt tab? https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_macros#super-alt-tab
- one key alt tab? https://beta.docs.qmk.fm/using-qmk/advanced-keycodes/feature_macros#super-alt-tab
- backspace on raise layer that does not require lifting thumb
- backspace on raise layer that does not require lifting thumb
- holding space while typing something automatically surrounds with space https://discord.com/channels/440868230475677696/869812721552601088/920066139806138409
- holding space while typing something automatically surrounds with space https://discord.com/channels/440868230475677696/869812721552601088/920066139806138409
- delete for left hand (so can use mouse and delete easier)
- delete for left hand (so can use mouse and delete easier)
- shift + hrm quickly results in unshifted hrm key to be sent, don't want this
- shift + hrm quickly results in unshifted hrm key to be sent, don't want this
- one handed experimental mirror layout, but automatically switch to a normal one if rhside of keyboard is used
- one handed experimental mirror layout, but automatically switch to a normal one if rhside of keyboard is used
- misc
- misc
@@@@@ addressed @@@@@
@@@@@ addressed @@@@@
- look into decreasing combo term since "e a" rolls can sometimes trigger "7" --- not relevant anymore since not using combos for numbers
- look into decreasing combo term since "e a" rolls can sometimes trigger "7" --- not relevant anymore since not using combos for numbers
- "s t" rolls also sometimes trigger "7" on the right hand --- not relevant anymore (see above)
- "s t" rolls also sometimes trigger "7" on the right hand --- not relevant anymore (see above)
- look into why KC_NO behaves like LOWER --- seems fixed
- look into why KC_NO behaves like LOWER --- seems fixed
- light indicator for CAPS LOCK --- done as a part of implementing caps word
- light indicator for CAPS LOCK --- done as a part of implementing caps word
- keep another LALT as a thumb key since it is easier for alt tab that way --- done
- keep another LALT as a thumb key since it is easier for alt tab that way --- done
- control (k and m) often hit the modded versions, while shift (j and w) often sends the non-mod plus the key --- this has been explored with PERMISSIVE_HOLD and HOLD_ON_OTHER_KEY_PRESS, no longer relevant because not using mod taps
- control (k and m) often hit the modded versions, while shift (j and w) often sends the non-mod plus the key --- this has been explored with PERMISSIVE_HOLD and HOLD_ON_OTHER_KEY_PRESS, no longer relevant because not using mod taps
- column combo (home and top row) mods --- does not work well for shift
- column combo (home and top row) mods --- does not work well for shift
- try shift on index fingers -- not relevant anymore since not using hrm
- try shift on index fingers -- not relevant anymore since not using hrm
- symbol layer (combo?) --- just a MO from raise layer
- symbol layer (combo?) --- just a MO from raise layer
- colon on numbers layer (for i in 1:10) --- done
- colon on numbers layer (for i in 1:10) --- done
- combos on raise layer for control and shift, so i don't have to mod first before changing layers --- done with using #define COMBO_ONLY_FROM_LAYER 0
- combos on raise layer for control and shift, so i don't have to mod first before changing layers --- done with using #define COMBO_ONLY_FROM_LAYER 0
- braces and parens on raise (number) layer, or a layer accessible from raise (symbolv2 or something) --- done
- braces and parens on raise (number) layer, or a layer accessible from raise (symbolv2 or something) --- done
- add toggles on outer columns (or combos) to number layer and such for one handed usage (layer tap toggle TT) --- done with TT on regular positions
- add toggles on outer columns (or combos) to number layer and such for one handed usage (layer tap toggle TT) --- done with TT on regular positions
- page up and page down --- done, along with home and end
- page up and page down --- done, along with home and end
- layer for nav, printscreen, etc --- moved printscreen, nav is on raise layer
- layer for nav, printscreen, etc --- moved printscreen, nav is on raise layer
- combo from layer 0, except when on steno layer --- disable combos when in steno layer, as any in alphas would interfere
- combo from layer 0, except when on steno layer --- disable combos when in steno layer, as any in alphas would interfere
- fix: if I type _ while in caps word mode and don't intend to type any more, I can't get out of it --- fixed, by using caps lock in caps word implementation, I can just designate those keys to not exit caps word and not worry about having to not shift them
- fix: if I type _ while in caps word mode and don't intend to type any more, I can't get out of it --- fixed, by using caps lock in caps word implementation, I can just designate those keys to not exit caps word and not worry about having to not shift them
- potentially disable permissive_hold as I can unintentionally trigger that
- potentially disable permissive_hold as I can unintentionally trigger that
- macro for macos screenshotting
- macro for macos screenshotting
*/
*/
#include QMK_KEYBOARD_H
#include QMK_KEYBOARD_H
#include "keymap_steno.h"
#include "keymap_steno.h"
#include "features/caps_word.h"
#include "features/caps_word.h"
#include "keymap.h"
#include "keymap.h"
enum layers {
enum layers {
_MAIN,
_MAIN,
_LOWER,
_LOWER,
_RAISE,
_RAISE,
_SYMBOL,
_SYMBOL,
_SYMBOL2,
_SYMBOL2,
_MISCFUNCS,
_MISCFUNCS,
_PLOVER,
_PLOVER,
_ADJUST,
_ADJUST,
};
};
enum custom_keycodes {
enum custom_keycodes {
LOWER = SAFE_RANGE,
LOWER = SAFE_RANGE,
RAISE,
RAISE,
SYMBOL,
SYMBOL,
SYMBOL2,
SYMBOL2,
PLOVER,
PLOVER,
ADJUST,
ADJUST,
EXT_PLV,
EXT_PLV,
MAC_PSCRR,
MAC_PSCRR,
MAC_PSCR,
MAC_PSCR,
};
};
enum combo_events {
enum combo_events {
GRVCOMBO,
GRVCOMBO,
EQLCOMBO,
EQLCOMBO,
BRIEFAND,
BRIEFAND,
// BRIEFFUNCTION,
// BRIEFFUNCTION,
RHNUMPADLAYERCOMBO,
RHNUMPADLAYERCOMBO,
LHCTRL,
LHCTRL,
LHSHFT,
LHSHFT,
LHALT,
LHALT,
LHGUI,
LHGUI,
LHALTSHFT,
LHALTSHFT,
RHCTRL,
RHCTRL,
RHSHFT,
RHSHFT,
RHALT,
RHALT,
RHGUI,
RHGUI,
RHALTSHFT,
RHALTSHFT,
NEXTSENTDOT,
NEXTSENTDOT,
// LH1,
// LH1,
// LH2,
// LH2,
// LH3,
// LH3,
// LH4,
// LH4,
// LH5,
// LH5,
// LH6,
// LH6,
// LH7,
// LH7,
// LH8,
// LH8,
// LH9,
// LH9,
// LH0,
// LH0,
// RH1,
// RH1,
// RH2,
// RH2,
// RH3,
// RH3,
// RH4,
// RH4,
// RH5,
// RH5,
// RH6,
// RH6,
// RH7,
// RH7,
// RH8,
// RH8,
// RH9,
// RH9,
// RH0,
// RH0,
COMBOLENGTH,
COMBOLENGTH,
};
};
uint16_t COMBO_LEN = COMBOLENGTH;
uint16_t COMBO_LEN = COMBOLENGTH;
#define ST_BOLT QK_STENO_BOLT
#define ST_BOLT QK_STENO_BOLT
#define ST_GEM QK_STENO_GEMINI
#define ST_GEM QK_STENO_GEMINI
#define GUI_SC LGUI_T(KC_SCLN)
#define GUI_SC LGUI_T(KC_SCLN)
#define ALT_Q LALT_T(KC_Q)
#define ALT_Q LALT_T(KC_Q)
#define SHFT_J LSFT_T(KC_J)
#define SHFT_J LSFT_T(KC_J)
#define CTRL_P LCTL_T(KC_P)
#define CTRL_P LCTL_T(KC_P)
#define GUI_Z RGUI_T(KC_Z)
#define GUI_Z RGUI_T(KC_Z)
#define ALT_V RALT_T(KC_V)
#define ALT_V RALT_T(KC_V)
#define SHFT_W RSFT_T(KC_W)
#define SHFT_W RSFT_T(KC_W)
#define CTRL_G RCTL_T(KC_G)
#define CTRL_G RCTL_T(KC_G)
// this is for other stuff in precondition's keymap
// this is for other stuff in precondition's keymap