summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/yuzu/configuration/config.cpp6
-rw-r--r--src/yuzu/configuration/config.h2
-rw-r--r--src/yuzu/configuration/configure_general.cpp2
-rw-r--r--src/yuzu/configuration/configure_general.ui7
-rw-r--r--src/yuzu/main.cpp135
-rw-r--r--src/yuzu/main.h4
-rw-r--r--src/yuzu/uisettings.h1
7 files changed, 95 insertions, 62 deletions
diff --git a/src/yuzu/configuration/config.cpp b/src/yuzu/configuration/config.cpp
index 2c8c10c50..9ee7992e7 100644
--- a/src/yuzu/configuration/config.cpp
+++ b/src/yuzu/configuration/config.cpp
@@ -65,12 +65,14 @@ const std::array<int, 2> Config::default_stick_mod = {
65// This must be in alphabetical order according to action name as it must have the same order as 65// This must be in alphabetical order according to action name as it must have the same order as
66// UISetting::values.shortcuts, which is alphabetically ordered. 66// UISetting::values.shortcuts, which is alphabetically ordered.
67// clang-format off 67// clang-format off
68const std::array<UISettings::Shortcut, 20> Config::default_hotkeys{{ 68const std::array<UISettings::Shortcut, 22> Config::default_hotkeys{{
69 {QStringLiteral("Audio Mute/Unmute"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), QStringLiteral("Home+Dpad_Right"), Qt::WindowShortcut}}, 69 {QStringLiteral("Audio Mute/Unmute"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+M"), QStringLiteral("Home+Dpad_Right"), Qt::WindowShortcut}},
70 {QStringLiteral("Audio Volume Down"), QStringLiteral("Main Window"), {QStringLiteral("-"), QStringLiteral("Home+Dpad_Down"), Qt::ApplicationShortcut}}, 70 {QStringLiteral("Audio Volume Down"), QStringLiteral("Main Window"), {QStringLiteral("-"), QStringLiteral("Home+Dpad_Down"), Qt::ApplicationShortcut}},
71 {QStringLiteral("Audio Volume Up"), QStringLiteral("Main Window"), {QStringLiteral("+"), QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}}, 71 {QStringLiteral("Audio Volume Up"), QStringLiteral("Main Window"), {QStringLiteral("+"), QStringLiteral("Home+Dpad_Up"), Qt::ApplicationShortcut}},
72 {QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), QStringLiteral("Screenshot"), Qt::WidgetWithChildrenShortcut}}, 72 {QStringLiteral("Capture Screenshot"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+P"), QStringLiteral("Screenshot"), Qt::WidgetWithChildrenShortcut}},
73 {QStringLiteral("Change Adapting Filter"), QStringLiteral("Main Window"), {QStringLiteral("F8"), QStringLiteral("Home+L"), Qt::ApplicationShortcut}},
73 {QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), QStringLiteral("Home+X"), Qt::ApplicationShortcut}}, 74 {QStringLiteral("Change Docked Mode"), QStringLiteral("Main Window"), {QStringLiteral("F10"), QStringLiteral("Home+X"), Qt::ApplicationShortcut}},
75 {QStringLiteral("Change GPU Accuracy"), QStringLiteral("Main Window"), {QStringLiteral("F9"), QStringLiteral("Home+R"), Qt::ApplicationShortcut}},
74 {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), QStringLiteral("Home+Plus"), Qt::WindowShortcut}}, 76 {QStringLiteral("Continue/Pause Emulation"), QStringLiteral("Main Window"), {QStringLiteral("F4"), QStringLiteral("Home+Plus"), Qt::WindowShortcut}},
75 {QStringLiteral("Exit Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("Esc"), QStringLiteral(""), Qt::WindowShortcut}}, 77 {QStringLiteral("Exit Fullscreen"), QStringLiteral("Main Window"), {QStringLiteral("Esc"), QStringLiteral(""), Qt::WindowShortcut}},
76 {QStringLiteral("Exit yuzu"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"), QStringLiteral("Home+Minus"), Qt::WindowShortcut}}, 78 {QStringLiteral("Exit yuzu"), QStringLiteral("Main Window"), {QStringLiteral("Ctrl+Q"), QStringLiteral("Home+Minus"), Qt::WindowShortcut}},
@@ -767,6 +769,7 @@ void Config::ReadUIValues() {
767 ReadBasicSetting(UISettings::values.callout_flags); 769 ReadBasicSetting(UISettings::values.callout_flags);
768 ReadBasicSetting(UISettings::values.show_console); 770 ReadBasicSetting(UISettings::values.show_console);
769 ReadBasicSetting(UISettings::values.pause_when_in_background); 771 ReadBasicSetting(UISettings::values.pause_when_in_background);
772 ReadBasicSetting(UISettings::values.mute_when_in_background);
770 ReadBasicSetting(UISettings::values.hide_mouse); 773 ReadBasicSetting(UISettings::values.hide_mouse);
771 774
772 qt_config->endGroup(); 775 qt_config->endGroup();
@@ -1295,6 +1298,7 @@ void Config::SaveUIValues() {
1295 WriteBasicSetting(UISettings::values.callout_flags); 1298 WriteBasicSetting(UISettings::values.callout_flags);
1296 WriteBasicSetting(UISettings::values.show_console); 1299 WriteBasicSetting(UISettings::values.show_console);
1297 WriteBasicSetting(UISettings::values.pause_when_in_background); 1300 WriteBasicSetting(UISettings::values.pause_when_in_background);
1301 WriteBasicSetting(UISettings::values.mute_when_in_background);
1298 WriteBasicSetting(UISettings::values.hide_mouse); 1302 WriteBasicSetting(UISettings::values.hide_mouse);
1299 1303
1300 qt_config->endGroup(); 1304 qt_config->endGroup();
diff --git a/src/yuzu/configuration/config.h b/src/yuzu/configuration/config.h
index 60b20a62f..ae3e36a11 100644
--- a/src/yuzu/configuration/config.h
+++ b/src/yuzu/configuration/config.h
@@ -46,7 +46,7 @@ public:
46 default_mouse_buttons; 46 default_mouse_buttons;
47 static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys; 47 static const std::array<int, Settings::NativeKeyboard::NumKeyboardKeys> default_keyboard_keys;
48 static const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> default_keyboard_mods; 48 static const std::array<int, Settings::NativeKeyboard::NumKeyboardMods> default_keyboard_mods;
49 static const std::array<UISettings::Shortcut, 20> default_hotkeys; 49 static const std::array<UISettings::Shortcut, 22> default_hotkeys;
50 50
51 static constexpr UISettings::Theme default_theme{ 51 static constexpr UISettings::Theme default_theme{
52#ifdef _WIN32 52#ifdef _WIN32
diff --git a/src/yuzu/configuration/configure_general.cpp b/src/yuzu/configuration/configure_general.cpp
index 566879317..978a29fe6 100644
--- a/src/yuzu/configuration/configure_general.cpp
+++ b/src/yuzu/configuration/configure_general.cpp
@@ -46,6 +46,7 @@ void ConfigureGeneral::SetConfiguration() {
46 ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing.GetValue()); 46 ui->toggle_check_exit->setChecked(UISettings::values.confirm_before_closing.GetValue());
47 ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot.GetValue()); 47 ui->toggle_user_on_boot->setChecked(UISettings::values.select_user_on_boot.GetValue());
48 ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue()); 48 ui->toggle_background_pause->setChecked(UISettings::values.pause_when_in_background.GetValue());
49 ui->toggle_background_mute->setChecked(UISettings::values.mute_when_in_background.GetValue());
49 ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue()); 50 ui->toggle_hide_mouse->setChecked(UISettings::values.hide_mouse.GetValue());
50 51
51 ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue()); 52 ui->toggle_speed_limit->setChecked(Settings::values.use_speed_limit.GetValue());
@@ -95,6 +96,7 @@ void ConfigureGeneral::ApplyConfiguration() {
95 UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked(); 96 UISettings::values.confirm_before_closing = ui->toggle_check_exit->isChecked();
96 UISettings::values.select_user_on_boot = ui->toggle_user_on_boot->isChecked(); 97 UISettings::values.select_user_on_boot = ui->toggle_user_on_boot->isChecked();
97 UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked(); 98 UISettings::values.pause_when_in_background = ui->toggle_background_pause->isChecked();
99 UISettings::values.mute_when_in_background = ui->toggle_background_mute->isChecked();
98 UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked(); 100 UISettings::values.hide_mouse = ui->toggle_hide_mouse->isChecked();
99 101
100 Settings::values.fps_cap.SetValue(ui->fps_cap->value()); 102 Settings::values.fps_cap.SetValue(ui->fps_cap->value());
diff --git a/src/yuzu/configuration/configure_general.ui b/src/yuzu/configuration/configure_general.ui
index 112dc72b3..bfc771135 100644
--- a/src/yuzu/configuration/configure_general.ui
+++ b/src/yuzu/configuration/configure_general.ui
@@ -164,6 +164,13 @@
164 </widget> 164 </widget>
165 </item> 165 </item>
166 <item> 166 <item>
167 <widget class="QCheckBox" name="toggle_background_mute">
168 <property name="text">
169 <string>Mute audio when in background</string>
170 </property>
171 </widget>
172 </item>
173 <item>
167 <widget class="QCheckBox" name="toggle_hide_mouse"> 174 <widget class="QCheckBox" name="toggle_hide_mouse">
168 <property name="text"> 175 <property name="text">
169 <string>Hide mouse on inactivity</string> 176 <string>Hide mouse on inactivity</string>
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index c788db12d..cc5a8f65e 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -806,21 +806,8 @@ void GMainWindow::InitializeWidgets() {
806 filter_status_button = new QPushButton(); 806 filter_status_button = new QPushButton();
807 filter_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton")); 807 filter_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton"));
808 filter_status_button->setFocusPolicy(Qt::NoFocus); 808 filter_status_button->setFocusPolicy(Qt::NoFocus);
809 connect(filter_status_button, &QPushButton::clicked, [&] { 809 connect(filter_status_button, &QPushButton::clicked, this,
810 auto filter = Settings::values.scaling_filter.GetValue(); 810 &GMainWindow::OnToggleAdaptingFilter);
811 if (filter == Settings::ScalingFilter::LastFilter) {
812 filter = Settings::ScalingFilter::NearestNeighbor;
813 } else {
814 filter = static_cast<Settings::ScalingFilter>(static_cast<u32>(filter) + 1);
815 }
816 if (Settings::values.renderer_backend.GetValue() == Settings::RendererBackend::OpenGL &&
817 filter == Settings::ScalingFilter::Fsr) {
818 filter = Settings::ScalingFilter::NearestNeighbor;
819 }
820 Settings::values.scaling_filter.SetValue(filter);
821 filter_status_button->setChecked(true);
822 UpdateFilterText();
823 });
824 auto filter = Settings::values.scaling_filter.GetValue(); 811 auto filter = Settings::values.scaling_filter.GetValue();
825 if (Settings::values.renderer_backend.GetValue() == Settings::RendererBackend::OpenGL && 812 if (Settings::values.renderer_backend.GetValue() == Settings::RendererBackend::OpenGL &&
826 filter == Settings::ScalingFilter::Fsr) { 813 filter == Settings::ScalingFilter::Fsr) {
@@ -835,25 +822,7 @@ void GMainWindow::InitializeWidgets() {
835 dock_status_button = new QPushButton(); 822 dock_status_button = new QPushButton();
836 dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton")); 823 dock_status_button->setObjectName(QStringLiteral("TogglableStatusBarButton"));
837 dock_status_button->setFocusPolicy(Qt::NoFocus); 824 dock_status_button->setFocusPolicy(Qt::NoFocus);
838 connect(dock_status_button, &QPushButton::clicked, [&] { 825 connect(dock_status_button, &QPushButton::clicked, this, &GMainWindow::OnToggleDockedMode);
839 const bool is_docked = Settings::values.use_docked_mode.GetValue();
840 auto* player_1 = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
841 auto* handheld = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Handheld);
842
843 if (!is_docked && handheld->IsConnected()) {
844 QMessageBox::warning(this, tr("Invalid config detected"),
845 tr("Handheld controller can't be used on docked mode. Pro "
846 "controller will be selected."));
847 handheld->Disconnect();
848 player_1->SetNpadStyleIndex(Core::HID::NpadStyleIndex::ProController);
849 player_1->Connect();
850 controller_dialog->refreshConfiguration();
851 }
852
853 Settings::values.use_docked_mode.SetValue(!is_docked);
854 dock_status_button->setChecked(!is_docked);
855 OnDockedModeChanged(is_docked, !is_docked, *system);
856 });
857 dock_status_button->setText(tr("DOCK")); 826 dock_status_button->setText(tr("DOCK"));
858 dock_status_button->setCheckable(true); 827 dock_status_button->setCheckable(true);
859 dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue()); 828 dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue());
@@ -863,22 +832,7 @@ void GMainWindow::InitializeWidgets() {
863 gpu_accuracy_button->setObjectName(QStringLiteral("GPUStatusBarButton")); 832 gpu_accuracy_button->setObjectName(QStringLiteral("GPUStatusBarButton"));
864 gpu_accuracy_button->setCheckable(true); 833 gpu_accuracy_button->setCheckable(true);
865 gpu_accuracy_button->setFocusPolicy(Qt::NoFocus); 834 gpu_accuracy_button->setFocusPolicy(Qt::NoFocus);
866 connect(gpu_accuracy_button, &QPushButton::clicked, [this] { 835 connect(gpu_accuracy_button, &QPushButton::clicked, this, &GMainWindow::OnToggleGpuAccuracy);
867 switch (Settings::values.gpu_accuracy.GetValue()) {
868 case Settings::GPUAccuracy::High: {
869 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::Normal);
870 break;
871 }
872 case Settings::GPUAccuracy::Normal:
873 case Settings::GPUAccuracy::Extreme:
874 default: {
875 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::High);
876 }
877 }
878
879 system->ApplySettings();
880 UpdateGPUAccuracyButton();
881 });
882 UpdateGPUAccuracyButton(); 836 UpdateGPUAccuracyButton();
883 statusBar()->insertPermanentWidget(0, gpu_accuracy_button); 837 statusBar()->insertPermanentWidget(0, gpu_accuracy_button);
884 838
@@ -1009,12 +963,10 @@ void GMainWindow::InitializeHotkeys() {
1009 ToggleFullscreen(); 963 ToggleFullscreen();
1010 } 964 }
1011 }); 965 });
1012 connect_shortcut(QStringLiteral("Change Docked Mode"), [&] { 966 connect_shortcut(QStringLiteral("Change Adapting Filter"),
1013 Settings::values.use_docked_mode.SetValue(!Settings::values.use_docked_mode.GetValue()); 967 &GMainWindow::OnToggleAdaptingFilter);
1014 OnDockedModeChanged(!Settings::values.use_docked_mode.GetValue(), 968 connect_shortcut(QStringLiteral("Change Docked Mode"), &GMainWindow::OnToggleDockedMode);
1015 Settings::values.use_docked_mode.GetValue(), *system); 969 connect_shortcut(QStringLiteral("Change GPU Accuracy"), &GMainWindow::OnToggleGpuAccuracy);
1016 dock_status_button->setChecked(Settings::values.use_docked_mode.GetValue());
1017 });
1018 connect_shortcut(QStringLiteral("Audio Mute/Unmute"), 970 connect_shortcut(QStringLiteral("Audio Mute/Unmute"),
1019 [] { Settings::values.audio_muted = !Settings::values.audio_muted; }); 971 [] { Settings::values.audio_muted = !Settings::values.audio_muted; });
1020 connect_shortcut(QStringLiteral("Audio Volume Down"), [] { 972 connect_shortcut(QStringLiteral("Audio Volume Down"), [] {
@@ -1082,14 +1034,14 @@ void GMainWindow::RestoreUIState() {
1082} 1034}
1083 1035
1084void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) { 1036void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {
1085 if (!UISettings::values.pause_when_in_background) {
1086 return;
1087 }
1088 if (state != Qt::ApplicationHidden && state != Qt::ApplicationInactive && 1037 if (state != Qt::ApplicationHidden && state != Qt::ApplicationInactive &&
1089 state != Qt::ApplicationActive) { 1038 state != Qt::ApplicationActive) {
1090 LOG_DEBUG(Frontend, "ApplicationState unusual flag: {} ", state); 1039 LOG_DEBUG(Frontend, "ApplicationState unusual flag: {} ", state);
1091 } 1040 }
1092 if (emulation_running) { 1041 if (!emulation_running) {
1042 return;
1043 }
1044 if (UISettings::values.pause_when_in_background) {
1093 if (emu_thread->IsRunning() && 1045 if (emu_thread->IsRunning() &&
1094 (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) { 1046 (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) {
1095 auto_paused = true; 1047 auto_paused = true;
@@ -1099,6 +1051,16 @@ void GMainWindow::OnAppFocusStateChanged(Qt::ApplicationState state) {
1099 OnStartGame(); 1051 OnStartGame();
1100 } 1052 }
1101 } 1053 }
1054 if (UISettings::values.mute_when_in_background) {
1055 if (!Settings::values.audio_muted &&
1056 (state & (Qt::ApplicationHidden | Qt::ApplicationInactive))) {
1057 Settings::values.audio_muted = true;
1058 auto_muted = true;
1059 } else if (auto_muted && state == Qt::ApplicationActive) {
1060 Settings::values.audio_muted = false;
1061 auto_muted = false;
1062 }
1063 }
1102} 1064}
1103 1065
1104void GMainWindow::ConnectWidgetEvents() { 1066void GMainWindow::ConnectWidgetEvents() {
@@ -2868,6 +2830,59 @@ void GMainWindow::OnTasReset() {
2868 input_subsystem->GetTas()->Reset(); 2830 input_subsystem->GetTas()->Reset();
2869} 2831}
2870 2832
2833void GMainWindow::OnToggleDockedMode() {
2834 const bool is_docked = Settings::values.use_docked_mode.GetValue();
2835 auto* player_1 = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Player1);
2836 auto* handheld = system->HIDCore().GetEmulatedController(Core::HID::NpadIdType::Handheld);
2837
2838 if (!is_docked && handheld->IsConnected()) {
2839 QMessageBox::warning(this, tr("Invalid config detected"),
2840 tr("Handheld controller can't be used on docked mode. Pro "
2841 "controller will be selected."));
2842 handheld->Disconnect();
2843 player_1->SetNpadStyleIndex(Core::HID::NpadStyleIndex::ProController);
2844 player_1->Connect();
2845 controller_dialog->refreshConfiguration();
2846 }
2847
2848 Settings::values.use_docked_mode.SetValue(!is_docked);
2849 dock_status_button->setChecked(!is_docked);
2850 OnDockedModeChanged(is_docked, !is_docked, *system);
2851}
2852
2853void GMainWindow::OnToggleGpuAccuracy() {
2854 switch (Settings::values.gpu_accuracy.GetValue()) {
2855 case Settings::GPUAccuracy::High: {
2856 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::Normal);
2857 break;
2858 }
2859 case Settings::GPUAccuracy::Normal:
2860 case Settings::GPUAccuracy::Extreme:
2861 default: {
2862 Settings::values.gpu_accuracy.SetValue(Settings::GPUAccuracy::High);
2863 }
2864 }
2865
2866 system->ApplySettings();
2867 UpdateGPUAccuracyButton();
2868}
2869
2870void GMainWindow::OnToggleAdaptingFilter() {
2871 auto filter = Settings::values.scaling_filter.GetValue();
2872 if (filter == Settings::ScalingFilter::LastFilter) {
2873 filter = Settings::ScalingFilter::NearestNeighbor;
2874 } else {
2875 filter = static_cast<Settings::ScalingFilter>(static_cast<u32>(filter) + 1);
2876 }
2877 if (Settings::values.renderer_backend.GetValue() == Settings::RendererBackend::OpenGL &&
2878 filter == Settings::ScalingFilter::Fsr) {
2879 filter = Settings::ScalingFilter::NearestNeighbor;
2880 }
2881 Settings::values.scaling_filter.SetValue(filter);
2882 filter_status_button->setChecked(true);
2883 UpdateFilterText();
2884}
2885
2871void GMainWindow::OnConfigurePerGame() { 2886void GMainWindow::OnConfigurePerGame() {
2872 const u64 title_id = system->GetCurrentProcessProgramID(); 2887 const u64 title_id = system->GetCurrentProcessProgramID();
2873 OpenPerGameConfiguration(title_id, game_path.toStdString()); 2888 OpenPerGameConfiguration(title_id, game_path.toStdString());
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index ca4ab9af5..6a35b9e3d 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -284,6 +284,9 @@ private slots:
284 void OnTasStartStop(); 284 void OnTasStartStop();
285 void OnTasRecord(); 285 void OnTasRecord();
286 void OnTasReset(); 286 void OnTasReset();
287 void OnToggleDockedMode();
288 void OnToggleGpuAccuracy();
289 void OnToggleAdaptingFilter();
287 void OnConfigurePerGame(); 290 void OnConfigurePerGame();
288 void OnLoadAmiibo(); 291 void OnLoadAmiibo();
289 void OnOpenYuzuFolder(); 292 void OnOpenYuzuFolder();
@@ -369,6 +372,7 @@ private:
369 QString game_path; 372 QString game_path;
370 373
371 bool auto_paused = false; 374 bool auto_paused = false;
375 bool auto_muted = false;
372 QTimer mouse_hide_timer; 376 QTimer mouse_hide_timer;
373 377
374 // FS 378 // FS
diff --git a/src/yuzu/uisettings.h b/src/yuzu/uisettings.h
index f7298ddad..06e8b46da 100644
--- a/src/yuzu/uisettings.h
+++ b/src/yuzu/uisettings.h
@@ -73,6 +73,7 @@ struct Values {
73 Settings::BasicSetting<bool> confirm_before_closing{true, "confirmClose"}; 73 Settings::BasicSetting<bool> confirm_before_closing{true, "confirmClose"};
74 Settings::BasicSetting<bool> first_start{true, "firstStart"}; 74 Settings::BasicSetting<bool> first_start{true, "firstStart"};
75 Settings::BasicSetting<bool> pause_when_in_background{false, "pauseWhenInBackground"}; 75 Settings::BasicSetting<bool> pause_when_in_background{false, "pauseWhenInBackground"};
76 Settings::BasicSetting<bool> mute_when_in_background{false, "muteWhenInBackground"};
76 Settings::BasicSetting<bool> hide_mouse{true, "hideInactiveMouse"}; 77 Settings::BasicSetting<bool> hide_mouse{true, "hideInactiveMouse"};
77 78
78 Settings::BasicSetting<bool> select_user_on_boot{false, "select_user_on_boot"}; 79 Settings::BasicSetting<bool> select_user_on_boot{false, "select_user_on_boot"};