diff --git a/src/index.tsx b/src/index.tsx
index 30f03466..ef9dc52b 100644
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -433,14 +433,14 @@ export class App extends React.Component<{}, AppState> {
   private renderShapesSwitcher() {
     return (
       <>
-        {SHAPES.map(({ value, icon }) => (
+        {SHAPES.map(({ value, icon }, index) => (
           <ToolIcon
             key={value}
             type="radio"
             icon={icon}
             checked={this.state.elementType === value}
             name="editor-current-shape"
-            title={`${capitalizeString(value)} — ${capitalizeString(value)[0]}`}
+            title={`${capitalizeString(value)} — ${capitalizeString(value)[0]}, ${index + 1}`}
             onChange={() => {
               this.setState({ elementType: value });
               elements = clearSelection(elements);
diff --git a/src/shapes.tsx b/src/shapes.tsx
index 17a40be9..7be709f5 100644
--- a/src/shapes.tsx
+++ b/src/shapes.tsx
@@ -74,12 +74,14 @@ export const SHAPES = [
   }
 ];
 
-export const shapesShortcutKeys = SHAPES.map(shape => shape.value[0]);
+export const shapesShortcutKeys = SHAPES.map((shape, index) => [
+    shape.value[0], (index + 1).toString()]
+).flat(1);
 
 export function findShapeByKey(key: string) {
   const defaultElement = "selection";
-  return SHAPES.reduce((element, shape) => {
-    if (shape.value[0] !== key) return element;
+  return SHAPES.reduce((element, shape, index) => {
+    if (shape.value[0] !== key && key !== (index + 1).toString()) return element;
 
     return shape.value;
   }, defaultElement);