summaryrefslogtreecommitdiffstats
path: root/keyboards/satan
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/satan')
-rw-r--r--keyboards/satan/keymaps/ben_iso/Makefile21
-rw-r--r--keyboards/satan/keymaps/ben_iso/config.h58
-rw-r--r--keyboards/satan/keymaps/ben_iso/keymap.c122
-rw-r--r--keyboards/satan/keymaps/ben_iso/readme.md12
-rw-r--r--keyboards/satan/keymaps/mark1/keymap.c30
-rw-r--r--keyboards/satan/keymaps/mark1/readme.md5
-rw-r--r--keyboards/satan/readme.md18
-rw-r--r--keyboards/satan/rules.mk2
-rw-r--r--keyboards/satan/satan.h8
9 files changed, 269 insertions, 7 deletions
diff --git a/keyboards/satan/keymaps/ben_iso/Makefile b/keyboards/satan/keymaps/ben_iso/Makefile
new file mode 100644
index 000000000..2a7ff2779
--- /dev/null
+++ b/keyboards/satan/keymaps/ben_iso/Makefile
@@ -0,0 +1,21 @@
+# 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
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
+ifndef QUANTUM_DIR
+ include ../../../../Makefile
+endif
diff --git a/keyboards/satan/keymaps/ben_iso/config.h b/keyboards/satan/keymaps/ben_iso/config.h
new file mode 100644
index 000000000..84d55698c
--- /dev/null
+++ b/keyboards/satan/keymaps/ben_iso/config.h
@@ -0,0 +1,58 @@
+/*
+Copyright 2012 Jun Wako <wakojun@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/>.
+*/
+
+#ifndef CONFIG_H_BEN
+#define CONFIG_H_BEN
+
+#include "config_common.h"
+#include "../../config.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define PRODUCT_ID 0x6060
+#define DEVICE_VER 0x0003
+#define MANUFACTURER SATAN
+#define PRODUCT GH60
+#define DESCRIPTION QMK keyboard firmware for Satan GH60 with WS2812 support
+
+/*MOUSE CONFIG OPTIONS */
+
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_TIME_TO_MAX 45
+#define MOUSEKEY_MAX_SPEED 3
+#define MOUSEKEY_WHEEL_DELAY 0
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
+
+#endif
diff --git a/keyboards/satan/keymaps/ben_iso/keymap.c b/keyboards/satan/keymaps/ben_iso/keymap.c
new file mode 100644
index 000000000..048205898
--- /dev/null
+++ b/keyboards/satan/keymaps/ben_iso/keymap.c
@@ -0,0 +1,122 @@
+#include "satan.h"
+
+#define BASE 0 // Default layer
+#define SPACE 1 // Space layer
+#define NUMPAD 2 // Alt layer
+#define CAPS 3 // Caps layer
+#define FN1 4 // Generic function layer
+
+#define MAC0 M(0) //
+#define MAC1 M(1) //
+#define MAC2 M(2) //
+#define MAC3 M(3) //
+#define MAC4 M(4) //
+#define MAC5 M(5) //
+#define MAC6 M(6) //
+#define MAC7 M(7) //
+#define MAC8 M(8) //
+#define MAC9 M(9) //
+#define GRAV KC_GRV //
+#define MEDI F(FNO1)//
+
+// General shortenings
+#define ESCA KC_ESC
+#define MINS KC_MINS
+#define EQUL KC_EQL
+#define BSPC KC_BSPC
+#define DELE KC_DEL
+#define LBRC KC_LBRC
+#define RBRC KC_RBRC
+#define ALTR KC_RALT
+#define SCLN KC_SCLN
+#define QUOT KC_QUOT
+#define NUHS KC_NUHS
+#define ENTE KC_ENT
+#define NUBS KC_NUBS // Less/ greater sign
+#define COMM KC_COMM // Comma
+#define FSTO KC_DOT // Full stop
+#define SLSH KC_SLSH
+#define ALTL KC_LALT
+#define GUIL KC_LGUI
+#define GUIR KC_RGUI
+#define MENO KC_MENU
+
+// Special Actions and Media Keys
+#define INSE KC_INS // Insert here
+#define HOME KC_HOME // Go to beginning of line
+#define ENDI KC_END // go to end of line
+#define PSCR KC_PSCR // Print Screen
+#define SLCK KC_SLCK // go to end of line
+#define PGDN KC_PGDN // go to end of line
+#define PGUP KC_PGUP // go to end of line
+#define PLPS KC_MPLY // Play/Pause
+#define PAUS KC_PAUS // Pause button
+#define MUTE KC_MUTE // Mute sound
+#define VOLU KC_VOLU // Volume increase
+#define VOLD KC_VOLD // Volume decrease
+#define MNXT KC_MNXT // next track
+#define MPRV KC_MPRV // prev track
+#define MSTP KC_MSTP // stop playing
+#define MSEL KC_MSEL // Select media (Start playing it)
+#define MAIL KC_MAIL // Open default mail app
+#define CALC KC_CALC // Open default calculator app
+#define MYCM KC_MYCM // Open default file manager
+
+// increase readability
+#define _______ KC_TRNS
+#define XXXXX KC_NO
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Keymap BASE: (Base Layer) Default Layer
+ * ,-----------------------------------------------------------.
+ * |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |
+ * |-----------------------------------------------------------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| R |
+ * |-----------------------------------------------------------|
+ * |CAPS | A| S| D| F| G| H| J| K| L| ;| '| # | R |
+ * |-----------------------------------------------------------|
+ * |Shft| \ | Z| X| C| V| B| N| M| ,| .| /|Shift |
+ * |-----------------------------------------------------------|
+ * |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl |
+ * `-----------------------------------------------------------|
+ */
+
+[ BASE ] = KEYMAP_ISO_SPLITRSHIFT(
+ KC_ESC, 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_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, XXXXX, \
+ OSL(CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_NUHS, KC_ENT, \
+ KC_LSPO, KC_NUBS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSPC, XXXXX, \
+ KC_LCTL, KC_LGUI,KC_LALT, LT(SPACE, KC_SPC), KC_RALT,OSL(FN1),TG(NUMPAD), KC_RCTL),
+
+[ SPACE ] = KEYMAP(
+ KC_GRAVE, 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_DEL, XXXXX,\
+ _______, _______, _______, _______, MAIL, _______, _______, HOME, KC_UP, PSCR, SLCK, PAUS, PGUP, _______,\
+ _______, _______, _______, PGUP , PGDN, _______, LALT(KC_F4), KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______,\
+ _______, _______, _______, _______, CALC, _______, _______, _______, MUTE, VOLD, VOLU, _______, _______, XXXXX,\
+ _______, _______, _______, _______, _______, _______, _______, _______),
+
+[ NUMPAD ] = KEYMAP( //Numpad and alt shortcuts
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
+ _______, _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_0, _______, _______, XXXXX,\
+ _______, _______, _______, _______, _______, _______, _______, _______),
+
+[ CAPS ] = KEYMAP( //Mostly mouse layer with option for caps too
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
+ _______, _______, KC_MS_ACCEL0, KC_MS_ACCEL1, KC_MS_ACCEL2, _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______,\
+ _______, KC_CAPS, _______, _______, KC_MS_BTN1, KC_MS_BTN2, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
+ _______, _______, _______, _______, _______, _______, _______, _______),
+
+
+[ FN1 ] = KEYMAP( //Functions/settings
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, BL_TOGG, BL_INC, BL_DEC, BL_TOGG, _______, _______, _______,\
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXX,\
+ _______, _______, _______, _______, _______, _______, _______, _______),
+};
+
+
diff --git a/keyboards/satan/keymaps/ben_iso/readme.md b/keyboards/satan/keymaps/ben_iso/readme.md
new file mode 100644
index 000000000..74b7680b2
--- /dev/null
+++ b/keyboards/satan/keymaps/ben_iso/readme.md
@@ -0,0 +1,12 @@
+# UK ISO layout for the Satan GH60
+## By Ben James
+-----
+This layout has a few unique features including:
+* Spacebar activates special features when held:
+ * Arrow keys directly under right hand
+ * Volume control
+ * Fn keys on number row
+ * PageUp/PageDn/Home/other general buttons
+* Mouse control when CAPS is held. Right hand controls mouse direction, left hand controls speed and mouse buttons.
+* Space cadet style brackets when left/right shift are tapped
+
diff --git a/keyboards/satan/keymaps/mark1/keymap.c b/keyboards/satan/keymaps/mark1/keymap.c
new file mode 100644
index 000000000..2e5bddc49
--- /dev/null
+++ b/keyboards/satan/keymaps/mark1/keymap.c
@@ -0,0 +1,30 @@
+#include "satan.h"
+
+#define KC_____ KC_TRNS
+#define KC_FN MO(1) // Fn
+#define KC_FNLK TG(1) // Fn lock
+#define KC_HOME LGUI(KC_LEFT) // Home, or cmd-left
+#define KC_END LGUI(KC_RGHT) // End, or cmd-right
+#define KC_SLP LGUI(LALT(KC_POWER)) // sleep, or cmd-option-power
+#define KC_SCLK LCTL(LSFT(KC_POWER)) // lock screen, or ctrl-shift-power
+
+// Mark I keyboard layout for GH60 Satan
+// http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ // 0: qwerty
+ KEYMAP(
+ KC_ESC, 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_NO,
+ 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_CAPS,KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT,KC_NO, KC_ENT ,
+ KC_LSFT,KC_FN , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH,KC_RSFT,KC_FN ,
+ KC_LCTL,KC_LALT,KC_LGUI, KC_SPC, KC_RGUI,KC_RALT,KC_RCTL,KC_FNLK
+ ),
+ // 1: fn layer
+ KEYMAP(
+ KC_GRV, 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_DEL ,_______,
+ _______,KC_VOLU,_______,_______,_______,_______,_______,KC_HOME,KC_UP ,KC_END ,KC_PGUP,_______,_______,_______,
+ _______,KC_VOLD,KC_MRWD,KC_MPLY,KC_MFFD,_______,_______,KC_LEFT,KC_DOWN,KC_RGHT,KC_PGDN,_______,_______,_______,
+ _______,_______,KC_MUTE,_______,_______,_______,_______,_______,_______,KC_SCLK,KC_SLP ,_______,_______,_______,
+ _______,_______,_______, _______, _______,_______,_______,_______
+ )
+};
diff --git a/keyboards/satan/keymaps/mark1/readme.md b/keyboards/satan/keymaps/mark1/readme.md
new file mode 100644
index 000000000..060faf80c
--- /dev/null
+++ b/keyboards/satan/keymaps/mark1/readme.md
@@ -0,0 +1,5 @@
+# Mark I layout for GH60 Satan
+
+A Mac keyboard for touch typists who enjoy having a Fn key on both the left-hand and right-hand side.
+
+[Layout](http://www.keyboard-layout-editor.com/#/gists/e1cde292bd2094cc3b763206d4d2cfb5)
diff --git a/keyboards/satan/readme.md b/keyboards/satan/readme.md
index 1fd388935..33310ce25 100644
--- a/keyboards/satan/readme.md
+++ b/keyboards/satan/readme.md
@@ -1,7 +1,15 @@
-Satan GH60 keyboard firmware
-======================
-
-TODO: to be updated.
+Satan GH60
+==========
![controller](https://i.imgur.com/9vyRBoT.jpg)
-![power](https://i.imgur.com/pHMZHLP.jpg) \ No newline at end of file
+![power](https://i.imgur.com/pHMZHLP.jpg)
+
+Keyboard Maintainer: QMK Community
+Hardware Supported: Satan GH60 PCB
+Hardware Availability: https://1upkeyboards.com/gh60-satan-pcb.html
+
+Make example for this keyboard (after setting up your build environment):
+
+ make satan-default
+
+See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
diff --git a/keyboards/satan/rules.mk b/keyboards/satan/rules.mk
index 87a4a0595..98200ab02 100644
--- a/keyboards/satan/rules.mk
+++ b/keyboards/satan/rules.mk
@@ -64,3 +64,5 @@ MIDI_ENABLE = no # MIDI controls
AUDIO_ENABLE = no
UNICODE_ENABLE = no # Unicode
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+
+LAYOUTS = 60_ansi 60_iso 60_ansi_split_bs_rshift \ No newline at end of file
diff --git a/keyboards/satan/satan.h b/keyboards/satan/satan.h
index f3cbd5305..5128fd073 100644
--- a/keyboards/satan/satan.h
+++ b/keyboards/satan/satan.h
@@ -31,8 +31,8 @@
{ \
{k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d}, \
{k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d}, \
- {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d}, \
- {k30, XXX, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d}, \
+ {k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d}, \
+ {k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d}, \
{k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, k49, k4a, k4b, k4c, k4d} \
}
/* Satan GH60 ANSI layout
@@ -125,4 +125,8 @@
void matrix_init_user(void);
void matrix_scan_user(void);
+#define LAYOUT_60_ansi KEYMAP_ANSI
+#define LAYOUT_60_iso KEYMAP
+#define LAYOUT_60_ansi_split_bs_rshift KEYMAP_HHKB
+
#endif