Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keymap: Fate Iris Layout #3508

Merged
merged 1 commit into from
Jul 31, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions keyboards/iris/keymaps/fate/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
Copyright 2017 Danny Nguyen <[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/>.
*/

#pragma once

/* QMK DFU configuration */
#define QMK_ESC_OUTPUT F6
#define QMK_ESC_INPUT D7
#define QMK_LED D5
#define QMK_SPEAKER C6

/* Use I2C or Serial, not both */
// #define USE_SERIAL
#define USE_I2C

/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS

#undef RGBLED_NUM
#define RGBLIGHT_ANIMATIONS
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
126 changes: 126 additions & 0 deletions keyboards/iris/keymaps/fate/keymap.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
#include QMK_KEYBOARD_H

extern keymap_config_t keymap_config;

enum iris_layers {
_QWERTY,
_LOWER,
_RAISE,
_ADJUST,
_NUMPAD
};

// Tap Dance Declarations
enum {
TD_LALT_LGUI = 0,
TD_RALT_RGUI
};

#define KC_ KC_TRNS
#define _______ KC_TRNS

#define KC_LOWR MO(_LOWER)
#define KC_RASE MO(_RAISE)
#define KC_NUM TG(_NUMPAD)
#define KC_RST RESET
#define KC_DBUG DEBUG
#define KC_BL_S BL_STEP
#define KC_RTOG RGB_TOG
#define KC_RMD RGB_MOD
#define KC_RRMD RGB_RMOD
#define KC_RHUI RGB_HUI
#define KC_RHUD RGB_HUD
#define KC_RSAI RGB_SAI
#define KC_RSAD RGB_SAD
#define KC_RVAI RGB_VAI
#define KC_RVAD RGB_VAD

#define KC_LAG TD(TD_LALT_LGUI)
#define KC_RAG TD(TD_RALT_RGUI)
#define KC_RSEN MT(MOD_RSFT, KC_ENT)

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[_QWERTY] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
ESC , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 0 ,BSLS,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
TAB , Q , W , E , R , T , Y , U , I , O , P ,BSPC,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
LCTL, A , S , D , F , G , H , J , K , L ,SCLN,QUOT,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
LSFT, Z , X , C , V , B ,ENT , ENT , N , M ,COMM,DOT ,SLSH,RSEN,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
LAG ,LOWR,SPC , SPC ,RASE,RAG
// `----+----+----' `----+----+----'
),

[_LOWER] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CAPS, ,HOME, UP ,END ,PGUP, LEFT,DOWN, UP ,RGHT,INS ,DEL ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
,TILD,LEFT,DOWN,RGHT,PGDN, ,UNDS,PLUS,LCBR,RCBR,PIPE,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
,MPLY,MPRV,MNXT,VOLD,VOLU, , ,HOME,PGDN,PGUP,END ,APP , ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , , ,
// `----+----+----' `----+----+----'
),

[_RAISE] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
F12 , F1 , F2 , F3 , F4 , F5 , F6 , F7 , F8 , F9 ,F10 ,F11 ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
CAPS, ,BTN1,MS_U,BTN2,WH_U, LEFT,DOWN, UP ,RGHT,INS ,DEL ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
,GRV ,MS_L,MS_D,MS_R,WH_D, ,MINS,EQL ,LBRC,RBRC,BSLS,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
,MPLY,MPRV,MNXT,VOLD,VOLU, , ,HOME,PGDN,PGUP,END ,APP , ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , , ,
// `----+----+----' `----+----+----'
),

[_ADJUST] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , , , , , , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
,RMD ,RHUI,RSAI,RVAI,RTOG, ,PSCR,SLCK,PAUS, , ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
,RRMD,RHUD,RSAD,RVAD,BL_S, LEFT,DOWN, UP ,RGHT, , ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
,DBUG, , , ,RST ,NUM , NUM ,HOME,PGDN,PGUP,END ,APP , ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , , ,
// `----+----+----' `----+----+----'
),

[_NUMPAD] = LAYOUT_kc(
//,----+----+----+----+----+----. ,----+----+----+----+----+----.
, , , , , , NLCK, P7 , P8 , P9 ,PSLS, ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , P4 , P5 , P6 ,PAST, ,
//|----+----+----+----+----+----| |----+----+----+----+----+----|
, , , , , , , P1 , P2 , P3 ,PPLS,ENT ,
//|----+----+----+----+----+----+----. ,----|----+----+----+----+----+----|
, , , , , , , , , P0 , P0 ,PDOT,PMNS, ,
//`----+----+----+--+-+----+----+----/ \----+----+----+----+----+----+----'
, , , , ,
// `----+----+----' `----+----+----'
)

};

uint32_t layer_state_set_user(uint32_t state) {
return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
}

// Tap Dance Definitions
qk_tap_dance_action_t tap_dance_actions[] = {
// Tap once for L-Alt, twice for L-GUI
[TD_LALT_LGUI] = ACTION_TAP_DANCE_DOUBLE(KC_LALT, KC_LGUI),
// Tap once for R-Alt, twice for R-GUI
[TD_RALT_RGUI] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, KC_RGUI)
};
23 changes: 23 additions & 0 deletions keyboards/iris/keymaps/fate/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Fate Iris Layout

This keymap is configured for Pro Micro(s) with QMK-DFU bootloader flashed. Please refer to [this guide](https://www.reddit.com/r/olkb/comments/8sxgzb/replace_pro_micro_bootloader_with_qmk_dfu/) for further details on ISP flashing your Pro Micro.

To generate a production-ready .hex file (containing the application and the bootloader), use the production target

make iris/rev2:fate:production

To replace your Pro Micro with QMK-DFU bootloader along with the keymap, setup your ISP Flasher and avrdude, run (This command assumes you're using SparkFun's Pocket AVR Programmer to program):

$ avrdude -p m32u4 -P usb -c usbtiny -U flash:w:"iris_rev2_fate_production.hex" -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m -U lock:w:0x3F:m -v

Command to replace your Pro Micro with QMK-DFU bootloader only:

$ avrdude -p m32u4 -P usb -c usbtiny -U flash:w:"iris_rev2_fate_bootloader.hex" -U lfuse:w:0x5E:m -U hfuse:w:0xD9:m -U efuse:w:0xC3:m -U lock:w:0x3F:m -v

The QMK_ESC is mapped to the ESC key in keymap.c; QMK_LED is mapped to TX_LED on the Pro Micro.

/* QMK DFU configuration */
#define QMK_ESC_OUTPUT F6
#define QMK_ESC_INPUT D7
#define QMK_LED D5
#define QMK_SPEAKER C6
7 changes: 7 additions & 0 deletions keyboards/iris/keymaps/fate/rules.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Bootloader
# This definition is optional, and if your keyboard supports multiple bootloaders of
# different sizes, comment this out, and the correct address will be loaded
# automatically (+60). See bootloader.mk for all options.
BOOTLOADER = qmk-dfu

TAP_DANCE_ENABLE = yes