diff --git a/src/citra_qt/main.cpp b/src/citra_qt/main.cpp
index 5d60e2f30..dd1e1941a 100644
--- a/src/citra_qt/main.cpp
+++ b/src/citra_qt/main.cpp
@@ -192,7 +192,15 @@ void GMainWindow::InitializeWidgets() {
         statusBar()->addPermanentWidget(label, 0);
     }
     statusBar()->setVisible(true);
+
+    // Removes an ugly inner border from the status bar widgets under Linux
     setStyleSheet("QStatusBar::item{border: none;}");
+
+    QActionGroup* actionGroup_ScreenLayouts = new QActionGroup(this);
+    actionGroup_ScreenLayouts->addAction(ui.action_Screen_Layout_Default);
+    actionGroup_ScreenLayouts->addAction(ui.action_Screen_Layout_Single_Screen);
+    actionGroup_ScreenLayouts->addAction(ui.action_Screen_Layout_Large_Screen);
+    actionGroup_ScreenLayouts->addAction(ui.action_Screen_Layout_Side_by_Side);
 }
 
 void GMainWindow::InitializeDebugWidgets() {
@@ -269,8 +277,9 @@ void GMainWindow::InitializeRecentFileMenuActions() {
 
 void GMainWindow::InitializeHotkeys() {
     RegisterHotkey("Main Window", "Load File", QKeySequence::Open);
-    RegisterHotkey("Main Window", "Swap Screens", QKeySequence::NextChild);
     RegisterHotkey("Main Window", "Start Emulation");
+    RegisterHotkey("Main Window", "Swap Screens", QKeySequence(tr("F9")));
+    RegisterHotkey("Main Window", "Toggle Screen Layout", QKeySequence(tr("F10")));
     RegisterHotkey("Main Window", "Fullscreen", QKeySequence::FullScreen);
     RegisterHotkey("Main Window", "Exit Fullscreen", QKeySequence(Qt::Key_Escape),
                    Qt::ApplicationShortcut);
@@ -284,8 +293,10 @@ void GMainWindow::InitializeHotkeys() {
             &GMainWindow::OnMenuLoadFile);
     connect(GetHotkey("Main Window", "Start Emulation", this), &QShortcut::activated, this,
             &GMainWindow::OnStartGame);
-    connect(GetHotkey("Main Window", "Swap Screens", render_window), &QShortcut::activated, this,
-            &GMainWindow::OnSwapScreens);
+    connect(GetHotkey("Main Window", "Swap Screens", render_window), &QShortcut::activated,
+            ui.action_Screen_Layout_Swap_Screens, &QAction::trigger);
+    connect(GetHotkey("Main Window", "Toggle Screen Layout", render_window), &QShortcut::activated,
+            this, &GMainWindow::ToggleScreenLayout);
     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activated,
             ui.action_Fullscreen, &QAction::trigger);
     connect(GetHotkey("Main Window", "Fullscreen", render_window), &QShortcut::activatedAmbiguously,
@@ -347,6 +358,7 @@ void GMainWindow::RestoreUIState() {
     ToggleWindowMode();
 
     ui.action_Fullscreen->setChecked(UISettings::values.fullscreen);
+    SyncMenuUISettings();
 
     ui.action_Display_Dock_Widget_Headers->setChecked(UISettings::values.display_titlebar);
     OnDisplayTitleBars(ui.action_Display_Dock_Widget_Headers->isChecked());
@@ -397,7 +409,20 @@ void GMainWindow::ConnectMenuEvents() {
     connect(ui.action_Show_Filter_Bar, &QAction::triggered, this, &GMainWindow::OnToggleFilterBar);
     connect(ui.action_Show_Status_Bar, &QAction::triggered, statusBar(), &QStatusBar::setVisible);
     ui.action_Fullscreen->setShortcut(GetHotkey("Main Window", "Fullscreen", this)->key());
+    ui.action_Screen_Layout_Swap_Screens->setShortcut(
+        GetHotkey("Main Window", "Swap Screens", this)->key());
+    ui.action_Screen_Layout_Swap_Screens->setShortcutContext(Qt::WidgetWithChildrenShortcut);
     connect(ui.action_Fullscreen, &QAction::triggered, this, &GMainWindow::ToggleFullscreen);
+    connect(ui.action_Screen_Layout_Default, &QAction::triggered, this,
+            &GMainWindow::ChangeScreenLayout);
+    connect(ui.action_Screen_Layout_Single_Screen, &QAction::triggered, this,
+            &GMainWindow::ChangeScreenLayout);
+    connect(ui.action_Screen_Layout_Large_Screen, &QAction::triggered, this,
+            &GMainWindow::ChangeScreenLayout);
+    connect(ui.action_Screen_Layout_Side_by_Side, &QAction::triggered, this,
+            &GMainWindow::ChangeScreenLayout);
+    connect(ui.action_Screen_Layout_Swap_Screens, &QAction::triggered, this,
+            &GMainWindow::OnSwapScreens);
 
     // Help
     connect(ui.action_FAQ, &QAction::triggered,
@@ -937,6 +962,50 @@ void GMainWindow::ToggleWindowMode() {
     }
 }
 
+void GMainWindow::ChangeScreenLayout() {
+    Settings::LayoutOption new_layout = Settings::LayoutOption::Default;
+
+    if (ui.action_Screen_Layout_Default->isChecked()) {
+        new_layout = Settings::LayoutOption::Default;
+    } else if (ui.action_Screen_Layout_Single_Screen->isChecked()) {
+        new_layout = Settings::LayoutOption::SingleScreen;
+    } else if (ui.action_Screen_Layout_Large_Screen->isChecked()) {
+        new_layout = Settings::LayoutOption::LargeScreen;
+    } else if (ui.action_Screen_Layout_Side_by_Side->isChecked()) {
+        new_layout = Settings::LayoutOption::SideScreen;
+    }
+
+    Settings::values.layout_option = new_layout;
+    Settings::Apply();
+}
+
+void GMainWindow::ToggleScreenLayout() {
+    Settings::LayoutOption new_layout = Settings::LayoutOption::Default;
+
+    switch (Settings::values.layout_option) {
+    case Settings::LayoutOption::Default:
+        new_layout = Settings::LayoutOption::SingleScreen;
+        break;
+    case Settings::LayoutOption::SingleScreen:
+        new_layout = Settings::LayoutOption::LargeScreen;
+        break;
+    case Settings::LayoutOption::LargeScreen:
+        new_layout = Settings::LayoutOption::SideScreen;
+        break;
+    case Settings::LayoutOption::SideScreen:
+        new_layout = Settings::LayoutOption::Default;
+        break;
+    }
+
+    Settings::values.layout_option = new_layout;
+    Settings::Apply();
+}
+
+void GMainWindow::OnSwapScreens() {
+    Settings::values.swap_screen = ui.action_Screen_Layout_Swap_Screens->isChecked();
+    Settings::Apply();
+}
+
 void GMainWindow::OnConfigure() {
     ConfigureDialog configureDialog(this);
     connect(&configureDialog, &ConfigureDialog::languageChanged, this,
@@ -945,6 +1014,7 @@ void GMainWindow::OnConfigure() {
     if (result == QDialog::Accepted) {
         configureDialog.applyConfiguration();
         UpdateUITheme();
+        SyncMenuUISettings();
         config->Save();
     }
 }
@@ -958,11 +1028,6 @@ void GMainWindow::OnToggleFilterBar() {
     }
 }
 
-void GMainWindow::OnSwapScreens() {
-    Settings::values.swap_screen = !Settings::values.swap_screen;
-    Settings::Apply();
-}
-
 void GMainWindow::OnCreateGraphicsSurfaceViewer() {
     auto graphicsSurfaceViewerWidget = new GraphicsSurfaceWidget(Pica::g_debug_context, this);
     addDockWidget(Qt::RightDockWidgetArea, graphicsSurfaceViewerWidget);
@@ -1201,6 +1266,18 @@ void GMainWindow::SetupUIStrings() {
         tr("Citra %1| %2-%3").arg(Common::g_build_name, Common::g_scm_branch, Common::g_scm_desc));
 }
 
+void GMainWindow::SyncMenuUISettings() {
+    ui.action_Screen_Layout_Default->setChecked(Settings::values.layout_option ==
+                                                Settings::LayoutOption::Default);
+    ui.action_Screen_Layout_Single_Screen->setChecked(Settings::values.layout_option ==
+                                                      Settings::LayoutOption::SingleScreen);
+    ui.action_Screen_Layout_Large_Screen->setChecked(Settings::values.layout_option ==
+                                                     Settings::LayoutOption::LargeScreen);
+    ui.action_Screen_Layout_Side_by_Side->setChecked(Settings::values.layout_option ==
+                                                     Settings::LayoutOption::SideScreen);
+    ui.action_Screen_Layout_Swap_Screens->setChecked(Settings::values.swap_screen);
+}
+
 #ifdef main
 #undef main
 #endif
diff --git a/src/citra_qt/main.h b/src/citra_qt/main.h
index fc72cb1e1..763ffab65 100644
--- a/src/citra_qt/main.h
+++ b/src/citra_qt/main.h
@@ -79,6 +79,7 @@ private:
     void InitializeHotkeys();
 
     void SetDefaultUIGeometry();
+    void SyncMenuUISettings();
     void RestoreUIState();
 
     void ConnectWidgetEvents();
@@ -139,11 +140,13 @@ private slots:
     /// Called whenever a user selects the "File->Select Game List Root" menu item
     void OnMenuSelectGameListRoot();
     void OnMenuRecentFile();
-    void OnSwapScreens();
     void OnConfigure();
     void OnToggleFilterBar();
     void OnDisplayTitleBars(bool);
     void ToggleFullscreen();
+    void ChangeScreenLayout();
+    void ToggleScreenLayout();
+    void OnSwapScreens();
     void ShowFullscreen();
     void HideFullscreen();
     void ToggleWindowMode();
diff --git a/src/citra_qt/main.ui b/src/citra_qt/main.ui
index bbc82f9e7..c598c444f 100644
--- a/src/citra_qt/main.ui
+++ b/src/citra_qt/main.ui
@@ -86,11 +86,25 @@
      <addaction name="action_Create_Pica_Surface_Viewer"/>
      <addaction name="separator"/>
     </widget>
+    <widget class="QMenu" name="menu_Screen_Layout">
+     <property name="title">
+      <string>Screen Layout</string>
+     </property>
+     <addaction name="action_Screen_Layout_Default"/>
+     <addaction name="action_Screen_Layout_Single_Screen"/>
+     <addaction name="action_Screen_Layout_Large_Screen"/>
+     <addaction name="action_Screen_Layout_Side_by_Side"/>
+     <addaction name="separator"/>
+     <addaction name="action_Screen_Layout_Swap_Screens"/>
+    </widget>
     <addaction name="action_Fullscreen"/>
     <addaction name="action_Single_Window_Mode"/>
+    <addaction name="menu_Screen_Layout"/>
+    <addaction name="separator"/>
     <addaction name="action_Display_Dock_Widget_Headers"/>
     <addaction name="action_Show_Filter_Bar"/>
     <addaction name="action_Show_Status_Bar"/>
+    <addaction name="separator"/>
     <addaction name="menu_View_Debugging"/>
    </widget>
    <widget class="QMenu" name="menu_Help">
@@ -230,6 +244,46 @@
     <string>Opens the maintenance tool to modify your Citra installation</string>
    </property>
   </action>
+   <action name="action_Screen_Layout_Default">
+     <property name="checkable">
+       <bool>true</bool>
+     </property>
+     <property name="text">
+       <string>Default</string>
+     </property>
+   </action>
+   <action name="action_Screen_Layout_Single_Screen">
+     <property name="checkable">
+       <bool>true</bool>
+     </property>
+     <property name="text">
+       <string>Single Screen</string>
+     </property>
+   </action>
+   <action name="action_Screen_Layout_Large_Screen">
+     <property name="checkable">
+       <bool>true</bool>
+     </property>
+     <property name="text">
+       <string>Large Screen</string>
+     </property>
+   </action>
+   <action name="action_Screen_Layout_Side_by_Side">
+     <property name="checkable">
+       <bool>true</bool>
+     </property>
+     <property name="text">
+       <string>Side by Side</string>
+     </property>
+   </action>
+   <action name="action_Screen_Layout_Swap_Screens">
+     <property name="checkable">
+       <bool>true</bool>
+     </property>
+     <property name="text">
+       <string>Swap Screens</string>
+     </property>
+   </action>
   <action name="action_Check_For_Updates">
    <property name="text">
     <string>Check for Updates</string>