From 4d783d0e69444a660c53c95e83bf6ca011bc6c8e Mon Sep 17 00:00:00 2001
From: Ante Laurijssen <antelaurijssen@gmail.com>
Date: Mon, 22 May 2017 23:30:25 -0400
Subject: More work on my keymap.c and added .png images of my different
 layers.

---
 .../bluebear/S60X-Bluebear-ARROWFN-Layer.png       | Bin 0 -> 17938 bytes
 .../keymaps/bluebear/S60X-Bluebear-BASE-Layer.png  | Bin 0 -> 28068 bytes
 .../keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png  | Bin 0 -> 21329 bytes
 .../keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png | Bin 0 -> 14330 bytes
 .../keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png | Bin 0 -> 16119 bytes
 keyboards/s60_x/keymaps/bluebear/keymap.c          | 219 +++++++++++----------
 6 files changed, 120 insertions(+), 99 deletions(-)
 create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png
 create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png
 create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png
 create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png
 create mode 100644 keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png

(limited to 'keyboards/s60_x')

diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png
new file mode 100644
index 0000000000..a7c6df5044
Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-ARROWFN-Layer.png differ
diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png
new file mode 100644
index 0000000000..e77287a0f1
Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-BASE-Layer.png differ
diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png
new file mode 100644
index 0000000000..c8df0a9e9e
Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MIDI-Layer.png differ
diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png
new file mode 100644
index 0000000000..0e72d10326
Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MORSE-Layer.png differ
diff --git a/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png
new file mode 100644
index 0000000000..c74348389d
Binary files /dev/null and b/keyboards/s60_x/keymaps/bluebear/S60X-Bluebear-MOUSE-Layer.png differ
diff --git a/keyboards/s60_x/keymaps/bluebear/keymap.c b/keyboards/s60_x/keymaps/bluebear/keymap.c
index d383d2e284..32a65a5937 100644
--- a/keyboards/s60_x/keymaps/bluebear/keymap.c
+++ b/keyboards/s60_x/keymaps/bluebear/keymap.c
@@ -121,23 +121,12 @@ enum morse_macros {
   MC_Z = M(35),
   MC_DOT = M(36),
   MC_COMM = M(37),
-  MC_QUES = M(38),
-  MC_APOS = M(39),
-  MC_EXCL = M(40),
-  MC_SLSH = M(41),
-  MC_PARO = M(42),
-  MC_PARC = M(43),
-  MC_AMP = M(44),
-  MC_COL = M(45),
-  MC_SCLN = M(46),
-  MC_EQL = M(47),
-  MC_PLUS = M(48),
-  MC_MINS = M(49),
-  MC_QUOT = M(50),
-  MC_DOLR = M(51),
-  MC_AT = M(52),
-  MC_UNDS = M(53),
-  MC_SPACE = M(54),
+  MC_APOS = M(38),
+  MC_SLSH = M(39),
+  MC_SCLN = M(40),
+  MC_EQL = M(41),
+  MC_MINS = M(42),
+  MC_SPACE = M(43),
 };
 
 //Keymaps
@@ -183,11 +172,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   */
 
   [ARROWFN] = KEYMAP(
-					 KC_NO,  KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9, KC_F10,  KC_F11,  KC_F12,  TO(3),  TO(4), \
+					 KC_TRNS,  KC_F1,  KC_F2,  KC_F3,  KC_F4,  KC_F5,  KC_F6,  KC_F7,  KC_F8,  KC_F9, KC_F10,  KC_F11,  KC_F12,  TO(3),  TO(4), \
 					 KC_CAPS,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_PGUP,  KC_UP,  KC_HOME,  KC_END,  KC_NO,  KC_INS,  KC_DEL, \
-					 KC_TRNS,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_LEFT,  KC_DOWN,  KC_RIGHT,  KC_NO,  KC_NO,  KC_NO,  KC_TRNS,  \
-					 KC_TRNS,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_SPACE,  KC_PGDN,  KC_PSCR,  KC_SLCK,  KC_PAUS,  KC_NO,  KC_TRNS,  KC_NO, \
-					 KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS, KC_TRNS,  KC_TRNS,  KC_TRNS
+					 KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_LEFT,  KC_DOWN,  KC_RIGHT,  KC_NO,  KC_NO,  KC_NO,  KC_TRNS,  \
+					 KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_NO,  KC_SPACE,  KC_PGDN,  KC_PSCR,  KC_SLCK,  KC_PAUS,  KC_NO,  KC_NO,  KC_NO, \
+					 KC_NO,  KC_NO,  KC_NO,  KC_TRNS,  KC_NO, KC_NO,  KC_NO,  KC_TRNS
 					 ),
 
   /* 2: Mouse Keys Layer
@@ -266,54 +255,102 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
   switch(id) {
-  case 0: //Number 0
+  case 0: //Number 0-)
 	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
+	  }
+	  else {
+		return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //-----
+	  }
 	}
 	break;
-  case 1: //Number 1
+  case 1: //Number 1-!
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.----
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.--
+	  }
+	  else {
+		return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(SPACE), END); //.----
+	  }
 	}
 	break;
-  case 2: //Number 2
+  case 2: //Number 2-@
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //..---
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-.
+	  }
+	  else {
+		return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(MINS), T(SPACE), END); //..---
+	  }
 	}
 	break;
   case 3: // Number 3
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //...--
 	}
 	break;
-  case 4: //Number 4
+  case 4: //Number 4-$
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //....-
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..-
+	  }
+	  else {
+		return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //....-
+	  }
 	}
 	break;
   case 5: //Number 5
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(DOT), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.....
 	}
 	break;
   case 6: //Number 6
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(SPACE), END); //-....
 	}
 	break;
-  case 7: //Number 7
+  case 7: //Number 7-&
 	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //--...
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-...
+	  }
+	  else {
+		return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //--...
+	  }
 	}
 	break;
   case 8: //Number 8
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //---..
 	}
 	break;
-  case 9: //Number 9
+  case 9: //Number 9-(
 	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //----.
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--.
+	  }
+	  else {
+		return MACRO(T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //----.
+	  }
 	}
 	break;
   case 10: //Letter A
@@ -526,96 +563,80 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
 	break;
   case 36: //Punctuation .
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(SPACE), END); //.-.-.-
 	}
 	break;
   case 37: //Punctuation ,
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(MINS), T(MINS), T(DOT), T(DOT), T(MINS), T(MINS), T(SPACE), END); //--..--
 	}
 	break;
-  case 38: //Punctuation ?
-	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--..
-	}
-	break;
-  case 39: //Punctuation '
-	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-....-
-	}
-	break;
-  case 40: //Punctuation !
+  case 38: //Punctuation '-"
 	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(MINS), T(SPACE), END); //-.-.--
-	}
-	break;
-  case 41: //Punctuation /
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-..-.
-	}
-	break;
-  case 42: //Punctuation (
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-.--.
-	}
-	break;
-  case 43: //Punctuation )
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //-.--.-
-	}
-	break;
-  case 44: //Punctuation &
-	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //.-...
-	}
-	break;
-  case 45: //Punctuation :
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---...
-	}
-	break;
-  case 46: //Punctuation ;
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-.-.
-	}
-	break;
-  case 47: //Punctuation =
-	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-...-
-	}
-	break;
-  case 48: //Punctuation +
-	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-.
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-.
+	  }
+	  else {
+		return MACRO(T(DOT), T(MINS), T(MINS), T(MINS), T(MINS), T(DOT), T(SPACE), END); //-....-
+	  }
 	}
 	break;
-  case 49: //Punctuation -
+  case 39: //Punctuation /-?
 	if (record->event.pressed) {
-	  return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-....-
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(DOT), T(SPACE), END); //..--..
+	  }
+	  else {
+		return MACRO(T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-..-.
+	  }
 	}
 	break;
-  case 50: //Punctuation "
+  case 40: //Punctuation ;-:
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-..-.
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(MINS), T(MINS), T(MINS), T(DOT), T(DOT), T(DOT), T(SPACE), END); //---...
+	  }
+	  else {
+		return MACRO(T(MINS), T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //-.-.-.
+	  }
 	}
 	break;
-  case 51: //Punctuation $
+  case 41: //Punctuation =-+
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(DOT), T(DOT), T(MINS), T(DOT), T(DOT), T(MINS), T(SPACE), END); //...-..-
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.-.-.
+	  }
+	  else {
+		return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-...-
+	  }
 	}
 	break;
-  case 52: //Punctuation @
+  case 42: //Punctuation --_
 	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(DOT), T(SPACE), END); //.--.-.
-	}
-	break;		
-  case 53: //Punctuation _
-	if (record->event.pressed) {
-	  return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.-
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+		return MACRO(T(DOT), T(DOT), T(MINS), T(MINS), T(DOT), T(MINS), T(SPACE), END); //..--.-
+	  }
+	  else {
+		return MACRO(T(MINS), T(DOT), T(DOT), T(DOT), T(DOT), T(MINS), T(SPACE), END); //-....-
+	  }
 	}
 	break;
-  case 54: //Morse Space
+  case 43: //Morse Space
 	if (record->event.pressed) {
+	  if (keyboard_report->mods & MOD_BIT(KC_LSFT) || MOD_BIT(KC_RSFT)) {
+		unregister_mods(MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT));
+	  }
 	  return MACRO(T(BSLS), T(SPACE), END); //When pressed, this sends a slash followed by a space, making it easier to distinguish words in Morse
 	}
 	break;
-- 
cgit v1.2.3