summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--common/command.c9
-rw-r--r--common/eeconfig.h15
2 files changed, 24 insertions, 0 deletions
diff --git a/common/command.c b/common/command.c
index a18eb78006..d7ba3f232a 100644
--- a/common/command.c
+++ b/common/command.c
@@ -135,6 +135,15 @@ static void print_eeprom_config(void)
 
     eebyte = eeconfig_read_keyconf();
     print("keyconf: "); print_hex8(eebyte); print("\n");
+
+    keyconf kc = (keyconf){ .raw = eebyte };
+    print("keyconf.swap_control_capslock: "); print_hex8(kc.swap_control_capslock); print("\n");
+    print("keyconf.capslock_to_control: "); print_hex8(kc.capslock_to_control); print("\n");
+    print("keyconf.swap_lalt_lgui: "); print_hex8(kc.swap_lalt_lgui); print("\n");
+    print("keyconf.swap_ralt_rgui: "); print_hex8(kc.swap_ralt_rgui); print("\n");
+    print("keyconf.no_gui: "); print_hex8(kc.no_gui); print("\n");
+    print("keyconf.swap_grave_esc: "); print_hex8(kc.swap_grave_esc); print("\n");
+    print("keyconf.swap_backslash_backspace: "); print_hex8(kc.swap_backslash_backspace); print("\n");
 }
 
 static bool command_common(uint8_t code)
diff --git a/common/eeconfig.h b/common/eeconfig.h
index 9cf2ff6802..2786995a29 100644
--- a/common/eeconfig.h
+++ b/common/eeconfig.h
@@ -46,6 +46,21 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #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_initialized(void);
 
 void eeconfig_init(void);