diff options
| -rw-r--r-- | keyboards/gh60/keymaps/unxmaal/Makefile | 112 | ||||
| -rw-r--r-- | keyboards/gh60/keymaps/unxmaal/README.md | 20 | ||||
| -rw-r--r-- | keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg | bin | 0 -> 1038926 bytes | |||
| -rw-r--r-- | keyboards/gh60/keymaps/unxmaal/config.h | 190 | ||||
| -rw-r--r-- | keyboards/gh60/keymaps/unxmaal/keymap.c | 228 | ||||
| -rw-r--r-- | keyboards/satan/keymaps/unxmaal/Makefile | 21 | ||||
| -rw-r--r-- | keyboards/satan/keymaps/unxmaal/README.md | 20 | ||||
| -rw-r--r-- | keyboards/satan/keymaps/unxmaal/keymap.c | 119 | 
8 files changed, 710 insertions, 0 deletions
| diff --git a/keyboards/gh60/keymaps/unxmaal/Makefile b/keyboards/gh60/keymaps/unxmaal/Makefile new file mode 100644 index 0000000000..c73cf11417 --- /dev/null +++ b/keyboards/gh60/keymaps/unxmaal/Makefile @@ -0,0 +1,112 @@ +#---------------------------------------------------------------------------- +# On command line: +# +# make all = Make software. +# +# make clean = Clean out built project files. +# +# make coff = Convert ELF to AVR COFF. +# +# make extcoff = Convert ELF to AVR Extended COFF. +# +# make program = Download the hex file to the device. +#                Please customize your programmer settings(PROGRAM_CMD) +# +# make teensy = Download the hex file to the device, using teensy_loader_cli. +#               (must have teensy_loader_cli installed). +# +# make dfu = Download the hex file to the device, using dfu-programmer (must +#            have dfu-programmer installed). +# +# make flip = Download the hex file to the device, using Atmel FLIP (must +#             have Atmel FLIP installed). +# +# make dfu-ee = Download the eeprom file to the device, using dfu-programmer +#               (must have dfu-programmer installed). +# +# make flip-ee = Download the eeprom file to the device, using Atmel FLIP +#                (must have Atmel FLIP installed). +# +# make debug = Start either simulavr or avarice as specified for debugging,  +#              with avr-gdb or avr-insight as the front end for debugging. +# +# make filename.s = Just compile filename.c into the assembler code only. +# +# make filename.i = Create a preprocessed source file for use in submitting +#                   bug reports to the GCC project. +# +# To rebuild project do "make clean" then "make all". +#---------------------------------------------------------------------------- + +# MCU name +#MCU = at90usb1287 +MCU = atmega32u4 + +# Processor frequency. +#     This will define a symbol, F_CPU, in all source code files equal to the +#     processor frequency in Hz. You can then use this symbol in your source code to +#     calculate timings. Do NOT tack on a 'UL' at the end, this will be done +#     automatically to create a 32-bit value in your source code. +# +#     This will be an integer division of F_USB below, as it is sourced by +#     F_USB after it has run through any CPU prescalers. Note that this value +#     does not *change* the processor frequency - it should merely be updated to +#     reflect the processor speed set externally so that the code can use accurate +#     software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +#     This will define a symbol, F_USB, in all source code files equal to the +#     input clock frequency (before any prescaling is performed) in Hz. This value may +#     differ from F_CPU if prescaling is used on the latter, and is required as the +#     raw input clock is fed directly to the PLL sections of the AVR for high speed +#     clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +#     at the end, this will be done automatically to create a 32-bit value in your +#     source code. +# +#     If no clock division is performed on the input clock inside the AVR (via the +#     CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Boot Section Size in *bytes* +#   Teensy halfKay   512 +#   Teensy++ halfKay 1024 +#   Atmel DFU loader 4096 +#   LUFA bootloader  4096 +#   USBaspLoader     2048 +OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +#   comment out to disable the options. +# +BOOTMAGIC_ENABLE ?= yes		# Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE ?= yes		# Mouse keys(+4700) +EXTRAKEY_ENABLE ?= yes		# Audio control and System control(+450) +# CONSOLE_ENABLE ?= yes		# Console for debug(+400) +# COMMAND_ENABLE ?= yes		# Commands for debug and configuration +KEYBOARD_LOCK_ENABLE ?= yes	# Allow locking of keyboard via magic key +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +# SLEEP_LED_ENABLE ?= yes	# Breathing sleep LED during USB suspend +NKRO_ENABLE ?= yes		# USB 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 ?= YES		# MIDI controls +# UNICODE_ENABLE ?= YES		# Unicode +# BLUETOOTH_ENABLE ?= yes	# Enable Bluetooth with the Adafruit EZ-Key HID +RGBLIGHT_ENABLE ?= yes          # Enable RGB Underglow + +ifndef QUANTUM_DIR +	include ../../../../Makefile +endif + diff --git a/keyboards/gh60/keymaps/unxmaal/README.md b/keyboards/gh60/keymaps/unxmaal/README.md new file mode 100644 index 0000000000..52bf97ef4f --- /dev/null +++ b/keyboards/gh60/keymaps/unxmaal/README.md @@ -0,0 +1,20 @@ +Unxmaal's GH60 Layout +===================== +* Mostly stolen from /u/robotmaxtron + +##Quantum MK Firmware +For the full Quantum feature list, see the parent readme.md. + +* Standard Mac ANSI layout +* Spacebar acts as space when tapped, Fn when held +* Menu acts as menu when tapped, Fn2 when held +* Layer1: +  * Top row = `~, F1-F12, Del +  * JKIL = arrow cluster +* Layer2: +  * Top row = media controls +  * JKIL = PgDn/Up/Home/Insert +  * Backspace = Reset + +### Additional Credits +Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards. diff --git a/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg b/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpgBinary files differ new file mode 100644 index 0000000000..4ab8cc31ac --- /dev/null +++ b/keyboards/gh60/keymaps/unxmaal/WS2812-wiring.jpg diff --git a/keyboards/gh60/keymaps/unxmaal/config.h b/keyboards/gh60/keymaps/unxmaal/config.h new file mode 100644 index 0000000000..bb218d6fd4 --- /dev/null +++ b/keyboards/gh60/keymaps/unxmaal/config.h @@ -0,0 +1,190 @@ +/* +Copyright 2012 Jun Wako <[email protected]> + +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 +#define CONFIG_H + +#include "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID    0xFEED +#define PRODUCT_ID   0x6060 +#define DEVICE_VER   0x0001 +#define MANUFACTURER    geekhack +#define PRODUCT         GH60 +#define DESCRIPTION     t.m.k. keyboard firmware for GH60 + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + *         ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ + #define MATRIX_ROW_PINS { D0, D1, D2, D3, D5 } +// Rev A +// #define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B0, B5, B4, D7, D6, B3 } +// Rev B/C +#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* number of backlight levels */ +#define BACKLIGHT_LEVELS 3 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ +  keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1     H +//#define MAGIC_KEY_HELP2     SLASH +//#define MAGIC_KEY_DEBUG     D +//#define MAGIC_KEY_DEBUG_MATRIX  X +//#define MAGIC_KEY_DEBUG_KBD   K +//#define MAGIC_KEY_DEBUG_MOUSE  M +//#define MAGIC_KEY_VERSION    V +//#define MAGIC_KEY_STATUS     S +//#define MAGIC_KEY_CONSOLE    C +//#define MAGIC_KEY_LAYER0_ALT1  ESC +//#define MAGIC_KEY_LAYER0_ALT2  GRAVE +//#define MAGIC_KEY_LAYER0     0 +//#define MAGIC_KEY_LAYER1     1 +//#define MAGIC_KEY_LAYER2     2 +//#define MAGIC_KEY_LAYER3     3 +//#define MAGIC_KEY_LAYER4     4 +//#define MAGIC_KEY_LAYER5     5 +//#define MAGIC_KEY_LAYER6     6 +//#define MAGIC_KEY_LAYER7     7 +//#define MAGIC_KEY_LAYER8     8 +//#define MAGIC_KEY_LAYER9     9 +//#define MAGIC_KEY_BOOTLOADER   PAUSE +//#define MAGIC_KEY_LOCK      CAPS +//#define MAGIC_KEY_EEPROM     E +//#define MAGIC_KEY_NKRO      N +//#define MAGIC_KEY_SLEEP_LED   Z + +/* + * 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 + +/* + * RGB Underglow + * These settings are for the F4 by default: + *  + * + * #define ws2812_PORTREG  PORTF + * #define ws2812_DDRREG   DDRF + * #define ws2812_pin PF4 + * #define RGBLED_NUM 14     // Number of LEDs + * #define RGBLIGHT_HUE_STEP 10 + * #define RGBLIGHT_SAT_STEP 17 + * #define RGBLIGHT_VAL_STEP 17 + * + * The firmware supports 5 different light effects, and the color (hue, saturation, brightness) can be customized in most effects.  + * To control the underglow, you need to modify your keymap file to assign those functions to some keys/key combinations.  + * For details, please check this keymap. keyboard/planck/keymaps/yang/keymap.c +*/ + +/* Deprecated code below +#define ws2812_PORTREG  PORTF  +#define ws2812_DDRREG   DDRF +#define ws2812_pin PF4 +*/  +#define RGB_DI_PIN F4 +#define RGBLIGHT_ANIMATIONS +#define RGBLED_NUM 8         // Number of LEDs +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#endif diff --git a/keyboards/gh60/keymaps/unxmaal/keymap.c b/keyboards/gh60/keymaps/unxmaal/keymap.c new file mode 100644 index 0000000000..7c9bd6a6d7 --- /dev/null +++ b/keyboards/gh60/keymaps/unxmaal/keymap.c @@ -0,0 +1,228 @@ +#include "gh60.h" +#include "action_layer.h" + +#define _BL 0 +#define _AL 1 +#define _FL 2 +#define _UL 3 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +   /* +   *  ANSI Base, Mac style +   * ,-----------------------------------------------------------------------------. +   * |Esc   |  1|   2|   3|   4|   5|   6|   7|   8|   9|   0|   -|   = |   Backsp | +   * |-----------------------------------------------------------------------------| +   * |Tab    |  Q  |  W  |  E  |  R  |  T  |  Y  |  U  |  I|   O|  P|  [|  ]|     \| +   * |-----------------------------------------------------------------------------| +   * |Caps/Fn      |    A|    S|    D|    F|   G|  H|  J|  K|  L|  ;|  '|   Enter  | +   * |-----------------------------------------------------------------------------| +   * |Shift      |    Z|     X|    C|     V|  B|  N|  M|  ,|  .|  /|     Shift     | +   * |-----------------------------------------------------------------------------| +   * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt  |Menu(tapped, Fn2(held)|Ctrl| +   * `-----------------------------------------------------------------------------' +   */ +	[_BL] = 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_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_LCTL,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_NO,KC_Z,KC_X,KC_C,KC_V,KC_B,KC_N,KC_M,KC_COMM,KC_DOT,KC_SLSH,KC_NO,KC_RSFT, \ +        MO(1),KC_LALT,KC_LGUI,        LT(1,KC_SPACE),      KC_NO, KC_RGUI, KC_RALT, LT(2,KC_MENU), KC_RCTL), + +   /* +   * Pok3r style arrow cluster +   * ,-----------------------------------------------------------. +   * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | +   * |-----------------------------------------------------------| +   * |     |   |    |   |   |   |   |   |Up|   |   |   |   |     | +   * |-----------------------------------------------------------| +   * |       |   |   |   |   |   |   |Left|Down|Right|   |   |   | +   * |-----------------------------------------------------------| +   * |        |   |   |   |   |   |   |   |   |   |   |          | +   * |-----------------------------------------------------------| +   * |    |    |    |                        |    |    |    |    | +   * `-----------------------------------------------------------' +   */ +	[_AL] = 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_DELETE, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,   \ +        KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), + + +   /* +   * Secondary function layer +   * ,-------------------------------------------------------------. +   * | | |  |  |  | | | RW|Play|FF| Mute| Vol Down | Vol up |Reset | +   * |-------------------------------------------------------------| +   * |    |   |   |   |  |  |  |   |    |PgUp|    |    |   |       | +   * |-------------------------------------------------------------| +   * |      |   |   |   |   |   |  |Home|PgDown|End|  |   |        | +   * |-------------------------------------------------------------| +   * |        |   |   |   |   |   |   |    |    |    |   |         | +   * |-------------------------------------------------------------| +   * |    |    |    |                          |    |    |    |    | +   * `-------------------------------------------------------------' +   */ +	[_FL] = KEYMAP( +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_MPRV,KC_MPLY,KC_MNXT,KC_MUTE,KC_VOLD,KC_VOLU,RESET, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_PGUP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_HOME,KC_TRNS,KC_HOME,KC_PGDN,KC_END,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), + +   /* +   * Locking layer for controlling the underglow. +   * NOTE: currently unused. +   * +   * ,-----------------------------------------------------------. +   * |    |  |   |   |   |   |   |   |   |   |   |   |   |       | +   * |-----------------------------------------------------------| +   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     | +   * |-----------------------------------------------------------| +   * |       |On|Mode|   |   |   |   |   |   |   |   |   |       | +   * |-----------------------------------------------------------| +   * |        |   |Hue+|Hue-|Sat+|Sat-|Val+|Val-|  |  |   |      | +   * |-----------------------------------------------------------| +   * |    |    |    |                        |    |    |    |    | +   * `-----------------------------------------------------------' +   */ +	[_UL] = KEYMAP( +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,F(4),F(5),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +        KC_TRNS,KC_TRNS,KC_TRNS,F(6),F(7),F(8),F(9),F(10),F(11),KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,   \ +        KC_TRNS,KC_TRNS,KC_TRNS,          KC_TRNS,               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), +}; + +enum function_id { +    RGBLED_TOGGLE, +    RGBLED_STEP_MODE, +    RGBLED_INCREASE_HUE, +    RGBLED_DECREASE_HUE, +    RGBLED_INCREASE_SAT, +    RGBLED_DECREASE_SAT, +    RGBLED_INCREASE_VAL, +    RGBLED_DECREASE_VAL, +    SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { +    [0]  = ACTION_LAYER_MOMENTARY(2),  // Momentary Fn overlay +    [1]  = ACTION_LAYER_TOGGLE(1),     // Toggle Arrow Layer overlay +    [2]  = ACTION_LAYER_TAP_KEY(2, KC_CAPS), // Tap to toggle caps lock and hold to activate function layer +    [3]  = ACTION_LAYER_TOGGLE(3),     // Toggle Underglow Layer overlay +    [4]  = ACTION_FUNCTION(RGBLED_TOGGLE), //Turn on/off underglow +    [5]  = ACTION_FUNCTION(RGBLED_STEP_MODE), // Change underglow mode +    [6]  = ACTION_FUNCTION(RGBLED_INCREASE_HUE), +    [7]  = ACTION_FUNCTION(RGBLED_DECREASE_HUE), +    [8]  = ACTION_FUNCTION(RGBLED_INCREASE_SAT), +    [9]  = ACTION_FUNCTION(RGBLED_DECREASE_SAT), +    [10] = ACTION_FUNCTION(RGBLED_INCREASE_VAL), +    [11] = ACTION_FUNCTION(RGBLED_DECREASE_VAL), +    [12] = ACTION_FUNCTION(SHIFT_ESC), +    [13] = ACTION_LAYER_TAP_KEY(1, KC_SPACE), +}; + +const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) +{ +  // MACRODOWN only works in this function +      switch(id) { +        case 0: +          if (record->event.pressed) { +            register_code(KC_RSFT); +          } else { +            unregister_code(KC_RSFT); +          } +        break; +      } +    return MACRO_NONE; +}; + +void matrix_scan_user(void) { + +// Layer LED indicators +// ESC led on when in function layer, WASD cluster leds enabled when on arrow cluster +    uint32_t layer = layer_state; +    if (layer & (1<<1)) { +        gh60_wasd_leds_on(); +    } else { +        gh60_wasd_leds_off(); +    } + +    if (layer & (1<<2)) { +        gh60_esc_led_on(); +    } else { +        gh60_esc_led_off(); +    } +}; + +#define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +  switch (id) { +    case RGBLED_TOGGLE: +      //led operations +      if (record->event.pressed) { +        rgblight_toggle(); +        } +        break; +    case RGBLED_INCREASE_HUE: +      if (record->event.pressed) { +        rgblight_increase_hue(); +        } +        break; +    case RGBLED_DECREASE_HUE: +      if (record->event.pressed) { +        rgblight_decrease_hue(); +        } +        break; +    case RGBLED_INCREASE_SAT: +      if (record->event.pressed) { +        rgblight_increase_sat(); +        } +        break; +    case RGBLED_DECREASE_SAT: +      if (record->event.pressed) { +        rgblight_decrease_sat(); +        } +        break; +    case RGBLED_INCREASE_VAL: +        if (record->event.pressed) { +          rgblight_increase_val(); +        } +        break; +    case RGBLED_DECREASE_VAL: +        if (record->event.pressed) { +          rgblight_decrease_val(); +        } +        break; +    case RGBLED_STEP_MODE: +        if (record->event.pressed) { +          rgblight_step(); +        } +        break; +    static uint8_t shift_esc_shift_mask; +    // Shift + ESC = ~ +    case SHIFT_ESC: +      shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; +      if (record->event.pressed) { +        if (shift_esc_shift_mask) { +          add_key(KC_GRV); +          send_keyboard_report(); +        } else { +          add_key(KC_ESC); +          send_keyboard_report(); +        } +      } else { +        if (shift_esc_shift_mask) { +          del_key(KC_GRV); +          send_keyboard_report(); +        } else { +          del_key(KC_ESC); +          send_keyboard_report(); +        } +      } +      break; +    } +}; diff --git a/keyboards/satan/keymaps/unxmaal/Makefile b/keyboards/satan/keymaps/unxmaal/Makefile new file mode 100644 index 0000000000..ee94a67b4e --- /dev/null +++ b/keyboards/satan/keymaps/unxmaal/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 = yes        # 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/unxmaal/README.md b/keyboards/satan/keymaps/unxmaal/README.md new file mode 100644 index 0000000000..50ad0cf1fe --- /dev/null +++ b/keyboards/satan/keymaps/unxmaal/README.md @@ -0,0 +1,20 @@ +Unxmaal's GH60 Satan Layout +===================== +* Mostly stolen from /u/robotmaxtron + +##Quantum MK Firmware +For the full Quantum feature list, see the parent readme.md. + +* Standard Mac ANSI layout +* Spacebar acts as space when tapped, Fn when held +* Menu acts as menu when tapped, Fn2 when held +* Layer1: +  * Top row = `~, F1-F12, Del +  * JKIL = arrow cluster +* Layer2: +  * Top row = media controls +  * JKIL = PgDn/Up/Home/Insert +  * Backspace = Reset + +### Additional Credits +Keymap has been based on various keymaps available from the QMK Repo for the GH60-SATAN and KC60 keyboards.
\ No newline at end of file diff --git a/keyboards/satan/keymaps/unxmaal/keymap.c b/keyboards/satan/keymaps/unxmaal/keymap.c new file mode 100644 index 0000000000..657602de02 --- /dev/null +++ b/keyboards/satan/keymaps/unxmaal/keymap.c @@ -0,0 +1,119 @@ +#include "satan.h" + + +// Used for SHIFT_ESC +#define MODS_CTRL_MASK  (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) + +// Each layer gets a name for readability, which is then used in the keymap matrix below. +// The underscores don't mean anything - you can have a layer called STUFF or any other name. +// Layer names don't all need to be of the same length, obviously, and you can also skip them +// entirely and just use numbers. +#define _BL 0 +#define _AL 1 +#define _FL 2 + +#define _______ KC_TRNS + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +   /* +   *  ANSI Base, Mac style +   * ,-----------------------------------------------------------------------------. +   * |Esc   |  1|   2|   3|   4|   5|   6|   7|   8|   9|   0|   -|   = |   Backsp | +   * |-----------------------------------------------------------------------------| +   * |Tab    |  Q  |  W  |  E  |  R  |  T  |  Y  |  U  |  I|   O|  P|  [|  ]|     \| +   * |-----------------------------------------------------------------------------| +   * |Caps/Fn      |    A|    S|    D|    F|   G|  H|  J|  K|  L|  ;|  '|   Enter  | +   * |-----------------------------------------------------------------------------| +   * |Shift      |    Z|     X|    C|     V|  B|  N|  M|  ,|  .|  /|     Shift     | +   * |-----------------------------------------------------------------------------| +   * |Fn|Alt |Gui | Space(tapped), Fn(held) |Gui |Alt  |Menu(tapped, Fn2(held)|Ctrl| +   * `-----------------------------------------------------------------------------' +   */ +[_BL] = KEYMAP_ANSI( +  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,  KC_BSLS, \ +  KC_LCTL, 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_Z,  KC_X,    KC_C,  KC_V,   KC_B,    KC_N,   KC_M,  KC_COMM, KC_DOT,  KC_SLSH,            KC_RSFT, \ +  MO(_AL), KC_LALT,KC_LGUI,        LT(_AL,KC_SPACE),                      KC_RGUI, KC_RALT, LT(_FL,KC_MENU),    KC_RCTL), +   /* +   * Pok3r style arrow cluster +   * ,-----------------------------------------------------------. +   * |`~ | F1| F2| F3| F4| F5| F6| F7| F8| F9| F10| F11| F12|DEL | +   * |-----------------------------------------------------------| +   * |     |   |    |   |   |   |   |   |Up|   |   |   |   |     | +   * |-----------------------------------------------------------| +   * |       |   |   |   |   |   |   |Left|Down|Right|   |   |   | +   * |-----------------------------------------------------------| +   * |        |   |   |   |   |   |   |   |   |   |   |          | +   * |-----------------------------------------------------------| +   * |    |    |    |                        |    |    |    |    | +   * `-----------------------------------------------------------' +   */ +[_AL] = KEYMAP_ANSI( +  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_DELETE, \ +  KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_UP,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +  KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,KC_TRNS, \ +  KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, \ +  KC_TRNS, KC_TRNS,KC_TRNS,          KC_TRNS,               KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS), +  /* Keymap _FL: Function Layer +   * ,-----------------------------------------------------------. +   * |   |   |   |   |   |   |   |   |   |   |   |   |   |  RESET| +   * |-----------------------------------------------------------| +   * |     |   |   |   |   |   |   |   |   |   |   |BL-|BL+|BL   | +   * |-----------------------------------------------------------| +   * |      |   |   |   |   |   |   |       |   |   |   |        | +   * |-----------------------------------------------------------| +   * |  | RGB on|RGB step|Hue+|Hue- |Sat+|Sat-|Val+| Val-| | |   | +   * |-----------------------------------------------------------| +   * |    |    |    |                        |    |    |    |    | +   * `-----------------------------------------------------------' +   */ +[_FL] = KEYMAP_ANSI( +  #ifdef RGBLIGHT_ENABLE +  _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,  \ +  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC,BL_INC, BL_TOGG, \ +  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,        _______, \ +  _______,RGB_TOG,RGB_MOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,_______,_______,_______, \ +  _______,_______,_______,                 _______,                       _______,_______,_______, _______), +  #else +  _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,RESET,  \ +  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, BL_DEC, BL_INC,BL_TOGG, \ +  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ +  _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, \ +  _______,_______,_______,                _______,                        _______,_______,_______,_______), +  #endif +}; + +enum function_id { +    SHIFT_ESC, +}; + +const uint16_t PROGMEM fn_actions[] = { +  [0]  = ACTION_FUNCTION(SHIFT_ESC), +}; + +void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { +  static uint8_t shift_esc_shift_mask; +  switch (id) { +    case SHIFT_ESC: +      shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; +      if (record->event.pressed) { +        if (shift_esc_shift_mask) { +          add_key(KC_GRV); +          send_keyboard_report(); +        } else { +          add_key(KC_ESC); +          send_keyboard_report(); +        } +      } else { +        if (shift_esc_shift_mask) { +          del_key(KC_GRV); +          send_keyboard_report(); +        } else { +          del_key(KC_ESC); +          send_keyboard_report(); +        } +      } +      break; +  } +} | 
