summaryrefslogtreecommitdiff
path: root/keyboards/ferris/keymaps/pierrec83
diff options
context:
space:
mode:
authorPierre Chevalier <pierrechevalier83@gmail.com>2020-10-17 20:20:34 +0100
committerGitHub <noreply@github.com>2020-10-17 12:20:34 -0700
commit704934c427af1cc2176fa7c82773e86d89cbfa3c (patch)
tree2699b29924e8496c1ee867a645a52a310ac9a532 /keyboards/ferris/keymaps/pierrec83
parent47ea522e79f2b7bcc2804c309f2b94e029824eb9 (diff)
Ferris reorganization (#10564)
* Add my own keymap * Layer 0: Workman * Layer 1: RSTHD (my own take on it) * Layer 2: Mouse * Layer 3: Navigation * Layer 4: Symbols right * Layer 5: Symbols left * Layer 6: Fn keys * Layer 7: Numbers * Layer 8: Vim and misceallaneaous accessible from any other layer * Move the current code to a 0.1 folder in preparation for upcoming changes Version 0.2 is currently being prototyped and uses an arm chip which will need its own firmware. There is also the Ferris sweep which uses a pro-micro compatible board which will need its own directory. * Move Ferris out of handwired and into the light The keyboard is now well out of the prototype phase as tens of them have been produced and acquired by various people. With 0.2 coming out, adoption is going to increase again as the board will be available for sale at some recognized vendors. Now is probably a good time to recognize its status as more than a prototype :) * Add code for the Ferris Sweep (a.k.a cradio) The Ferris Sweep is a creation of the talented @davidphilipbarr, a.k.a DPB. It has the key layout of a Ferris and uses a pro-micro connected to the switches via direct pins so that diodes are not needed and the soldering is minimal. With their blessing, I took the code for it from DPB's own repo: https://github.com/davidphilipbarr/36keys/tree/master/qmk/cradio and did some adaptations such as removing commented out code, enabling EE_HANDS and mouse keys for consistency with my existing Ferris code. * Fix indentation in rules.mk * Fix indentation in sweep's config * Remove unnecessary lines from sweep's rules.mk * Remove unnecessary lines from sweep's rules.mk * Rename 0.1 to 0_1 This avoids the dot looking like the separation between a filename and its extension. In the same commit, bring matrix.c to the 0_1 folder as this was needed for the code to compile properly (matrix.c is referred to in the readme under `0_1` and is specific to that revision of the firmware). * Update copyright statements for Sweep
Diffstat (limited to 'keyboards/ferris/keymaps/pierrec83')
-rw-r--r--keyboards/ferris/keymaps/pierrec83/config.h39
-rw-r--r--keyboards/ferris/keymaps/pierrec83/keymap.json118
-rw-r--r--keyboards/ferris/keymaps/pierrec83/readme.md43
3 files changed, 200 insertions, 0 deletions
diff --git a/keyboards/ferris/keymaps/pierrec83/config.h b/keyboards/ferris/keymaps/pierrec83/config.h
new file mode 100644
index 0000000000..cf0fb7478e
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/config.h
@@ -0,0 +1,39 @@
+/*
+Copyright 2020 Pierre Chevalier <pierrechevalier83@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/>.
+*/
+
+#pragma once
+// Set the mouse settings to a comfortable speed/accuracy trade-off,
+// assuming a screen refresh rate of 60 Htz or higher
+// The default is 50. This makes the mouse ~3 times faster and more accurate
+#define MOUSEKEY_INTERVAL 16
+// The default is 20. Since we made the mouse about 3 times faster with the previous setting,
+// give it more time to accelerate to max speed to retain precise control over short distances.
+#define MOUSEKEY_TIME_TO_MAX 40
+// The default is 300. Let's try and make this as low as possible while keeping the cursor responsive
+#define MOUSEKEY_DELAY 100
+// It makes sense to use the same delay for the mouseweel
+#define MOUSEKEY_WHEEL_DELAY 100
+// The default is 100
+#define MOUSEKEY_WHEEL_INTERVAL 50
+// The default is 40
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 100
+
+// Pick good defaults for enabling homerow modifiers
+#define TAPPING_TERM 200
+#define PERMISSIVE_HOLD
+#define IGNORE_MOD_TAP_INTERRUPT
+#define TAPPING_FORCE_HOLD
diff --git a/keyboards/ferris/keymaps/pierrec83/keymap.json b/keyboards/ferris/keymaps/pierrec83/keymap.json
new file mode 100644
index 0000000000..2372e7e372
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/keymap.json
@@ -0,0 +1,118 @@
+{ "version": 1,
+ "notes": "My awesome keymap",
+ "documentation": "\"This file is a QMK Configurator export. You can import this at <https://config.qmk.fm>. It can also be used directly with QMK's source code.\n\nTo setup your QMK environment check out the tutorial: <https://docs.qmk.fm/#/newbs>\n\nYou can convert this file to a keymap.c using this command: `qmk json2c {keymap}`\n\nYou can compile this keymap using this command: `qmk compile {keymap}`\"\n",
+ "keyboard": "handwired/ferris",
+ "keymap": "pierrec83",
+ "layout": "LAYOUT",
+ "layers": [
+ ["KC_Q" , "KC_D" , "KC_R" , "KC_W" , "KC_B",
+ "KC_J" , "KC_F" , "KC_U" , "KC_P" , "KC_SCLN",
+
+ "LSFT_T(KC_A)" , "LT(6,KC_S)" , "LT(2,KC_H)" , "LT(4,KC_T)" , "KC_G",
+ "KC_Y" , "LT(5,KC_N)" , "LT(3,KC_E)" , "LT(7,KC_O)" , "LSFT_T(KC_I)",
+
+ "KC_Z" , "LCTL_T(KC_X)" , "LALT_T(KC_M)" , "KC_C" , "KC_V",
+ "KC_K" , "KC_L" , "LALT_T(KC_COMM)", "LCTL_T(KC_DOT)" , "KC_SLSH",
+
+ "LCA(KC_UP)" , "KC_BSPC",
+ "LT(8,KC_SPC)" , "LCA(KC_DOWN)"
+ ],
+ ["KC_Q" , "KC_C" , "KC_M" , "KC_Y" , "KC_COLN",
+ "KC_Z" , "KC_W" , "KC_COMM" , "KC_U" , "KC_J",
+
+ "LSFT_T(KC_R)" , "LT(6,KC_S)" , "LT(2,KC_T)" , "LT(4,KC_H)" , "KC_X",
+ "KC_TRNS" , "LT(5,KC_N)" , "LT(3,KC_A)" , "LT(7,KC_I)" , "LSFT_T(KC_O)",
+
+ "KC_B" , "LCTL_T(KC_F)" , "LALT_T(KC_G)" , "KC_D" , "KC_V",
+ "KC_ESC" , "KC_L" , "LALT_T(KC_DOT)" , "LCTL_T(KC_BSPC)" , "KC_K",
+
+ "LCA(KC_UP)" , "KC_E",
+ "LT(8,KC_SPC)" , "LCA(KC_DOWN)"
+ ],
+ ["KC_TRNS" , "ANY(LCTL(LSFT(KC_C)))", "KC_TRNS" , "ANY(LCTL(LSFT(KC_V)))", "KC_TRNS",
+ "KC_TRNS" , "KC_BTN1" , "KC_WH_U" , "KC_BTN2" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_BTN2" , "KC_NO" , "KC_BTN1" , "KC_TRNS",
+ "KC_TRNS" , "KC_MS_L" , "KC_MS_D" , "KC_MS_U" , "KC_MS_R",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_WH_L" , "KC_WH_D" , "KC_WH_R" , "KC_TRNS",
+
+ "ANY(LCTL(LSFT(KC_TAB)))", "KC_TRNS",
+ "KC_TRNS" , "LCTL(KC_TAB)"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_PGUP" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_LEFT" , "KC_UP" , "KC_DOWN" , "KC_RGHT" , "KC_TRNS",
+ "KC_TRNS" , "KC_LGUI" , "KC_NO" , "LCTL(KC_LALT)" , "LCA(KC_LSFT)",
+
+ "KC_TRNS" , "KC_HOME" , "KC_PGDN" , "KC_END" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "LGUI(KC_LEFT)" , "KC_TRNS",
+ "KC_TRNS" , "LGUI(KC_RGHT)"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_UNDS" , "KC_PIPE" , "KC_QUOT" , "KC_TRNS",
+
+ "KC_CIRC" , "KC_ASTR" , "KC_AMPR" , "KC_NO" , "KC_TRNS",
+ "KC_HASH" , "KC_TILD" , "KC_SLSH" , "KC_DQUO" , "KC_DLR",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_MINS" , "KC_BSLS" , "KC_GRV" , "KC_TRNS",
+
+ "KC_BRID" , "KC_TRNS",
+ "KC_TRNS" , "KC_BRIU"
+ ],
+ ["KC_TRNS" , "KC_COLN" , "KC_LT" , "KC_GT" , "KC_SCLN",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_LCBR" , "KC_RCBR" , "KC_LPRN" , "KC_RPRN" , "KC_AT",
+ "KC_TRNS" , "KC_NO" , "KC_EQL" , "KC_PLUS" , "KC_PERC",
+
+ "KC_TRNS" , "KC_EXLM" , "KC_LBRC" , "KC_RBRC" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_VOLD" , "KC_TRNS",
+ "KC_TRNS" , "KC_VOLU"
+ ],
+ ["KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F7" , "KC_F8" , "KC_F9" , "KC_F10",
+
+ "KC_TRNS" , "KC_TRNS" , "LCTL(KC_LALT)" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F4" , "KC_F5" , "KC_F6" , "KC_F11",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_F1" , "KC_F2" , "KC_F3" , "KC_F12",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_PSLS" , "KC_7" , "KC_8" , "KC_9" , "KC_PPLS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_0" , "KC_1" , "KC_2" , "KC_3" , "KC_PMNS",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_NO" , "KC_TRNS",
+
+ "KC_PAST" , "KC_4" , "KC_5" , "KC_6" , "KC_PEQL",
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS",
+ "KC_TRNS" , "KC_TRNS"
+ ],
+ ["KC_TRNS" , "KC_ESC" , "KC_COLN" , "KC_TRNS" , "KC_TRNS",
+ "DF(2)" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_DEL",
+
+ "KC_TRNS" , "KC_PERC" , "KC_SLSH" , "KC_ENT" , "KC_EXLM",
+ "DF(1)" , "KC_LGUI" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+
+ "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS" , "KC_TRNS",
+ "DF(0)" , "KC_TRNS" , "RALT_T(KC_COMM)", "RCTL_T(KC_DOT)" , "RESET",
+
+ "KC_TRNS" , "KC_TAB",
+ "KC_NO" , "KC_TRNS"
+ ]
+ ],
+ "author": "@pierrec83"
+}
diff --git a/keyboards/ferris/keymaps/pierrec83/readme.md b/keyboards/ferris/keymaps/pierrec83/readme.md
new file mode 100644
index 0000000000..d96a3bb811
--- /dev/null
+++ b/keyboards/ferris/keymaps/pierrec83/readme.md
@@ -0,0 +1,43 @@
+@pierrec83's personal keymap for the Ferris keyboard
+====================================================
+
+This keymap shares many commonalities with the default keymap.
+See its readme for a write-up on many of the decisions, including
+how to generate the formatted json file with json2crab.py and the
+general philosophy for each layer.
+
+Because this is my own keymap, I didn't refrain from using shortcuts
+that make sense for me and may not make sense for most.
+
+Key differences from the default keymap include:
+
+Alpha layers:
+-------------
+
+Because I only learned to touch type when I switched from qwerty to workman,
+my base layer is workman and my layout doesn't contain a qwerty layer.
+
+My layer 1 hosts a variant of RSTHD that I am developing, inspired from workman's
+focus on reducing side-index-motion. It should become my end game keymap eventually,
+but I still haven't found the time to learn it to a working proficiency.
+
+Secondary thumbs:
+-----------------
+
+Instead of a placeholder 0 and 1, the secondary thumbs on my keymap
+perform the following actions:
+* Navigate to previous and next workspace the base layer
+* Navigate to previous and next tab on the mouse layer
+* Volume control on layer
+* Brightness control on layer
+
+Mouse layer:
+------------
+
+* Copy/Paste shortcuts on the left hand, on the upper row.
+
+Always available layer:
+-----------------------
+
+* Esc and column are placed differently to allow easy vim navigation with the positions of w and q in the workman base layer
+* Enable permanent switch to the RSTHD layer in addition to the mouse layer