diff --git a/data/keyboards/geometry/compact.xml b/data/keyboards/geometry/compact.xml
index d2ef4914..f9f76bd4 100644
--- a/data/keyboards/geometry/compact.xml
+++ b/data/keyboards/geometry/compact.xml
@@ -26,6 +26,7 @@
+
diff --git a/data/keyboards/keymaps/us.xkb b/data/keyboards/keymaps/us.xkb
index 44efcbb7..244f5646 100644
--- a/data/keyboards/keymaps/us.xkb
+++ b/data/keyboards/keymaps/us.xkb
@@ -271,10 +271,11 @@ xkb_keymap {
key { [ d, D ], [ dollar, U00A3 ] };
key { [ f, F ], [ percent, EuroSign ] };
key { [ g, G ], [ ampersand, U00A5 ] };
- key { [ h, H ], [ minus, underscore ] };
- key { [ j, J ], [ plus, equal ] };
- key { [ k, K ], [ U00FC, asciicircum ] };
- key { [ l, L ], [ U00F6, degree ] };
+ key { [ h, H ], [ minus, asciicircum ] };
+ key { [ j, J ], [ underscore, degree ] };
+ key { [ k, K ], [ plus, equal ] };
+ key { [ l, L ], [ parenleft, braceleft ] };
+ key { [ ], [ parenright, braceright ] };
key { [ Return, Return ], [ Return, Return ] };
key { [ Shift_L, Shift_L ], [ Shift_L, Shift_L ] };
key { [ z, Z ], [ comma, backslash ] };
diff --git a/data/keyboards/symbols/us.xml b/data/keyboards/symbols/us.xml
index 047e968d..dd01d459 100644
--- a/data/keyboards/symbols/us.xml
+++ b/data/keyboards/symbols/us.xml
@@ -94,23 +94,29 @@
h
H
minus
- underscore
+ asciicircum
j
J
- plus
- equal
+ underscore
+ degree
k
K
- parenleft
- braceleft
+ plus
+ equal
l
L
+ parenleft
+ braceleft
+
+
+
+
parenright
braceright
@@ -181,6 +187,6 @@
space
- backspace
+ BackSpace
diff --git a/eek/eek-key.c b/eek/eek-key.c
index 7df2b81d..a2b33381 100644
--- a/eek/eek-key.c
+++ b/eek/eek-key.c
@@ -609,3 +609,11 @@ void eek_key_set_pressed(EekKey *key, gboolean value)
priv->is_pressed = value;
}
+
+gboolean
+eek_key_has_label(EekKey *key)
+{
+ EekSymbol *symbol = eek_key_get_symbol(key);
+ return (eek_symbol_get_label(symbol) != NULL) ||
+ (eek_symbol_get_icon_name(symbol) != NULL);
+}
diff --git a/eek/eek-key.h b/eek/eek-key.h
index 31d8b65b..cd6ae4f0 100644
--- a/eek/eek-key.h
+++ b/eek/eek-key.h
@@ -89,5 +89,7 @@ gboolean eek_key_is_locked (EekKey *key);
void eek_key_set_pressed (EekKey *key,
gboolean value);
+gboolean eek_key_has_label (EekKey *key);
+
G_END_DECLS
#endif /* EEK_KEY_H */
diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c
index 212536ed..eeb7cc3d 100644
--- a/eek/eek-renderer.c
+++ b/eek/eek-renderer.c
@@ -447,6 +447,9 @@ render_key (EekRenderer *self,
PangoRectangle extents = { 0, };
EekColor foreground;
+ if (!eek_key_has_label(key))
+ return;
+
oref = eek_key_get_oref (key);
outline = eek_keyboard_get_outline (priv->keyboard, oref);
if (outline == NULL)
diff --git a/eek/eek-section.c b/eek/eek-section.c
index f0d13312..e2763b9f 100644
--- a/eek/eek-section.c
+++ b/eek/eek-section.c
@@ -500,10 +500,6 @@ keysizer(EekElement *element, gpointer user_data)
{
EekKey *key = EEK_KEY(element);
- /* Skip keys without symbols for the current level. */
- if (!eek_key_get_symbol(key))
- return;
-
EekKeyboard *keyboard = EEK_KEYBOARD(user_data);
uint oref = eek_key_get_oref (key);
EekOutline *outline = eek_keyboard_get_outline (keyboard, oref);
@@ -539,8 +535,8 @@ keycounter (EekElement *element, gpointer user_data)
{
EekKey *key = EEK_KEY(element);
- /* Skip keys without symbols for the current level. */
- if (!eek_key_get_symbol(key))
+ /* Skip keys without labels for the current level. */
+ if (!eek_key_has_label(key))
return;
struct keys_info *data = user_data;
@@ -558,8 +554,8 @@ keyplacer(EekElement *element, gpointer user_data)
{
EekKey *key = EEK_KEY(element);
- /* Skip keys without symbols for the current level. */
- if (!eek_key_get_symbol(key))
+ /* Skip keys without labels for the current level. */
+ if (!eek_key_has_label(key))
return;
double *current_offset = user_data;