update crkbd
This commit is contained in:
parent
1c4be1ac51
commit
74ae976cb9
474
keyboards/crkbd/keymaps/sajenim/autocorrect_dictionary.txt
Normal file
474
keyboards/crkbd/keymaps/sajenim/autocorrect_dictionary.txt
Normal file
|
@ -0,0 +1,474 @@
|
||||||
|
|
||||||
|
# Copyright 2021 Google LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# https://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# This is a larger example typo dictionary containing 400 entries. It builds to
|
||||||
|
# a table of about 6000 bytes, so you'll need a keyboard with a generous
|
||||||
|
# amount of free firmware space to use the full dictionary. Alternatively, pick
|
||||||
|
# out a subset of entries to a separate file, then build a table from that.
|
||||||
|
#
|
||||||
|
# Dictionary syntax:
|
||||||
|
# Each line of this file defines one typo correction entry with the syntax
|
||||||
|
# "typo -> correction". Typos and corrections are case insensitive, and any
|
||||||
|
# whitespace before or after the typo and correction is ignored. The typo must be
|
||||||
|
# only the letters a-z, or the special character : representing a word break.
|
||||||
|
#
|
||||||
|
# For documentation about how to use this dictionary, see
|
||||||
|
# https://getreuer.info/posts/keyboards/autocorrection
|
||||||
|
#
|
||||||
|
# Further resources:
|
||||||
|
# * Wikipedia has a large list of common typos at
|
||||||
|
# https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
|
||||||
|
#
|
||||||
|
# * EmacsWiki has another list of typos at
|
||||||
|
# https://www.emacswiki.org/emacs/autocorrection_abbrev_defs
|
||||||
|
#
|
||||||
|
# * You can find data on English word frequencies at
|
||||||
|
# https://www.wordfrequency.info/samples.asp
|
||||||
|
|
||||||
|
|
||||||
|
## 10 most common words.
|
||||||
|
# The words "there", "about", "their", "would", "people", "which", "could",
|
||||||
|
# "think", "other", and "because" are among the most common words in English
|
||||||
|
# that are 5 letters or longer. (We don't include entries for words shorter than
|
||||||
|
# that to avoid false triggering.)
|
||||||
|
:htere -> there
|
||||||
|
abbout -> about
|
||||||
|
abotu -> about
|
||||||
|
baout -> about
|
||||||
|
:theri -> their
|
||||||
|
:thier -> their
|
||||||
|
:owudl -> would
|
||||||
|
woudl -> would
|
||||||
|
peaple -> people
|
||||||
|
peolpe -> people
|
||||||
|
peopel -> people
|
||||||
|
poeple -> people
|
||||||
|
poeople -> people
|
||||||
|
:hwihc -> which
|
||||||
|
whcih -> which
|
||||||
|
whihc -> which
|
||||||
|
whlch -> which
|
||||||
|
wihch -> which
|
||||||
|
coudl -> could
|
||||||
|
:htikn -> think
|
||||||
|
:htink -> think
|
||||||
|
thikn -> think
|
||||||
|
thiunk -> think
|
||||||
|
tihkn -> think
|
||||||
|
:olther -> other
|
||||||
|
:otehr -> other
|
||||||
|
baceause -> because
|
||||||
|
beacuse -> because
|
||||||
|
becasue -> because
|
||||||
|
beccause -> because
|
||||||
|
becouse -> because
|
||||||
|
becuase -> because
|
||||||
|
|
||||||
|
## Common words, 11-20.
|
||||||
|
theese -> these
|
||||||
|
:goign -> going
|
||||||
|
:gonig -> going
|
||||||
|
:yaers -> years
|
||||||
|
:yeasr -> years
|
||||||
|
:thsoe -> those
|
||||||
|
shoudl -> should
|
||||||
|
raelly -> really
|
||||||
|
realy -> really
|
||||||
|
relaly -> really
|
||||||
|
bedore -> before
|
||||||
|
befoer -> before
|
||||||
|
littel -> little
|
||||||
|
beeing -> being
|
||||||
|
:hwile -> while
|
||||||
|
|
||||||
|
## Common words, 21-30.
|
||||||
|
aroud -> around
|
||||||
|
arround -> around
|
||||||
|
arund -> around
|
||||||
|
thign -> thing
|
||||||
|
thigsn -> things
|
||||||
|
thnigs -> things
|
||||||
|
anohter -> another
|
||||||
|
beteen -> between
|
||||||
|
beween -> between
|
||||||
|
bewteen -> between
|
||||||
|
:eveyr -> every
|
||||||
|
:graet -> great
|
||||||
|
:agian -> again
|
||||||
|
:sicne -> since
|
||||||
|
alwasy -> always
|
||||||
|
alwyas -> always
|
||||||
|
throught -> thought
|
||||||
|
|
||||||
|
|
||||||
|
## Words especially susceptible to skipping or transposing a letter.
|
||||||
|
# These entries are for words that are easy enough to spell, but not necessarily
|
||||||
|
# easy to press the keys in the right order.
|
||||||
|
# Catch misspellings of "achieves", "achieving", etc.
|
||||||
|
:acheiv -> achiev
|
||||||
|
almsot -> almost
|
||||||
|
alomst -> almost
|
||||||
|
chnage -> change
|
||||||
|
chekc -> check
|
||||||
|
childen -> children
|
||||||
|
claer -> clear
|
||||||
|
comapny -> company
|
||||||
|
contian -> contain
|
||||||
|
elasped -> elapsed
|
||||||
|
feild -> field
|
||||||
|
fitler -> filter
|
||||||
|
firts -> first
|
||||||
|
follwo -> follow
|
||||||
|
:foudn -> found
|
||||||
|
frequecy -> frequency
|
||||||
|
firend -> friend
|
||||||
|
freind -> friend
|
||||||
|
heigth -> height
|
||||||
|
iamge -> image
|
||||||
|
inital -> initial
|
||||||
|
intput -> input
|
||||||
|
laguage -> language
|
||||||
|
lenght -> length
|
||||||
|
levle -> level
|
||||||
|
libary -> library
|
||||||
|
:moeny -> money
|
||||||
|
mysefl -> myself
|
||||||
|
ouptut -> output
|
||||||
|
ouput -> output
|
||||||
|
probaly -> probably
|
||||||
|
probelm -> problem
|
||||||
|
recrod -> record
|
||||||
|
reponse -> response
|
||||||
|
reprot -> report
|
||||||
|
singel -> single
|
||||||
|
stregth -> strength
|
||||||
|
strengh -> strength
|
||||||
|
tkaes -> takes
|
||||||
|
therfore -> therefore
|
||||||
|
todya -> today
|
||||||
|
toghether -> together
|
||||||
|
unkown -> unknown
|
||||||
|
unqiue -> unique
|
||||||
|
widht -> width
|
||||||
|
|
||||||
|
|
||||||
|
## Words with tricky spelling.
|
||||||
|
# If you are a good speller, you could drop this section.
|
||||||
|
aberation -> aberration
|
||||||
|
accross -> across
|
||||||
|
adviced -> advised
|
||||||
|
aledge -> allege
|
||||||
|
alledge -> allege
|
||||||
|
amature -> amateur
|
||||||
|
anomolous -> anomalous
|
||||||
|
anomoly -> anomaly
|
||||||
|
aparent -> apparent
|
||||||
|
aparrent -> apparent
|
||||||
|
apparant -> apparent
|
||||||
|
apparrent -> apparent
|
||||||
|
asthetic -> aesthetic
|
||||||
|
auxilary -> auxiliary
|
||||||
|
auxillary -> auxiliary
|
||||||
|
auxilliary -> auxiliary
|
||||||
|
bankrupcy -> bankruptcy
|
||||||
|
busness -> business
|
||||||
|
bussiness -> business
|
||||||
|
calander -> calendar
|
||||||
|
commitee -> committee
|
||||||
|
comittee -> committee
|
||||||
|
competance -> competence
|
||||||
|
competant -> competent
|
||||||
|
concensus -> consensus
|
||||||
|
cognizent -> cognizant
|
||||||
|
copywrite: -> copyright
|
||||||
|
choosen -> chosen
|
||||||
|
collegue -> colleague
|
||||||
|
excercise -> exercise
|
||||||
|
:grammer -> grammar
|
||||||
|
:guage -> gauge
|
||||||
|
govement -> government
|
||||||
|
govenment -> government
|
||||||
|
goverment -> government
|
||||||
|
governmnet -> government
|
||||||
|
govorment -> government
|
||||||
|
govornment -> government
|
||||||
|
guaratee -> guarantee
|
||||||
|
garantee -> guarantee
|
||||||
|
gaurantee -> guarantee
|
||||||
|
heirarchy -> hierarchy
|
||||||
|
hygeine -> hygiene
|
||||||
|
hypocracy -> hypocrisy
|
||||||
|
hypocrasy -> hypocrisy
|
||||||
|
hypocricy -> hypocrisy
|
||||||
|
hypocrit: -> hypocrite
|
||||||
|
looses: -> loses
|
||||||
|
maintence -> maintenance
|
||||||
|
morgage -> mortgage
|
||||||
|
neccesary -> necessary
|
||||||
|
necesary -> necessary
|
||||||
|
pallete -> palette
|
||||||
|
paralel -> parallel
|
||||||
|
parralel -> parallel
|
||||||
|
parrallel -> parallel
|
||||||
|
priviledge -> privilege
|
||||||
|
probablly -> probably
|
||||||
|
prominant -> prominent
|
||||||
|
propogate -> propagate
|
||||||
|
proove -> prove
|
||||||
|
psuedo -> pseudo
|
||||||
|
reciept -> receipt
|
||||||
|
# Catch misspellings of "receives", "receiving", etc.
|
||||||
|
receiev -> receiv
|
||||||
|
reciev -> receiv
|
||||||
|
recepient -> recipient
|
||||||
|
recipiant -> recipient
|
||||||
|
relevent -> relevant
|
||||||
|
repitition -> repetition
|
||||||
|
safty -> safety
|
||||||
|
saftey -> safety
|
||||||
|
# Catch misspellings of "separate", "separating", etc.
|
||||||
|
seperat -> separat
|
||||||
|
spectogram -> spectrogram
|
||||||
|
symetric -> symmetric
|
||||||
|
tolerence -> tolerance
|
||||||
|
|
||||||
|
|
||||||
|
## Words particularly for coding.
|
||||||
|
# Entries for common code keywords ("const") and terminology ("lookup").
|
||||||
|
cacheing -> caching
|
||||||
|
complier -> compiler
|
||||||
|
doulbe -> double
|
||||||
|
dyanmic -> dynamic
|
||||||
|
# As in "execute", "executable", "executing", ...
|
||||||
|
excecut -> execut
|
||||||
|
failse -> false
|
||||||
|
fales -> false
|
||||||
|
fasle -> false
|
||||||
|
flase -> false
|
||||||
|
indeces -> indices
|
||||||
|
indecies -> indices
|
||||||
|
indicies -> indices
|
||||||
|
interator -> iterator
|
||||||
|
looup -> lookup
|
||||||
|
namesapce -> namespace
|
||||||
|
namespcae -> namespace
|
||||||
|
nulltpr -> nullptr
|
||||||
|
operaotr -> operator
|
||||||
|
overide -> override
|
||||||
|
ovveride -> override
|
||||||
|
poitner -> pointer
|
||||||
|
:rference -> reference
|
||||||
|
referece -> reference
|
||||||
|
singed -> signed
|
||||||
|
stirng -> string
|
||||||
|
strign -> string
|
||||||
|
swithc -> switch
|
||||||
|
swtich -> switch
|
||||||
|
teamplate -> template
|
||||||
|
tempalte -> template
|
||||||
|
:ture -> true
|
||||||
|
retrun -> return
|
||||||
|
retun -> return
|
||||||
|
reutrn -> return
|
||||||
|
cosnt -> const
|
||||||
|
virutal -> virtual
|
||||||
|
vitual -> virtual
|
||||||
|
yeild -> yield
|
||||||
|
|
||||||
|
|
||||||
|
## Catch skipped spaces between common words.
|
||||||
|
:alot: -> a lot
|
||||||
|
:andteh -> and the
|
||||||
|
:andthe -> and the
|
||||||
|
:asthe -> as the
|
||||||
|
:atthe -> at the
|
||||||
|
abouta -> about a
|
||||||
|
aboutit -> about it
|
||||||
|
aboutthe -> about the
|
||||||
|
:tothe -> to the
|
||||||
|
didnot -> did not
|
||||||
|
fromthe -> from the
|
||||||
|
|
||||||
|
|
||||||
|
## Various additional entries.
|
||||||
|
:agred -> agreed
|
||||||
|
:ajust -> adjust
|
||||||
|
:anual -> annual
|
||||||
|
:asign -> assign
|
||||||
|
:aslo: -> also
|
||||||
|
:casue -> cause
|
||||||
|
:choses -> chooses
|
||||||
|
:gaurd -> guard
|
||||||
|
:haev -> have
|
||||||
|
:hapen -> happen
|
||||||
|
:idaes -> ideas
|
||||||
|
:jsut: -> just
|
||||||
|
:jstu: -> just
|
||||||
|
:knwo -> know
|
||||||
|
:konw -> know
|
||||||
|
:kwno -> know
|
||||||
|
:ocuntry -> country
|
||||||
|
:ocur -> occur
|
||||||
|
:socre -> score
|
||||||
|
:szie -> size
|
||||||
|
:the:the: -> the
|
||||||
|
:turth -> truth
|
||||||
|
:uesd: -> used
|
||||||
|
:usally -> usually
|
||||||
|
abilties -> abilities
|
||||||
|
abilty -> ability
|
||||||
|
abvove -> above
|
||||||
|
accesories -> accessories
|
||||||
|
accomodate -> accommodate
|
||||||
|
acommodate -> accommodate
|
||||||
|
acomplish -> accomplish
|
||||||
|
actualy -> actually
|
||||||
|
acurate -> accurate
|
||||||
|
acutally -> actually
|
||||||
|
addtion -> addition
|
||||||
|
againnst -> against
|
||||||
|
aganist -> against
|
||||||
|
aggreed -> agreed
|
||||||
|
agianst -> against
|
||||||
|
ahppn -> happen
|
||||||
|
allign -> align
|
||||||
|
anytying -> anything
|
||||||
|
aquire -> acquire
|
||||||
|
availabe -> available
|
||||||
|
availaible -> available
|
||||||
|
availalbe -> available
|
||||||
|
availble -> available
|
||||||
|
availiable -> available
|
||||||
|
avalable -> available
|
||||||
|
avaliable -> available
|
||||||
|
avilable -> available
|
||||||
|
bandwith -> bandwidth
|
||||||
|
begginer -> beginner
|
||||||
|
beleif -> belief
|
||||||
|
beleive -> believe
|
||||||
|
belive -> believe
|
||||||
|
breif -> brief
|
||||||
|
burried -> buried
|
||||||
|
caluclate -> calculate
|
||||||
|
caluculate -> calculate
|
||||||
|
calulate -> calculate
|
||||||
|
catagory -> category
|
||||||
|
cauhgt -> caught
|
||||||
|
ceratin -> certain
|
||||||
|
certian -> certain
|
||||||
|
cheif -> chief
|
||||||
|
cieling -> ceiling
|
||||||
|
circut -> circuit
|
||||||
|
clasic -> classic
|
||||||
|
cmoputer -> computer
|
||||||
|
coform -> conform
|
||||||
|
comming: -> coming
|
||||||
|
considerd -> considered
|
||||||
|
dervied -> derived
|
||||||
|
desicion -> decision
|
||||||
|
diferent -> different
|
||||||
|
diferrent -> different
|
||||||
|
differnt -> different
|
||||||
|
diffrent -> different
|
||||||
|
divison -> division
|
||||||
|
effecient -> efficient
|
||||||
|
eligable -> eligible
|
||||||
|
elpased -> elapsed
|
||||||
|
embarass -> embarrass
|
||||||
|
embeded -> embedded
|
||||||
|
encypt -> encrypt
|
||||||
|
finaly -> finally
|
||||||
|
foriegn -> foreign
|
||||||
|
foward -> forward
|
||||||
|
fraciton -> fraction
|
||||||
|
fucntion -> function
|
||||||
|
fufill -> fulfill
|
||||||
|
fullfill -> fulfill
|
||||||
|
futher -> further
|
||||||
|
ganerate -> generate
|
||||||
|
generaly -> generally
|
||||||
|
greatful -> grateful
|
||||||
|
heigher -> higher
|
||||||
|
higest -> highest
|
||||||
|
howver -> however
|
||||||
|
hydogen -> hydrogen
|
||||||
|
importamt -> important
|
||||||
|
inclued -> include
|
||||||
|
insted -> instead
|
||||||
|
intrest -> interest
|
||||||
|
invliad -> invalid
|
||||||
|
largst -> largest
|
||||||
|
learnign -> learning
|
||||||
|
liasion -> liaison
|
||||||
|
likly -> likely
|
||||||
|
lisense -> license
|
||||||
|
listner -> listener
|
||||||
|
macthing -> matching
|
||||||
|
manefist -> manifest
|
||||||
|
mesage -> message
|
||||||
|
naturual -> natural
|
||||||
|
occassion -> occasion
|
||||||
|
occured -> occurred
|
||||||
|
particualr -> particular
|
||||||
|
paticular -> particular
|
||||||
|
peice -> piece
|
||||||
|
perhasp -> perhaps
|
||||||
|
perheaps -> perhaps
|
||||||
|
perhpas -> perhaps
|
||||||
|
perphas -> perhaps
|
||||||
|
persue -> pursue
|
||||||
|
posess -> possess
|
||||||
|
postion -> position
|
||||||
|
preiod -> period
|
||||||
|
primarly -> primarily
|
||||||
|
privte -> private
|
||||||
|
proccess -> process
|
||||||
|
proeprty -> property
|
||||||
|
propery -> property
|
||||||
|
realtion -> relation
|
||||||
|
reasearch -> research
|
||||||
|
recuring -> recurring
|
||||||
|
refered -> referred
|
||||||
|
regluar -> regular
|
||||||
|
releated -> related
|
||||||
|
resutl -> result
|
||||||
|
reuslt -> result
|
||||||
|
reveiw -> review
|
||||||
|
satisifed -> satisfied
|
||||||
|
scheduel -> schedule
|
||||||
|
sequnce -> sequence
|
||||||
|
similiar -> similar
|
||||||
|
simmilar -> similar
|
||||||
|
slighly -> slightly
|
||||||
|
somehwat -> somewhat
|
||||||
|
statment -> statement
|
||||||
|
sucess -> success
|
||||||
|
succsess -> success
|
||||||
|
sugest -> suggest
|
||||||
|
sumary -> summary
|
||||||
|
supress -> suppress
|
||||||
|
surpress -> suppress
|
||||||
|
thresold -> threshold
|
||||||
|
tongiht -> tonight
|
||||||
|
tranpose -> transpose
|
||||||
|
typcial -> typical
|
||||||
|
udpate -> update
|
||||||
|
ususally -> usually
|
||||||
|
verticies -> vertices
|
||||||
|
whereever -> wherever
|
||||||
|
wherre -> where
|
||||||
|
wierd -> weird
|
||||||
|
|
|
@ -7,6 +7,8 @@
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
|
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U
|
||||||
|
|
||||||
|
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
|
||||||
|
|
||||||
// Configure the global tapping term (default: 200ms)
|
// Configure the global tapping term (default: 200ms)
|
||||||
#define TAPPING_TERM 200
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
|
@ -23,5 +25,13 @@
|
||||||
#define ONESHOT_TAP_TOGGLE 2
|
#define ONESHOT_TAP_TOGGLE 2
|
||||||
#define ONESHOT_TIMEOUT 2000
|
#define ONESHOT_TIMEOUT 2000
|
||||||
|
|
||||||
|
// Auto Shift
|
||||||
|
#define AUTO_SHIFT_TIMEOUT 175
|
||||||
|
#define AUTO_SHIFT_REPEAT
|
||||||
|
#define AUTO_SHIFT_MODIFIERS
|
||||||
|
|
||||||
|
// Retro Shift
|
||||||
|
#define RETRO_SHIFT 500
|
||||||
|
|
||||||
// Caps Word
|
// Caps Word
|
||||||
#define CAPS_WORD_IDLE_TIMEOUT 2000
|
#define CAPS_WORD_IDLE_TIMEOUT 2000
|
||||||
|
|
|
@ -38,3 +38,7 @@
|
||||||
#define HOME_I RALT_T(KC_I)
|
#define HOME_I RALT_T(KC_I)
|
||||||
#define HOME_A RGUI_T(KC_A)
|
#define HOME_A RGUI_T(KC_A)
|
||||||
|
|
||||||
|
// Shortcuts
|
||||||
|
#define PREFIX LCTL(KC_B)
|
||||||
|
#define DELWORD LCTL(KC_W)
|
||||||
|
#define ST_PSTE LSFT(KC_INSERT)
|
||||||
|
|
|
@ -15,62 +15,94 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "keycodes.h"
|
#include "keycodes.h"
|
||||||
|
|
||||||
/* Define our keymaps */
|
/* Enumeration */
|
||||||
|
|
||||||
enum layers {
|
enum layers {
|
||||||
// Default keyboard layout
|
|
||||||
L_CANARY,
|
L_CANARY,
|
||||||
// Standard OLKB layers
|
|
||||||
L_LOWER,
|
L_LOWER,
|
||||||
L_RAISE,
|
L_RAISE,
|
||||||
L_ADJUST,
|
L_ADJUST,
|
||||||
// Extra FN layers
|
|
||||||
L_NAVIGATION,
|
L_NAVIGATION,
|
||||||
L_SYMBOLS,
|
L_SYMBOLS,
|
||||||
L_NUMBERS,
|
L_NUMBERS,
|
||||||
L_OPERATORS,
|
L_OPERATORS,
|
||||||
L_MACRO,
|
L_MACRO
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Define our custom keycodes */
|
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
VI_SAVE = SAFE_RANGE,
|
VI_SAVE = SAFE_RANGE,
|
||||||
VI_EXIT,
|
VI_EXIT,
|
||||||
HOME,
|
HOME,
|
||||||
UPDIR,
|
UPDIR
|
||||||
DELWORD,
|
};
|
||||||
|
|
||||||
|
enum td_keycodes {
|
||||||
|
TD_YANK,
|
||||||
|
TD_PSTE
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Define our combos */
|
|
||||||
enum combos {
|
enum combos {
|
||||||
NE_ESCAPE,
|
NE_ESCAPE,
|
||||||
SE_CAPSWORD,
|
SE_CAPWRD,
|
||||||
ST_PREFIX,
|
|
||||||
COMBO_LENGTH
|
COMBO_LENGTH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Tapdance */
|
||||||
|
|
||||||
|
// Define a type containing as many tapdance states as you need
|
||||||
|
typedef enum {
|
||||||
|
TD_NONE,
|
||||||
|
TD_UNKNOWN,
|
||||||
|
TD_SINGLE_TAP,
|
||||||
|
TD_SINGLE_HOLD,
|
||||||
|
TD_DOUBLE_TAP,
|
||||||
|
TD_DOUBLE_HOLD
|
||||||
|
} td_state_t;
|
||||||
|
|
||||||
|
// Create a global instance of the tapdance state type
|
||||||
|
static td_state_t td_state;
|
||||||
|
|
||||||
|
// Declare your tapdance functions:
|
||||||
|
|
||||||
|
// Function to determine the current tapdance state
|
||||||
|
td_state_t cur_dance(qk_tap_dance_state_t *state);
|
||||||
|
|
||||||
|
// `finished` and `reset` functions for each tapdance keycode
|
||||||
|
void yank_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||||
|
void yank_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||||
|
|
||||||
|
void pste_finished(qk_tap_dance_state_t *state, void *user_data);
|
||||||
|
void pste_reset(qk_tap_dance_state_t *state, void *user_data);
|
||||||
|
|
||||||
|
|
||||||
|
/* Combos */
|
||||||
|
|
||||||
// Programmatically declare the size of the Combo data structure
|
// Programmatically declare the size of the Combo data structure
|
||||||
uint16_t COMBO_LEN = COMBO_LENGTH;
|
uint16_t COMBO_LEN = COMBO_LENGTH;
|
||||||
|
|
||||||
// Define key sequences
|
// Define key sequences
|
||||||
const uint16_t PROGMEM ne_combo[] = {HOME_N, HOME_E, COMBO_END};
|
const uint16_t PROGMEM ne_combo[] = {HOME_N, HOME_E, COMBO_END};
|
||||||
const uint16_t PROGMEM se_combo[] = {HOME_S, HOME_E, COMBO_END};
|
const uint16_t PROGMEM se_combo[] = {HOME_S, HOME_E, COMBO_END};
|
||||||
const uint16_t PROGMEM st_combo[] = {HOME_S, HOME_T, COMBO_END};
|
|
||||||
|
|
||||||
// List the combination of keys and there resulting action
|
// List the combination of keys and there resulting action
|
||||||
combo_t key_combos[] = {
|
combo_t key_combos[] = {
|
||||||
[NE_ESCAPE] = COMBO(ne_combo, KC_ESC),
|
[NE_ESCAPE] = COMBO(ne_combo, KC_ESC),
|
||||||
[SE_CAPSWORD] = COMBO(se_combo, CW_TOGG),
|
[SE_CAPWRD] = COMBO(se_combo, CW_TOGG),
|
||||||
[ST_PREFIX] = COMBO(st_combo, LCTL(KC_B)),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Customise our keymaps */
|
|
||||||
|
/* Keymaps */
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[L_CANARY] = LAYOUT_split_3x6_3(
|
[L_CANARY] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
KC_TAB, KC_W, KC_L, KC_Y, KC_P, KC_B, KC_Z, KC_F, KC_O, KC_U, KC_QUOT, QK_LEAD,
|
PREFIX, KC_W, KC_L, KC_Y, KC_P, KC_B, KC_Z, KC_F, KC_O, KC_U, KC_QUOT, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
KC_BSPC, HOME_C, HOME_R, HOME_S, HOME_T, KC_G, KC_M, HOME_N, HOME_E, HOME_I, HOME_A, KC_DEL,
|
KC_BSPC, HOME_C, HOME_R, HOME_S, HOME_T, KC_G, KC_M, HOME_N, HOME_E, HOME_I, HOME_A, KC_DEL,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
@ -83,19 +115,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[L_NAVIGATION] = LAYOUT_split_3x6_3(
|
[L_NAVIGATION] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
_______, XXXXXXX, XXXXXXX, KC_PGUP, KC_PGDN, XXXXXXX, XXXXXXX, KC_HOME, KC_END, XXXXXXX, XXXXXXX, _______,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
_______, OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
|
_______, OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
|
||||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, KC_TAB, _______, _______
|
||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[L_SYMBOLS] = LAYOUT_split_3x6_3(
|
[L_SYMBOLS] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
XXXXXXX, XXXXXXX, KC_LABK, KC_DLR, KC_RABK, XXXXXXX, XXXXXXX, KC_LBRC, KC_UNDS, KC_RBRC, XXXXXXX, OS_OPRS,
|
XXXXXXX, XXXXXXX, KC_LABK, KC_DLR, KC_RABK, XXXXXXX, XXXXXXX, KC_LBRC, KC_UNDS, KC_RBRC, XXXXXXX, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
KC_MINS, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, KC_SCLN,
|
KC_MINS, KC_BSLS, KC_LPRN, KC_DQUO, KC_RPRN, KC_HASH, KC_PERC, KC_LCBR, KC_EQL, KC_RCBR, KC_PIPE, KC_SCLN,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
|
@ -119,25 +151,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[L_NUMBERS] = LAYOUT_split_3x6_3(
|
[L_NUMBERS] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, _______,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_SLSH, KC_7, KC_8, KC_9, KC_MINS, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
_______, OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, _______,
|
_______, OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_ASTR, KC_4, KC_5, KC_6, KC_PLUS, _______,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_0, KC_1, KC_2, KC_3, KC_DOT, _______,
|
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_2, KC_3, KC_DOT, _______,
|
||||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, KC_0, _______, _______
|
||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
[L_MACRO] = LAYOUT_split_3x6_3(
|
[L_MACRO] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
HOME, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UPDIR,
|
HOME, XXXXXXX, XXXXXXX, TD_YANK, TD_PSTE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, UPDIR,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
DELWORD, XXXXXXX, XXXXXXX, VI_SAVE, VI_EXIT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
DELWORD, XXXXXXX, XXXXXXX, VI_SAVE, VI_EXIT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, ST_PSTE, _______, _______, _______
|
||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
|
|
||||||
|
@ -167,18 +199,156 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[L_ADJUST] = LAYOUT_split_3x6_3(
|
[L_ADJUST] = LAYOUT_split_3x6_3(
|
||||||
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
//,-----------------------------------------------------. ,-----------------------------------------------------.
|
||||||
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AS_TOGG,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, AC_TOGG,
|
||||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, CM_TOGG,
|
||||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||||
_______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______
|
||||||
//`--------------------------' `--------------------------'
|
//`--------------------------' `--------------------------'
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Define the behaviour of our custom keycodes */
|
|
||||||
|
/* OLED */
|
||||||
|
|
||||||
|
#ifdef OLED_ENABLE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
return OLED_ROTATION_270;
|
||||||
|
} else {
|
||||||
|
return OLED_ROTATION_180;
|
||||||
|
}
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_render_master(void) {
|
||||||
|
// Layer Status
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case L_CANARY:
|
||||||
|
oled_write("CANRY", false);
|
||||||
|
break;
|
||||||
|
case L_LOWER:
|
||||||
|
oled_write("LOWER", false);
|
||||||
|
break;
|
||||||
|
case L_RAISE:
|
||||||
|
oled_write("RAISE", false);
|
||||||
|
break;
|
||||||
|
case L_ADJUST:
|
||||||
|
oled_write("ADJST", false);
|
||||||
|
break;
|
||||||
|
case L_NAVIGATION:
|
||||||
|
oled_write_ln(" NAV", false);
|
||||||
|
break;
|
||||||
|
case L_SYMBOLS:
|
||||||
|
oled_write_ln(" SYM", false);
|
||||||
|
break;
|
||||||
|
case L_NUMBERS:
|
||||||
|
oled_write_ln(" NUM", false);
|
||||||
|
break;
|
||||||
|
case L_OPERATORS:
|
||||||
|
oled_write("OPER8", false);
|
||||||
|
break;
|
||||||
|
case L_MACRO:
|
||||||
|
oled_write("MACRO", false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln(" UND", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mod Status
|
||||||
|
uint8_t this_mod = get_mods();
|
||||||
|
uint8_t this_osm = get_oneshot_mods();
|
||||||
|
|
||||||
|
oled_write("-----", false);
|
||||||
|
|
||||||
|
if ((this_mod | this_osm) & MOD_MASK_GUI) {
|
||||||
|
oled_write("gui:*", false);
|
||||||
|
} else {
|
||||||
|
oled_write("gui:.", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((this_mod | this_osm) & MOD_MASK_ALT) {
|
||||||
|
oled_write("alt:*", false);
|
||||||
|
} else {
|
||||||
|
oled_write("alt:.", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((this_mod | this_osm) & MOD_MASK_SHIFT) {
|
||||||
|
oled_write("sft:*", false);
|
||||||
|
} else {
|
||||||
|
oled_write("sft:.", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((this_mod | this_osm) & MOD_MASK_CTRL) {
|
||||||
|
oled_write("ctl:*", false);
|
||||||
|
} else {
|
||||||
|
oled_write("ctl:.", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Feature Status
|
||||||
|
oled_write("-----", false);
|
||||||
|
|
||||||
|
bool is_autoshift_enabled = get_autoshift_state();
|
||||||
|
if (is_autoshift_enabled) {
|
||||||
|
oled_write("as: *", false);
|
||||||
|
} else {
|
||||||
|
oled_write("as: .", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool is_autocorrect_enabled = autocorrect_is_enabled();
|
||||||
|
if (is_autocorrect_enabled) {
|
||||||
|
oled_write("ac: *", false);
|
||||||
|
} else {
|
||||||
|
oled_write("ac: .", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_combo_enabled()) {
|
||||||
|
oled_write("cm: *", false);
|
||||||
|
} else {
|
||||||
|
oled_write("cm: .", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Caps Word
|
||||||
|
oled_write("-----", false);
|
||||||
|
|
||||||
|
if (is_caps_word_on()) {
|
||||||
|
oled_write("cap:*", false);
|
||||||
|
} else {
|
||||||
|
oled_write("cap:.", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
// WPM Status
|
||||||
|
char wpm_str [4];
|
||||||
|
sprintf(wpm_str, "%03d", get_current_wpm());
|
||||||
|
oled_set_cursor(1, 14);
|
||||||
|
oled_write_ln(wpm_str, false);
|
||||||
|
oled_write(" wpm", false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_render_slave(void) {
|
||||||
|
static const char PROGMEM crkbd_logo[] = {
|
||||||
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||||
|
0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4,
|
||||||
|
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4,
|
||||||
|
0};
|
||||||
|
oled_write_P(crkbd_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
oled_render_master();
|
||||||
|
} else {
|
||||||
|
oled_render_slave();
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
#endif // OLED_ENABLE
|
||||||
|
|
||||||
|
|
||||||
|
/* Custom Keycodes */
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case VI_SAVE:
|
case VI_SAVE:
|
||||||
|
@ -199,27 +369,155 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
|
||||||
case HOME:
|
case HOME:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("~/");
|
SEND_STRING("cd ~/");
|
||||||
|
tap_code(KC_ENT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case UPDIR:
|
case UPDIR:
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
SEND_STRING("../");
|
SEND_STRING("cd ../");
|
||||||
|
tap_code(KC_ENT);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case DELWORD:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
tap_code16(LCTL(KC_W));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Custom layer handling. */
|
|
||||||
|
/* Tapdance Functions */
|
||||||
|
|
||||||
|
// Determine the tapdance state to return
|
||||||
|
td_state_t cur_dance(qk_tap_dance_state_t *state) {
|
||||||
|
if (state->count == 1) {
|
||||||
|
if (state->interrupted || !state->pressed) return TD_SINGLE_TAP;
|
||||||
|
else return TD_SINGLE_HOLD;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state->count == 2) {
|
||||||
|
if (state->interrupted || !state->pressed) return TD_DOUBLE_TAP;
|
||||||
|
else return TD_DOUBLE_HOLD;
|
||||||
|
}
|
||||||
|
|
||||||
|
else return TD_UNKNOWN; // Any number higher than the maximum state value you return above
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle the possible states for each tapdance keycode you define:
|
||||||
|
|
||||||
|
void yank_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
|
td_state = cur_dance(state);
|
||||||
|
switch (td_state) {
|
||||||
|
case TD_SINGLE_TAP:
|
||||||
|
register_code(KC_LCTL);
|
||||||
|
register_code(KC_C);
|
||||||
|
break;
|
||||||
|
case TD_DOUBLE_TAP:
|
||||||
|
register_code(KC_LCTL);
|
||||||
|
register_code(KC_LSFT);
|
||||||
|
register_code(KC_C);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void yank_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
|
switch (td_state) {
|
||||||
|
case TD_SINGLE_TAP:
|
||||||
|
unregister_code(KC_LCTL);
|
||||||
|
unregister_code(KC_C);
|
||||||
|
break;
|
||||||
|
case TD_DOUBLE_TAP:
|
||||||
|
unregister_code(KC_LCTL);
|
||||||
|
unregister_code(KC_LSFT);
|
||||||
|
unregister_code(KC_C);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void pste_finished(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
|
td_state = cur_dance(state);
|
||||||
|
switch (td_state) {
|
||||||
|
case TD_SINGLE_TAP:
|
||||||
|
register_code(KC_LCTL);
|
||||||
|
register_code(KC_V);
|
||||||
|
break;
|
||||||
|
case TD_DOUBLE_TAP:
|
||||||
|
register_code(KC_LCTL);
|
||||||
|
register_code(KC_LSFT);
|
||||||
|
register_code(KC_V);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void pste_reset(qk_tap_dance_state_t *state, void *user_data) {
|
||||||
|
switch (td_state) {
|
||||||
|
case TD_SINGLE_TAP:
|
||||||
|
unregister_code(KC_LCTL);
|
||||||
|
unregister_code(KC_V);
|
||||||
|
break;
|
||||||
|
case TD_DOUBLE_TAP:
|
||||||
|
unregister_code(KC_LCTL);
|
||||||
|
unregister_code(KC_LSFT);
|
||||||
|
unregister_code(KC_V);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Define `ACTION_TAP_DANCE_FN_ADVANCED()` for each tapdance keycode, passing in `finished` and `reset` functions
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
[TD_YANK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, yank_finished, yank_reset),
|
||||||
|
[TD_PSTE] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, pste_finished, pste_reset)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Add Home Row Mods to Auto Shift */
|
||||||
|
|
||||||
|
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch(keycode) {
|
||||||
|
// Left hand home-row mods
|
||||||
|
case HOME_C:
|
||||||
|
return true;
|
||||||
|
case HOME_R:
|
||||||
|
return true;
|
||||||
|
case HOME_S:
|
||||||
|
return true;
|
||||||
|
case HOME_T:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
// Right hand home-row mods
|
||||||
|
case HOME_N:
|
||||||
|
return true;
|
||||||
|
case HOME_E:
|
||||||
|
return true;
|
||||||
|
case HOME_I:
|
||||||
|
return true;
|
||||||
|
case HOME_A:
|
||||||
|
return true;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Layer Change */
|
||||||
|
|
||||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||||
return update_tri_layer_state(state, L_LOWER, L_RAISE, L_ADJUST);
|
return update_tri_layer_state(state, L_LOWER, L_RAISE, L_ADJUST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Post Init */
|
||||||
|
|
||||||
|
void keyboard_post_init_user(void) {
|
||||||
|
autoshift_disable();
|
||||||
|
autocorrect_enable();
|
||||||
|
}
|
||||||
|
|
|
@ -6,11 +6,15 @@ BOOTLOADER = rp2040
|
||||||
|
|
||||||
# Defaults
|
# Defaults
|
||||||
LTO_ENABLE = yes
|
LTO_ENABLE = yes
|
||||||
OLED_ENABLE = no
|
OLED_ENABLE = yes
|
||||||
OLED_DRIVER = SSD1306
|
OLED_DRIVER = SSD1306
|
||||||
|
|
||||||
# Enable some features
|
# Enable some features
|
||||||
CAPS_WORD_ENABLE = yes
|
CAPS_WORD_ENABLE = yes
|
||||||
COMBO_ENABLE = yes
|
COMBO_ENABLE = yes
|
||||||
LEADER_ENABLE = yes
|
LEADER_ENABLE = yes
|
||||||
|
WPM_ENABLE = yes
|
||||||
|
AUTO_SHIFT_ENABLE = yes
|
||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
|
AUTOCORRECT_ENABLE = yes
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue