diff --git a/data/icons/key-enter.svg b/data/icons/key-enter.svg
new file mode 100644
index 0000000000000000000000000000000000000000..8489dc326ba0329e29dca3f65c859ff54d71a144
--- /dev/null
+++ b/data/icons/key-enter.svg
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"
+     version="1.1" viewBox="0 0 24 24">
+   
+    <path d="M 24,1 L 24,10 C 24,15 20,17 17,17 L 7,17 L 10,20 L 10,23
+             L 7,23 L 0,15 L 7,7 L 10,7 L 10,10 L 7,13 L 17,13
+             C 19,13 20,12 20,10 L 20,1 Z"
+          stroke="none" fill="black" />
+</svg>
diff --git a/data/icons/key-shift.svg b/data/icons/key-shift.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3dc64b04f78000ac00e80a029bb874d5fcf48cc9
--- /dev/null
+++ b/data/icons/key-shift.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+
+<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24"
+     version="1.1" viewBox="0 0 24 24">
+   
+    <path d="M 12,2 L 22,14 L 16,14 L 16,22 L 8,22 L 8,14 L 2,14 Z"
+          stroke="none" fill="black" />
+</svg>
diff --git a/data/keyboards/symbols/us.xml b/data/keyboards/symbols/us.xml
index 323c4c08af606e6a9d70d15eb48417a3d9b070b0..dcc93871b797cfb456d49ce832f496d19f2cb00c 100644
--- a/data/keyboards/symbols/us.xml
+++ b/data/keyboards/symbols/us.xml
@@ -181,11 +181,11 @@
     <keysym keyval="34">quotedbl</keysym>
   </key>
   <key keycode="36" name="RTRN">
-    <keysym keyval="65293">Return</keysym>
+    <keysym keyval="65293" icon="key-enter">Return</keysym>
   </key>
   <key keycode="50" name="LFSH">
-    <keysym keyval="65505">Shift_L</keysym>
-    <keysym keyval="65505">Shift_L</keysym>
+    <keysym keyval="65505" icon="key-shift">Shift_L</keysym>
+    <keysym keyval="65505" icon="key-shift">Shift_L</keysym>
     <keysym keyval="65505" label="=/+">Shift_L</keysym>
     <keysym keyval="65505" label="123">Shift_L</keysym>
   </key>
diff --git a/data/squeekboard.gresources.xml b/data/squeekboard.gresources.xml
index 106e050ff1c2e1beb7ded63d8df855dc8ca1fe18..f1d72c412b64613abb056daa586cd71deaf39902 100644
--- a/data/squeekboard.gresources.xml
+++ b/data/squeekboard.gresources.xml
@@ -32,5 +32,7 @@
    <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/ug.xml</file>
    <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/us.xml</file>
    <file compressed="true" preprocess="xml-stripblanks">keyboards/symbols/zh-bopomofo.xml</file>
+   <file>icons/key-enter.svg</file>
+   <file>icons/key-shift.svg</file>
   </gresource>
 </gresources>
diff --git a/eek/eek-gtk-renderer.c b/eek/eek-gtk-renderer.c
index b00d2361c0bb1b6771a23b9ad38a6dd6328272a7..ce46f9fb966548caba9ddab1f0dcebee3465b9d5 100644
--- a/eek/eek-gtk-renderer.c
+++ b/eek/eek-gtk-renderer.c
@@ -60,6 +60,20 @@ eek_gtk_renderer_real_get_icon_surface (EekRenderer *self,
     GError *error = NULL;
     cairo_surface_t *surface;
 
+    gchar *path = g_strconcat("/sm/puri/squeekboard/icons/", icon_name, ".svg", NULL);
+
+    pixbuf = gdk_pixbuf_new_from_resource_at_scale (path, size, size,
+                                                    TRUE, &error);
+
+    if (pixbuf != NULL)
+        goto found;
+    else {
+        g_warning ("can't get icon pixbuf for %s: %s", path, error->message);
+        g_error_free (error);
+        error = NULL;
+    }
+    g_free(path);
+
     pixbuf = gtk_icon_theme_load_icon (gtk_icon_theme_get_default (),
                                        icon_name,
                                        size,
@@ -73,6 +87,7 @@ eek_gtk_renderer_real_get_icon_surface (EekRenderer *self,
         return NULL;
     }
 
+found:
     surface = pixbuf_to_cairo_surface (pixbuf);
     g_object_unref (pixbuf);
     return surface;
diff --git a/eek/eek-renderer.c b/eek/eek-renderer.c
index 840f88823eec5bff0170266bd64d39f154cea5a7..f0dd009796d76ec08a4d74f23433817e194176c3 100644
--- a/eek/eek-renderer.c
+++ b/eek/eek-renderer.c
@@ -497,7 +497,7 @@ render_key (EekRenderer *self,
     if (!symbol)
         return;
 
- #define SCALE 0.5
+ #define SCALE 0.4
     if (eek_symbol_get_icon_name (symbol)) {
 
         cairo_surface_t *icon_surface =