diff --git a/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs b/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs index 188d790cfe..e590f5da3f 100644 --- a/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs +++ b/src/core/Microsoft.PowerToys.Settings.UI.Lib/PowerLauncherProperties.cs @@ -46,7 +46,7 @@ namespace Microsoft.PowerToys.Settings.UI.Lib public PowerLauncherProperties() { - OpenPowerLauncher = new HotkeySettings(); + OpenPowerLauncher = new HotkeySettings(false, false, true, false, 32); OpenFileLocation = new HotkeySettings(); CopyPathLocation = new HotkeySettings(); OpenConsole = new HotkeySettings(); @@ -55,6 +55,7 @@ namespace Microsoft.PowerToys.Settings.UI.Lib IgnoreHotkeysInFullscreen = false; DisableDriveDetectionWarning = false; ClearInputOnLaunch = false; + MaximumNumberOfResults = 4; } } } diff --git a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs index 466e14fca2..bcbc6c280f 100644 --- a/src/modules/launcher/PowerLauncher/SettingsWatcher.cs +++ b/src/modules/launcher/PowerLauncher/SettingsWatcher.cs @@ -36,11 +36,20 @@ namespace PowerLauncher { Monitor.Enter(_watcherSyncObject); var retry = true; - for (int i = 0; retry && i < MAX_RETRIES; i++) + var retryCount = 0; + while(retry) { - retry = false; try { + retryCount++; + if (!SettingsUtils.SettingsExists(PowerLauncherSettings.ModuleName)) + { + Debug.WriteLine("PT Run settings.json was missing, creating a new one"); + + var defaultSettings = new PowerLauncherSettings(); + defaultSettings.Save(); + } + var overloadSettings = SettingsUtils.GetSettings(PowerLauncherSettings.ModuleName); var openPowerlauncher = ConvertHotkey(overloadSettings.Properties.OpenPowerLauncher); @@ -77,12 +86,17 @@ namespace PowerLauncher { _settings.ClearInputOnLaunch = overloadSettings.Properties.ClearInputOnLaunch; } + + retry = false; } // the settings application can hold a lock on the settings.json file which will result in a IOException. // This should be changed to properly synch with the settings app instead of retrying. catch (IOException e) { - retry = true; + if (retryCount > MAX_RETRIES) + { + retry = false; + } Thread.Sleep(1000); Debug.WriteLine(e.Message); }