From c805c106721147df7451a68e80ffcdd3da88109d Mon Sep 17 00:00:00 2001
From: Sergi Meseguer <zigotica@gmail.com>
Date: Thu, 1 Jun 2023 11:25:49 +0200
Subject: [PATCH] [Keymap] z12 zigotica keymap tweaks (#20990)

---
 keyboards/z12/keymaps/zigotica/keymap.c | 43 +++++++++++++++++--------
 keyboards/z12/keymaps/zigotica/oled.c   | 31 ++++++++++++------
 2 files changed, 51 insertions(+), 23 deletions(-)

diff --git a/keyboards/z12/keymaps/zigotica/keymap.c b/keyboards/z12/keymaps/zigotica/keymap.c
index ef01561f1a..f4f5709fe0 100644
--- a/keyboards/z12/keymaps/zigotica/keymap.c
+++ b/keyboards/z12/keymaps/zigotica/keymap.c
@@ -38,9 +38,10 @@ void raw_hid_receive(uint8_t* data, uint8_t length) {
 
 enum custom_keycodes {
     VIM_SIF = SAFE_RANGE,
-    VIM_SIP,
-    VIM_RIF,
-    VIM_RIP,
+    VIM_FORMAT,
+    VIM_GODEF,
+    VIM_RENSYM,
+    VIM_CODEACT,
     VIM_NEW
 };
 
@@ -49,31 +50,45 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
         case VIM_SIF:// Search in File
             if (record->event.pressed) {
                 register_code(KC_ESC);
-                tap_code(KC_SLASH);
+                tap_code(KC_SPACE);
+                tap_code(KC_S);
+                tap_code(KC_C);
             } else { // released
                 unregister_code(KC_ESC);
             }
         break;
-        case VIM_SIP:// Search in Project
+        case VIM_FORMAT:// Autoformat file
             if (record->event.pressed) {
                 register_code(KC_ESC);
-                SEND_STRING(":Ag ");
+                tap_code(KC_F9);
             } else { // released
                 unregister_code(KC_ESC);
             }
         break;
-        case VIM_RIF:// Replace in File
+        case VIM_GODEF:// Go to Definition
             if (record->event.pressed) {
                 register_code(KC_ESC);
-                SEND_STRING(":%s/a/b/g");
+                tap_code(KC_G);
+                tap_code(KC_D);
             } else { // released
                 unregister_code(KC_ESC);
             }
         break;
-        case VIM_RIP:// Replace in Project
+        case VIM_CODEACT:// Code actions
             if (record->event.pressed) {
                 register_code(KC_ESC);
-                SEND_STRING(":cdo %s/a/b/g");
+                tap_code(KC_SPACE);
+                tap_code(KC_C);
+                tap_code(KC_A);
+            } else { // released
+                unregister_code(KC_ESC);
+            }
+        break;
+        case VIM_RENSYM:// Rename symbol
+            if (record->event.pressed) {
+                register_code(KC_ESC);
+                tap_code(KC_SPACE);
+                tap_code(KC_R);
             } else { // released
                 unregister_code(KC_ESC);
             }
@@ -160,15 +175,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
  * |BUFFER | BROW |  VIM | SCROLL|
  * |-------+------+------+-------|
  *    |-------+-------+-------|
- *    |SRCH FL|REPL FL|NEW BUF|
+ *    |SRCH FL| FORMAT|NEW BUF|
  *    |-------+-------+-------|
- *    |SRCH PR|REPL PR|   o   |
+ *    |REN SYM|GO DEF |CODEACT|
  *    |-------+-------+-------|
  */
     [_VIM] = LAYOUT(
              _______, _______,
     _______, _______, _______,  _______,
-    VIM_SIF,      VIM_RIF,      VIM_NEW,
-    VIM_SIP,      VIM_RIP,      _______
+    VIM_SIF,    VIM_FORMAT,     VIM_NEW,
+    VIM_RENSYM, VIM_GODEF,      VIM_CODEACT
     ),
 };
diff --git a/keyboards/z12/keymaps/zigotica/oled.c b/keyboards/z12/keymaps/zigotica/oled.c
index c96fc0f708..c1befb08d3 100644
--- a/keyboards/z12/keymaps/zigotica/oled.c
+++ b/keyboards/z12/keymaps/zigotica/oled.c
@@ -17,23 +17,36 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "zigotica.h"
 
 static void render_status(void) {
-    oled_write_P(PSTR("z12 v1.0\n"), false);
-    oled_write_P(PSTR("Layer: "), false);
     switch (get_highest_layer(layer_state)) {
-        case _VIM:
-            oled_write_P(PSTR("VIM      \n\nBUFFER         SCROLL"), false);
+        case _BASE:
+            oled_write_P(PSTR("Volume         Scroll"), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("             z12 v1.1"), false);
             break;
         case _FIGMA:
-            oled_write_P(PSTR("FIGMA    \n\nTABS             ZOOM"), false);
+            oled_write_P(PSTR("Tabs             Zoom"), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("ZoomFit  Grids   Full"), false);
+            oled_write_P(PSTR("Zoom100  Next   Color"), false);
             break;
         case _BROWSER:
-            oled_write_P(PSTR("BROWSER  \n\nTABS           SCROLL"), false);
+            oled_write_P(PSTR("Tabs           Scroll"), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("Search   Fav  DevTool"), false);
+            oled_write_P(PSTR("Zoom100  Mute    Read"), false);
             break;
-        case _BASE:
-            oled_write_P(PSTR("BASE     \n\nVOLUME         SCROLL"), false);
+        case _VIM:
+            oled_write_P(PSTR("Buffer         Scroll"), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("Find-F  Format    New"), false);
+            oled_write_P(PSTR("Rename  Go-Def Action"), false);
             break;
         default:
-            oled_write_P(PSTR("Undef\n"), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("                     "), false);
+            oled_write_P(PSTR("                     "), false);
     }
 }