]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/edvorakjp/edvorakjp.h
Fixup the WSL install
[qmk_firmware.git] / users / edvorakjp / edvorakjp.h
1 #ifndef USERSPACE
2 #define USERSPACE
3
4 #include "quantum.h"
5 #include "action_layer.h"
6
7 #define EECONFIG_EDVORAK (uint8_t *)20
8
9 extern keymap_config_t keymap_config;
10
11 typedef union {
12   uint8_t raw;
13   struct {
14     bool enable_jp_extra_layer : 1;
15     bool enable_kc_lang        : 1;  // for macOS
16   };
17 } edvorakjp_config_t;
18 extern edvorakjp_config_t edvorakjp_config;
19
20 enum edvorakjp_layers {
21   _EDVORAK = 0,
22   _EDVORAKJ1,
23   _EDVORAKJ2,
24   _QWERTY,
25   _LOWER,
26   _RAISE,
27   _ADJUST,
28   _EXTRA,
29 };
30
31 enum edvorakjp_keycodes {
32   EDVORAK = SAFE_RANGE,
33   QWERTY,
34   LOWER,
35   RAISE,
36   KC_MAC,
37   KC_WIN,
38   KC_EXTON,
39   KC_EXTOFF,
40   KC_JPN,
41   KC_ENG,
42   KC_AI,
43   KC_OU,
44   KC_EI,
45   KC_ANN,
46   KC_ONN,
47   KC_ENN,
48   KC_INN,
49   KC_UNN,
50   NEW_SAFE_RANGE
51 };
52
53 uint8_t eeconfig_read_edvorakjp(void);
54 void eeconfig_update_edvorakjp(uint8_t val);
55
56 void dvorakj_layer_off(void);
57 void update_japanese_mode(bool new_state);
58 void matrix_init_user(void);
59 void matrix_init_keymap(void);
60 uint32_t layer_state_set_user(uint32_t state);
61 uint32_t layer_state_set_keymap(uint32_t state);
62
63 /*
64  * Each process_record_* methods defined here are
65  * return false if processed, or return true if not processed.
66  * You can add your original macros in process_record_keymap() in keymap.c.
67  */
68 bool process_record_keymap(uint16_t keycode, keyrecord_t *record);
69 bool process_record_edvorakjp_ext(uint16_t keycode, keyrecord_t *record);
70 bool process_record_edvorakjp_config(uint16_t keycode, keyrecord_t *record);
71 bool process_record_layer(uint16_t keycode, keyrecord_t *record);
72 bool process_record_ime(uint16_t keycode, keyrecord_t *record);
73 bool process_record_user(uint16_t keycode, keyrecord_t *record);
74
75 #endif