From 0728200e28102c78bde5f1608633f461ced48df7 Mon Sep 17 00:00:00 2001
From: Rob Hilgefort <rjhilgefort@gmail.com>
Date: Mon, 11 Jan 2021 00:11:42 -0700
Subject: [PATCH] [Keymap] revamped rjhilgefort planck keymap (#11385)

---
 keyboards/planck/keymaps/rjhilgefort/config.h |   1 +
 keyboards/planck/keymaps/rjhilgefort/keymap.c | 273 ++++++++++++------
 .../planck/keymaps/rjhilgefort/readme.md      | 131 ++++++---
 3 files changed, 269 insertions(+), 136 deletions(-)

diff --git a/keyboards/planck/keymaps/rjhilgefort/config.h b/keyboards/planck/keymaps/rjhilgefort/config.h
index e8c13caac5..6fa31cc8a7 100644
--- a/keyboards/planck/keymaps/rjhilgefort/config.h
+++ b/keyboards/planck/keymaps/rjhilgefort/config.h
@@ -36,3 +36,4 @@
 
 // Most tactile encoders have detents every 4 stages
 #define ENCODER_RESOLUTION 4
+
diff --git a/keyboards/planck/keymaps/rjhilgefort/keymap.c b/keyboards/planck/keymaps/rjhilgefort/keymap.c
index 3331915311..57f966e74e 100644
--- a/keyboards/planck/keymaps/rjhilgefort/keymap.c
+++ b/keyboards/planck/keymaps/rjhilgefort/keymap.c
@@ -17,99 +17,89 @@
 #include QMK_KEYBOARD_H
 #include "muse.h"
 
-extern keymap_config_t keymap_config;
 
 enum planck_layers {
-  _QWERTY,
+  _MAC,
+  _LINUX,
   _LOWER,
   _RAISE,
   _ADJUST
 };
 
 enum planck_keycodes {
-  QWERTY = SAFE_RANGE,
+  MAC = SAFE_RANGE,
+  LINUX,
   BACKLIT,
-  EXT_PLV
 };
 
+#define ALT_ESC ALT_T(KC_ESC)
+#define CTL_ESC CTL_T(KC_ESC)
+#define GUI_ESC GUI_T(KC_ESC)
+#define HYPER LGUI(LSFT(KC_LALT))
+
 #define LOWER MO(_LOWER)
 #define RAISE MO(_RAISE)
 
-#define CTRL_ESC MT(MOD_LCTL, KC_ESC)
-#define HYPER LCTL(LALT(QK_LGUI))
-
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 
-/* Qwerty
-* ,-------------------------------------------------------------------------------------------------------.
-* | Tab    |    Q   |    W   |    E   |    R   |   T   |   Y   |   U  |    I   |    O   |   P    | Bksp   |
-* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------|
-* | Ct/Esc |    A   |    S   |    D   |    F   |   G   |   H   |   J  |    K   |    L   |   ;    |  "     |
-* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------|
-* | Shift  |    Z   |    X   |    C   |    V   |   B   |   N   |   M  |    ,   |    .   |   /    | Enter  |
-* |--------+--------+--------+--------+--------+-------+-------+------+--------+--------+--------+--------|
-* |        |  Ctrl  | Raise  |   Alt  |   GUI  |     Space     | Lowr | Hyper  |        |        | Raise  |
-* `-------------------------------------------------------------------------------------------------------'
-*/
-[_QWERTY] = LAYOUT_planck_grid(
-  KC_TAB,   KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,   KC_Y,   KC_U,  KC_I,    KC_O,    KC_P,    KC_BSPC,
-  CTRL_ESC, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,   KC_H,   KC_J,  KC_K,    KC_L,    KC_SCLN, KC_QUOT,
-  KC_LSFT,  KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,   KC_N,   KC_M,  KC_COMM, KC_DOT,  KC_SLSH, KC_ENT,
-  _______,  KC_LCTL, RAISE,   KC_LALT, KC_LGUI, KC_SPC, KC_SPC, LOWER, HYPER,   _______, _______, RAISE
+[_MAC] = LAYOUT_planck_grid(
+// ,-----------------------------------------------------------------------------------------------------------.
+      KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P, KC_BSPC,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     CTL_ESC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  KC_ENT,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______,   RAISE, ALT_ESC, KC_LGUI,  KC_SPC,  KC_SPC,   LOWER,   HYPER, _______, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
+),
+
+[_LINUX] = LAYOUT_planck_grid(
+// ,-----------------------------------------------------------------------------------------------------------.
+      KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P, KC_BSPC,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     ALT_ESC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  KC_ENT,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______,   RAISE, GUI_ESC, KC_LCTL,  KC_SPC,  KC_SPC,   LOWER,   HYPER, _______, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
 ),
 
-/* Lower
-* ,-----------------------------------------------------------------------------------------------------------.
-* |       |   \    |   /    |   [    |   ]    |   ~    |   |    |   =    |   +    |    -    |    _   |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------|
-* |       |   {    |   }    |   (    |   )    |   `    |   ←    |   ↓    |   ↑    |    →    |  Alt   |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------|
-* |       |   !    |   @    |   #    |   $    |   %    |   ^    |   &    |   *    |    (    |    )   |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+---------+--------+--------|
-* |       |        |        |        |        |                 |        |        |         |        |        |
-* `-----------------------------------------------------------------------------------------------------------'
-*/
 [_LOWER] = LAYOUT_planck_grid(
-  _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE, KC_EQL,  KC_PLUS, KC_MINS,  KC_UNDS, _______,
-  _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN, KC_GRV,  KC_LEFT, KC_DOWN, KC_UP,   KC_RIGHT, KC_LALT, _______,
-  _______, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN,  KC_RPRN, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,  _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
+     _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE,  KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN,  KC_GRV, KC_LEFT, KC_DOWN,   KC_UP,KC_RIGHT, _______, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
 ),
 
-/* Raise
-* ,----------------------------------------------------------------------------------------------------------.
-* |       |        |        |        |        |        |        |   7    |   8    |   9    |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       | VolMte | Vol -  | Vol +  | Ply/Pse|        |        |   4    |   5    |   6    |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       | Trak ← | Trak → | Scrn - | Scrn + |        |        |   1    |   2    |   3    |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       |        |        |        |        |                 |        |   0    |   .    |        |        |
-* `----------------------------------------------------------------------------------------------------------'
-*/
 [_RAISE] = LAYOUT_planck_grid(
-  _______, _______, _______, _______, _______, _______, _______, KC_7,    KC_8,    KC_9,    _______, _______,
-  _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, KC_4,    KC_5,    KC_6,    _______, _______,
-  _______, KC_MRWD, KC_MFFD, KC_SLCK, KC_PAUS, _______, _______, KC_1,    KC_2,    KC_3,    _______, _______,
-  _______, _______, _______, _______, _______, _______, _______, KC_0,    KC_0,    KC_DOT,  _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
+     _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______,    KC_7,    KC_8,    KC_9, KC_ASTR, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,    KC_4,    KC_5,    KC_6, KC_PLUS, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, KC_VOLD, _______, _______, _______,    KC_1,    KC_2,    KC_3, KC_BSLS, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, _______, _______, _______, _______, _______,    KC_0,  KC_DOT, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
 ),
 
-/* Adjust (Lower + Raise)
- * ,----------------------------------------------------------------------------------------------------------.
- * |       | Reset  |        |        |        |        |        |        |        |        |        | Del    |
- * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * |       |        | MuMod  | AudOn  | AudOff |        |        | Qwerty |        |        |        |        |
- * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * |       | Voice- | Voice+ | MusOn  | Musoff | MIDIon | MIDIof | TermOn | TermOff|        |        |        |
- * |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
- * |       |        |        |        |        |                 |        |        |        |        |        |
- * `----------------------------------------------------------------------------------------------------------'
- */
 [_ADJUST] = LAYOUT_planck_grid(
-  _______, RESET,   _______, _______, _______, _______, _______, _______, _______,  _______, _______, KC_DEL,
-  _______, _______, MU_MOD,  AU_ON,   AU_OFF,  _______, _______, QWERTY,  _______,  _______, _______, _______,
-  _______, MUV_DE,  MUV_IN,  MU_ON,   MU_OFF,  MI_ON,   MI_OFF,  TERM_ON, TERM_OFF, _______, _______, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______,  _______, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
+     _______,     MAC,   LINUX, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP,  KC_END, _______, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+// |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+     _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+// ,-----------------------------------------------------------------------------------------------------------.
 )
 
 };
@@ -119,10 +109,135 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
   float plover_gb_song[][2]  = SONG(PLOVER_GOODBYE_SOUND);
 #endif
 
-uint32_t layer_state_set_user(uint32_t state) {
+layer_state_t layer_state_set_user(layer_state_t state) {
   return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
 }
 
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+  switch (keycode) {
+    case MAC:
+      if (record->event.pressed) {
+        set_single_persistent_default_layer(_MAC);
+      }
+      return false;
+      break;
+    case LINUX:
+      if (record->event.pressed) {
+        set_single_persistent_default_layer(_LINUX);
+      }
+      return false;
+      break;
+    case BACKLIT:
+      if (record->event.pressed) {
+        register_code(KC_RSFT);
+        #ifdef BACKLIGHT_ENABLE
+          backlight_step();
+        #endif
+        #ifdef KEYBOARD_planck_rev5
+          writePinLow(E6);
+        #endif
+      } else {
+        unregister_code(KC_RSFT);
+        #ifdef KEYBOARD_planck_rev5
+          writePinHigh(E6);
+        #endif
+      }
+      return false;
+      break;
+  }
+  return true;
+}
+
+bool muse_mode = false;
+uint8_t last_muse_note = 0;
+uint16_t muse_counter = 0;
+uint8_t muse_offset = 70;
+uint16_t muse_tempo = 50;
+
+void encoder_update(bool clockwise) {
+  if (muse_mode) {
+    if (IS_LAYER_ON(_RAISE)) {
+      if (clockwise) {
+        muse_offset++;
+      } else {
+        muse_offset--;
+      }
+    } else {
+      if (clockwise) {
+        muse_tempo+=1;
+      } else {
+        muse_tempo-=1;
+      }
+    }
+  } else {
+    if (clockwise) {
+      #ifdef MOUSEKEY_ENABLE
+        tap_code(KC_MS_WH_DOWN);
+      #else
+        tap_code(KC_PGDN);
+      #endif
+    } else {
+      #ifdef MOUSEKEY_ENABLE
+        tap_code(KC_MS_WH_UP);
+      #else
+        tap_code(KC_PGUP);
+      #endif
+    }
+  }
+}
+
+void dip_switch_update_user(uint8_t index, bool active) {
+    switch (index) {
+        case 0: {
+#ifdef AUDIO_ENABLE
+            static bool play_sound = false;
+#endif
+            if (active) {
+#ifdef AUDIO_ENABLE
+                if (play_sound) { PLAY_SONG(plover_song); }
+#endif
+                layer_on(_ADJUST);
+            } else {
+#ifdef AUDIO_ENABLE
+                if (play_sound) { PLAY_SONG(plover_gb_song); }
+#endif
+                layer_off(_ADJUST);
+            }
+#ifdef AUDIO_ENABLE
+            play_sound = true;
+#endif
+            break;
+        }
+        case 1:
+            if (active) {
+                muse_mode = true;
+            } else {
+                muse_mode = false;
+            }
+    }
+}
+
+void matrix_scan_user(void) {
+#ifdef AUDIO_ENABLE
+    if (muse_mode) {
+        if (muse_counter == 0) {
+            uint8_t muse_note = muse_offset + SCALE[muse_clock_pulse()];
+            if (muse_note != last_muse_note) {
+                stop_note(compute_freq_for_midi_note(last_muse_note));
+                play_note(compute_freq_for_midi_note(muse_note), 0xF);
+                last_muse_note = muse_note;
+            }
+        }
+        muse_counter = (muse_counter + 1) % muse_tempo;
+    } else {
+        if (muse_counter) {
+            stop_all_notes();
+            muse_counter = 0;
+        }
+    }
+#endif
+}
+
 bool music_mask_user(uint16_t keycode) {
   switch (keycode) {
     case RAISE:
@@ -132,23 +247,3 @@ bool music_mask_user(uint16_t keycode) {
       return true;
   }
 }
-
-/*
-* Example
-* ,----------------------------------------------------------------------------------------------------------.
-* |       |        |        |        |        |        |        |        |        |        |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       |        |        |        |        |        |        |        |        |        |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       |        |        |        |        |        |        |        |        |        |        |        |
-* |-------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
-* |       |        |        |        |        |                 |        |        |        |        |        |
-* `----------------------------------------------------------------------------------------------------------'
-*
-[_EXAMPLE] = LAYOUT_planck_grid(
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
-  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
-),
-*/
diff --git a/keyboards/planck/keymaps/rjhilgefort/readme.md b/keyboards/planck/keymaps/rjhilgefort/readme.md
index f446a76194..08c0731785 100644
--- a/keyboards/planck/keymaps/rjhilgefort/readme.md
+++ b/keyboards/planck/keymaps/rjhilgefort/readme.md
@@ -1,63 +1,100 @@
 # [🐦 @rjhilgefort](https://twitter.com/rjhilgefort) Planck Layout
 
-A simple and practical layout featuring:
-
-- Hyper Key === CTRL + ALT + GUI 
-- Ctrl/Esc key that is CTRL when held and ESC when tapped
-- Symbols layer that focuses on coding
-- Numpad + media layer
+Fairly straight forward Planck layout, but arranges the symbols more toward coding and features a Mac and Linux base layer instead of multiple Alpha layouts.
 
 ![Imgur](https://i.imgur.com/elygxAb.jpg)
 
+## Features
 
-## Main
-```
-,-------------------------------------------------------------------------------------------------------.
-| Tab    |    Q   |    W   |    E   |    R   |   T   |   Y   |   U  |    I   |    O   |   P    | Bksp   |
-|--------|--------|--------|--------|--------|-------|-------|------|--------|--------|--------|--------|
-| Ct/Esc |    A   |    S   |    D   |    F   |   G   |   H   |   J  |    K   |    L   |   ;    |  "     |
-|--------|--------|--------|--------|--------|-------|-------|------|--------|--------|--------|--------|
-| Shift  |    Z   |    X   |    C   |    V   |   B   |   N   |   M  |    ,   |    .   |   /    | Enter  |
-|--------|--------|--------|--------|--------|-------|-------|------|--------|--------|--------|--------|
-|        |  Ctrl  | Raise  |   Alt  |   GUI  |     Space     | Lowr | Hyper  |        |        | Raise  |
-`-------------------------------------------------------------------------------------------------------'
-```
+Here's some highlights/features of the layout.
+
+-   Ergonomic symbols layer.
+-   Media and Numpad layer.
+-   Supports Mac and Linux as 1st class citizens giving each a dedicated base layer and a media layer for each that matches media keys for each OS. The Linux default layer focuses on `Ctrl` instead of `Super` and vice versa for Mac. (When you set Linux as your base layer, the Linux media layer is what you shift into. Same for the Mac layer when that's the base)
+
+## Layers
+
+#### Base (Mac)
 
-## Lower
 ```
 ,-----------------------------------------------------------------------------------------------------------.
-|       |   \    |   /    |   [    |   ]    |   ~    |   |    |   =    |   +    |    -    |    _   |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|---------|--------|--------|
-|       |   {    |   }    |   (    |   )    |   `    |   ←    |   ↓    |   ↑    |    →    |  Alt   |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|---------|--------|--------|
-|       |   !    |   @    |   #    |   $    |   %    |   ^    |   &    |   *    |    (    |    )   |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|---------|--------|--------|
-|       |        |        |        |        |                 |        |        |         |        |        |
-`-----------------------------------------------------------------------------------------------------------'
+   KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P, KC_BSPC,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  CTL_ESC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  KC_ENT,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______,   RAISE, ALT_ESC, KC_LGUI,  KC_SPC,  KC_SPC,   LOWER,   HYPER, _______, _______, _______
+,-----------------------------------------------------------------------------------------------------------.
 ```
 
-## Raise
+#### Base (Linux)
+
 ```
-,----------------------------------------------------------------------------------------------------------.
-|       |        |        |        |        |        |        |   7    |   8    |   9    |        |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       | VolMte | Vol -  | Vol +  | Ply/Pse|        |        |   4    |   5    |   6    |        |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       | Trak ← | Trak → | Scrn - | Scrn + |        |        |   1    |   2    |   3    |        |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       |        |        |        |        |                 |        |   0    |   .    |        |        |
-`----------------------------------------------------------------------------------------------------------'
+,-----------------------------------------------------------------------------------------------------------.
+   KC_TAB,    KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P, KC_BSPC,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  ALT_ESC,    KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L, KC_SCLN, KC_QUOT,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  KC_LSFT,    KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M, KC_COMM,  KC_DOT, KC_SLSH,  KC_ENT,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______,   RAISE, GUI_ESC, KC_LCTL,  KC_SPC,  KC_SPC,   LOWER,   HYPER, _______, _______, _______
+,-----------------------------------------------------------------------------------------------------------.
 ```
 
-## Adjust (Lower + Raise)
+#### Lower: Symbol Layer
+
 ```
-,----------------------------------------------------------------------------------------------------------.
-|       | Reset  |        |        |        |        |        |        |        |        |        | Del    |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       |        | MuMod  | AudOn  | AudOff |        |        | Qwerty |        |        |        |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       | Voice- | Voice+ | MusOn  | Musoff | MIDIon | MIDIof | TermOn | TermOff|        |        |        |
-|-------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
-|       |        |        |        |        |                 |        |        |        |        |        |
-`----------------------------------------------------------------------------------------------------------'
+,-----------------------------------------------------------------------------------------------------------.
+  _______, KC_BSLS, KC_SLSH, KC_LBRC, KC_RBRC, KC_TILD, KC_PIPE,  KC_EQL, KC_PLUS, KC_MINS, KC_UNDS, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, KC_LCBR, KC_RCBR, KC_LPRN, KC_RPRN,  KC_GRV, KC_LEFT, KC_DOWN,   KC_UP,KC_RIGHT, _______, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, KC_EXLM,   KC_AT, KC_HASH,  KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+,-----------------------------------------------------------------------------------------------------------.
+```
+
+#### Raise: Media & Numbers
+
+```
+,-----------------------------------------------------------------------------------------------------------.
+  _______, _______, KC_BRID, KC_VOLU, KC_BRIU, _______, _______,    KC_7,    KC_8,    KC_9, KC_ASTR, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, KC_MUTE, KC_MPRV, KC_MPLY, KC_MNXT, _______, _______,    KC_4,    KC_5,    KC_6, KC_PLUS, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, KC_VOLD, _______, _______, _______,    KC_1,    KC_2,    KC_3, KC_BSLS, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, _______, _______, _______, _______, _______,    KC_0,  KC_DOT, _______, _______
+,-----------------------------------------------------------------------------------------------------------.
+```
+
+#### Adjust
+
+```
+,-----------------------------------------------------------------------------------------------------------.
+  _______,     MAC,   LINUX, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP,  KC_END, _______, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+,-----------------------------------------------------------------------------------------------------------.
+)
+```
+
+## Building And Flashing
+
+#### CLI
+
+```
+sudo make planck/rev6:rjhilgefort-dualos:flash
+```
+
+#### Docker
+
+```
+util/docker_build.sh planck/rev6:rjhilgefort-dualos:flash
 ```