diff --git a/src/TextInputWidget.cpp b/src/TextInputWidget.cpp
index ce0c7cb86362ea2762a30fe08baa209368bcf3d8..11f7ddda414e4251f8b1df0a8486e4c98c2f9e16 100644
--- a/src/TextInputWidget.cpp
+++ b/src/TextInputWidget.cpp
@@ -626,8 +626,9 @@ TextInputWidget::command(QString command, QString args)
 void
 TextInputWidget::openFileSelection()
 {
+        const QString homeFolder = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
         const auto fileName =
-          QFileDialog::getOpenFileName(this, tr("Select a file"), "", tr("All Files (*)"));
+          QFileDialog::getOpenFileName(this, tr("Select a file"), homeFolder, tr("All Files (*)"));
 
         if (fileName.isEmpty())
                 return;
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp
index 4cba59a493ae87803e15c43b7dfb6b646ab0d541..bcd50d80709722c9b93d451c471280cd9696c20b 100644
--- a/src/UserSettingsPage.cpp
+++ b/src/UserSettingsPage.cpp
@@ -27,6 +27,7 @@
 #include <QPushButton>
 #include <QScrollArea>
 #include <QSettings>
+#include <QStandardPaths>
 #include <QString>
 #include <QTextStream>
 
@@ -513,7 +514,9 @@ UserSettingsPage::paintEvent(QPaintEvent *)
 void
 UserSettingsPage::importSessionKeys()
 {
-        auto fileName = QFileDialog::getOpenFileName(this, tr("Open Sessions File"), "", "");
+        const QString homeFolder = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
+        const QString fileName =
+          QFileDialog::getOpenFileName(this, tr("Open Sessions File"), homeFolder, "");
 
         QFile file(fileName);
         if (!file.open(QIODevice::ReadOnly)) {
@@ -572,7 +575,8 @@ UserSettingsPage::exportSessionKeys()
         }
 
         // Open file dialog to save the file.
-        auto fileName =
+        const QString homeFolder = QStandardPaths::writableLocation(QStandardPaths::HomeLocation);
+        const QString fileName =
           QFileDialog::getSaveFileName(this, tr("File to save the exported session keys"), "", "");
 
         QFile file(fileName);
diff --git a/src/dialogs/RoomSettings.cpp b/src/dialogs/RoomSettings.cpp
index 69d5a9c294486214d486629482eebcd6602c90ef..cc10ac91d601c2f8d117bc9789f79d43fe8b6e45 100644
--- a/src/dialogs/RoomSettings.cpp
+++ b/src/dialogs/RoomSettings.cpp
@@ -11,6 +11,7 @@
 #include <QPushButton>
 #include <QShortcut>
 #include <QShowEvent>
+#include <QStandardPaths>
 #include <QStyleOption>
 #include <QVBoxLayout>
 
@@ -740,8 +741,10 @@ RoomSettings::resetErrorLabel()
 void
 RoomSettings::updateAvatar()
 {
-        const auto fileName =
-          QFileDialog::getOpenFileName(this, tr("Select an avatar"), "", tr("All Files (*)"));
+        const QString picturesFolder =
+          QStandardPaths::writableLocation(QStandardPaths::PicturesLocation);
+        const QString fileName = QFileDialog::getOpenFileName(
+          this, tr("Select an avatar"), picturesFolder, tr("All Files (*)"));
 
         if (fileName.isEmpty())
                 return;
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index f084b4dde9f4017e98acb8c46578493f642c4bd1..104d564bc6584dc459ef63732486d7819e6330da 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -1298,10 +1298,13 @@ TimelineModel::saveMedia(QString eventId) const
                 dialogTitle = tr("Save file");
         }
 
-        QString filterString = QMimeDatabase().mimeTypeForName(mimeType).filterString();
+        const QString filterString = QMimeDatabase().mimeTypeForName(mimeType).filterString();
+        const QString downloadsFolder =
+          QStandardPaths::writableLocation(QStandardPaths::DownloadLocation);
+        const QString openLocation = downloadsFolder + "/" + originalFilename;
 
-        auto filename = QFileDialog::getSaveFileName(
-          manager_->getWidget(), dialogTitle, originalFilename, filterString);
+        const QString filename = QFileDialog::getSaveFileName(
+          manager_->getWidget(), dialogTitle, openLocation, filterString);
 
         if (filename.isEmpty())
                 return;