diff --git a/src/main/java/de/deadlocker8/budgetmaster/controller/HotKeysController.java b/src/main/java/de/deadlocker8/budgetmaster/controller/HotKeysController.java
new file mode 100644
index 0000000000000000000000000000000000000000..95ae9cd60332352e1402d0f2e8d889f95e16d6c0
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/controller/HotKeysController.java
@@ -0,0 +1,27 @@
+package de.deadlocker8.budgetmaster.controller;
+
+import de.deadlocker8.budgetmaster.settings.SettingsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+@Controller
+public class HotKeysController extends BaseController
+{
+	private final SettingsService settingsService;
+
+	@Autowired
+	public HotKeysController(SettingsService settingsService)
+	{
+		this.settingsService = settingsService;
+	}
+
+	@RequestMapping("/hotkeys")
+	public String index(Model model)
+	{
+		model.addAttribute("settings", settingsService.getSettings());
+		return "hotkeys";
+	}
+}
\ No newline at end of file
diff --git a/src/main/resources/languages/_de.properties b/src/main/resources/languages/_de.properties
index 2591ba91fcbae0c545885b2d5094bd797c726604..e924b330f3f2fa04a02613a81dbbfacf5c03322e 100644
--- a/src/main/resources/languages/_de.properties
+++ b/src/main/resources/languages/_de.properties
@@ -91,6 +91,7 @@ info.button.account.delete=Konto und Buchungen l
 info.title.transaction.delete=Buchung l�schen
 info.text.transaction.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen?
 info.text.transaction.repeating.delete=M�chtest du die Buchung "{0}" wirklich unwiderruflich l�schen? <br>Hinweis: Es handelt sich um eine wiederholende Buchung. Beim L�schen dieser Buchung werden alle zugeh�rigen Wiederholungen ebenfalls gel�scht!
+
 info.title.database.delete=Datenbank l�schen
 info.header.text.database.delete=Soll die Datenbank wirklich unwiderruflich gel�scht werden?<br>Hinweis: Beim L�schen der Datenbank werden alle Buchungen, Kategorien und Konten unwiderruflich gel�scht.
 info.text.database.delete=Zur Best�tigung gib folgenden Code ein:\t{0}
@@ -135,6 +136,7 @@ menu.reports=Berichte
 menu.settings=Einstellungen
 menu.settings.database=Datenbank
 menu.about=�ber
+menu.hotkeys=Tastenkombination
 menu.logout=Logout
 menu.accounts=Konten
 menu.update=Update verf�gbar
@@ -304,3 +306,15 @@ home.menu.categories.action.new=Neue Kategorie anlegen
 
 home.menu.settings=Verwalte allgemeine Einstellungen wie dein Login-Passwort, deine bevorzugte Sprache und wie Updates verwaltet werden sollen. Dieser Bereich bietet zudem die M�glichkeit, deine Daten zu exportieren oder zu l�schen, sowie eine bestehende Datenbank zu importieren.
 home.menu.settings.action.manage=Einstellungen
+
+# hotkeys
+hotkeys.transactions.new.normal=Neue Buchung anlegen
+hotkeys.transactions.new.normal.key=n
+hotkeys.transactions.new.repeating=Neue widerholende Buchung anlegen
+hotkeys.transactions.new.repeating.key=r
+hotkeys.transactions.new.transfer=Neue Umbuchung anlegen
+hotkeys.transactions.new.transfer.key=t
+hotkeys.transactions.filter=Filtern
+hotkeys.transactions.filter.key=f
+hotkeys.search=Suchen
+hotkeys.search.key=s
diff --git a/src/main/resources/languages/_en.properties b/src/main/resources/languages/_en.properties
index 516de0089c5f3e7fff52a1d6c30e21680cc21cbd..72222212539be39f0215878acdb2762f1f13c6ab 100644
--- a/src/main/resources/languages/_en.properties
+++ b/src/main/resources/languages/_en.properties
@@ -135,6 +135,7 @@ menu.charts.chartHistogram=Histogram
 menu.reports=Reports
 menu.settings=Settings
 menu.settings.database=Database
+menu.hotkeys=Hotkeys
 menu.about=About
 menu.logout=Logout
 menu.accounts=Accounts
@@ -306,5 +307,14 @@ home.menu.categories.action.new=Create a category
 home.menu.settings=Manage general settings such as login password, your preferred language and how to handle updates. This section also offers the possibility to export or delete your data or importing an existing database.
 home.menu.settings.action.manage=Settings
 
-
-
+# hotkeys
+hotkeys.transactions.new.normal=Create a transaction
+hotkeys.transactions.new.normal.key=n
+hotkeys.transactions.new.repeating=Create a recuring transaction
+hotkeys.transactions.new.repeating.key=r
+hotkeys.transactions.new.transfer=Create a transfer
+hotkeys.transactions.new.transfer.key=t
+hotkeys.transactions.filter=Filter
+hotkeys.transactions.filter.key=f
+hotkeys.search=Search
+hotkeys.search.key=s
diff --git a/src/main/resources/static/css/dark/hotkeys.css b/src/main/resources/static/css/dark/hotkeys.css
new file mode 100644
index 0000000000000000000000000000000000000000..82ea278531de25ca236d1a5fdd9bc551a20357aa
--- /dev/null
+++ b/src/main/resources/static/css/dark/hotkeys.css
@@ -0,0 +1,9 @@
+.keyboard-key {
+    padding: 0.2rem 0.7rem;
+    color: #FFFFFF;
+    background-color: #212121;
+    border-radius: .2rem;
+    font-family: Consolas, "Courier New", monospace;
+    display: inline-block;
+    margin-right: 2rem;
+}
\ No newline at end of file
diff --git a/src/main/resources/static/css/hotkeys.css b/src/main/resources/static/css/hotkeys.css
new file mode 100644
index 0000000000000000000000000000000000000000..82ea278531de25ca236d1a5fdd9bc551a20357aa
--- /dev/null
+++ b/src/main/resources/static/css/hotkeys.css
@@ -0,0 +1,9 @@
+.keyboard-key {
+    padding: 0.2rem 0.7rem;
+    color: #FFFFFF;
+    background-color: #212121;
+    border-radius: .2rem;
+    font-family: Consolas, "Courier New", monospace;
+    display: inline-block;
+    margin-right: 2rem;
+}
\ No newline at end of file
diff --git a/src/main/resources/templates/helpers/navbar.ftl b/src/main/resources/templates/helpers/navbar.ftl
index eac9575fe24b8d7cfca12cca859a7f12240ee95d..f9bdea7efb25cfd9650ecf1b58f79f00bd43761f 100644
--- a/src/main/resources/templates/helpers/navbar.ftl
+++ b/src/main/resources/templates/helpers/navbar.ftl
@@ -24,6 +24,7 @@
         <@itemWithIcon "settings", "/settings", locale.getString("menu.settings"), "settings", "budgetmaster-red", activeID/>
 
         <@itemDivider/>
+        <@itemWithIcon "hotkeys", "/hotkeys", locale.getString("menu.hotkeys"), "keyboard", "budgetmaster-grey", activeID/>
         <@itemWithIcon "about", "/about", locale.getString("menu.about"), "info", "budgetmaster-grey", activeID/>
 
         <@itemDivider/>
diff --git a/src/main/resources/templates/hotkeys.ftl b/src/main/resources/templates/hotkeys.ftl
new file mode 100644
index 0000000000000000000000000000000000000000..71f5393ec4b33310dec4bbae25873eecb52d9382
--- /dev/null
+++ b/src/main/resources/templates/hotkeys.ftl
@@ -0,0 +1,54 @@
+<html>
+    <head>
+        <#import "helpers/header.ftl" as header>
+        <@header.header "BudgetMaster"/>
+        <@header.style "hotkeys"/>
+    </head>
+    <body class="budgetmaster-blue-light">
+        <#import "helpers/navbar.ftl" as navbar>
+        <@navbar.navbar "hotkeys" settings/>
+
+        <main>
+            <div class="card main-card background-color">
+                <div class="container">
+                    <div class="section center-align">
+                        <div class="headline">${locale.getString("menu.hotkeys")}</div>
+                    </div>
+                </div>
+
+                <br>
+
+                <div class="row">
+                    <@cellKey locale.getString("hotkeys.transactions.new.normal.key")/>
+                    <div class="col s8 m5 l5">${locale.getString("hotkeys.transactions.new.normal")}</div>
+                </div>
+                <div class="row">
+                    <@cellKey locale.getString("hotkeys.transactions.new.repeating.key")/>
+                    <div class="col s8 m5 l5">${locale.getString("hotkeys.transactions.new.repeating")}</div>
+                </div>
+                <div class="row">
+                    <@cellKey locale.getString("hotkeys.transactions.new.transfer.key")/>
+                    <div class="col s8 m5 l5">${locale.getString("hotkeys.transactions.new.transfer")}</div>
+                </div>
+                <div class="row">
+                    <@cellKey locale.getString("hotkeys.transactions.filter.key")/>
+                    <div class="col s8 m5 l5">${locale.getString("hotkeys.transactions.filter")}</div>
+                </div>
+                <div class="row">
+                    <@cellKey locale.getString("hotkeys.search.key")/>
+                    <div class="col s8 m5 l5">${locale.getString("hotkeys.search")}</div>
+                </div>
+            </div>
+        </main>
+
+        <!--  Scripts-->
+        <#import "helpers/scripts.ftl" as scripts>
+        <@scripts.scripts/>
+    </body>
+</html>
+
+<#macro cellKey key>
+    <div class="col s4 m3 offset-m2 l2 offset-l3 right-align bold">
+        <div class="keyboard-key">${key}</div>
+    </div>
+</#macro>
\ No newline at end of file