A keyboards/handwired/jscotto/scotto9/info.json => keyboards/handwired/jscotto/scotto9/info.json +48 -0
@@ 0,0 1,48 @@
+{
+ "manufacturer": "Joe Scotto",
+ "keyboard_name": "Scotto9",
+ "maintainer": "joe-scotto",
+ "bootloader": "caterina",
+ "diode_direction": "COL2ROW",
+ "features": {
+ "bootmagic": true,
+ "command": false,
+ "console": false,
+ "extrakey": true,
+ "mousekey": true,
+ "nkro": true
+ },
+ "matrix_pins": {
+ // 4, 5, 6
+ "cols": ["D4", "C6", "D7"],
+
+ // 15, 14, 16
+ "rows": ["B1", "B3", "B2"]
+ },
+ "processor": "atmega32u4",
+ "url": "",
+ "usb": {
+ "device_version": "1.0.0",
+ "pid": "0x0000",
+ "vid": "0xFEED"
+ },
+ "layouts": {
+ "LAYOUT_ortho_3x3": {
+ "layout": [
+ { "matrix": [0, 0], "x": 0, "y": 0 },
+ { "matrix": [0, 1], "x": 1, "y": 0 },
+ { "matrix": [0, 2], "x": 2, "y": 0 }
+
+ // Row 2
+ { "matrix": [1, 0], "x": 0, "y": 1 },
+ { "matrix": [1, 1], "x": 1, "y": 1 },
+ { "matrix": [1, 2], "x": 2, "y": 1 }
+
+ // Row 3
+ { "matrix": [2, 0], "x": 0, "y": 2 },
+ { "matrix": [2, 1], "x": 1, "y": 2 },
+ { "matrix": [2, 2], "x": 2, "y": 2 }
+ ]
+ }
+ }
+}
A keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c => keyboards/handwired/jscotto/scotto9/keymaps/default/keymap.c +27 -0
@@ 0,0 1,27 @@
+/*
+Copyright 2022 Joe Scotto
+
+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/>.
+*/
+
+#include QMK_KEYBOARD_H
+
+// Keymap
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_3x3(
+ KC_1, KC_2, KC_3,
+ KC_4, KC_5, KC_6,
+ KC_7, KC_8, KC_9
+ )
+};
A keyboards/handwired/jscotto/scotto9/readme.md => keyboards/handwired/jscotto/scotto9/readme.md +25 -0
@@ 0,0 1,25 @@
+# Scotto9
+
+
+
+A 9 key handwired macropad. Case files available [here](https://github.com/joe-scotto/keyboards.git).
+
+- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
+- Hardware Supported: ATmega32U4
+- Hardware Availability: [Amazon](https://amazon.com)
+
+# Compiling
+
+Make example for this keyboard (after setting up your build environment):
+
+ make handwired/jscotto/scotto9:default
+
+Flashing example for this keyboard:
+
+ make handwired/jscotto/scotto9:default
+
+# Bootloader
+
+Uses [bootmagic](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_bootmagic.md) allowing you to hold the top left key (0, 0) when plugging the board in to enter bootloader mode.
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
A keyboards/handwired/jscotto/scotto9/rules.mk => keyboards/handwired/jscotto/scotto9/rules.mk +1 -0
@@ 0,0 1,1 @@
+# This file intentionally left blank
M users/dshields/config.h => users/dshields/config.h +4 -1
@@ 4,7 4,10 @@
#define USB_MAX_POWER_CONSUMPTION 100
#define ONESHOT_TAP_TOGGLE 2
#define ONESHOT_TIMEOUT 3000
-#define RETRO_TAPPING
+#define IGNORE_MOD_TAP_INTERRUPT
+#define PERMISSIVE_HOLD_PER_KEY
+#define TAPPING_FORCE_HOLD_PER_KEY
+#define TAPPING_TERM 200
#define BACKLIGHT_BREATHING
#define DYNAMIC_MACRO_NO_NESTING
M users/dshields/dshields.c => users/dshields/dshields.c +27 -0
@@ 29,3 29,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
return true;
}
+bool get_tapping_force_hold(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MT_A:
+ case MT_S:
+ case MT_D:
+ case MT_F:
+ case MT_J:
+ case MT_K:
+ case MT_L:
+ case MT_SCLN:
+ return true;
+ default:
+ return false;
+ }
+}
+
+bool get_permissive_hold(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MT_SPC:
+ case MT_BSPC:
+ case MT_ESC:
+ return true;
+ default:
+ return false;
+ }
+}
+