aboutsummaryrefslogtreecommitdiffstats
path: root/src/keysym.h
blob: 620ef31bf27a23b7dd7a3b134c4c7d3a954f09c5 (plain) (blame)
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
#pragma once

#include "keycode.h"

#define XXXXXXX KC_NO
#define _______ KC_TRNS

#define MASK(hi, lo) ((1 << (hi)) - (1 << (lo)))

#define IS_CODE(x)   (!((x) & MASK(B_MODMAX+1, B_MODMIN)))
#define IS_CTRL(x)   ((x) & (1 << B_CTRL))
#define IS_SHIFT(x)  ((x) & (1 << B_SHIFT))
#define IS_ALT(x)    ((x) & (1 << B_ALT))
#define IS_GUI(x)    ((x) & (1 << B_GUI))
#define IS_RIGHT(x)  ((x) & (1 << B_RIGHT))
#define IS_TOGGLE(x) ((x) & (1 << B_TOGGLE))
#define IS_SWITCH(x) ((x) & (1 << B_SWITCH))
#define IS_MODSWT(x) ((x) & (1 << B_MODSWT))

#define TO_CODE(x)  ((x) & 0xFF)
#define TO_LAYER(x) ((x) & 0xFF)

#define LCTL(x) ((x) | (1 << B_CTRL))
#define LSFT(x) ((x) | (1 << B_SHIFT))
#define LALT(x) ((x) | (1 << B_ALT))
#define LGUI(x) ((x) | (1 << B_GUI))
#define RCTL(x) (LCTL(x) | (1 << B_RIGHT))
#define RSFT(x) (LSFT(x) | (1 << B_RIGHT))
#define RALT(x) (LALT(x) | (1 << B_RIGHT))
#define RGUI(x) (LGUI(x) | (1 << B_RIGHT))

#define LOPT(x) LALT(x)
#define LCMD(x) LGUI(x)
#define LWIN(x) LGUI(x)
#define ALGR(x) RALT(x)
#define ROPT(x) RALT(x)
#define RCMD(x) RGUI(x)

#define C(x) LCTL(x)
#define S(x) LSFT(x)
#define A(x) LALT(x)
#define G(x) LGUI(x)

#define SW(x) ((x) | (1 << B_SWITCH))
#define TO(x) ((x) | (1 << B_TOGGLE))
#define MO(x) ((x) | (1 << B_MODSWT))

#define CS(x) C(MO(x))
#define GS(x) G(MO(x))

#define B_MODMIN B_TOGGLE
#define B_MODMAX B_MODSWT

enum {
	B_CTRL = 8,
	B_SHIFT,
	B_ALT,
	B_GUI,
	B_RIGHT,
	B_TOGGLE,
	B_SWITCH,
	B_MODSWT,
};