summaryrefslogtreecommitdiffstats
path: root/users/arkag/arkag.h
diff options
context:
space:
mode:
authorAlexander Kagno <cwre@protonmail.com>2018-09-22 17:43:28 +0200
committerDrashna Jaelre <drashna@live.com>2018-09-22 17:43:28 +0200
commit35e76539e7257a1932ec76882892b999e21c9d4f (patch)
tree5c363a2d7eb8f8d0c5d85394064f5219fa469f03 /users/arkag/arkag.h
parent747cf78b5da17969fe057d77512e276fa6c59fd9 (diff)
downloadqmk_firmware-35e76539e7257a1932ec76882892b999e21c9d4f.tar.gz
qmk_firmware-35e76539e7257a1932ec76882892b999e21c9d4f.tar.xz
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
Diffstat (limited to 'users/arkag/arkag.h')
-rw-r--r--users/arkag/arkag.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/users/arkag/arkag.h b/users/arkag/arkag.h
new file mode 100644
index 000000000..9c81e4487
--- /dev/null
+++ b/users/arkag/arkag.h
@@ -0,0 +1,161 @@
+#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)
+
+#define RAISE MO(1)
+#define LOWER MO(2)
+#define KEEB MO(3)
+#define MEDIA MO(4)
+#define LAZY MO(5)
+
+#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 TAP_A LALT_T(KC_A)
+#define TAP_SCN RALT_T(KC_SCOLON)
+
+#define TAP_S LCTL_T(KC_S)
+#define TAP_L RCTL_T(KC_L)
+
+#define TAP_D LSFT_T(KC_D)
+#define TAP_K RSFT_T(KC_K)
+
+#define TAP_F LGUI_T(KC_F)
+#define TAP_J RGUI_T(KC_J)
+
+#define TAP_EQ LSFT_T(KC_EQUAL)
+#define TAP_5 RSFT_T(KC_5)
+
+#define LED_FLASH_DELAY 150
+#define LED_FADE_DELAY 10
+
+#define INACTIVE_DELAY 200
+#define SLEEP_DELAY 60000
+
+enum {
+ _QWERTY = 0,
+ _RAISE,
+ _LOWER,
+ _KEEB,
+ _MEDIA,
+ _LAZY,
+};
+
+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_P_B,
+ M_C_A_D,
+ M_CALC,
+ M_OS,
+ M_TF,
+ M_TM,
+ M_GGT,
+ M_LOD,
+ M_LENNY,
+ M_BOLD,
+ M_ITAL,
+ M_ULIN,
+ M_SNIPT,
+ M_REPO,
+ M_SHRUG,
+ M_UF,
+};
+
+enum tapdances {
+ TD_3_GRV_ACT = 0,
+ TD_C_CED,
+ TD_GRV_3GRV,
+ TD_SLSH_HTTP,
+ TD_SING_DOUB,
+ TD_HYPH_UNDR,
+ TD_STRK_SHOT,
+ TD_SPECIAL,
+ TD_BRCK_PARN_O,
+ TD_BRCK_PARN_C,
+ TD_LALT_RALT,
+ SPC_SFT_NSFT,
+};
+
+void send_unicode_hex_string(const char *str);
+
+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);
+
+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);