Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "quantum.h"
|
|
|
|
#include "process_keycode/process_tap_dance.h"
|
|
|
|
|
|
|
|
#define EECONFIG_USERSPACE (uint8_t *)20
|
|
|
|
|
|
|
|
#define LRALT TD(TD_LALT_RALT)
|
|
|
|
#define QUOTE TD(TD_SING_DOUB)
|
|
|
|
#define GRAVE TD(TD_GRV_3GRV)
|
|
|
|
#define OBRACK TD(TD_BRCK_PARN_O)
|
|
|
|
#define CBRACK TD(TD_BRCK_PARN_C)
|
|
|
|
#define THREE TD(TD_3_GRV_ACT)
|
|
|
|
#define STRIKE TD(TD_STRK_SHOT)
|
|
|
|
#define HYPHEN TD(TD_HYPH_UNDR)
|
|
|
|
#define CEDILLA TD(TD_C_CED)
|
2019-03-18 23:31:09 +06:00
|
|
|
#define GAME TD(TD_GAME)
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
|
|
|
|
#define RAISE MO(1)
|
|
|
|
#define LOWER MO(2)
|
2019-03-15 01:04:59 +06:00
|
|
|
#define MEDIA MO(3)
|
|
|
|
#define FUNCT MO(4)
|
|
|
|
#define KEEB MO(5)
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
|
|
|
|
#define MOD_CTL_MASK (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL))
|
|
|
|
#define MOD_GUI_MASK (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI))
|
|
|
|
#define MOD_SFT_MASK (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT))
|
|
|
|
|
|
|
|
#define LED_FLASH_DELAY 150
|
|
|
|
|
Keymap: Velocikey implemented at userspace, readme is more helpful (#3974)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* removed homerow mods, more flashy lighting!
* changed delays for lighting.
* velocikey code retro fit into userspace to match typing speed
currently "working" but isn't as reactive as I want.
* Readme and other documentation hidden throughout code
* Added a pretty picture
* pretty picture actually added
* More readme updates
* Velocikey now working inside my userspace!
* Changed repo macro and fixed readme
* Removed media layer, moved media control to LAZY layer
* fixed more merge issues when I had to merge...
2018-09-26 04:38:04 +06:00
|
|
|
#define ACCEL_DELAY 500
|
|
|
|
#define DEACCEL_DELAY 500
|
|
|
|
|
|
|
|
#define INACTIVE_DELAY 250
|
|
|
|
#define SLEEP_DELAY 180000
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
|
|
|
|
enum {
|
|
|
|
_QWERTY = 0,
|
|
|
|
_RAISE,
|
|
|
|
_LOWER,
|
|
|
|
_MEDIA,
|
2019-03-15 01:04:59 +06:00
|
|
|
_FUNCT,
|
|
|
|
_KEEB,
|
2019-03-18 23:31:09 +06:00
|
|
|
_GAMING,
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
};
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
OS_MAC, // Don't assign values
|
|
|
|
OS_WIN,
|
|
|
|
OS_NIX,
|
|
|
|
_OS_COUNT,
|
|
|
|
} OS;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint16_t h;
|
|
|
|
uint8_t s;
|
|
|
|
uint8_t v;
|
|
|
|
} Color;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
no_flash = 0,
|
|
|
|
flash_off,
|
|
|
|
flash_on,
|
|
|
|
} flashState;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
add_fade = 0,
|
|
|
|
sub_fade,
|
|
|
|
} fadeState;
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
active = 0,
|
|
|
|
inactive,
|
|
|
|
sleeping,
|
|
|
|
boot,
|
|
|
|
} activityState;
|
|
|
|
|
|
|
|
enum custom_keycodes {
|
|
|
|
M_PMOD = SAFE_RANGE,
|
|
|
|
M_SMOD,
|
|
|
|
M_OS,
|
2019-03-15 01:04:59 +06:00
|
|
|
M_SFT,
|
|
|
|
M_SPC,
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
};
|
|
|
|
|
|
|
|
enum tapdances {
|
|
|
|
TD_3_GRV_ACT = 0,
|
|
|
|
TD_C_CED,
|
|
|
|
TD_GRV_3GRV,
|
|
|
|
TD_SLSH_HTTP,
|
|
|
|
TD_SING_DOUB,
|
|
|
|
TD_HYPH_UNDR,
|
|
|
|
TD_SPECIAL,
|
|
|
|
TD_BRCK_PARN_O,
|
|
|
|
TD_BRCK_PARN_C,
|
|
|
|
TD_LALT_RALT,
|
2019-03-18 23:31:09 +06:00
|
|
|
TD_GAME,
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
};
|
|
|
|
|
Keymap: Velocikey implemented at userspace, readme is more helpful (#3974)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
* removed homerow mods, more flashy lighting!
* changed delays for lighting.
* velocikey code retro fit into userspace to match typing speed
currently "working" but isn't as reactive as I want.
* Readme and other documentation hidden throughout code
* Added a pretty picture
* pretty picture actually added
* More readme updates
* Velocikey now working inside my userspace!
* Changed repo macro and fixed readme
* Removed media layer, moved media control to LAZY layer
* fixed more merge issues when I had to merge...
2018-09-26 04:38:04 +06:00
|
|
|
void velocikey_accelerate(void);
|
|
|
|
void velocikey_decelerate(void);
|
|
|
|
uint8_t velocikey_match_speed(uint8_t minValue, uint8_t maxValue);
|
|
|
|
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
void set_color (Color new, bool update);
|
|
|
|
void save_color(Color to_save);
|
|
|
|
void reset_color(void);
|
|
|
|
|
|
|
|
Color mod_color(Color current_color, bool should_add, uint8_t change_amount);
|
|
|
|
|
|
|
|
void reverse_fade (void);
|
|
|
|
|
|
|
|
void check_state (void);
|
|
|
|
|
|
|
|
void fade_rgb (void);
|
|
|
|
|
|
|
|
void flash_rgb (void);
|
|
|
|
|
|
|
|
void set_os (uint8_t os, bool update);
|
|
|
|
|
|
|
|
void tap_key(uint8_t keycode);
|
|
|
|
|
|
|
|
void pri_mod(bool press);
|
|
|
|
|
|
|
|
void sec_mod(bool press);
|
|
|
|
|
|
|
|
void surround_type(uint8_t num_of_chars, uint16_t keycode, bool use_shift);
|
|
|
|
|
|
|
|
void long_keystroke(size_t num_of_keys, uint16_t keys[]);
|
|
|
|
|
|
|
|
void dance_grv (qk_tap_dance_state_t *state, void *user_data);
|
|
|
|
void dance_quot (qk_tap_dance_state_t *state, void *user_data);
|
|
|
|
void dance_strk (qk_tap_dance_state_t *state, void *user_data);
|
|
|
|
void dance_3 (qk_tap_dance_state_t *state, void *user_data);
|
|
|
|
void dance_c (qk_tap_dance_state_t *state, void *user_data);
|
2019-03-18 23:31:09 +06:00
|
|
|
void dance_game (qk_tap_dance_state_t *state, void *user_data);
|
Keymap: Arkag Userspace and MechMini2 Layout (#3958)
* deleting arkag branch, forcibly moving changes over to master
* fade_color function added, not tested
* added half functions some stuff
* surround_type function implemented and working.
* added flashing function and removed fading, flashing supports infinite flashing along with controlled number flashes
* added a fade state machine and functionality
* build optimizations, changed fade to bounce between bounds rather than roll over, added a HALMAK layout
* changes to sleep breath function, changed how I will switch to HALMAK
* support for halmak added
* support for activity detection added, condensed fading and flashing state machines, removed support for HALMAK and COLEMAK because arkag is stupid
* changed sleep and inactive behaviors, now the color shifting reverses on state change, yay! save_color and reset_color are made to enable layer color changing to look cooler.
* reformatted some if statements in state detection
* changes to force fade to pause on boot, or plug in.
* Attempting to move over to userspace, pushing to repository for help
* userspace stuff....
* userspace stuff....
* layout changes, working userspace,
Removed left side shift and replaced it with a MT() for LSFT and SPC. Userspace seems to be working properly now! HURRAY
* Layout change
Removed space/shift and reset modifiers to what they were originally. Added homerow modifiers.
* Removed excessive tabs in files
* Moved mods on homerow around...
* changes recommended by @drashna
2018-09-22 21:43:28 +06:00
|
|
|
|
|
|
|
int cur_dance (qk_tap_dance_state_t *state);
|
|
|
|
void spc_finished (qk_tap_dance_state_t *state, void *user_data);
|
|
|
|
void spc_reset (qk_tap_dance_state_t *state, void *user_data);
|