diff --git a/src/backend/backend.py b/src/backend/backend.py
index b6dfee84..2f79e925 100644
--- a/src/backend/backend.py
+++ b/src/backend/backend.py
@@ -243,6 +243,10 @@ class Backend:
 
     # General functions
 
+    async def get_config_dir(self) -> Path:
+        return Path(self.appdirs.user_config_dir)
+
+
     async def load_settings(self) -> tuple:
         """Return parsed user config files."""
 
diff --git a/src/gui/GlobalShortcuts.qml b/src/gui/GlobalShortcuts.qml
index f4f68b17..d4e0611b 100644
--- a/src/gui/GlobalShortcuts.qml
+++ b/src/gui/GlobalShortcuts.qml
@@ -33,33 +33,34 @@ Item {
         flickTarget
 
 
+    function toggleConsole() {
+        if (debugConsole) {
+            debugConsole.visible = ! debugConsole.visible
+
+        } else if (! defaultDebugConsoleLoader.active) {
+            defaultDebugConsoleLoader.active = true
+
+        } else {
+            defaultDebugConsole.visible = ! defaultDebugConsole.visible
+        }
+    }
+
+
     // App
 
     HShortcut {
-        enabled: debugMode
         sequences: settings.keys.startPythonDebugger
         onActivated: py.call("BRIDGE.pdb")
     }
 
     HShortcut {
-        enabled: debugMode
         sequences: settings.keys.toggleDebugConsole
-        onActivated:  {
-            if (debugConsole) {
-                debugConsole.visible = ! debugConsole.visible
-
-            } else if (! defaultDebugConsoleLoader.active) {
-                defaultDebugConsoleLoader.active = true
-
-            } else {
-                defaultDebugConsole.visible = ! defaultDebugConsole.visible
-            }
-        }
+        onActivated: toggleConsole()
     }
 
     HShortcut {
         sequences: settings.keys.reloadConfig
-        onActivated: py.loadSettings(() => { mainUI.pressAnimation.start() })
+        onActivated: mainUI.reloadSettings()
     }
 
     HShortcut {
diff --git a/src/gui/MainPane/Account.qml b/src/gui/MainPane/Account.qml
index 4486adf5..295d3e0b 100644
--- a/src/gui/MainPane/Account.qml
+++ b/src/gui/MainPane/Account.qml
@@ -7,18 +7,17 @@ import "../Base"
 
 HTileDelegate {
     id: account
-    spacing: 0
-    topPadding: model.index > 0 ? theme.spacing / 2 : 0
-    bottomPadding: topPadding
-
+    rightPadding: 0
     backgroundColor: theme.mainPane.account.background
     opacity: collapsed && ! mainPane.filter ?
              theme.mainPane.account.collapsedOpacity : 1
 
-    title.color: theme.mainPane.account.name
     title.text: model.display_name || model.id
     title.font.pixelSize: theme.fontSize.big
-    title.leftPadding: theme.spacing
+    title.color:
+        hovered ?
+        utils.nameColor(model.display_name || model.id.substring(1)) :
+        theme.mainPane.account.name
 
     image: HUserAvatar {
         userId: model.id
@@ -68,63 +67,66 @@ HTileDelegate {
     }
 
 
+    Behavior on title.color { HColorAnimation {} }
     Behavior on opacity { HNumberAnimation {} }
 
 
-    HButton {
-        id: addChat
-        iconItem.small: true
-        icon.name: "add-chat"
-        backgroundColor: "transparent"
-        toolTip.text: qsTr("Add new chat")
-        onClicked: pageLoader.showPage(
-            "AddChat/AddChat", {userId: model.id},
-        )
+    HRowLayout {
+        HButton {
+            id: addChat
+            iconItem.small: true
+            icon.name: "add-chat"
+            backgroundColor: "transparent"
+            toolTip.text: qsTr("Add new chat")
+            onClicked: pageLoader.showPage(
+                "AddChat/AddChat", {userId: model.id},
+            )
 
-        leftPadding: theme.spacing / 2
-        rightPadding: leftPadding
+            leftPadding: theme.spacing / 2
+            rightPadding: leftPadding
 
-        opacity: expand.loading ? 0 : 1
-        visible: opacity > 0 && Layout.maximumWidth > 0
+            opacity: expand.loading ? 0 : 1
+            visible: opacity > 0 && Layout.maximumWidth > 0
 
-        Layout.fillHeight: true
-        Layout.maximumWidth:
-            account.width >= 100 * theme.uiScale ?  implicitWidth : 0
+            Layout.fillHeight: true
+            Layout.maximumWidth:
+                account.width >= 100 * theme.uiScale ?  implicitWidth : 0
 
-        Behavior on Layout.maximumWidth { HNumberAnimation {} }
-        Behavior on opacity { HNumberAnimation {} }
-    }
-
-    HButton {
-        id: expand
-        loading:
-            ! model.first_sync_done || model.profile_updated < new Date(1)
-        iconItem.small: true
-        icon.name: "expand"
-        backgroundColor: "transparent"
-        toolTip.text: collapsed ? qsTr("Expand") : qsTr("Collapse")
-        onClicked: account.toggleCollapse()
-
-        leftPadding: theme.spacing / 2
-        rightPadding: leftPadding
-
-        opacity: ! loading && mainPane.filter ? 0 : 1
-        visible: opacity > 0 && Layout.maximumWidth > 0
-
-        Layout.fillHeight: true
-        Layout.maximumWidth:
-            account.width >= 120 * theme.uiScale ?  implicitWidth : 0
-
-
-        iconItem.transform: Rotation {
-            origin.x: expand.iconItem.width / 2
-            origin.y: expand.iconItem.height / 2
-            angle: expand.loading ? 0 : collapsed ? 180 : 90
-
-            Behavior on angle { HNumberAnimation {} }
+            Behavior on Layout.maximumWidth { HNumberAnimation {} }
+            Behavior on opacity { HNumberAnimation {} }
         }
 
-        Behavior on Layout.maximumWidth { HNumberAnimation {} }
-        Behavior on opacity { HNumberAnimation {} }
+        HButton {
+            id: expand
+            loading:
+                ! model.first_sync_done || model.profile_updated < new Date(1)
+            iconItem.small: true
+            icon.name: "expand"
+            backgroundColor: "transparent"
+            toolTip.text: collapsed ? qsTr("Expand") : qsTr("Collapse")
+            onClicked: account.toggleCollapse()
+
+            leftPadding: theme.spacing / 2
+            rightPadding: theme.spacing
+
+            opacity: ! loading && mainPane.filter ? 0 : 1
+            visible: opacity > 0 && Layout.maximumWidth > 0
+
+            Layout.fillHeight: true
+            Layout.maximumWidth:
+                account.width >= 120 * theme.uiScale ?  implicitWidth : 0
+
+
+            iconItem.transform: Rotation {
+                origin.x: expand.iconItem.width / 2
+                origin.y: expand.iconItem.height / 2
+                angle: expand.loading ? 0 : collapsed ? 180 : 90
+
+                Behavior on angle { HNumberAnimation {} }
+            }
+
+            Behavior on Layout.maximumWidth { HNumberAnimation {} }
+            Behavior on opacity { HNumberAnimation {} }
+        }
     }
 }
diff --git a/src/gui/MainPane/MainPane.qml b/src/gui/MainPane/MainPane.qml
index 4734b494..38935fc4 100644
--- a/src/gui/MainPane/MainPane.qml
+++ b/src/gui/MainPane/MainPane.qml
@@ -45,6 +45,12 @@ HDrawer {
     HColumnLayout {
         anchors.fill: parent
 
+        TopBar {
+            Layout.fillWidth: true
+            Layout.fillHeight: false
+            Layout.preferredHeight: theme.baseElementsHeight
+        }
+
         AccountRoomsList {
             id: mainPaneList
             clip: true
@@ -60,7 +66,6 @@ HDrawer {
             Layout.fillWidth: true
             Layout.fillHeight: false
             Layout.preferredHeight: theme.baseElementsHeight
-
         }
     }
 }
diff --git a/src/gui/MainPane/Room.qml b/src/gui/MainPane/Room.qml
index fa760740..91690846 100644
--- a/src/gui/MainPane/Room.qml
+++ b/src/gui/MainPane/Room.qml
@@ -7,10 +7,14 @@ import ".."
 import "../Base"
 
 HTileDelegate {
-    spacing: theme.spacing
     backgroundColor: theme.mainPane.room.background
     opacity: model.left ? theme.mainPane.room.leftRoomOpacity : 1
 
+    topPadding: theme.spacing / (model.index === 0 ? 1 : 1.5)
+    bottomPadding: theme.spacing / (model.index === view.count - 1 ? 1 : 1.5)
+    leftPadding: theme.spacing * 2
+    rightPadding: theme.spacing
+
     image: HRoomAvatar {
         roomId: model.id
         displayName: model.display_name
diff --git a/src/gui/MainPane/TopBar.qml b/src/gui/MainPane/TopBar.qml
new file mode 100644
index 00000000..3b9ef0f5
--- /dev/null
+++ b/src/gui/MainPane/TopBar.qml
@@ -0,0 +1,57 @@
+// SPDX-License-Identifier: LGPL-3.0-or-later
+
+import QtQuick 2.12
+import QtQuick.Layouts 1.12
+import "../Base"
+
+Rectangle {
+    color: theme.mainPane.topBar.background
+
+    HRowLayout {
+        anchors.fill: parent
+
+        HButton {
+            icon.name: "placeholder-logo"
+            icon.color: theme.mainPane.topBar.placeholderLogo
+
+            text: qsTr("%1 %2")
+                  .arg(Qt.application.displayName).arg(Qt.application.version)
+            label.color: theme.mainPane.topBar.nameVersionLabel
+            label.horizontalAlignment: Text.AlignLeft
+            toolTip.text: qsTr("Open project repository")
+
+            onClicked:
+                Qt.openUrlExternally("https://github.com/mirukan/mirage")
+
+            Layout.fillWidth: true
+            Layout.fillHeight: true
+        }
+
+        HButton {
+            icon.name: "developper-console"
+            toolTip.text: qsTr("Developper console")
+
+            onClicked: mainUI.shortcuts.toggleConsole()  // FIXME
+
+            Layout.fillHeight: true
+        }
+
+        HButton {
+            icon.name: "reload-config-files"
+            toolTip.text: qsTr("Reload config files")
+
+            onClicked: mainUI.reloadSettings()
+
+            Layout.fillHeight: true
+        }
+
+        HButton {
+            icon.name: "settings"
+            toolTip.text: qsTr("Open config folder")
+
+            onClicked: py.callCoro("get_config_dir", [], Qt.openUrlExternally)
+
+            Layout.fillHeight: true
+        }
+    }
+}
diff --git a/src/gui/Pages/Chat/Timeline/EventDelegate.qml b/src/gui/Pages/Chat/Timeline/EventDelegate.qml
index 900cc003..8535cf67 100644
--- a/src/gui/Pages/Chat/Timeline/EventDelegate.qml
+++ b/src/gui/Pages/Chat/Timeline/EventDelegate.qml
@@ -168,7 +168,6 @@ HColumnLayout {
         HMenuItem {
             icon.name: "debug"
             text: qsTr("Debug this event")
-            visible: debugMode
             onTriggered: eventContent.debugConsoleLoader.toggle()
         }
 
diff --git a/src/gui/UI.qml b/src/gui/UI.qml
index ca4734df..c4fb485e 100644
--- a/src/gui/UI.qml
+++ b/src/gui/UI.qml
@@ -24,6 +24,11 @@ Item {
     readonly property alias pressAnimation: pressAnimation
 
 
+    function reloadSettings() {
+        py.loadSettings(() => { mainUI.pressAnimation.start() })
+    }
+
+
     SequentialAnimation {
         id: pressAnimation
         HNumberAnimation {
diff --git a/src/icons/thin/developper-console.svg b/src/icons/thin/developper-console.svg
new file mode 100644
index 00000000..d1cc9a6e
--- /dev/null
+++ b/src/icons/thin/developper-console.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/thin/placeholder-logo.svg b/src/icons/thin/placeholder-logo.svg
new file mode 100644
index 00000000..06f821b9
--- /dev/null
+++ b/src/icons/thin/placeholder-logo.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/thin/reload-config-files.svg b/src/icons/thin/reload-config-files.svg
new file mode 100644
index 00000000..f5e68332
--- /dev/null
+++ b/src/icons/thin/reload-config-files.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/icons/thin/settings.svg b/src/icons/thin/settings.svg
index 93439b12..bd8786c6 100644
--- a/src/icons/thin/settings.svg
+++ b/src/icons/thin/settings.svg
@@ -1,3 +1,3 @@
 
diff --git a/src/themes/Glass.qpl b/src/themes/Glass.qpl
index 31f02120..ececcfe8 100644
--- a/src/themes/Glass.qpl
+++ b/src/themes/Glass.qpl
@@ -256,6 +256,11 @@ ui:
 mainPane:
     color background: colors.mediumBackground
 
+    topBar:
+        color background:       colors.strongBackground
+        color placeholderLogo:  colors.accentElement
+        color nameVersionLabel: colors.text
+
     account:
         real collapsedOpacity: 0.3
         color background:      "transparent"
diff --git a/src/themes/Midnight.qpl b/src/themes/Midnight.qpl
index 43bdeb8a..87d332cf 100644
--- a/src/themes/Midnight.qpl
+++ b/src/themes/Midnight.qpl
@@ -263,6 +263,11 @@ ui:
 mainPane:
     color background: colors.mediumBackground
 
+    topBar:
+        color background:       colors.strongBackground
+        color placeholderLogo:  colors.accentElement
+        color nameVersionLabel: colors.text
+
     account:
         real collapsedOpacity: 0.3
         color background:      "transparent"