-#define EECONFIG_MODIFIER_CONTROL_CAPSLOCK (1<<0)
-#define EECONFIG_MODIFIER_ALT_GUI (1<<1)
-#define EECONFIG_MODIFIER_ESC_GRAVE (1<<2)
-#define EECONFIG_MODIFIER_BACKSPACE_BACKSLASH (1<<3)
-#define EECONFIG_MODIFIER_NO_GUI (1<<4)
+/* keyconf bit */
+#define EECONFIG_KEYCONF_SWAP_CONTROL_CAPSLOCK (1<<0)
+#define EECONFIG_KEYCONF_CAPSLOCK_TO_CONTROL (1<<1)
+#define EECONFIG_KEYCONF_SWAP_LALT_LGUI (1<<2)
+#define EECONFIG_KEYCONF_SWAP_RALT_RGUI (1<<3)
+#define EECONFIG_KEYCONF_NO_GUI (1<<4)
+#define EECONFIG_KEYCONF_SWAP_GRAVE_ESC (1<<5)
+#define EECONFIG_KEYCONF_SWAP_BACKSLASH_BACKSPACE (1<<6)
+
+
+/* XXX: Not portable. Bit field order depends on implementation */
+typedef union {
+ uint8_t raw;
+ struct {
+ bool swap_control_capslock:1;
+ bool capslock_to_control:1;
+ bool swap_lalt_lgui:1;
+ bool swap_ralt_rgui:1;
+ bool no_gui:1;
+ bool swap_grave_esc:1;
+ bool swap_backslash_backspace:1;
+ bool reserved:1;
+ };
+} keyconf;
+
+bool eeconfig_is_enabled(void);