diff --git a/README.md b/README.md
index 11030603..0a0f7b85 100644
--- a/README.md
+++ b/README.md
@@ -6,6 +6,7 @@
[Features](#currently-implemented-features) ⬥
[Installation](docs/INSTALL.md) ⬥
+[Keybindings](docs/KEYBINDINGS.md) ⬥
[Configuration](docs/CONFIG.md) ⬥
[Theming](docs/THEMING.md) ⬥
[Contributing](docs/CONTRIBUTING.md) ⬥
@@ -83,6 +84,7 @@ Written in Qt/QML and Python, **currently in alpha**.
## Documentation
- [Installation](docs/INSTALL.md)
+- [Keybindings](docs/KEYBINDINGS.md)
- [Configuration](docs/CONFIG.md)
- [Theming](docs/THEMING.md)
- [Contributing](docs/CONTRIBUTING.md)
diff --git a/docs/KEYBINDINGS.md b/docs/KEYBINDINGS.md
new file mode 100644
index 00000000..19f2b020
--- /dev/null
+++ b/docs/KEYBINDINGS.md
@@ -0,0 +1,149 @@
+# Mirage default keybindings list
+
+Keybindings as defined in [the default configuration file](src/config/settings.py#L218). More about configuration [here](docs/CONFIG.md).
+
+## General bindings
+
+Key | Function
+------ | ------
+Ctrl + Alt + C | Toggle compact interface
+Ctrl + + | Zoom in
+Ctrl + - | Zoom out
+Ctrl + = | Reset zoom
+Alt + Shift + Left
Alt + Shift + H | Previous tab
+Alt + Shift + Right
Alt + Shift + L | Next tab
+Ctrl + Tab | Switch to the last opened page
+Ctrl + H | Earlier page in history (page back)
+Ctrl + L | Later page in history (page forward)
+Ctrl + Alt + H | Toggle notifications, except highlights
+Ctrl + Alt + N | Toggle notifications
+F1 | QML developer console
+Shift + F1 | Python debugger
+Alt + F1 | Python remote debugger
+(no binding) | Quit Mirage
+
+## Scrolling bindings
+
+Key | Function
+------ | ------
+Alt + Up
Alt + K | Scroll up
+Alt + Down
Alt + J | Scroll down
+Ctrl + Alt + Up
Ctrl + Alt + K
PgUp | Page up
+Ctrl + Alt + Down
Ctrl + Alt + J
PgDown | Page down
+Ctrl + Alt + Shift + Up
Ctrl + Alt + Shift + K
Home | Scroll to top
+Ctrl + Alt + Shift + Down
Ctrl + Alt + Shift + J
End | Scroll to bottom
+
+## Account bindings
+
+Key | Function
+------ | ------
+Alt + Shift + A | Add new account
+Alt + O | Collapse current account
+Alt + A | Current account settings
+Alt + P | Current account context menu
+Ctrl + Alt + U
Ctrl + Alt + A | Unavailable status
+Ctrl + Alt + I | Invisible status
+Ctrl + Alt + O | Offline status
+Alt + Shift + N | Previous account
+Alt + N | Next account
+Ctrl + 1 | Switch to account 1
+Ctrl + 2 | Switch to account 2
+Ctrl + 3 | Switch to account 3
+Ctrl + 4 | Switch to account 4
+Ctrl + 5 | Switch to account 5
+Ctrl + 6 | Switch to account 6
+Ctrl + 7 | Switch to account 7
+Ctrl + 8 | Switch to account 8
+Ctrl + 9 | Switch to account 9
+Ctrl + 0 | Switch to account 10
+
+## Room bindings
+
+Key | Function
+------ | ------
+Alt + C | Create a new room (start chat)
+Alt + F | Focus filter
+Alt + Shift + F | Clear filter
+Alt + Shift + Up
Alt + Shift + K | Previous room
+Alt + Shift + Down
Alt + Shift + J | Next room
+Alt + Shift + U | Previous unread
+Alt + U | Next unread
+Ctrl + Shift + U | Oldest unread
+Ctrl + U | Latest unread
+Alt + Shift + M | Previous highlight
+Alt + M | Next highlight
+Ctrl + Shift + M | Oldest highlight
+Ctrl + M | Latest highlight
+Alt + 1 | Room number 1 in account
+Alt + 2 | Room number 2 in account
+Alt + 3 | Room number 3 in account
+Alt + 4 | Room number 4 in account
+Alt + 5 | Room number 5 in account
+Alt + 6 | Room number 6 in account
+Alt + 7 | Room number 7 in account
+Alt + 8 | Room number 8 in account
+Alt + 9 | Room number 9 in account
+Alt + 0 | Room number 10 in account
+(no binding) | Jump to specific room by ID
+
+## Chat bindings
+
+Key | Function
+------ | ------
+Alt + R | Focus room pane
+Ctrl + Alt + R | Hide room pane
+Alt + I | Invite members
+Alt + Escape | Leave current chat
+Alt + S | Upload file
+Alt + Shift + S | Send file at clipboard path
+
+## Message bindings
+
+Key | Function
+------ | ------
+Ctrl + Up
Ctrl + K | Focus previous message
+Ctrl + Down
Ctrl + J | Focus next message
+Ctrl + Space | Select focused message
+Ctrl + Shift + Space | Select messages until here
+Ctrl + D | Unfocus or deselect
+Ctrl + S | Display seen tooltips
+Ctrl + R
Alt + Del | Remove message
+Ctrl + Q | Reply
+Ctrl + Shift + D | Debug message
+Ctrl + O | Open link/file in message
+Ctrl + Shift + O | Open link/file externally
+Ctrl + Shift + C | Copy downloaded file path
+Ctrl + Shift + L | Clear messages
+
+## Image viewer bindings
+
+Key | Function
+------ | ------
+X
Q | Close image viewer
+E | Expand image viewer
+F
F11
Alt + Return
Alt + Enter | Fullscreen image viewer
+H
Left
Alt + H
Alt + Left | Pan image left
+J
Down
Alt + J
Alt + Down | Pan image down
+K
Up
Alt + K
Alt + Up | Pan image up
+L
Right
Alt + L
Alt + Right | Pan image right
+Z
+
Ctrl + + | Zoom in
+Shift + Z
-
Ctrl + - | Zoom out
+Alt + Z
=
Ctrl + = | Reset zoom
+R | Rotate image right
+Shift + R | Rotate image left
+Alt + R | Reset image rotation
+S | Speed up gif
+Shift + S | Slow down gif
+Alt + S | Reset gif speed
+Space | Pause gif
+
+## Security tab bindings
+
+Key | Function
+------ | ------
+Tab | Navigate next
+Shift + Tab | Navigate previous
+Space | Toggle check
+Menu | Session context menu
+Alt + R
F5 | Refresh session list
+Alt + S
Delete | Sign out session
diff --git a/src/config/settings.py b/src/config/settings.py
index c263547e..dcdee071 100644
--- a/src/config/settings.py
+++ b/src/config/settings.py
@@ -232,6 +232,9 @@ class Keys:
# Key chords can be defined by having up to four shortcuts
# separated by commas in a string, e.g. for ["Ctrl+A,B"], Ctrl+A then B
# would need to be pressed.
+ #
+ # A list of default bindings can be found at:
+ # https://github.com/mirukana/mirage/blob/master/docs/KEYBINDINGS.md
# Helper functions