diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..454c4e976
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,17 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
+
+version: 2
+updates:
+ - package-ecosystem: "nuget" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "weekly"
+ ignore:
+ - dependency-name: "squirrel-windows"
+ reviewers:
+ - "jjw24"
+ - "taooceros"
+ - "JohnTheGr8"
diff --git a/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs b/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
index f98815c1a..bb1279b2c 100644
--- a/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
+++ b/Flow.Launcher.Core/ExternalPlugins/UserPlugin.cs
@@ -1,4 +1,6 @@
-namespace Flow.Launcher.Core.ExternalPlugins
+using System;
+
+namespace Flow.Launcher.Core.ExternalPlugins
{
public record UserPlugin
{
@@ -12,5 +14,8 @@
public string UrlDownload { get; set; }
public string UrlSourceCode { get; set; }
public string IcoPath { get; set; }
+ public DateTime LatestReleaseDate { get; set; }
+ public DateTime DateAdded { get; set; }
+
}
}
diff --git a/Flow.Launcher.Core/Flow.Launcher.Core.csproj b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
index 9f9fa8ff5..7d18c467b 100644
--- a/Flow.Launcher.Core/Flow.Launcher.Core.csproj
+++ b/Flow.Launcher.Core/Flow.Launcher.Core.csproj
@@ -54,7 +54,7 @@
-
+
diff --git a/Flow.Launcher.Core/Plugin/PluginManager.cs b/Flow.Launcher.Core/Plugin/PluginManager.cs
index 383689c83..3b4a6e445 100644
--- a/Flow.Launcher.Core/Plugin/PluginManager.cs
+++ b/Flow.Launcher.Core/Plugin/PluginManager.cs
@@ -166,18 +166,18 @@ namespace Flow.Launcher.Core.Plugin
public static ICollection ValidPluginsForQuery(Query query)
{
- if (NonGlobalPlugins.ContainsKey(query.ActionKeyword))
- {
- var plugin = NonGlobalPlugins[query.ActionKeyword];
- return new List
- {
- plugin
- };
- }
- else
- {
+ if (query is null)
+ return Array.Empty();
+
+ if (!NonGlobalPlugins.ContainsKey(query.ActionKeyword))
return GlobalPlugins;
- }
+
+
+ var plugin = NonGlobalPlugins[query.ActionKeyword];
+ return new List
+ {
+ plugin
+ };
}
public static async Task> QueryForPluginAsync(PluginPair pair, Query query, CancellationToken token)
diff --git a/Flow.Launcher.Core/Resource/Theme.cs b/Flow.Launcher.Core/Resource/Theme.cs
index 205abcd34..872c4543e 100644
--- a/Flow.Launcher.Core/Resource/Theme.cs
+++ b/Flow.Launcher.Core/Resource/Theme.cs
@@ -17,7 +17,7 @@ namespace Flow.Launcher.Core.Resource
{
public class Theme
{
- private const int ShadowExtraMargin = 12;
+ private const int ShadowExtraMargin = 32;
private readonly List _themeDirectories = new List();
private ResourceDictionary _oldResource;
@@ -238,9 +238,10 @@ namespace Flow.Launcher.Core.Resource
Property = Border.EffectProperty,
Value = new DropShadowEffect
{
- Opacity = 0.4,
- ShadowDepth = 2,
- BlurRadius = 15
+ Opacity = 0.3,
+ ShadowDepth = 12,
+ Direction = 270,
+ BlurRadius = 30
}
};
@@ -250,7 +251,7 @@ namespace Flow.Launcher.Core.Resource
marginSetter = new Setter()
{
Property = Border.MarginProperty,
- Value = new Thickness(ShadowExtraMargin),
+ Value = new Thickness(ShadowExtraMargin, 12, ShadowExtraMargin, ShadowExtraMargin),
};
windowBorderStyle.Setters.Add(marginSetter);
}
diff --git a/Flow.Launcher.Core/Updater.cs b/Flow.Launcher.Core/Updater.cs
index 976c4eec1..bad0344eb 100644
--- a/Flow.Launcher.Core/Updater.cs
+++ b/Flow.Launcher.Core/Updater.cs
@@ -141,6 +141,7 @@ namespace Flow.Launcher.Core
{
var translater = InternationalizationManager.Instance;
var tips = string.Format(translater.GetTranslation("newVersionTips"), version);
+
return tips;
}
diff --git a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
index 930cf0b91..4a7bc20e3 100644
--- a/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
+++ b/Flow.Launcher.Infrastructure/Flow.Launcher.Infrastructure.csproj
@@ -53,7 +53,7 @@
allruntime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs
index 8c1d7d74f..11f66c8af 100644
--- a/Flow.Launcher.Infrastructure/Image/ImageLoader.cs
+++ b/Flow.Launcher.Infrastructure/Image/ImageLoader.cs
@@ -252,6 +252,7 @@ namespace Flow.Launcher.Infrastructure.Image
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.UriSource = new Uri(path);
+ image.CreateOptions = BitmapCreateOptions.IgnoreColorProfile;
image.EndInit();
return image;
}
diff --git a/Flow.Launcher.Infrastructure/StringMatcher.cs b/Flow.Launcher.Infrastructure/StringMatcher.cs
index 3ffa9f7b1..46165a849 100644
--- a/Flow.Launcher.Infrastructure/StringMatcher.cs
+++ b/Flow.Launcher.Infrastructure/StringMatcher.cs
@@ -202,7 +202,11 @@ namespace Flow.Launcher.Infrastructure
if (allQuerySubstringsMatched)
{
var nearestSpaceIndex = CalculateClosestSpaceIndex(spaceIndices, firstMatchIndex);
- var score = CalculateSearchScore(query, stringToCompare, firstMatchIndex - nearestSpaceIndex - 1,
+
+ // firstMatchIndex - nearestSpaceIndex - 1 is to set the firstIndex as the index of the first matched char
+ // preceded by a space e.g. 'world' matching 'hello world' firstIndex would be 0 not 6
+ // giving more weight than 'we or donald' by allowing the distance calculation to treat the starting position at after the space.
+ var score = CalculateSearchScore(query, stringToCompare, firstMatchIndex - nearestSpaceIndex - 1, spaceIndices,
lastMatchIndex - firstMatchIndex, allSubstringsContainedInCompareString);
var resultList = indexList.Select(x => translationMapping?.MapToOriginalIndex(x) ?? x).Distinct().ToList();
@@ -296,7 +300,7 @@ namespace Flow.Launcher.Infrastructure
return currentQuerySubstringIndex >= querySubstringsLength;
}
- private static int CalculateSearchScore(string query, string stringToCompare, int firstIndex, int matchLen,
+ private static int CalculateSearchScore(string query, string stringToCompare, int firstIndex, List spaceIndices, int matchLen,
bool allSubstringsContainedInCompareString)
{
// A match found near the beginning of a string is scored more than a match found near the end
@@ -304,6 +308,14 @@ namespace Flow.Launcher.Infrastructure
// while the score is lower if they are more spread out
var score = 100 * (query.Length + 1) / ((1 + firstIndex) + (matchLen + 1));
+ // Give more weight to a match that is closer to the start of the string.
+ // if the first matched char is immediately before space and all strings are contained in the compare string e.g. 'world' matching 'hello world'
+ // and 'world hello', because both have 'world' immediately preceded by space, their firstIndex will be 0 when distance is calculated,
+ // to prevent them scoring the same, we adjust the score by deducting the number of spaces it has from the start of the string, so 'world hello'
+ // will score slightly higher than 'hello world' because 'hello world' has one additional space.
+ if (firstIndex == 0 && allSubstringsContainedInCompareString)
+ score -= spaceIndices.Count;
+
// A match with less characters assigning more weights
if (stringToCompare.Length - query.Length < 5)
{
diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
index 8ecd6dc4b..27afff5b6 100644
--- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
+++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
@@ -41,8 +41,17 @@ namespace Flow.Launcher.Infrastructure.UserSettings
public bool UseGlyphIcons { get; set; } = true;
public bool UseAnimation { get; set; } = true;
public bool UseSound { get; set; } = true;
+ public bool UseClock { get; set; } = true;
+ public bool UseDate { get; set; } = false;
+ public string TimeFormat { get; set; } = "hh:mm tt";
+ public string DateFormat { get; set; } = "MM'/'dd ddd";
public bool FirstLaunch { get; set; } = true;
+ public double SettingWindowWidth { get; set; } = 1000;
+ public double SettingWindowHeight { get; set; } = 700;
+ public double SettingWindowTop { get; set; }
+ public double SettingWindowLeft { get; set; }
+
public int CustomExplorerIndex { get; set; } = 0;
[JsonIgnore]
@@ -194,7 +203,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings
}
public bool LeaveCmdOpen { get; set; }
public bool HideWhenDeactive { get; set; } = true;
- public bool RememberLastLaunchLocation { get; set; }
+ public SearchWindowPositions SearchWindowPosition { get; set; } = SearchWindowPositions.MouseScreenCenter;
public bool IgnoreHotkeysOnFullscreen { get; set; }
public HttpProxy Proxy { get; set; } = new HttpProxy();
@@ -220,4 +229,12 @@ namespace Flow.Launcher.Infrastructure.UserSettings
Light,
Dark
}
-}
\ No newline at end of file
+ public enum SearchWindowPositions
+ {
+ RememberLastLaunchLocation,
+ MouseScreenCenter,
+ MouseScreenCenterTop,
+ MouseScreenLeftTop,
+ MouseScreenRightTop
+ }
+}
diff --git a/Flow.Launcher.Plugin/Result.cs b/Flow.Launcher.Plugin/Result.cs
index 136395467..7633e34a7 100644
--- a/Flow.Launcher.Plugin/Result.cs
+++ b/Flow.Launcher.Plugin/Result.cs
@@ -66,6 +66,10 @@ namespace Flow.Launcher.Plugin
}
}
}
+ ///
+ /// Determines if Icon has a border radius
+ ///
+ public bool RoundedIcon { get; set; } = false;
///
/// Delegate function, see
diff --git a/Flow.Launcher.Test/Flow.Launcher.Test.csproj b/Flow.Launcher.Test/Flow.Launcher.Test.csproj
index f429586ce..c4341288f 100644
--- a/Flow.Launcher.Test/Flow.Launcher.Test.csproj
+++ b/Flow.Launcher.Test/Flow.Launcher.Test.csproj
@@ -50,7 +50,7 @@
-
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/Flow.Launcher.Test/FuzzyMatcherTest.cs b/Flow.Launcher.Test/FuzzyMatcherTest.cs
index bbddcbd2a..46c848c7a 100644
--- a/Flow.Launcher.Test/FuzzyMatcherTest.cs
+++ b/Flow.Launcher.Test/FuzzyMatcherTest.cs
@@ -129,14 +129,20 @@ namespace Flow.Launcher.Test
}
}
+
+ ///
+ /// These are standard match scenarios
+ /// The intention of this test is provide a bench mark for how much the score has increased from a change.
+ /// Usually the increase in scoring should not be drastic, increase of less than 10 is acceptable.
+ ///
[TestCase(Chrome, Chrome, 157)]
- [TestCase(Chrome, LastIsChrome, 147)]
+ [TestCase(Chrome, LastIsChrome, 145)]
[TestCase("chro", HelpCureHopeRaiseOnMindEntityChrome, 50)]
[TestCase("chr", HelpCureHopeRaiseOnMindEntityChrome, 30)]
[TestCase(Chrome, UninstallOrChangeProgramsOnYourComputer, 21)]
[TestCase(Chrome, CandyCrushSagaFromKing, 0)]
- [TestCase("sql", MicrosoftSqlServerManagementStudio, 110)]
- [TestCase("sql manag", MicrosoftSqlServerManagementStudio, 121)] //double spacing intended
+ [TestCase("sql", MicrosoftSqlServerManagementStudio, 109)]
+ [TestCase("sql manag", MicrosoftSqlServerManagementStudio, 120)] //double spacing intended
public void WhenGivenQueryString_ThenShouldReturn_TheDesiredScoring(
string queryString, string compareString, int expectedScore)
{
@@ -275,7 +281,40 @@ namespace Flow.Launcher.Test
$"Query: \"{queryString}\"{Environment.NewLine} " +
$"CompareString1: \"{compareString1}\", Score: {compareString1Result.Score}{Environment.NewLine}" +
$"Should be greater than{Environment.NewLine}" +
- $"CompareString2: \"{compareString2}\", Score: {compareString1Result.Score}{Environment.NewLine}");
+ $"CompareString2: \"{compareString2}\", Score: {compareString2Result.Score}{Environment.NewLine}");
+ }
+
+ [TestCase("red", "red colour", "metro red")]
+ [TestCase("red", "this red colour", "this colour red")]
+ [TestCase("red", "this red colour", "this colour is very red")]
+ [TestCase("red", "this red colour", "this colour is surprisingly super awesome red and cool")]
+ [TestCase("red", "this colour is surprisingly super red very and cool", "this colour is surprisingly super very red and cool")]
+ public void WhenGivenTwoStrings_Scoring_ShouldGiveMoreWeightToTheStringCloserToIndexZero(
+ string queryString, string compareString1, string compareString2)
+ {
+ // When
+ var matcher = new StringMatcher { UserSettingSearchPrecision = SearchPrecisionScore.Regular };
+
+ // Given
+ var compareString1Result = matcher.FuzzyMatch(queryString, compareString1);
+ var compareString2Result = matcher.FuzzyMatch(queryString, compareString2);
+
+ Debug.WriteLine("");
+ Debug.WriteLine("###############################################");
+ Debug.WriteLine($"QueryString: \"{queryString}\"{Environment.NewLine}");
+ Debug.WriteLine(
+ $"CompareString1: \"{compareString1}\", Score: {compareString1Result.Score}{Environment.NewLine}");
+ Debug.WriteLine(
+ $"CompareString2: \"{compareString2}\", Score: {compareString2Result.Score}{Environment.NewLine}");
+ Debug.WriteLine("###############################################");
+ Debug.WriteLine("");
+
+ // Should
+ Assert.True(compareString1Result.Score > compareString2Result.Score,
+ $"Query: \"{queryString}\"{Environment.NewLine} " +
+ $"CompareString1: \"{compareString1}\", Score: {compareString1Result.Score}{Environment.NewLine}" +
+ $"Should be greater than{Environment.NewLine}" +
+ $"CompareString2: \"{compareString2}\", Score: {compareString2Result.Score}{Environment.NewLine}");
}
[TestCase("vim", "Vim", "ignoreDescription", "ignore.exe", "Vim Diff", "ignoreDescription", "ignore.exe")]
diff --git a/Flow.Launcher/ActionKeywords.xaml b/Flow.Launcher/ActionKeywords.xaml
index e94aac9f6..740b0d402 100644
--- a/Flow.Launcher/ActionKeywords.xaml
+++ b/Flow.Launcher/ActionKeywords.xaml
@@ -58,7 +58,6 @@
throw new System.InvalidOperationException();
+ }
+}
diff --git a/Flow.Launcher/Converters/OpenResultHotkeyVisibilityConverter.cs b/Flow.Launcher/Converters/OpenResultHotkeyVisibilityConverter.cs
index e82fa959c..7586d1fcf 100644
--- a/Flow.Launcher/Converters/OpenResultHotkeyVisibilityConverter.cs
+++ b/Flow.Launcher/Converters/OpenResultHotkeyVisibilityConverter.cs
@@ -11,17 +11,17 @@ namespace Flow.Launcher.Converters
[ValueConversion(typeof(bool), typeof(Visibility))]
public class OpenResultHotkeyVisibilityConverter : IValueConverter
{
- private const int MaxVisibleHotkeys = 9;
+ private const int MaxVisibleHotkeys = 10;
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
- var hotkeyNumber = int.MaxValue;
+ var number = int.MaxValue;
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
- hotkeyNumber = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
+ number = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
- return hotkeyNumber <= MaxVisibleHotkeys ? Visibility.Visible : Visibility.Collapsed;
+ return number <= MaxVisibleHotkeys ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
diff --git a/Flow.Launcher/Converters/OrdinalConverter.cs b/Flow.Launcher/Converters/OrdinalConverter.cs
index f9fa220e3..0c716ac7e 100644
--- a/Flow.Launcher/Converters/OrdinalConverter.cs
+++ b/Flow.Launcher/Converters/OrdinalConverter.cs
@@ -10,7 +10,10 @@ namespace Flow.Launcher.Converters
{
if (value is ListBoxItem listBoxItem
&& ItemsControl.ItemsControlFromItemContainer(listBoxItem) is ListBox listBox)
- return listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
+ {
+ var res = listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem) + 1;
+ return res == 10 ? 0 : res; // 10th item => HOTKEY+0
+ }
return 0;
}
diff --git a/Flow.Launcher/Converters/TextConverter.cs b/Flow.Launcher/Converters/TextConverter.cs
new file mode 100644
index 000000000..90d445776
--- /dev/null
+++ b/Flow.Launcher/Converters/TextConverter.cs
@@ -0,0 +1,32 @@
+using System;
+using System.Globalization;
+using System.Windows.Data;
+using Flow.Launcher.Core.Resource;
+using Flow.Launcher.ViewModel;
+
+namespace Flow.Launcher.Converters
+{
+ public class TextConverter : IValueConverter
+ {
+ public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
+ {
+ var ID = value.ToString();
+ switch(ID)
+ {
+ case PluginStoreItemViewModel.NewRelease:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_NewRelease");
+ case PluginStoreItemViewModel.RecentlyUpdated:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_RecentlyUpdated");
+ case PluginStoreItemViewModel.None:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_None");
+ case PluginStoreItemViewModel.Installed:
+ return InternationalizationManager.Instance.GetTranslation("pluginStore_Installed");
+ default:
+ return ID;
+ }
+
+ }
+
+ public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture) => throw new System.InvalidOperationException();
+ }
+}
diff --git a/Flow.Launcher/CustomQueryHotkeySetting.xaml b/Flow.Launcher/CustomQueryHotkeySetting.xaml
index 187f99d18..ddf0d0e45 100644
--- a/Flow.Launcher/CustomQueryHotkeySetting.xaml
+++ b/Flow.Launcher/CustomQueryHotkeySetting.xaml
@@ -64,7 +64,6 @@
+ allruntime; build; native; contentfiles; analyzers; buildtransitive
@@ -114,4 +115,14 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Flow.Launcher/Helper/HotKeyMapper.cs b/Flow.Launcher/Helper/HotKeyMapper.cs
index a3ad20f77..b9ac6afb3 100644
--- a/Flow.Launcher/Helper/HotKeyMapper.cs
+++ b/Flow.Launcher/Helper/HotKeyMapper.cs
@@ -17,7 +17,7 @@ namespace Flow.Launcher.Helper
internal static void Initialize(MainViewModel mainVM)
{
mainViewModel = mainVM;
- settings = mainViewModel._settings;
+ settings = mainViewModel.Settings;
SetHotkey(settings.Hotkey, OnToggleHotkey);
LoadCustomPluginHotkey();
diff --git a/Flow.Launcher/Images/app_missing_img.png b/Flow.Launcher/Images/app_missing_img.png
index b86c29ac9..27e366bbc 100644
Binary files a/Flow.Launcher/Images/app_missing_img.png and b/Flow.Launcher/Images/app_missing_img.png differ
diff --git a/Flow.Launcher/Languages/da.xaml b/Flow.Launcher/Languages/da.xaml
index 6bcd3c0f7..25bd195dd 100644
--- a/Flow.Launcher/Languages/da.xaml
+++ b/Flow.Launcher/Languages/da.xaml
@@ -50,6 +50,7 @@
VælgSkjul Flow Launcher ved opstartHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityPlugin bibliotekafInitaliseringstid:Søgetid:| VersionWebsite
+ UninstallPlugin StoreRefresh
- Install
+ InstallTema
@@ -155,11 +158,13 @@
Download updates failed, please check your connection and proxy settings to github-cloud.s3.amazonaws.com,
or go to https://github.com/Flow-Launcher/Flow.Launcher/releases to download updates manually.
- Release Notes:
+ Release NotesUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/de.xaml b/Flow.Launcher/Languages/de.xaml
index cf73baa22..ebd549adf 100644
--- a/Flow.Launcher/Languages/de.xaml
+++ b/Flow.Launcher/Languages/de.xaml
@@ -50,6 +50,7 @@
AuswählenVerstecke Flow Launcher bei SystemstartStatusleistensymbol ausblenden
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Suchgenauigkeit abfragenErforderliche Suchergebnisse.Pinyin aktivieren
@@ -69,18 +70,20 @@
Aktuelle PrioritätNeue PrioritätPriorität
+ Change Plugin Results PriorityPluginordnervonInitialisierungszeit:Abfragezeit:VersionWebseite
+ DeinstallierenErweiterungen ladenAktualisieren
- Installieren
+ InstallierenDesign
@@ -155,11 +158,13 @@
Download updates failed, please check your connection and proxy settings to github-cloud.s3.amazonaws.com,
or go to https://github.com/Flow-Launcher/Flow.Launcher/releases to download updates manually.
- Versionshinweise:
+ VersionshinweiseUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index bdf745052..0eff97f4a 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -23,6 +23,8 @@
TextGame ModeSuspend the use of Hotkeys.
+ Position Reset
+ Reset search window positionFlow Launcher Settings
@@ -33,7 +35,13 @@
Error setting launch on startupHide Flow Launcher when focus is lostDo not show new version notifications
+ Search Window PositionRemember last launch location
+ Remember Last Location
+ Mouse Focused Screen - Center
+ Mouse Focused Screen - Center Top
+ Mouse Focused Screen - Left Top
+ Mouse Focused Screen - Right TopLanguageLast Query StyleShow/Hide previous results when Flow Launcher is reactivated.
@@ -41,6 +49,7 @@
Select last QueryEmpty last QueryMaximum results shown
+ You can also quickly adjust this by using CTRL+Plus and CTRL+Minus.Ignore hotkeys in fullscreen modeDisable Flow Launcher activation when a full screen application is active (Recommended for games).Default File Manager
@@ -52,6 +61,7 @@
SelectHide Flow Launcher on startupHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -59,6 +69,10 @@
Shadow effect is not allowed while current theme has blur effect enabled
+ Search Plugin
+ Ctrl+F to search plugins
+ No results found
+ Please try a different search.PluginFind more pluginsOn
@@ -71,6 +85,7 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityPlugin DirectorybyInit time:
@@ -81,8 +96,20 @@
Plugin Store
+ New Release
+ Recently Updated
+ Plugins
+ InstalledRefresh
- Install
+ Install
+ Uninstall
+ Update
+ Plug-in already installed
+ New Version
+ This plug-in has been updated within the last 7 days
+ New Update is Available
+
+
Theme
@@ -105,6 +132,8 @@
Play a small sound when the search window opensAnimationUse Animation in UI
+ Clock
+ DateHotkey
@@ -124,6 +153,7 @@
Query window shadow effectShadow effect has a substantial usage of GPU. Not recommended if your computer performance is limited.Window Width Size
+ You can also quickly adjust this by using Ctrl+[ and Ctrl+].Use Segoe Fluent IconsUse Segoe Fluent Icons for query results where supported
@@ -162,6 +192,8 @@
DevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/es-419.xaml b/Flow.Launcher/Languages/es-419.xaml
index 8ce9f12cf..a410f4b32 100644
--- a/Flow.Launcher/Languages/es-419.xaml
+++ b/Flow.Launcher/Languages/es-419.xaml
@@ -50,6 +50,7 @@
SeleccionarOcultar Flow Launcher al arrancar el sistemaOcultar icono de la bandeja
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Precisión de la búsquedaCambia la puntuación mínima de similitud requerida para resultados.Debe usar Pinyin
@@ -69,18 +70,20 @@
Prioridad ActualNueva PrioridadPrioridad
+ Cambiar la prioridad del resultado del pluginDirectorio de PluginsporTiempo de inicio:Tiempo de consulta:| VersiónSitio web
+ UninstallTienda de PluginsRecargar
- Instalar
+ InstalarTema
@@ -160,6 +163,8 @@
Herramientas de desarrolloCarpeta de ConfiguraciónCarpeta de registros
+ Clear Logs
+ Are you sure you want to delete all logs?Asistente
diff --git a/Flow.Launcher/Languages/es.xaml b/Flow.Launcher/Languages/es.xaml
index d30cd16c9..0950595fa 100644
--- a/Flow.Launcher/Languages/es.xaml
+++ b/Flow.Launcher/Languages/es.xaml
@@ -50,6 +50,7 @@
SeleccionarOcultar Flow Launcher al inicioOcultar icono de la bandeja del sistema
+ Cuando el icono está oculto en la bandeja del sistema, se puede abrir el menú de configuración haciendo clic con el botón derecho en la ventana de búsqueda.Precisión en la búsqueda de consultasCambia la puntuación mínima requerida para la coincidencia de los resultados.Utilizar Pinyin
@@ -57,7 +58,7 @@
El efecto de sombra no está permitido mientras el tema actual tenga el efecto de desenfoque activado
- Complemento
+ ComplementosBuscar más complementosActivadoDesactivado
@@ -69,12 +70,14 @@
Prioridad actualNueva prioridadPrioridad
+ Cambiar la prioridad de los resultados del complementoCarpeta de complementosporTiempo de inicio:Tiempo de consulta:| VersiónSitio web
+ Desinstalar
@@ -157,9 +160,11 @@
Notas de la versiónConsejos de uso
- Herramientas de desarrolador
+ Herramientas de desarrolladorCarpeta de configuraciónCarpeta de registros
+ Eliminar registros
+ ¿Está seguro que desea eliminar todos los registros?Asistente
diff --git a/Flow.Launcher/Languages/fr.xaml b/Flow.Launcher/Languages/fr.xaml
index cbcd84307..edc5e4f07 100644
--- a/Flow.Launcher/Languages/fr.xaml
+++ b/Flow.Launcher/Languages/fr.xaml
@@ -50,6 +50,7 @@
SélectionnerCacher Flow Launcher au démarrageMasquer icône du plateau
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Devrait utiliser le pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityRépertoirebyChargement :Utilisation :| VersionWebsite
+ DésinstallerPlugin StoreRefresh
- Install
+ InstallThèmes
@@ -154,11 +157,13 @@
Échec du téléchargement de la mise à jour, vérifiez votre connexion et vos paramètres de configuration proxy pour pouvoir acceder à github-cloud.s3.amazonaws.com, ou téléchargez manuelement la mise à jour sur https://github.com/Flow-Launcher/Flow.Launcher/releases.
- Notes de changement :
+ Notes de changementUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/it.xaml b/Flow.Launcher/Languages/it.xaml
index 04655c226..30a401875 100644
--- a/Flow.Launcher/Languages/it.xaml
+++ b/Flow.Launcher/Languages/it.xaml
@@ -10,23 +10,23 @@
Ultima esecuzione: {0}ApriImpostazioni
- About
+ InformazioniEsci
- Close
- Copy
- Cut
- Paste
+ Chiudi
+ Copia
+ Taglia
+ IncollaFile
- Folder
- Text
- Game Mode
- Suspend the use of Hotkeys.
+ Cartella
+ Testo
+ Modalità gioco
+ Sospendere l'uso dei tasti di scelta rapida.Impostaizoni Flow LauncherGenerale
- Portable Mode
- Store all settings and user data in one folder (Useful when used with removable drives or cloud services).
+ Modalità portatile
+ Memorizzare tutte le impostazioni e i dati dell'utente in un'unica cartella (utile se utilizzato con unità rimovibili o servizi cloud).Avvia Wow all'avvio di WindowsError setting launch on startupNascondi Flow Launcher quando perde il focus
@@ -34,80 +34,83 @@
Ricorda l'ultima posizione di avvio del launcherLinguaComportamento ultima ricerca
- Show/Hide previous results when Flow Launcher is reactivated.
+ Mostra/nasconde i risultati precedenti quando Flow Launcher viene riattivato.Conserva ultima ricercaSeleziona ultima ricercaCancella ultima ricercaNumero massimo di risultati mostratiIgnora i tasti di scelta rapida in applicazione a schermo pieno
- Disable Flow Launcher activation when a full screen application is active (Recommended for games).
- Default File Manager
- Select the file manager to use when opening the folder.
- Default Web Browser
- Setting for New Tab, New Window, Private Mode.
+ Disattivare l'attivazione di Flow Launcher quando è attiva un'applicazione a schermo intero (consigliato per i giochi).
+ Gestore File predefinito
+ Selezionare il Gestore file da usare all'apertura della cartella.
+ Browser predefinito
+ Impostazione per Nuova scheda, Nuova finestra, Modalità privata.Cartella PythonAggiornamento automaticoSelezionaNascondi Flow Launcher all'avvio
- Hide tray icon
- Query Search Precision
- Changes minimum match score required for results.
- Should Use Pinyin
- Allows using Pinyin to search. Pinyin is the standard system of romanized spelling for translating Chinese
- Shadow effect is not allowed while current theme has blur effect enabled
+ Nascondi Icona nell'Area di Notifica
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.
+ Precisione di ricerca delle query
+ Modifica il punteggio minimo richiesto per i risultati.
+ Dovrebbe usare il Pinyin
+ Consente di utilizzare il Pinyin per la ricerca. Il Pinyin è il sistema standard di ortografia romanizzata per la traduzione del cinese
+ L'effetto ombra non è consentito mentre il tema corrente ha un effetto di sfocatura abilitatoPluginCerca altri plugins
- On
+ AttivoDisabilita
- Action keyword Setting
+ Impostazioni parola chiave AzioneParole chiave
- Current action keyword
- New action keyword
- Change Action Keywords
- Current Priority
- New Priority
- Priority
+ Parola chiave di azione corrente
+ Nuova parola chiave d'azione
+ Cambia Keywords Azione
+ Priorità Attuale
+ Nuova Priorità
+ Priorità
+ Change Plugin Results PriorityCartella Plugin
- by
+ daTempo di avvio:Tempo ricerca:
- | Version
- Website
+ | Versione
+ Sito Web
+ Disinstalla
- Plugin Store
- Refresh
- Install
+ Negozio dei Plugin
+ Aggiorna
+ InstallaTemaSfoglia per altri temi
- How to create a theme
- Hi There
+ Come creare un tema
+ CiaoFont campo di ricercaFont campo risultatiModalità finestraOpacità
- Theme {0} not exists, fallback to default theme
- Fail to load theme {0}, fallback to default theme
- Theme Folder
- Open Theme Folder
- Color Scheme
- System Default
- Light
- Dark
- Sound Effect
- Play a small sound when the search window opens
- Animation
- Use Animation in UI
+ Il tema {0} non esiste, si ritorna al tema predefinito
+ Impossibile caricare il tema {0}, si torna al tema predefinito
+ Cartella temi
+ Apri cartella del tema
+ Schema di colore
+ Sistema predefinito
+ Chiaro
+ Scuro
+ Effetto sonoro
+ Riproduce un piccolo suono all'apertura della finestra di ricerca
+ Animazione
+ Usa l'animazione nell'interfaccia utenteTasti scelta rapidaTasto scelta rapida Flow Launcher
- Enter shortcut to show/hide Flow Launcher.
+ Immettere la scorciatoia per mostrare/nascondere Flow Launcher.Apri modificatori di risultatoSelect a modifier key to open selected result via keyboard.Mostra tasto di scelta rapida
@@ -130,7 +133,7 @@
Abilita Proxy HTTPServer HTTPPorta
- User Name
+ Nome utentePasswordProxy TestSalva
@@ -142,10 +145,10 @@
Connessione Proxy fallita
- About
- Website
+ Informazioni
+ Sito webGithub
- Docs
+ DocumentazioneVersioneHai usato Flow Launcher {0} volteCerca aggiornamenti
@@ -155,11 +158,13 @@
Download degli aggiornamenti fallito, per favore controlla la tua connessione ed eventuali impostazioni proxy per github-cloud.s3.amazonaws.com,
oppure vai su https://github.com/Flow-Launcher/Flow.Launcher/releases per scaricare gli aggiornamenti manualmente.
- Note di rilascio:
+ Note di rilascioUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
@@ -173,10 +178,10 @@
Arg For File
- Default Web Browser
+ Browser predefinitoThe default setting follows the OS default browser setting. If specified separately, flow uses that browser.Browser
- Browser Name
+ Nome del browserBrowser PathNew WindowNew Tab
@@ -251,37 +256,37 @@
Descrizione aggiornamento
- Skip
+ SaltaWelcome to Flow LauncherHello, this is the first time you are running Flow Launcher!Before starting, this wizard will assist in setting up Flow Launcher. You can skip this if you wish. Please choose a language
- Search and run all files and applications on your PC
- Search everything from applications, files, bookmarks, YouTube, Twitter and more. All from the comfort of your keyboard without ever touching the mouse.
- Flow Launcher starts with the hotkey below, go ahead and try it out now. To change it, click on the input and press the desired hotkey on the keyboard.
- Hotkeys
- Action Keyword and Commands
- Search the web, launch applications or run various functions through Flow Launcher plugins. Certain functions start with an action keyword, and if necessary, they can be used without action keywords. Try the queries below in Flow Launcher.
- Let's Start Flow Launcher
- Finished. Enjoy Flow Launcher. Don't forget the hotkey to start :)
+ Cerca ed esegue tutti i file e le applicazioni presenti sul PC
+ Cerca tutto da applicazioni, file, segnalibri, YouTube, Twitter e altro ancora. Tutto dalla comodità della tastiera senza mai toccare il mouse.
+ Flow Launcher si avvia con il tasto di scelta rapida qui sotto, provatelo subito. Per cambiarlo, fate clic sull'input e premete il tasto di scelta rapida desiderato sulla tastiera.
+ Scorciatoie
+ Scorciatoie e comandi
+ Cercate sul web, avviate applicazioni o eseguite varie funzioni tramite i plugin di Flow Launcher. Alcune funzioni iniziano con una parola chiave di azione e, se necessario, possono essere utilizzate senza parole chiave di azione. Provate le query seguenti in Flow Launcher.
+ Avviamo Flow Launcher
+ Finito. Goditi Flow Launcher. Non dimenticare il tasto di scelta rapida per iniziare :)
- Back / Context Menu
- Item Navigation
- Open Context Menu
- Open Contaning Folder
- Run as Admin
- Query History
- Back to Result in Context Menu
- Autocomplete
- Open / Run Selected Item
- Open Setting Window
- Reload Plugin Data
+ Indietro / Menu contestuale
+ Navigazione tra le voci
+ Apri il menu di scelta rapida
+ Apri la cartella Contaning
+ Esegui come amministratore
+ Cronologia Query
+ Torna al risultato nel menu contestuale
+ Autocompleta
+ Apri / Esegui Elemento Selezionato
+ Aprire la finestra delle impostazioni
+ Ricarica i dati del plugin
- Weather
- Weather in Google Result
+ Meteo
+ Meteo nel risultato di Google> ping 8.8.8.8
- Shell Command
+ Comando Della shellBluetoothBluetooth in Windows Settingssn
diff --git a/Flow.Launcher/Languages/ja.xaml b/Flow.Launcher/Languages/ja.xaml
index e34c615b7..a2dcfb6a0 100644
--- a/Flow.Launcher/Languages/ja.xaml
+++ b/Flow.Launcher/Languages/ja.xaml
@@ -50,6 +50,7 @@
選択起動時にFlow Launcherを隠すトレイアイコンを隠す
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew Priority重要度
+ Change Plugin Results Priorityプラグイン・ディレクトリby初期化時間:クエリ時間:| バージョンウェブサイト
+ アンインストールプラグインストアRefresh
- Install
+ Installテーマ
@@ -155,11 +158,13 @@
更新のダウンロードに失敗しました、github-cloud.s3.amazonaws.com への接続とプロキシ設定を確認するか、
https://github.com/Flow-Launcher/Flow.Launcher/releases から手動でアップデートをダウンロードしてください。
- リリースノート:
+ リリースノートUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/ko.xaml b/Flow.Launcher/Languages/ko.xaml
index a5ad2647f..acb68cb4f 100644
--- a/Flow.Launcher/Languages/ko.xaml
+++ b/Flow.Launcher/Languages/ko.xaml
@@ -50,6 +50,7 @@
선택시작 시 Flow Launcher 숨김트레이 아이콘 숨기기
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.쿼리 검색 정밀도검색 결과에 필요한 최소 매치 점수를 변경합니다.항상 Pinyin 사용
@@ -69,24 +70,26 @@
현재 중요도:새 중요도:중요도
+ 플러그인 결과 우선 순위 변경플러그인 폴더제작자초기화 시간:쿼리 시간:| 버전웹사이트
+ 제거플러그인 스토어새로고침
- 설치
+ 설치테마테마 갤러리테마 제작 안내
- 안녕하세요.
+ 안녕하세요!쿼리 상자 글꼴결과 항목 글꼴윈도우 모드
@@ -160,6 +163,8 @@
개발자도구설정 폴더로그 폴더
+ Clear Logs
+ Are you sure you want to delete all logs?마법사
diff --git a/Flow.Launcher/Languages/nb.xaml b/Flow.Launcher/Languages/nb.xaml
index 52885ea47..0848e9d64 100644
--- a/Flow.Launcher/Languages/nb.xaml
+++ b/Flow.Launcher/Languages/nb.xaml
@@ -50,6 +50,7 @@
SelectHide Flow Launcher on startupHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityPlugin DirectorybyInit time:Query time:| VersionWebsite
+ UninstallPlugin StoreRefresh
- Install
+ InstallTheme
@@ -160,6 +163,8 @@
DevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/nl.xaml b/Flow.Launcher/Languages/nl.xaml
index 1223df76f..e398afa51 100644
--- a/Flow.Launcher/Languages/nl.xaml
+++ b/Flow.Launcher/Languages/nl.xaml
@@ -50,6 +50,7 @@
SelecteerVerberg Flow Launcher als systeem opstartSysteemvakpictogram verbergen
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Zoekopdracht nauwkeurigheidWijzigt de minimale overeenkomst-score die vereist is voor resultaten.Zou Pinyin moeten gebruiken
@@ -69,18 +70,20 @@
Huidige PrioriteitNieuwe PrioriteitPrioriteit
+ Change Plugin Results PriorityPlugin mapdoorInit tijd:Query tijd:| VersieWebsite
+ UninstallPlugin WinkelVernieuwen
- Installeren
+ InstallerenThema
@@ -155,11 +158,13 @@
Download updates failed, please check your connection and proxy settings to github-cloud.s3.amazonaws.com,
or go to https://github.com/Flow-Launcher/Flow.Launcher/releases to download updates manually.
- Release Notes:
+ Release NotesUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/pl.xaml b/Flow.Launcher/Languages/pl.xaml
index 901083f07..fc5badd69 100644
--- a/Flow.Launcher/Languages/pl.xaml
+++ b/Flow.Launcher/Languages/pl.xaml
@@ -50,6 +50,7 @@
WybierzUruchamiaj Flow Launcher zminimalizowanyUkryj ikonę zasobnika
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityFolder wtyczkibyCzas ładowania:Czas zapytania:| VersionWebsite
+ OdinstalowywaniePlugin StoreRefresh
- Install
+ InstallSkórka
@@ -155,11 +158,13 @@
Download updates failed, please check your connection and proxy settings to github-cloud.s3.amazonaws.com,
or go to https://github.com/Flow-Launcher/Flow.Launcher/releases to download updates manually.
- Zmiany:
+ ZmianyUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/pt-br.xaml b/Flow.Launcher/Languages/pt-br.xaml
index d23c24e7f..f6fc062c6 100644
--- a/Flow.Launcher/Languages/pt-br.xaml
+++ b/Flow.Launcher/Languages/pt-br.xaml
@@ -50,6 +50,7 @@
SelecionarEsconder Flow Launcher na inicializaçãoHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityDiretório de PluginsbyTempo de inicialização:Tempo de consulta:| VersionWebsite
+ DesinstalarPlugin StoreRefresh
- Install
+ InstallTema
@@ -160,6 +163,8 @@
DevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/pt-pt.xaml b/Flow.Launcher/Languages/pt-pt.xaml
index c78519966..b19fc9924 100644
--- a/Flow.Launcher/Languages/pt-pt.xaml
+++ b/Flow.Launcher/Languages/pt-pt.xaml
@@ -50,6 +50,7 @@
SelecionarOcultar Flow Launcher ao arrancarOcultar ícone na bandeja
+ Se o ícone da bandeja estiver oculto, pode abrir as Definições com um clique com o botão direito do rato na caixa de pesquisa.Precisão da consultaAltera a precisão mínima necessário para obter resultadosUtilizar Pinyin
@@ -69,18 +70,20 @@
Prioridade atualNova prioridadePrioridade
+ Alterar prioridade dos resultados do pluginDiretório de pluginsdeTempo de arranque:Tempo de consulta:| VersãoSite
+ DesinstalarLoja de pluginsRecarregar
- Instalar
+ InstalarTema
@@ -159,6 +162,8 @@
DevToolsPasta de definiçõesPasta de registos
+ Clear Logs
+ Are you sure you want to delete all logs?Assistente
diff --git a/Flow.Launcher/Languages/ru.xaml b/Flow.Launcher/Languages/ru.xaml
index 691d37538..87b3dd4ef 100644
--- a/Flow.Launcher/Languages/ru.xaml
+++ b/Flow.Launcher/Languages/ru.xaml
@@ -50,6 +50,7 @@
SelectHide Flow Launcher on startupHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityДиректория плагиновbyИнициализация:Запрос:| VersionWebsite
+ УдалитьPlugin StoreRefresh
- Install
+ InstallТема
@@ -160,6 +163,8 @@
DevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/sk.xaml b/Flow.Launcher/Languages/sk.xaml
index 20b259f9f..ee703bcf8 100644
--- a/Flow.Launcher/Languages/sk.xaml
+++ b/Flow.Launcher/Languages/sk.xaml
@@ -50,6 +50,7 @@
VybraťSchovať Flow Launcher po spusteníSchovať ikonu z oblasti oznámení
+ Keď je ikona skrytá z oblasti oznámení, nastavenia možno otvoriť kliknutím pravým tlačidlom myši na okno vyhľadávania.Presnosť vyhľadávaniaMení minimálne skóre zhody potrebné na zobrazenie výsledkov.Použiť Pinyin
@@ -69,18 +70,20 @@
Aktuálna prioritaNová prioritaPriorita
+ Zmena priority výsledkov pluginuPriečinok s pluginmiodInicializácia:Trvanie dopytu:| VerziaWebstránka
+ OdinštalovaťRepozitár pluginovObnoviť
- Inštalovať
+ InštalovaťMotív
@@ -160,6 +163,8 @@
Nástroje pre vývojárovPriečinok s nastaveniamiPriečinok s logmi
+ Vymazať logy
+ Naozaj chcete odstrániť všetky logy?Sprievodca
diff --git a/Flow.Launcher/Languages/sr.xaml b/Flow.Launcher/Languages/sr.xaml
index b15bbc194..e805860dc 100644
--- a/Flow.Launcher/Languages/sr.xaml
+++ b/Flow.Launcher/Languages/sr.xaml
@@ -50,6 +50,7 @@
IzaberiSakrij Flow Launcher pri podizanju sistemaHide tray icon
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Query Search PrecisionChanges minimum match score required for results.Should Use Pinyin
@@ -69,18 +70,20 @@
Current PriorityNew PriorityPriority
+ Change Plugin Results PriorityPlugin direktorijumbyVreme inicijalizacije:Vreme upita:| VersionWebsite
+ UninstallPlugin StoreRefresh
- Install
+ InstallTema
@@ -155,11 +158,13 @@
Neuspešno preuzimanje ažuriranja, molim Vas proverite vašu vezu i podešavanja za proksi prema github-cloud.s3.amazonaws.com,
ili posetite https://github.com/Flow-Launcher/Flow.Launcher/releases da preuzmete ažuriranja ručno.
- U novoj verziji:
+ U novoj verzijiUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/tr.xaml b/Flow.Launcher/Languages/tr.xaml
index ec609de37..4a016ced8 100644
--- a/Flow.Launcher/Languages/tr.xaml
+++ b/Flow.Launcher/Languages/tr.xaml
@@ -50,6 +50,7 @@
SeçBaşlangıçta Flow Launcher'u gizleSistem çekmecesi simgesini gizle
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Sorgu Arama HassasiyetiSonuçlar için gereken minimum maç puanını değiştirir.Pinyin kullanılmalı
@@ -69,18 +70,20 @@
Mevcut öncelikYeni ÖncelikÖncelik
+ Change Plugin Results PriorityEklenti KlasörüYapımcı:Açılış Süresi:Sorgu Süresi:Sürümİnternet Sitesi
+ KaldırEklenti MağazasıYenile
- İndir
+ İndirTemalar
@@ -155,11 +158,13 @@
Güncellemenin yüklenmesi başarısız oldu. Lütfen bağlantınız ve vekil sunucu ayarlarınızın github-cloud.s3.amazonaws.com
adresine ulaşabilir olduğunu kontrol edin ya da https://github.com/Flow-Launcher/Flow.Launcher/releases adresinden güncellemeyi elle indirin.
- Sürüm Notları:
+ Sürüm NotlarıUsage TipsDevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/uk-UA.xaml b/Flow.Launcher/Languages/uk-UA.xaml
index c2d5302a6..a34ed4e8b 100644
--- a/Flow.Launcher/Languages/uk-UA.xaml
+++ b/Flow.Launcher/Languages/uk-UA.xaml
@@ -50,6 +50,7 @@
ВибратиСховати Flow Launcher при запуску системиПриховати значок в системному лотку
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.Точність пошуку запитівЗмінює мінімальний бал збігів, необхідних для результатів.Використовувати піньїнь
@@ -69,18 +70,20 @@
Поточний пріоритетНовий пріоритетПріоритет
+ Change Plugin Results PriorityДиректорія плагінівзаІніціалізація:Запит:| ВерсіяСайт
+ UninstallМагазин плагінівОновити
- Встановити
+ ВстановитиТема
@@ -160,6 +163,8 @@
DevToolsSetting FolderLog Folder
+ Clear Logs
+ Are you sure you want to delete all logs?Wizard
diff --git a/Flow.Launcher/Languages/zh-cn.xaml b/Flow.Launcher/Languages/zh-cn.xaml
index b3bd5fd1f..b62736d16 100644
--- a/Flow.Launcher/Languages/zh-cn.xaml
+++ b/Flow.Launcher/Languages/zh-cn.xaml
@@ -28,7 +28,7 @@
便携模式将所有设置和用户数据存储在一个文件夹中 (可用于可移除驱动器或云服务)。开机自启
- Error setting launch on startup
+ 设置开机自启时出错失去焦点时自动隐藏 Flow Launcher不显示新版本提示记住上次启动位置
@@ -40,7 +40,7 @@
清空上次搜索关键字最大结果显示个数全屏模式下忽略热键
- 当全屏应用程序激活时禁用快捷键(建议游戏时打开)。
+ 当全屏应用程序激活时禁用快捷键 (建议游戏时打开) 。默认文件管理器选择打开文件夹时要使用的文件管理器。默认浏览器
@@ -50,6 +50,7 @@
选择系统启动时不显示主窗口隐藏任务栏图标
+ 任务栏图标被隐藏时,右键点击搜索窗口即可打开设置菜单。查询搜索精度更改匹配成功所需的最低分数。启动拼音搜索
@@ -69,18 +70,20 @@
当前优先级新优先级优先级
+ 更改插件结果优先级插件目录出自加载耗时:查询耗时:| 版本官方网站
+ 卸载插件商店刷新
- 安装
+ 安装主题
@@ -108,10 +111,10 @@
热键Flow Launcher 激活热键输入显示/隐藏 Flow Launcher 的快捷键。
- 开放结果修饰符
- 指定修饰符用于打开指定的选项。
+ 打开结果快捷键修饰符
+ 选择一个用以打开搜索结果的按键修饰符。显示热键
- 显示热键用于快速选择选项。
+ 显示用于打开结果的快捷键。自定义查询热键查询删除
@@ -155,11 +158,13 @@
下载更新失败,请检查您与 github-cloud.s3.amazonaws.com 的连接状态或检查代理设置,
或访问 https://github.com/Flow-Launcher/Flow.Launcher/releases 手动下载更新
- 更新说明:
- 使用技巧:
+ 更新说明
+ 使用技巧开发工具设置目录日志目录
+ 清除日志
+ 你确定要删除所有的日志吗?向导
@@ -256,11 +261,11 @@
你好,这是你第一次运行 Flow Launcher!在启动前,这个向导将有助于设置 Flow Launcher。如果您愿意,您可以跳过。请选择一种语言搜索并运行您PC上的文件和应用程序
- 搜索所有应用程序、 文件、 书签、 YouTube、 Twitter等。所有都只需要键盘而不需要触摸鼠标。
+ 搜索所有应用程序、 文件、 书签、 YouTube、 Twitter等。所有都只需要键盘而不需要鼠标。Flow Launcher 默认使用下面的快捷键激活。 要更改它,请点击输入并按键盘上所需的热键。快捷键动作关键词和命令
- 通过 Flow Launcher 插件搜索网站、启动应用程序或运行各种功能。 某些函数起始于一个动作关键词,如有必要,它们可以在没有动作关键词的情况下使用。欢迎尝试一下的查询语句。
+ 通过 Flow Launcher 插件搜索网站、启动应用程序或运行各种功能。某些功能使用一个动作关键词激活,如有必要,它们也可以在没有动作关键词的情况下使用。欢迎尝试以下的查询语句。开始使用 Flow Launcher完成了!享受 Flow Launcher。不要忘记激活快捷键 :)
@@ -268,7 +273,7 @@
返回/上下文菜单选项导航
- 打开菜单目录
+ 打开上下文菜单打开所在目录以管理员身份运行查询历史
@@ -285,6 +290,6 @@
BluetoothWindows 设置中的蓝牙sn
- Sticky Notes
+ 便笺
diff --git a/Flow.Launcher/Languages/zh-tw.xaml b/Flow.Launcher/Languages/zh-tw.xaml
index fea505526..69abbe401 100644
--- a/Flow.Launcher/Languages/zh-tw.xaml
+++ b/Flow.Launcher/Languages/zh-tw.xaml
@@ -42,7 +42,7 @@
全螢幕模式下忽略快捷鍵全螢幕模式下停用快捷鍵(推薦用於遊戲時)。預設檔案管理器
- 選擇打開資料夾時要使用的檔案管理器。
+ 選擇開啟資料夾時要使用的檔案管理器。預設瀏覽器設定新增分頁、視窗和無痕模式。Python 路徑
@@ -50,6 +50,7 @@
選擇啟動時不顯示主視窗隱藏任務欄圖標
+ When the icon is hidden from the tray, the Settings menu can be opened by right-clicking on the search window.查詢搜索精確度Changes minimum match score required for results.拼音搜索
@@ -69,18 +70,20 @@
目前優先新增優先優先
+ 更改插件結果優先順序外掛資料夾作者載入耗時:查詢耗時:| 版本官方網站
+ 解除安裝外掛商店重新整理
- 安裝
+ 安裝主題
@@ -155,11 +158,13 @@
下載更新失敗,請檢查您對 github-cloud.s3.amazonaws.com 的連線和代理設定,
或是到 https://github.com/Flow-Launcher/Flow.Launcher/releases 手動下載更新。
- 更新說明:
+ 更新說明使用技巧開發工具設定資料夾日誌資料夾
+ Clear Logs
+ Are you sure you want to delete all logs?嚮導
diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml
index 714fcc53f..6f3915076 100644
--- a/Flow.Launcher/MainWindow.xaml
+++ b/Flow.Launcher/MainWindow.xaml
@@ -1,5 +1,4 @@
-
+
-
-
-
-
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
-
+
-
-
-
-
+
+
+
-
-
+
-
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 2b7db38cf..630daf42e 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows;
@@ -20,6 +20,8 @@ using Flow.Launcher.Infrastructure;
using System.Windows.Media;
using Flow.Launcher.Infrastructure.Hotkey;
using Flow.Launcher.Plugin.SharedCommands;
+using System.Windows.Threading;
+using System.Windows.Data;
namespace Flow.Launcher
{
@@ -43,6 +45,7 @@ namespace Flow.Launcher
DataContext = mainVM;
_viewModel = mainVM;
_settings = settings;
+
InitializeComponent();
InitializePosition();
animationSound.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav"));
@@ -52,6 +55,7 @@ namespace Flow.Launcher
{
InitializeComponent();
}
+
private void OnCopy(object sender, ExecutedRoutedEventArgs e)
{
if (QueryTextBox.SelectionLength == 0)
@@ -89,6 +93,7 @@ namespace Flow.Launcher
InitializeColorScheme();
WindowsInteropHelper.DisableControlBox(this);
InitProgressbarAnimation();
+ InitializePosition();
// since the default main window visibility is visible
// so we need set focus during startup
QueryTextBox.Focus();
@@ -106,7 +111,6 @@ namespace Flow.Launcher
animationSound.Position = TimeSpan.Zero;
animationSound.Play();
}
-
UpdatePosition();
Activate();
QueryTextBox.Focus();
@@ -136,22 +140,20 @@ namespace Flow.Launcher
}
case nameof(MainViewModel.ProgressBarVisibility):
{
- Dispatcher.Invoke(async () =>
+ Dispatcher.Invoke(() =>
{
if (_viewModel.ProgressBarVisibility == Visibility.Hidden && !isProgressBarStoryboardPaused)
{
- await Task.Delay(50);
_progressBarStoryboard.Stop(ProgressBar);
isProgressBarStoryboardPaused = true;
}
else if (_viewModel.MainWindowVisibilityStatus &&
- isProgressBarStoryboardPaused)
+ isProgressBarStoryboardPaused)
{
_progressBarStoryboard.Begin(ProgressBar, true);
isProgressBarStoryboardPaused = false;
}
- }, System.Windows.Threading.DispatcherPriority.Render);
-
+ });
break;
}
case nameof(MainViewModel.QueryTextCursorMovedToEnd):
@@ -161,6 +163,7 @@ namespace Flow.Launcher
_viewModel.QueryTextCursorMovedToEnd = false;
}
break;
+
}
};
_settings.PropertyChanged += (o, e) =>
@@ -176,21 +179,40 @@ namespace Flow.Launcher
case nameof(Settings.Hotkey):
UpdateNotifyIconText();
break;
+ case nameof(Settings.WindowLeft):
+ Left = _settings.WindowLeft;
+ break;
+ case nameof(Settings.WindowTop):
+ Top = _settings.WindowTop;
+ break;
}
};
}
private void InitializePosition()
{
- if (_settings.RememberLastLaunchLocation)
+ switch (_settings.SearchWindowPosition)
{
- Top = _settings.WindowTop;
- Left = _settings.WindowLeft;
- }
- else
- {
- Left = WindowLeft();
- Top = WindowTop();
+ case SearchWindowPositions.RememberLastLaunchLocation:
+ Top = _settings.WindowTop;
+ Left = _settings.WindowLeft;
+ break;
+ case SearchWindowPositions.MouseScreenCenter:
+ Left = HorizonCenter();
+ Top = VerticalCenter();
+ break;
+ case SearchWindowPositions.MouseScreenCenterTop:
+ Left = HorizonCenter();
+ Top = 10;
+ break;
+ case SearchWindowPositions.MouseScreenLeftTop:
+ Left = 10;
+ Top = 10;
+ break;
+ case SearchWindowPositions.MouseScreenRightTop:
+ Left = HorizonRight();
+ Top = 10;
+ break;
}
}
@@ -199,8 +221,9 @@ namespace Flow.Launcher
var menu = contextMenu;
((MenuItem)menu.Items[1]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayOpen") + " (" + _settings.Hotkey + ")";
((MenuItem)menu.Items[2]).Header = InternationalizationManager.Instance.GetTranslation("GameMode");
- ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings");
- ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit");
+ ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("PositionReset");
+ ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings");
+ ((MenuItem)menu.Items[5]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit");
}
private void InitializeNotifyIcon()
@@ -226,6 +249,10 @@ namespace Flow.Launcher
{
Header = InternationalizationManager.Instance.GetTranslation("GameMode")
};
+ var positionreset = new MenuItem
+ {
+ Header = InternationalizationManager.Instance.GetTranslation("PositionReset")
+ };
var settings = new MenuItem
{
Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings")
@@ -237,12 +264,15 @@ namespace Flow.Launcher
open.Click += (o, e) => _viewModel.ToggleFlowLauncher();
gamemode.Click += (o, e) => ToggleGameMode();
+ positionreset.Click += (o, e) => PositionReset();
settings.Click += (o, e) => App.API.OpenSettingDialog();
exit.Click += (o, e) => Close();
contextMenu.Items.Add(header);
contextMenu.Items.Add(open);
gamemode.ToolTip = InternationalizationManager.Instance.GetTranslation("GameModeToolTip");
+ positionreset.ToolTip = InternationalizationManager.Instance.GetTranslation("PositionResetToolTip");
contextMenu.Items.Add(gamemode);
+ contextMenu.Items.Add(positionreset);
contextMenu.Items.Add(settings);
contextMenu.Items.Add(exit);
@@ -289,10 +319,17 @@ namespace Flow.Launcher
_viewModel.GameModeStatus = true;
}
}
+ private async void PositionReset()
+ {
+ _viewModel.Show();
+ await Task.Delay(300); // If don't give a time, Positioning will be weird.
+ Left = HorizonCenter();
+ Top = VerticalCenter();
+ }
private void InitProgressbarAnimation()
{
var da = new DoubleAnimation(ProgressBar.X2, ActualWidth + 150,
- new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
+ new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
var da1 = new DoubleAnimation(ProgressBar.X1, ActualWidth + 50, new Duration(new TimeSpan(0, 0, 0, 0, 1600)));
Storyboard.SetTargetProperty(da, new PropertyPath("(Line.X2)"));
Storyboard.SetTargetProperty(da1, new PropertyPath("(Line.X1)"));
@@ -396,6 +433,8 @@ namespace Flow.Launcher
private async void OnDeactivated(object sender, EventArgs e)
{
+ _settings.WindowLeft = Left;
+ _settings.WindowTop = Top;
//This condition stops extra hide call when animator is on,
// which causes the toggling to occasional hide instead of show.
if (_viewModel.MainWindowVisibilityStatus)
@@ -417,24 +456,14 @@ namespace Flow.Launcher
{
if (_animating)
return;
-
- if (_settings.RememberLastLaunchLocation)
- {
- Left = _settings.WindowLeft;
- Top = _settings.WindowTop;
- }
- else
- {
- Left = WindowLeft();
- Top = WindowTop();
- }
+ InitializePosition();
}
private void OnLocationChanged(object sender, EventArgs e)
{
if (_animating)
return;
- if (_settings.RememberLastLaunchLocation)
+ if (_settings.SearchWindowPosition == SearchWindowPositions.RememberLastLaunchLocation)
{
_settings.WindowLeft = Left;
_settings.WindowTop = Top;
@@ -453,8 +482,8 @@ namespace Flow.Launcher
_viewModel.Show();
}
}
-
- public double WindowLeft()
+
+ public double HorizonCenter()
{
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
@@ -463,7 +492,7 @@ namespace Flow.Launcher
return left;
}
- public double WindowTop()
+ public double VerticalCenter()
{
var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y);
@@ -472,12 +501,22 @@ namespace Flow.Launcher
return top;
}
+ public double HorizonRight()
+ {
+ var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position);
+ var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0);
+ var dip2 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0);
+ var left = (dip2.X - ActualWidth) - 10;
+ return left;
+ }
+
///
/// Register up and down key
/// todo: any way to put this in xaml ?
///
private void OnKeyDown(object sender, KeyEventArgs e)
{
+ var specialKeyState = GlobalHotkey.CheckModifiers();
switch (e.Key)
{
case Key.Down:
@@ -512,8 +551,13 @@ namespace Flow.Launcher
e.Handled = true;
}
break;
+ case Key.F12:
+ if (specialKeyState.CtrlPressed)
+ {
+ ToggleGameMode();
+ }
+ break;
case Key.Back:
- var specialKeyState = GlobalHotkey.CheckModifiers();
if (specialKeyState.CtrlPressed)
{
if (_viewModel.SelectedIsFromQueryResults()
@@ -555,5 +599,14 @@ namespace Flow.Launcher
ModernWpf.ThemeManager.Current.ApplicationTheme = ModernWpf.ApplicationTheme.Dark;
}
}
+
+ private void QueryTextBox_KeyUp(object sender, KeyEventArgs e)
+ {
+ if(_viewModel.QueryText != QueryTextBox.Text)
+ {
+ BindingExpression be = QueryTextBox.GetBindingExpression(System.Windows.Controls.TextBox.TextProperty);
+ be.UpdateSource();
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/Flow.Launcher/PriorityChangeWindow.xaml b/Flow.Launcher/PriorityChangeWindow.xaml
index d50bf82db..d6aadead9 100644
--- a/Flow.Launcher/PriorityChangeWindow.xaml
+++ b/Flow.Launcher/PriorityChangeWindow.xaml
@@ -63,7 +63,6 @@
@@ -2724,7 +2723,8 @@
Background="{DynamicResource CustomContextBackground}"
BorderBrush="{DynamicResource CustomContextBorder}"
BorderThickness="1"
- CornerRadius="8">
+ CornerRadius="8"
+ UseLayoutRounding="True">
+ Visibility="{Binding ShowIcon}">
+
+
+
+
+ Value="{Binding ResultProgress, Mode=OneWay}">
+
+
+
+
@@ -38,6 +39,8 @@
+
+
@@ -321,8 +324,6 @@
-
-
@@ -386,6 +387,55 @@
+
+
+
+
+
+
+
+ SnapsToDevicePixels="True"
+ Style="{DynamicResource PluginListStyle}">
@@ -939,7 +1061,7 @@
Padding="0"
Background="Transparent"
FlowDirection="RightToLeft"
- IsExpanded="{Binding Mode=TwoWay, Path=IsSelected, RelativeSource={RelativeSource AncestorType=ListBoxItem, Mode=FindAncestor}}"
+ IsExpanded="{Binding Mode=TwoWay, Path=IsExpanded}"
Style="{StaticResource ExpanderStyle1}">
+ ToolTip="{DynamicResource priorityToolTip}">
+
+
-
+
+ SelectionMode="Single"
+ Style="{DynamicResource StoreListStyle}">
+
+
+
+
+
+
+
@@ -1338,15 +1543,39 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ VerticalAlignment="Top">
+ Text="{Binding Description, Mode=OneWay}" />
@@ -1429,12 +1663,13 @@
-
+ VerticalAlignment="Top">
+
-
+
-
+
-
-
+ Orientation="Horizontal">
+
+
+
+
+
+
@@ -1481,7 +1738,6 @@
-
@@ -1553,8 +1809,11 @@
IsReadOnly="True"
Style="{DynamicResource QueryBoxStyle}"
Text="{DynamicResource hiThere}" />
-
+
+
+
+