diff --git a/apps/launcher/settingspage.cpp b/apps/launcher/settingspage.cpp
index dfddc45bc5..94a1a0b8a0 100644
--- a/apps/launcher/settingspage.cpp
+++ b/apps/launcher/settingspage.cpp
@@ -304,6 +304,7 @@ bool Launcher::SettingsPage::loadSettings()
loadSettingBool(Settings::gui().mColorTopicEnable, *changeDialogTopicsCheckBox);
showOwnedComboBox->setCurrentIndex(Settings::game().mShowOwned);
loadSettingBool(Settings::gui().mStretchMenuBackground, *stretchBackgroundCheckBox);
+ loadSettingBool(Settings::gui().mControllerMenus, *controllerMenusCheckBox);
loadSettingBool(Settings::map().mAllowZooming, *useZoomOnMapCheckBox);
loadSettingBool(Settings::game().mGraphicHerbalism, *graphicHerbalismCheckBox);
scalingSpinBox->setValue(Settings::gui().mScalingFactor);
@@ -497,6 +498,7 @@ void Launcher::SettingsPage::saveSettings()
saveSettingBool(*changeDialogTopicsCheckBox, Settings::gui().mColorTopicEnable);
saveSettingInt(*showOwnedComboBox, Settings::game().mShowOwned);
saveSettingBool(*stretchBackgroundCheckBox, Settings::gui().mStretchMenuBackground);
+ saveSettingBool(*controllerMenusCheckBox, Settings::gui().mControllerMenus);
saveSettingBool(*useZoomOnMapCheckBox, Settings::map().mAllowZooming);
saveSettingBool(*graphicHerbalismCheckBox, Settings::game().mGraphicHerbalism);
Settings::gui().mScalingFactor.set(scalingSpinBox->value());
diff --git a/apps/launcher/ui/settingspage.ui b/apps/launcher/ui/settingspage.ui
index e792ac2843..e501ed156f 100644
--- a/apps/launcher/ui/settingspage.ui
+++ b/apps/launcher/ui/settingspage.ui
@@ -1398,6 +1398,16 @@
+ -
+
+
+ <html><head/><body><p>Make it easier to use game menus with a controller.</p></body></html>
+
+
+ Enable Controller Menus
+
+
+
-
diff --git a/components/settings/categories/gui.hpp b/components/settings/categories/gui.hpp
index a26364c5dd..139d55d9c8 100644
--- a/components/settings/categories/gui.hpp
+++ b/components/settings/categories/gui.hpp
@@ -25,6 +25,7 @@ namespace Settings
SettingValue mMenuTransparency{ mIndex, "GUI", "menu transparency", makeClampSanitizerFloat(0, 1) };
SettingValue mTooltipDelay{ mIndex, "GUI", "tooltip delay", makeMaxSanitizerFloat(0) };
SettingValue mStretchMenuBackground{ mIndex, "GUI", "stretch menu background" };
+ SettingValue mControllerMenus{ mIndex, "GUI", "controller menus" };
SettingValue mSubtitles{ mIndex, "GUI", "subtitles" };
SettingValue mHitFader{ mIndex, "GUI", "hit fader" };
SettingValue mWerewolfOverlay{ mIndex, "GUI", "werewolf overlay" };
diff --git a/files/settings-default.cfg b/files/settings-default.cfg
index e5654794cc..6a0701803b 100644
--- a/files/settings-default.cfg
+++ b/files/settings-default.cfg
@@ -201,6 +201,9 @@ tooltip delay = 0.0
# Stretch menus, load screens, etc. to the window aspect ratio.
stretch menu background = false
+# Make menus easier to navigate with a controller.
+controller menus = false
+
# Subtitles for NPC spoken dialog and some sound effects.
subtitles = false