diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 9315f05c9..bf430b6f5 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -118,18 +118,17 @@
Very shortInformation for Korean IME user
- You're using the Korean language! The Korean input method used in Windows 11 may cause some issues in Flow Launcher.
- If you experience any problems, you may need to enable compatibility mode for the Korean IME.
+ The Korean input method used in Windows 11 may cause some issues in Flow Launcher.
+ If you experience any problems, you may need to enable "Use previous version of Korean IME".
Open Setting in Windows 11 and go to:
Time & Language > Language & Region > Korean > Language Options > Keyboard - Microsoft IME > Compatibility,
and enable "Use previous version of Microsoft IME".
- You can open the relevant menu using the option below, or change the setting directly without manually opening the settings page.
Open Language and Region System Settings
- Opens the Korean IME setting locationKorean > Language Options > Keyboard - Microsoft IME > Compatibility
+ Opens the Korean IME setting location. Go to Korean > Language Options > Keyboard - Microsoft IME > CompatibilityOpen
- Use Legacy Korean IME
- You can change the IME settings directly from here without opening a separate settings window
+ Use Previous Korean IME
+ You can change the Previous Korean IME settings directly from hereSearch Plugin
diff --git a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
index b98d76000..701de4361 100644
--- a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
+++ b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneGeneralViewModel.cs
@@ -189,128 +189,129 @@ public partial class SettingsPaneGeneralViewModel : BaseModel
}
}
public bool LegacyKoreanIMEEnabled
+{
+ get => IsLegacyKoreanIMEEnabled();
+ set
{
- get => IsLegacyKoreanIMEEnabled();
- set
+ Debug.WriteLine($"[DEBUG] LegacyKoreanIMEEnabled changed: {value}");
+ if (SetLegacyKoreanIMEEnabled(value))
{
- Debug.WriteLine($"[DEBUG] LegacyKoreanIMEEnabled 변경: {value}");
- if (SetLegacyKoreanIMEEnabled(value))
- {
- OnPropertyChanged(nameof(LegacyKoreanIMEEnabled));
- OnPropertyChanged(nameof(KoreanIMERegistryValueIsZero));
- }
- else
- {
- Debug.WriteLine("[DEBUG] LegacyKoreanIMEEnabled 설정 실패");
- }
+ OnPropertyChanged(nameof(LegacyKoreanIMEEnabled));
+ OnPropertyChanged(nameof(KoreanIMERegistryValueIsZero));
+ }
+ else
+ {
+ Debug.WriteLine("[DEBUG] Failed to set LegacyKoreanIMEEnabled");
}
}
+}
- public bool KoreanIMERegistryKeyExists => IsKoreanIMEExist();
+public bool KoreanIMERegistryKeyExists => IsKoreanIMEExist();
- public bool KoreanIMERegistryValueIsZero
- {
- get
- {
- object value = GetLegacyKoreanIMERegistryValue();
- if (value is int intValue)
- {
- return intValue == 0;
- }
- else if (value != null && int.TryParse(value.ToString(), out int parsedValue))
- {
- return parsedValue == 0;
- }
-
- return false;
- }
- }
-
- bool IsKoreanIMEExist()
- {
- return GetLegacyKoreanIMERegistryValue() != null;
- }
-
- bool IsLegacyKoreanIMEEnabled()
+public bool KoreanIMERegistryValueIsZero
+{
+ get
{
object value = GetLegacyKoreanIMERegistryValue();
-
if (value is int intValue)
{
- return intValue == 1;
+ return intValue == 0;
}
else if (value != null && int.TryParse(value.ToString(), out int parsedValue))
{
- return parsedValue == 1;
+ return parsedValue == 0;
}
return false;
}
+}
- bool SetLegacyKoreanIMEEnabled(bool enable)
+bool IsKoreanIMEExist()
+{
+ return GetLegacyKoreanIMERegistryValue() != null;
+}
+
+bool IsLegacyKoreanIMEEnabled()
+{
+ object value = GetLegacyKoreanIMERegistryValue();
+
+ if (value is int intValue)
{
- const string subKeyPath = @"Software\Microsoft\input\tsf\tsf3override\{A028AE76-01B1-46C2-99C4-ACD9858AE02F}";
- const string valueName = "NoTsf3Override5";
+ return intValue == 1;
+ }
+ else if (value != null && int.TryParse(value.ToString(), out int parsedValue))
+ {
+ return parsedValue == 1;
+ }
- try
+ return false;
+}
+
+bool SetLegacyKoreanIMEEnabled(bool enable)
+{
+ const string subKeyPath = @"Software\Microsoft\input\tsf\tsf3override\{A028AE76-01B1-46C2-99C4-ACD9858AE02F}";
+ const string valueName = "NoTsf3Override5";
+
+ try
+ {
+ using (RegistryKey key = Registry.CurrentUser.CreateSubKey(subKeyPath))
{
- using (RegistryKey key = Registry.CurrentUser.CreateSubKey(subKeyPath))
+ if (key != null)
{
- if (key != null)
- {
- int value = enable ? 1 : 0;
- key.SetValue(valueName, value, RegistryValueKind.DWord);
- return true;
- }
- else
- {
- Debug.WriteLine($"[IME DEBUG] 레지스트리 키 생성 또는 열기 실패: {subKeyPath}");
- }
+ int value = enable ? 1 : 0;
+ key.SetValue(valueName, value, RegistryValueKind.DWord);
+ return true;
+ }
+ else
+ {
+ Debug.WriteLine($"[IME DEBUG] Failed to create or open registry key: {subKeyPath}");
}
}
- catch (Exception ex)
- {
- Debug.WriteLine($"[IME DEBUG] 레지스트리 설정 중 예외 발생: {ex.Message}");
- }
-
- return false;
+ }
+ catch (Exception ex)
+ {
+ Debug.WriteLine($"[IME DEBUG] Exception occurred while setting registry: {ex.Message}");
}
- private object GetLegacyKoreanIMERegistryValue()
- {
- const string subKeyPath = @"Software\Microsoft\input\tsf\tsf3override\{A028AE76-01B1-46C2-99C4-ACD9858AE02F}";
- const string valueName = "NoTsf3Override5";
+ return false;
+}
- try
+private object GetLegacyKoreanIMERegistryValue()
+{
+ const string subKeyPath = @"Software\Microsoft\input\tsf\tsf3override\{A028AE76-01B1-46C2-99C4-ACD9858AE02F}";
+ const string valueName = "NoTsf3Override5";
+
+ try
+ {
+ using (RegistryKey key = Registry.CurrentUser.OpenSubKey(subKeyPath))
{
- using (RegistryKey key = Registry.CurrentUser.OpenSubKey(subKeyPath))
+ if (key != null)
{
- if (key != null)
- {
- return key.GetValue(valueName);
- }
+ return key.GetValue(valueName);
}
}
- catch (Exception ex)
- {
- Debug.WriteLine($"[IME DEBUG] 예외 발생: {ex.Message}");
- }
-
- return null;
}
-
- private void OpenImeSettings()
+ catch (Exception ex)
{
- try
- {
- Process.Start(new ProcessStartInfo("ms-settings:regionlanguage") { UseShellExecute = true });
- }
- catch (Exception e)
- {
- Debug.WriteLine($"Error opening IME settings: {e.Message}");
- }
+ Debug.WriteLine($"[IME DEBUG] Exception occurred: {ex.Message}");
}
+ return null;
+}
+
+private void OpenImeSettings()
+{
+ try
+ {
+ Process.Start(new ProcessStartInfo("ms-settings:regionlanguage") { UseShellExecute = true });
+ }
+ catch (Exception e)
+ {
+ Debug.WriteLine($"Error opening IME settings: {e.Message}");
+ }
+}
+
+
public bool ShouldUsePinyin
{
get => Settings.ShouldUsePinyin;
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
index 16db1c676..5304824fe 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
@@ -320,7 +320,7 @@
-
+
+ Sub="{DynamicResource KoreanImeOpenLinkToolTip}">