summaryrefslogtreecommitdiff
path: root/users/ericgebhart/mod_layers/hrm_gacs.h
blob: 4bcf092732ab8b9c156baa2c417636a6ea4a5157 (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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#pragma once
/*
  Copyright 2018-2022 Eric Gebhart <e.a.gebhart@gmail.com>

  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/>.
*/
// Home row mods variant of mod layers.

// MOD_ROW
// variants.
// input 5 get six, left and right language specific outer edge keys.

// no edge keys.
// input 5 get 5 with mods applied.

// input 6 get 6 with mods applied.

// base cols in out.  5, 5_6, 6.
// input column count, output column count, if different.

// ROW0  - Number row.
// LEFT.
#define ROW0L_5_hrm_gacs(K01, K02, K03, K04, K05)       \
  K01, K02, K03, K04, K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW0L_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  K01,    \
    ROW0L_5_hrm_gacs(K02, K03, K04, K05, K06)

// 5 into 6, derivitive of the first two.
#define ROW0L_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW0L_6_hrm_gacs(LEFT_0, K01, K02, K03, K04, K05)

// RIGHT.
#define ROW0R_5_hrm_gacs(K01, K02, K03, K04, K05)       \
  K01, K02, K03, K04, K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW0R_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  \
  ROW0R_5_hrm_gacs(K01, K02, K03, K04, K05), K06

// 5 into 6, derivitive of the first two.
#define ROW0R_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW0R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_0)


// ROW1
// LEFT.
#define ROW1L_5_hrm_gacs(K01, K02, K03, K04, K05)       \
  K01, K02, K03, LT(_NAV, K04), K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW1L_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  K01,    \
    ROW1L_5_hrm_gacs(K02, K03, K04, K05, K06)

// 5 into 6, derivitive of the first two.
#define ROW1L_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW1L_6_hrm_gacs(LEFT_1, K01, K02, K03, K04, K05)

// RIGHT.
#define ROW1R_5_hrm_gacs(K01, K02, K03, K04, K05)                       \
  K01, K02, K03, K04, LT(_LAYERS, K05)                                  \
    // take and put an extra column in front. Mod K01 how you want it.
#define ROW1R_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  \
  ROW1R_5_hrm_gacs(K01, K02, K03, K04, K05), K06

// 5 into 6, derivitive of the first two.
#define ROW1R_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW1R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_1)



// HOME ROW - ROW2
// home row, shift, alt, ctl, gui - gui, ctl, alt, shift.
// using MT so we can specify left and right.
// caps_word needs left and right shift.

// LEFT.
#define ROW2L_5_hrm_gacs(K01, K02, K03, K04, K05)                       \
  MT(MOD_LGUI, K01), MT(MOD_LALT, K02), MT(MOD_LCTL, K03), MT(MOD_LSFT, K04), K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW2L_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  K01,    \
    ROW2L_5_hrm_gacs(K02, K03, K04, K05, K06)

// 5 into 6, derivitive of the first two.
#define ROW2L_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW2L_6_hrm_gacs(LEFT_2, K01, K02, K03, K04, K05)

// RIGHT.
#define ROW2R_5_hrm_gacs(K01, K02, K03, K04, K05)                       \
  K01, MT(MOD_RSFT, K02),  MT(MOD_RCTL, K03), MT(MOD_RALT, K04), MT(MOD_RGUI, K05) \
    // take and put an extra column in front. Mod K01 how you want it.
#define ROW2R_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  \
  ROW2R_5_hrm_gacs(K01, K02, K03, K04, K05),  K06

// 5 into 6, derivitive of the first two.
#define ROW2R_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW2R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_2)


// ROW 3
// LEFT.
#define ROW3L_5_hrm_gacs(K01, K02, K03, K04, K05)       \
  K01, K02, K03, K04, K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW3L_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  K01,    \
    ROW3L_5_hrm_gacs(K02, K03, K04, K05, K06)

// 5 into 6, derivitive of the first two.
#define ROW3L_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW3L_6_hrm_gacs(LEFT_3,  K01, K02, K03, K04, K05)

// RIGHT.
#define ROW3R_5_hrm_gacs(K01, K02, K03, K04, K05)       \
  K01, LT(_NAV, K02), K03, LT(LANG_N(_SYMB), K04), K05
// take and put an extra column in front. Mod K01 how you want it.
#define ROW3R_6_hrm_gacs(K01, K02, K03, K04, K05, K06)  K01,    \
    ROW3R_5_hrm_gacs(K02, K03, K04, K05, K06)

// 5 into 6, derivitive of the first two.
#define ROW3R_5_6_hrm_gacs(K01, K02, K03, K04, K05)     \
  ROW3R_6_hrm_gacs(K01, K02, K03, K04, K05, RIGHT_3)