summaryrefslogtreecommitdiff
path: root/users/nstickney/nstickney.c
blob: 3e18e5c8383b2fb1f30cb24bfc75eef341a20fdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include "nstickney.h"

// Tap Dancing
void dance_layer (qk_tap_dance_state_t *state, void *user_data) {
	switch (state -> count) {
		case 1: tap_code(KC_APP); break;
		case 2: layer_invert(NUMP); break;
		case 3: layer_invert(SYMB); break;
		case 4: layer_invert(SYSH); break;
		default: break;
	}
};

void dance_lock_finished (qk_tap_dance_state_t *state, void *user_data) {
	switch (state->count) {
		case 1: register_code(KC_LGUI); break;
		case 2: register_code(KC_NLCK); break;
		case 3: register_code(KC_CAPS); break;
		case 4: register_code(KC_SLCK); break;
		default: break;
	}
};

void dance_lock_reset (qk_tap_dance_state_t *state, void *user_data) {
	switch (state->count) {
		case 1: unregister_code(KC_LGUI); break;
		case 2: unregister_code(KC_NLCK); break;
		case 3: register_code(KC_CAPS); break;
		case 4: register_code(KC_SLCK); break;
		default: break;
	}
};

qk_tap_dance_action_t tap_dance_actions[] = {
	[LOCKS] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, dance_lock_finished, dance_lock_reset),
	[LAYERS] = ACTION_TAP_DANCE_FN(dance_layer)
};

void eeconfig_init_user (void) {
	set_unicode_input_mode(UC_LNX); // Linux
	//set_unicode_input_mode(UC_OSX); // Mac OSX
	//set_unicode_input_mode(UC_WIN); // Windows (with registry key, see wiki)
	//set_unicode_input_mode(UC_WINC); // Windows (with WinCompose, see wiki)
};