keymap.c 45 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597
  1. #include "ergodox_ez.h"
  2. #include "debug.h"
  3. #include "action_layer.h"
  4. #include "keymap_neo2.h"
  5. #include "keymap_uk.h"
  6. #include "keymap_colemak.h"
  7. #include "keymap_nordic.h"
  8. #include "keymap_dvorak.h"
  9. #include "keymap_german.h"
  10. #include "keymap_norwegian.h"
  11. #include "keymap_fr_ch.h"
  12. #include "keymap_german_osx.h"
  13. #include "keymap_spanish.h"
  14. #include "keymap_bepo.h"
  15. /**
  16. * This layout was generated using the ErgodoxLayoutGenerator (ELG). You can download it from https://github.com/sboesebeck/ErgodoxLayoutGenerator/releases
  17. * documentation about it can be found here https://boesebeck.name/2016/04/16/ergodoxlayoutgenerator-documentation/
  18. * Thanks to the team of Erez Zukerman for building the great Ergodox-EZ!
  19. *
  20. * use at own risk!
  21. **/
  22. #define BASE 0
  23. #define SYMB 1
  24. #define MDIA 2
  25. #define SMLY 3
  26. #define NUMB 4
  27. #define EGOS 5
  28. #define SMLY_TOG_QUOT 0
  29. #define M_TOGGLE_5 1
  30. #define TGH_NUM 2
  31. #define M_DE_OSX_PLUS_CTRLALT 3
  32. #define SM_KISS 4
  33. #define SM_FROWN 5
  34. #define SM_CRY 6
  35. #define SM_SMILE 7
  36. #define SM_SMIRK 8
  37. #define M_LGUI_SHFT 9
  38. #define SM_HEART 10
  39. #define TOG_HLD_MDIA 11
  40. #define SM_LAUGH 12
  41. #define SM_SAD 13
  42. #define M_DE_OSX_CIRC_CTRLCMD 14
  43. #define M_MEH_SH_ACUT 15
  44. //Layout keymap.c generated with ErgodoxLayoutGenerator V1.0BETA1
  45. const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  46. /**
  47. * Layer: BASE
  48. * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
  49. * | ESC | 1 | 2 | 3 | 4 | 5 | Hold or toggle | | Hold or toggle | 6 | 7 | 8 | 9 | 0 | ß |
  50. * | | | | | | | Layer NUMB | | Layer MDIA | | | | | | |
  51. * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
  52. * | TAB | Q | W | E | R | T | Cmd | | Cmd | Z | U | I | O | P | Ü |
  53. * | | | | | | | | | | | | | | | |
  54. * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/\-------------------\ \-------------------\/-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
  55. * | Alt | A | S | D | F | G | | H | J | K | L | Ö | Ä |
  56. * | | | | | | | | | | | | | ALT |
  57. * /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------//-------------------//-------------------/
  58. * | Shift | Y | X | C | V | B | Alt | | Alt | N | M | , | . | - | Shift |
  59. * | | Ctrl | | | | | | | | | | | | Ctrl | |
  60. * \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
  61. *
  62. *
  63. * /-------------------//-------------------//-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------//-------------------//-------------------/
  64. * | < | LongPress / Type | LongPress / Type | Shift+Ctrl | Type | | # | ACUT | CMD+Shift | ALT+Shift | + |
  65. * | SYMB | DE_OSX_CIRC_CTRLCMD| DE_OSX_PLUS_CTRAlt | | Toggle SMLY | | Meh | Hyper | | | SYMB |
  66. * \-------------------\\-------------------\\-------------------\\-------------------\/-------------------//-------------------/ /-------------------//-------------------/ \-------------------\\-------------------\\-------------------\\-------------------\\-------------------\
  67. * | HOME | END | | LEFT | RIGHT |
  68. * | | | | | |
  69. * \-------------------\/-------------------/ /-------------------/\-------------------\
  70. * | PGUP | | UP |
  71. * | | | |
  72. * /-------------------//-------------------//-------------------/ /-------------------//-------------------//-------------------/
  73. * | BSPC | DEL | PGDN | | DOWN | ENT | SPC |
  74. * | | | | | | | |
  75. * \-------------------\\-------------------\\-------------------\ \-------------------\\-------------------\\-------------------\
  76. *
  77. *
  78. **/
  79. [BASE]=KEYMAP(
  80. //left half
  81. KC_ESC, DE_OSX_1, DE_OSX_2, DE_OSX_3, DE_OSX_4, DE_OSX_5, M(TGH_NUM),
  82. KC_TAB, DE_OSX_Q, DE_OSX_W, DE_OSX_E, DE_OSX_R, DE_OSX_T, KC_LGUI,
  83. KC_LALT, DE_OSX_A, DE_OSX_S, DE_OSX_D, DE_OSX_F, DE_OSX_G,
  84. KC_LSFT, CTL_T(DE_OSX_Y), DE_OSX_X, DE_OSX_C, DE_OSX_V, DE_OSX_B, KC_LALT,
  85. LT(SYMB,DE_OSX_LESS), M(M_DE_OSX_CIRC_CTRLCMD), M(M_DE_OSX_PLUS_CTRLALT), LSFT(KC_LCTRL), M(SMLY_TOG_QUOT),
  86. KC_HOME, KC_END,
  87. KC_PGUP,
  88. KC_BSPC, KC_DEL, KC_PGDN,
  89. //right half
  90. M(TOG_HLD_MDIA), DE_OSX_6, DE_OSX_7, DE_OSX_8, DE_OSX_9, DE_OSX_0, DE_OSX_SS,
  91. KC_RGUI, DE_OSX_Z, DE_OSX_U, DE_OSX_I, DE_OSX_O, DE_OSX_P, DE_OSX_UE,
  92. DE_OSX_H, DE_OSX_J, DE_OSX_K, DE_OSX_L, DE_OSX_OE, ALT_T(DE_OSX_AE),
  93. KC_RALT, DE_OSX_N, DE_OSX_M, DE_OSX_COMM, DE_OSX_DOT, CTL_T(DE_OSX_MINS), KC_RSFT,
  94. MEH_T(DE_OSX_HASH), ALL_T(DE_OSX_ACUT), LGUI(KC_LSFT), LALT(KC_LSFT), LT(SYMB,DE_OSX_PLUS),
  95. KC_LEFT, KC_RIGHT,
  96. KC_UP,
  97. KC_DOWN, KC_ENT, KC_SPC),
  98. /**
  99. * Layer: SYMB
  100. * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
  101. * | APPLICATION| F1 | F2 | F3 | F4 | F5 | F5 | | F6 | F6 | F7 | F8 | F9 | F10 | F11 |
  102. * | | | | | | | | | | | | | | | |
  103. * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
  104. * | | < | > | ! | ? | | | | | \ | [ | ] | < | > | ! |
  105. * | | | | | | | | | | | | | | | |
  106. * /-----------//-----------//-----------//-----------//-----------//-----------/\-----------\ \-----------\/-----------//-----------//-----------//-----------//-----------//-----------/
  107. * | | # | $ | \ | / | . | | / | ( | ) | { | } | # |
  108. * | | | | | | | | | | | | | |
  109. * /-----------//-----------//-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------//-----------//-----------/
  110. * | | | < | % | | | ~ | | | | | | ~ | | | | |
  111. * | | | | | | | | | | | | | | | |
  112. * \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\\-----------\\-----------\\-----------\\-----------\
  113. *
  114. *
  115. * /-----------//-----------//-----------//-----------//-----------/ /-----------//-----------//-----------//-----------//-----------/
  116. * | | | | | | | ' | DQOT | | Toggle 5 | |
  117. * | | | | | | | | | | | |
  118. * \-----------\\-----------\\-----------\\-----------\/-----------//-----------/ /-----------//-----------/ \-----------\\-----------\\-----------\\-----------\\-----------\
  119. * | | | | F13 | F12 |
  120. * | | | | | |
  121. * \-----------\/-----------/ /-----------/\-----------\
  122. * | | | F14 |
  123. * | | | |
  124. * /-----------//-----------//-----------/ /-----------//-----------//-----------/
  125. * | | DEL | | | F15 | | |
  126. * | | | | | | | |
  127. * \-----------\\-----------\\-----------\ \-----------\\-----------\\-----------\
  128. *
  129. *
  130. **/
  131. [SYMB]=KEYMAP(
  132. //left half
  133. KC_APPLICATION, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F5,
  134. KC_TRNS, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM, DE_OSX_QST, KC_TRNS, KC_TRNS,
  135. KC_TRNS, DE_OSX_HASH, DE_OSX_DLR, DE_OSX_BSLS, DE_OSX_SLSH, KC_DOT,
  136. KC_TRNS, KC_TRNS, DE_OSX_LESS, DE_OSX_PERC, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS,
  137. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  138. KC_TRNS, KC_TRNS,
  139. KC_TRNS,
  140. KC_TRNS, KC_DEL, KC_TRNS,
  141. //right half
  142. KC_F6, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  143. KC_TRNS, DE_OSX_BSLS, DE_OSX_LBRC, DE_OSX_RBRC, DE_OSX_LESS, DE_OSX_MORE, DE_OSX_EXLM,
  144. DE_OSX_SLSH, DE_OSX_LPRN, DE_OSX_RPRN, DE_OSX_LCBR, DE_OSX_RCBR, DE_OSX_HASH,
  145. KC_TRNS, DE_OSX_PIPE, DE_OSX_TILD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  146. DE_OSX_QUOT, DE_OSX_DQOT, KC_TRNS, M(M_TOGGLE_5), KC_TRNS,
  147. KC_F13, KC_F12,
  148. KC_F14,
  149. KC_F15, KC_TRNS, KC_TRNS),
  150. /**
  151. * Layer: MDIA
  152. * /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
  153. * | | | | | | | | | | | | | | | |
  154. * | | | | | | | | | | | | | | | |
  155. * /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
  156. * | | | BTN1 | U | BTN2 | U | | | | | | | | | |
  157. * | | | | | | | | | | | | | | | |
  158. * /-----//-----//-----//-----//-----//-----/\-----\ \-----\/-----//-----//-----//-----//-----//-----/
  159. * | | | L | D | R | D | | | | | | | |
  160. * | | | | | | | | | | | | | |
  161. * /-----//-----//-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----//-----//-----/
  162. * | | | L | D | R | BTN3 | | | | | | | | UP | |
  163. * | | | | | | | | | | | | | | | |
  164. * \-----\\-----\\-----\\-----\\-----\\-----\\-----\ \-----\\-----\\-----\\-----\\-----\\-----\\-----\
  165. *
  166. *
  167. * /-----//-----//-----//-----//-----/ /-----//-----//-----//-----//-----/
  168. * | | | | | | | | | LEFT | DOWN | RIGHT|
  169. * | | | | | | | | | | | |
  170. * \-----\\-----\\-----\\-----\/-----//-----/ /-----//-----/ \-----\\-----\\-----\\-----\\-----\
  171. * | | | | MPRV | MNXT |
  172. * | | | | | |
  173. * \-----\/-----/ /-----/\-----\
  174. * | | | VOLU |
  175. * | | | |
  176. * /-----//-----//-----/ /-----//-----//-----/
  177. * | | | | | VOLD | MUTE | MPLY |
  178. * | | | | | | | |
  179. * \-----\\-----\\-----\ \-----\\-----\\-----\
  180. *
  181. *
  182. **/
  183. [MDIA]=KEYMAP(
  184. //left half
  185. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  186. KC_TRNS, KC_TRNS, KC_BTN1, KC_MS_U, KC_BTN2, KC_WH_U, KC_TRNS,
  187. KC_TRNS, KC_TRNS, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D,
  188. KC_TRNS, KC_TRNS, KC_WH_L, KC_WH_D, KC_WH_R, KC_BTN3, KC_TRNS,
  189. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  190. KC_TRNS, KC_TRNS,
  191. KC_TRNS,
  192. KC_TRNS, KC_TRNS, KC_TRNS,
  193. //right half
  194. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  195. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  196. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  197. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
  198. KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT,
  199. KC_MPRV, KC_MNXT,
  200. KC_VOLU,
  201. KC_VOLD, KC_MUTE, KC_MPLY),
  202. /**
  203. * Layer: SMLY
  204. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  205. * | | | | | | | | | Typing | Typing | Typing | | | | |
  206. * | | | | | | | | | SM_SMILE| SM_SMIRK| SM_LAUGH| | | | |
  207. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  208. * | | | | | | | | | | Typing | Typing | Typing | | | |
  209. * | | | | | | | | | | SM_FROWN| SM_SAD | SM_CRY | | | |
  210. * /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/
  211. * | | | | | | | | Typing | Typing | | | | |
  212. * | | | | | | | | SM_HEART| SM_KISS | | | | |
  213. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  214. * | | | | | | | | | | | | | | | |
  215. * | | | | | | | | | | | | | | | |
  216. * \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\
  217. *
  218. *
  219. * /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/
  220. * | | | | | | | | | | | |
  221. * | | | | | | | | | | | |
  222. * \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\
  223. * | | | | | |
  224. * | | | | | |
  225. * \--------\/--------/ /--------/\--------\
  226. * | | | |
  227. * | | | |
  228. * /--------//--------//--------/ /--------//--------//--------/
  229. * | | | | | | | |
  230. * | | | | | | | |
  231. * \--------\\--------\\--------\ \--------\\--------\\--------\
  232. *
  233. *
  234. **/
  235. [SMLY]=KEYMAP(
  236. //left half
  237. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  238. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  239. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  240. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  241. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  242. KC_TRNS, KC_TRNS,
  243. KC_TRNS,
  244. KC_TRNS, KC_TRNS, KC_TRNS,
  245. //right half
  246. M(SM_SMILE), M(SM_SMIRK), M(SM_LAUGH), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  247. KC_TRNS, M(SM_FROWN), M(SM_SAD), M(SM_CRY), KC_TRNS, KC_TRNS, KC_TRNS,
  248. M(SM_HEART), M(SM_KISS), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  249. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  250. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  251. KC_TRNS, KC_TRNS,
  252. KC_TRNS,
  253. KC_TRNS, KC_TRNS, KC_TRNS),
  254. /**
  255. * Layer: NUMB
  256. * /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
  257. * | | | | | | | | | | F6 | F7 | F8 | F9 | F10 | F11 |
  258. * | | | | | | | | | | | | | | | |
  259. * /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
  260. * | | | | UP | | | | | | / | 7 | 8 | 9 | * | F12 |
  261. * | | | | | | | | | | | | | | | |
  262. * /----//----//----//----//----//----/\----\ \----\/----//----//----//----//----//----/
  263. * | | | LEFT| DOWN| RGHT| | | / | 4 | 5 | 6 | + | - |
  264. * | | | | | | | | | | | | | |
  265. * /----//----//----//----//----//----//----/ /----//----//----//----//----//----//----/
  266. * | | | | | | | | | | % | 1 | 2 | 3 | | |
  267. * | | | | | | | | | | | | | | | |
  268. * \----\\----\\----\\----\\----\\----\\----\ \----\\----\\----\\----\\----\\----\\----\
  269. *
  270. *
  271. * /----//----//----//----//----/ /----//----//----//----//----/
  272. * | | | | | | | 0 | . | , | = | |
  273. * | | | | | | | | | | | |
  274. * \----\\----\\----\\----\/----//----/ /----//----/ \----\\----\\----\\----\\----\
  275. * | | | | | |
  276. * | | | | | |
  277. * \----\/----/ /----/\----\
  278. * | | | |
  279. * | | | |
  280. * /----//----//----/ /----//----//----/
  281. * | | | | | | | |
  282. * | | | | | | | |
  283. * \----\\----\\----\ \----\\----\\----\
  284. *
  285. *
  286. **/
  287. [NUMB]=KEYMAP(
  288. //left half
  289. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  290. KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS,
  291. KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
  292. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  293. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  294. KC_TRNS, KC_TRNS,
  295. KC_TRNS,
  296. KC_TRNS, KC_TRNS, KC_TRNS,
  297. //right half
  298. KC_TRNS, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
  299. KC_TRNS, DE_OSX_SLSH, KC_7, KC_8, KC_9, DE_OSX_ASTR, KC_F12,
  300. DE_OSX_SLSH, KC_4, KC_5, KC_6, DE_OSX_PLUS, DE_OSX_MINS,
  301. KC_TRNS, DE_OSX_PERC, KC_1, KC_2, KC_3, KC_TRNS, KC_TRNS,
  302. KC_0, KC_DOT, KC_COMM, DE_OSX_EQL, KC_TRNS,
  303. KC_TRNS, KC_TRNS,
  304. KC_TRNS,
  305. KC_TRNS, KC_TRNS, KC_TRNS),
  306. /**
  307. * Layer: EGOS
  308. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  309. * | | | | | | | | | | | | | | | |
  310. * | | | | | | | | | | | | | | | |
  311. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  312. * | | | | | | | | | | | | | | | |
  313. * | | | | | | | | | | | | | | | |
  314. * /--------//--------//--------//--------//--------//--------/\--------\ \--------\/--------//--------//--------//--------//--------//--------/
  315. * | Shift | | | | | | | | | | | | |
  316. * | | | | | | | | | | | | | |
  317. * /--------//--------//--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------//--------//--------/
  318. * | | | | | | | | | | | | | | | |
  319. * | | | | | | | | | | | | | | | |
  320. * \--------\\--------\\--------\\--------\\--------\\--------\\--------\ \--------\\--------\\--------\\--------\\--------\\--------\\--------\
  321. *
  322. *
  323. * /--------//--------//--------//--------//--------/ /--------//--------//--------//--------//--------/
  324. * | Ctrl | | | | | | | | | Toggle 5| |
  325. * | | | | | | | | | | | |
  326. * \--------\\--------\\--------\\--------\/--------//--------/ /--------//--------/ \--------\\--------\\--------\\--------\\--------\
  327. * | F1 | F2 | | | |
  328. * | | | | | |
  329. * \--------\/--------/ /--------/\--------\
  330. * | F3 | | |
  331. * | | | |
  332. * /--------//--------//--------/ /--------//--------//--------/
  333. * | SPC | Ctrl | F4 | | | | |
  334. * | | | | | | | |
  335. * \--------\\--------\\--------\ \--------\\--------\\--------\
  336. *
  337. *
  338. **/
  339. [EGOS]=KEYMAP(
  340. //left half
  341. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  342. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  343. KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  344. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  345. KC_LCTL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  346. KC_F1, KC_F2,
  347. KC_F3,
  348. KC_SPC, KC_LCTL, KC_F4,
  349. //right half
  350. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  351. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  352. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  353. KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
  354. KC_TRNS, KC_TRNS, KC_TRNS, M(M_TOGGLE_5), KC_TRNS,
  355. KC_TRNS, KC_TRNS,
  356. KC_TRNS,
  357. KC_TRNS, KC_TRNS, KC_TRNS),
  358. };
  359. const uint16_t PROGMEM fn_actions[] = {
  360. };
  361. const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
  362. {
  363. static uint16_t start;
  364. switch(id) {
  365. case SMLY_TOG_QUOT:
  366. //Macro: SMLY_TOG_QUOT//-----------------------
  367. if (record->event.pressed) {
  368. start = timer_read();
  369. layer_state ^= (1<<SMLY);
  370. layer_state &= (1<<SMLY);
  371. return MACRO_NONE; } else {
  372. layer_state ^= (1<<SMLY);
  373. layer_state &= (1<<SMLY);
  374. if (timer_elapsed(start) >150) {
  375. return MACRO_NONE;
  376. } else {
  377. return MACRO(DOWN(KC_LSFT),TYPE(DE_OSX_HASH),UP(KC_LSFT),END);
  378. }
  379. }
  380. break;
  381. case M_TOGGLE_5:
  382. //Macro: M_TOGGLE_5//-----------------------
  383. if (record->event.pressed){
  384. layer_state ^= (1<<5);
  385. layer_state &= (1<<5);
  386. }
  387. break;
  388. case TGH_NUM:
  389. //Macro: TGH_NUM//-----------------------
  390. if (record->event.pressed){
  391. start = timer_read();
  392. layer_state ^=(1<<NUMB);
  393. layer_state &=(1<<NUMB);
  394. } else {
  395. if (timer_elapsed(start) > 150) {
  396. layer_state^=(1<<NUMB);
  397. layer_state&=(1<<NUMB);
  398. }
  399. }
  400. return MACRO_NONE;
  401. break;
  402. case M_DE_OSX_PLUS_CTRLALT:
  403. //Macro: M_DE_OSX_PLUS_CTRLALT//-----------------------
  404. if (record->event.pressed) {
  405. start = timer_read();
  406. return MACRO(DOWN(KC_LCTRL),DOWN(KC_LALT),END);
  407. } else {
  408. if (timer_elapsed(start) >150) {
  409. return MACRO(U(LCTRL),U(LALT),END);
  410. } else {
  411. return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(KC_RBRC),END);
  412. }
  413. }
  414. break;
  415. case SM_KISS:
  416. //Macro: SM_KISS//-----------------------
  417. if (record->event.pressed) {
  418. return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_RBRC),UP(KC_LSFT),END);
  419. }
  420. break;
  421. case SM_FROWN:
  422. //Macro: SM_FROWN//-----------------------
  423. if (record->event.pressed) {
  424. return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LALT),TYPE(KC_8),UP(KC_LALT),END);
  425. }
  426. break;
  427. case SM_CRY:
  428. //Macro: SM_CRY//-----------------------
  429. if (record->event.pressed) {
  430. return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END);
  431. }
  432. break;
  433. case SM_SMILE:
  434. //Macro: SM_SMILE//-----------------------
  435. if (record->event.pressed) {
  436. return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END);
  437. }
  438. break;
  439. case SM_SMIRK:
  440. //Macro: SM_SMIRK//-----------------------
  441. if (record->event.pressed) {
  442. return MACRO(DOWN(KC_LSFT),TYPE(KC_COMM),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_9),UP(KC_LSFT),END);
  443. }
  444. break;
  445. case M_LGUI_SHFT:
  446. //Macro: M_LGUI_SHFT//-----------------------
  447. if (record->event.pressed){
  448. return MACRO(DOWN(KC_LGUI),DOWN(KC_LSFT),END);
  449. }else{
  450. return MACRO(UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),UP(KC_LGUI),UP(KC_LSFT),U(LGUI),U(LSFT),END);
  451. }
  452. break;
  453. case SM_HEART:
  454. //Macro: SM_HEART//-----------------------
  455. if (record->event.pressed) {
  456. return MACRO(TYPE(KC_GRV),TYPE(KC_3),END);
  457. }
  458. break;
  459. case TOG_HLD_MDIA:
  460. //Macro: TOG_HLD_MDIA//-----------------------
  461. if (record->event.pressed){
  462. start = timer_read();
  463. layer_state ^=(1<<MDIA);
  464. layer_state &=(1<<MDIA);
  465. } else {
  466. if (timer_elapsed(start) > 150) {
  467. layer_state^=(1<<MDIA);
  468. layer_state&=(1<<MDIA);
  469. }
  470. }
  471. return MACRO_NONE;
  472. break;
  473. case SM_LAUGH:
  474. //Macro: SM_LAUGH//-----------------------
  475. if (record->event.pressed) {
  476. return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_D),UP(KC_LSFT),END);
  477. }
  478. break;
  479. case SM_SAD:
  480. //Macro: SM_SAD//-----------------------
  481. if (record->event.pressed) {
  482. return MACRO(DOWN(KC_LSFT),TYPE(KC_DOT),UP(KC_LSFT),TYPE(KC_SLSH),DOWN(KC_LSFT),TYPE(KC_8),UP(KC_LSFT),END);
  483. }
  484. break;
  485. case M_DE_OSX_CIRC_CTRLCMD:
  486. //Macro: M_DE_OSX_CIRC_CTRLCMD//-----------------------
  487. if (record->event.pressed) {
  488. start = timer_read();
  489. return MACRO(DOWN(KC_LCTRL),DOWN(KC_LGUI),END);
  490. } else {
  491. if (timer_elapsed(start) >150) {
  492. return MACRO(U(LCTRL),U(LGUI),END);
  493. } else {
  494. return MACRO(UP(KC_LCTRL),UP(KC_LGUI),TYPE(KC_NUBS),END);
  495. }
  496. }
  497. break;
  498. case M_MEH_SH_ACUT:
  499. //Macro: M_MEH_SH_ACUT//-----------------------
  500. if (record->event.pressed) {
  501. start = timer_read();
  502. return MACRO(DOWN(KC_LCTRL),DOWN(KC_LSFT),DOWN(KC_LALT),END);
  503. } else {
  504. if (timer_elapsed(start) >150) {
  505. return MACRO(U(LCTRL),U(LSFT),U(LALT),END);
  506. } else {
  507. return MACRO(UP(KC_LCTRL),UP(KC_LALT),TYPE(DE_OSX_ACUT),UP(KC_LSFT),END);
  508. }
  509. }
  510. break;
  511. }
  512. return MACRO_NONE;
  513. };
  514. // Runs just one time when the keyboard initializes.
  515. void matrix_init_user(void) {
  516. };
  517. // Runs constantly in the background, in a loop.
  518. void matrix_scan_user(void) {
  519. uint8_t layer = biton32(layer_state);
  520. ergodox_board_led_off();
  521. ergodox_right_led_1_off();
  522. ergodox_right_led_2_off();
  523. ergodox_right_led_3_off();
  524. switch (layer) {
  525. case SYMB:
  526. ergodox_right_led_1_on();
  527. break;
  528. case MDIA:
  529. ergodox_right_led_2_on();
  530. break;
  531. case NUMB:
  532. ergodox_right_led_3_on();
  533. break;
  534. case EGOS:
  535. ergodox_right_led_1_on();
  536. ergodox_right_led_2_on();
  537. ergodox_right_led_3_on();
  538. break;
  539. default:
  540. // none
  541. break;
  542. }
  543. };