From 59954322025b7f7bea4b7dc08148b5702f08e030 Mon Sep 17 00:00:00 2001
From: FearlessSpiff <fearless.spiff@me.com>
Date: Tue, 8 Mar 2022 03:17:30 +0100
Subject: [Keymap] add mouse controls to Mechwilds Mercutio FearlessSpiff 
 (#16566)

---
 .../mercutio/keymaps/fearless_spiff/config.h       |  9 +++++++++
 .../mercutio/keymaps/fearless_spiff/keymap.c       | 22 +++++++++++++++-------
 .../mercutio/keymaps/fearless_spiff/readme.md      |  7 ++++++-
 .../mercutio/keymaps/fearless_spiff/rules.mk       |  2 +-
 4 files changed, 31 insertions(+), 9 deletions(-)

(limited to 'keyboards')

diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/config.h b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/config.h
index 9d588ed8c0..f29c91f9e0 100644
--- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/config.h
+++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/config.h
@@ -17,3 +17,12 @@
 #pragma once
 
 #define TAPPING_TERM 180
+
+#define MK_KINETIC_SPEED
+#define MOUSEKEY_DELAY 8
+#define MOUSEKEY_INTERVAL 5
+#define MOUSEKEY_MOVE_DELTA 1
+#define MOUSEKEY_INITIAL_SPEED 3
+#define MOUSEKEY_BASE_SPEED 120
+#define MOUSEKEY_DECELERATED_SPEED 100
+#define MOUSEKEY_ACCELERATED_SPEED 1000
diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c
index ada92103c3..36dcd4816f 100644
--- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c
+++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/keymap.c
@@ -36,7 +36,8 @@
 enum layers {
   QWERT,
   FN_1,
-  FN_2
+  FN_2,
+  FN_MOUSE
 };
 
 enum custom_user_keycodes {
@@ -105,26 +106,33 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 
 
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
-  [QWERT] = LAYOUT_all(
+    [QWERT] = LAYOUT_all(
                                                                                                                       KC_ENC,
           TD(TD_TAB_ESC),   KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    DE_Z,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
-          MO(1),   KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    DE_PLUS,          KC_ENT,
+          MO(FN_1), KC_A,   KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    DE_PLUS,          KC_ENT,
           KC_LSFT, DE_LABK, DE_Y,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,           KC_RSFT,
-          KC_LCTL, KC_LGUI, KC_LALT,   LT(2,KC_SPC),  LT(2,KC_SPC),   LT(2,KC_SPC),        KC_RALT, DE_MINS,          KC_RCTL ),
+          KC_LCTL, KC_LGUI, KC_LALT,   LT(FN_2,KC_SPC),   LT(FN_2,KC_SPC),     LT(FN_2,KC_SPC),      KC_RALT, DE_MINS,          KC_RCTL ),
 
     [FN_1] = LAYOUT_all(
                                                                                                                        KC_MUTE,
     	  KC_GESC,          _______, _______, _______, DE_LCBR, DE_RCBR, _______, DE_UDIA, KC_UP,    DE_ODIA, DE_QUES, KC_DEL,
     	  _______,          DE_ADIA, DE_SS,   _______, DE_LPRN, DE_RPRN, _______, KC_LEFT, KC_DOWN, KC_RIGHT, DE_HASH, _______,
-    	  _______, DE_CIRC, DE_ACUT, _______, _______, DE_LBRC, DE_RBRC, KC_HOME, KC_END,  DE_QUOT,  DE_DQUO,          DE_EQL,
-    	  _______,   _______, _______,          _______, _______,          _______,          DE_BSLS, DE_SLSH,         DE_TILD ),
+    	  _______, _______, DE_CIRC, DE_ACUT, _______, DE_LBRC, DE_RBRC, KC_HOME, KC_END,  DE_QUOT,  DE_DQUO,          DE_EQL,
+    	  _______,   _______, _______,    MO(FN_MOUSE),   MO(FN_MOUSE),       MO(FN_MOUSE),          DE_BSLS, DE_SLSH,         DE_TILD ),
 
     [FN_2] = LAYOUT_all(
                                                                                                                       _______,
     	  KC_F1,            KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_BSPC,
     	  KC_1,             KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    _______, _______,
     	  _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_COMM, KC_DOT,           _______,
-    	  _______, _______, _______,          _______, _______,          _______,          _______, _______,          _______ )
+    	  _______, _______, _______,          _______, _______,          _______,          _______, _______,          _______ ),
+
+    [FN_MOUSE] = LAYOUT_all(
+                                                                                                                      _______,
+          _______,          _______, _______, _______, _______, _______, _______, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, _______,
+          _______,          _______, _______, _______, KC_ACL0, _______, KC_WH_U, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______,
+          _______, _______, _______, _______, _______, _______, _______, _______, _______,  _______,  _______,          _______,
+          _______,   _______, _______,        _______,   _______,        _______,          _______, _______,         _______ )
 };
 
 #ifdef ENCODER_ENABLE
diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/readme.md b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/readme.md
index 33240ffbcd..85b3490608 100644
--- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/readme.md
+++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/readme.md
@@ -9,16 +9,21 @@ Features
   - Additional encoder functionality 
     - While holding FN_1, page up and down
     - While holding FN_2, volume up and down
+  - Mouse controls by holding Caps-Space
   - Use my templates for your own layout overview at [Keyboard Layout Editor](http://www.keyboard-layout-editor.com) using my gist [here](https://gist.github.com/FearlessSpiff)
+  - Shout out to [KMonad](https://github.com/kmonad/kmonad) which enabled my laptop keyboard to behave like my Mercutio!
 
 QWERT Layer
 ![image](https://user-images.githubusercontent.com/1927259/148683284-04932e15-a34d-451e-b657-335780033f36.png)
 
 FN_1 Layer
-![image](https://user-images.githubusercontent.com/1927259/148683299-f2c80403-3f29-4ba8-9fc4-957729f30b05.png)
+![image](https://user-images.githubusercontent.com/1927259/157032746-8aa68e1c-27b9-4cf5-88ed-a071d8238f56.png)
 
 FN_2 layer
 ![image](https://user-images.githubusercontent.com/1927259/148683306-364bc59c-b41b-4092-b93b-d7b4fc58567b.png)
 
+FN_MOUSE layer
+![image](https://user-images.githubusercontent.com/1927259/157032817-83922578-8932-42bf-a2d2-f785136b4d4e.png)
+
 
 
diff --git a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/rules.mk b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/rules.mk
index 16f26944e8..fc0ec28153 100644
--- a/keyboards/mechwild/mercutio/keymaps/fearless_spiff/rules.mk
+++ b/keyboards/mechwild/mercutio/keymaps/fearless_spiff/rules.mk
@@ -1,7 +1,7 @@
 WPM_ENABLE = yes
 TAP_DANCE_ENABLE = yes
 VIA_ENABLE = no
-MOUSEKEY_ENABLE = no
+MOUSEKEY_ENABLE = yes
 EXTRAKEY_ENABLE = yes # Audio control and System control
 KEY_LOCK_ENABLE = no
 CONSOLE_ENABLE = no
-- 
cgit v1.2.3