From 92ea53aeda624b9c5d33a86b24661fbf2e319e89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Emrik=20=C3=96stling?= <emrik.ostling@gmail.com>
Date: Fri, 17 Feb 2023 07:29:22 +0100
Subject: [PATCH] Added via keymap for bpiphany/pegasushoof (#19653)

Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
---
 keyboards/bpiphany/pegasushoof/2015/info.json |  2 +-
 keyboards/bpiphany/pegasushoof/info.json      | 16 ++---
 .../bpiphany/pegasushoof/keymaps/via/config.h | 18 ++++++
 .../bpiphany/pegasushoof/keymaps/via/keymap.c | 58 +++++++++++++++++++
 .../bpiphany/pegasushoof/keymaps/via/rules.mk |  9 +++
 5 files changed, 94 insertions(+), 9 deletions(-)
 create mode 100644 keyboards/bpiphany/pegasushoof/keymaps/via/config.h
 create mode 100644 keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c
 create mode 100644 keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk

diff --git a/keyboards/bpiphany/pegasushoof/2015/info.json b/keyboards/bpiphany/pegasushoof/2015/info.json
index 9293a72bcb..7c71a6322d 100644
--- a/keyboards/bpiphany/pegasushoof/2015/info.json
+++ b/keyboards/bpiphany/pegasushoof/2015/info.json
@@ -1,5 +1,5 @@
 {
-    "keyboard_name": "Majestouch TKL \\\\w The Pegasus Hoof 2015",
+    "keyboard_name": "Majestouch TKL The Pegasus Hoof 2015",
     "layouts": {
         "LAYOUT": {
             "layout": [
diff --git a/keyboards/bpiphany/pegasushoof/info.json b/keyboards/bpiphany/pegasushoof/info.json
index 102304092a..e2dfb5642b 100644
--- a/keyboards/bpiphany/pegasushoof/info.json
+++ b/keyboards/bpiphany/pegasushoof/info.json
@@ -1,10 +1,10 @@
 {
-  "manufacturer": "Filco",
-  "url": "",
-  "maintainer": "qmk",
-  "usb": {
-    "vid": "0xFEED",
-    "pid": "0x6050",
-    "device_version": "1.0.4"
-  }
+    "manufacturer": "Filco",
+    "url": "",
+    "maintainer": "qmk",
+    "usb": {
+        "vid": "0x4245",
+        "pid": "0x6050",
+        "device_version": "1.0.0"
+    }
 }
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/via/config.h b/keyboards/bpiphany/pegasushoof/keymaps/via/config.h
new file mode 100644
index 0000000000..efa757f3c5
--- /dev/null
+++ b/keyboards/bpiphany/pegasushoof/keymaps/via/config.h
@@ -0,0 +1,18 @@
+/* Copyright 2023 Emrik Östling
+ *
+ * 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/>.
+ */
+#pragma once
+
+#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c
new file mode 100644
index 0000000000..676468d5c1
--- /dev/null
+++ b/keyboards/bpiphany/pegasushoof/keymaps/via/keymap.c
@@ -0,0 +1,58 @@
+/* Copyright 2016 Daniel Svensson <dsvensson@gmail.com>
+ *
+ * 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
+
+enum custom_layers {
+    KM_QWERTY,
+    KM_MEDIA,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  /* Layer 0: Standard ISO layer */
+  [KM_QWERTY] = LAYOUT(
+    KC_ESC,           KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,     KC_PSCR, KC_SCRL, KC_PAUS,
+    KC_GRV,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC,    KC_INS,  KC_HOME, KC_PGUP,
+    KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,    KC_DEL,  KC_END,  KC_PGDN,
+    KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,
+    KC_LSFT, KC_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,             KC_UP,
+    KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_MENU, MO(1),      KC_LEFT, KC_DOWN, KC_RGHT
+  ),
+  /* Layer 1: Function layer */
+  [KM_MEDIA] = LAYOUT(
+    _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    KC_WAKE, KC_PWR,  KC_SLEP,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLU,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,    _______, _______, KC_VOLD,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
+    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,             KC_MPLY,
+    _______, _______, _______,                            _______,                            _______, _______, QK_BOOT,   _______,    KC_MPRV, KC_MSTP, KC_MNXT
+  )
+};
+
+bool led_update_user(led_t led_state) {
+    if (led_state.caps_lock) {
+        ph_caps_led_on();
+    } else {
+        ph_caps_led_off();
+    }
+
+    if (led_state.scroll_lock) {
+        ph_sclk_led_on();
+    } else {
+        ph_sclk_led_off();
+    }
+    return false;
+}
+
diff --git a/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk b/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk
new file mode 100644
index 0000000000..137260ef20
--- /dev/null
+++ b/keyboards/bpiphany/pegasushoof/keymaps/via/rules.mk
@@ -0,0 +1,9 @@
+# Build Options
+#   change to "no" to disable the options, or define them in the Makefile in
+#   the appropriate keymap folder that will get included automatically
+#
+MOUSEKEY_ENABLE = no        # Mouse keys
+CONSOLE_ENABLE = no         # Console for debug
+COMMAND_ENABLE = no         # Commands for debug and configuration
+VIA_ENABLE = yes
+LTO_ENABLE = yes