Skip to content

Repository files navigation

🇺🇦 Українська | ru Русский | 🇧🇾 Беларуская | 🇧🇬 Български | 🇷🇸 Српски | 🇲🇰 Македонски | 🇰🇿 Қазақша | 🇰🇬 Кыргызча | 🇲🇳 Монгол | 🇬🇷 Ελληνικά | 🇮🇱 עברית | 🇸🇦 العربية | 🇮🇷 فارسی | 🇦🇲 Հայերեն | 🇬🇪 ქართული | 🇹🇭 ไทย

Flow Launcher Windows .NET 9 Latest release Downloads License: MIT

When I installed Flow Launcher, I was genuinely surprised that I could not find a plugin like this. It made me wonder how much human time has been wasted retyping, deleting, and correcting text entered in the wrong keyboard layout.

⌨️ Adds fallback results for wrong keyboard layouts.

Plugin function demo

Samples:

  • Yfcnhjqrb -> additionally searches Настройки
  • руддщ -> additionally searches hello

The plugin checks only the keyboard layouts installed in the user's Windows system.

The original Flow Launcher results stay untouched and remain higher. Fallback results are marked with and receive a strong score penalty.

🤓 Mechanics in detail

  1. Reads installed Windows keyboard layouts with GetKeyboardLayoutList, HKCU\Keyboard Layout\Preload, and HKCU\Keyboard Layout\Substitutes.
  2. Builds conversion maps between every ordered pair of available layouts.
  3. Generates corrected query candidates and filters out weak or duplicate conversions.
  4. Queries the other global Flow Launcher plugins with the corrected candidates.
  5. Appends lower-priority fallback results without touching the original Flow Launcher results.

Explicit action-keyword queries are ignored, so the plugin only participates in ordinary global searches.

📓 Notes

  • Fallback output is limited to 20 results and 6 results per source plugin.
  • Latin-to-Latin fallback candidates use a softer filter, but receive an extra score penalty and appear lower.
  • Some third-party plugins may behave differently when queried indirectly, so fallback results can vary by source plugin.
  • Layout Fallback does not translate or transliterate text. It only reinterprets the same physical key presses through other installed Windows keyboard layouts.

🌍 Supported keyboard layouts

Layout Fallback works best with direct keyboard layouts where the same physical keys produce different characters.

Best candidates include 🇺🇸 English US, 🇬🇧 English UK, ru Russian, 🇺🇦 Ukrainian, 🇧🇾 Belarusian, 🇧🇬 Bulgarian, 🇷🇸 Serbian Cyrillic, 🇲🇰 Macedonian, 🇰🇿 Kazakh, 🇰🇬 Kyrgyz, 🇲🇳 Mongolian Cyrillic, 🇬🇷 Greek, 🇮🇱 Hebrew, 🇸🇦 Arabic, 🇮🇷 Persian, 🇦🇲 Armenian, 🇬🇪 Georgian, 🇹🇭 Thai.

Latin-based layouts may also work, but the benefit is usually smaller because many characters overlap with English. This includes 🇩🇪 German, 🇫🇷 French AZERTY, 🇪🇸 Spanish, 🇮🇹 Italian, 🇵🇹 Portuguese, 🇹🇷 Turkish Q, 🇨🇿 Czech QWERTY, 🇸🇰 Slovak QWERTY, 🇭🇺 Hungarian, 🇷🇴 Romanian, 🇱🇹 Lithuanian, 🇱🇻 Latvian, 🇪🇪 Estonian, 🇭🇷 Croatian, 🇸🇮 Slovenian, 🇦🇱 Albanian, 🇧🇦 Bosnian Latin, 🇷🇸 Serbian Latin, 🇳🇱 Dutch, 🇩🇰 Danish, 🇳🇴 Norwegian, 🇸🇪 Swedish, 🇫🇮 Finnish, 🇮🇸 Icelandic, 🇵🇱 Polish Programmer, 🇵🇱 Polish 214, and 🇵🇱 Polish Typewriter.

Some layouts may have limited support because they rely on IME, dead keys, complex composition, AltGr-heavy input, or candidate selection. This includes 🇨🇳 Chinese Simplified IME, 🇹🇼 Chinese Traditional IME, 🇯🇵 Japanese IME, 🇰🇷 Korean IME, 🇻🇳 Vietnamese Telex, 🇻🇳 Vietnamese VNI, 🇮🇳 Hindi Devanagari input, 🇧🇩 Bengali input, 🇮🇳 Tamil input, 🇮🇳 Telugu input, 🇮🇳 Kannada input, 🇮🇳 Malayalam input, 🇹🇭 Thai Kedmanee variants with complex composition, 🇺🇸 US International, 🇬🇧 United Kingdom Extended, 🇨🇦 Canadian Multilingual Standard, 🇨🇦 French Canadian, 🇪🇸 Spanish International, 🇵🇹 Portuguese ABNT, 🇧🇷 Portuguese ABNT2, 🇨🇿 Czech Programmers, 🇸🇰 Slovak Programmers, 🇭🇺 Hungarian 101-key.

📦 Installation

If the plugin is available in the Flow Launcher plugin store, install it from Flow Launcher plugin settings.

Manual installation

Type this in Flow Launcher:

pm install https://github.com/LanKing/flow-launcher-plugin-layout-fallback/releases/latest/download/LayoutFallback.zip

Then restart Flow Launcher by typing Restart Flow Launcher and selecting the system command.

🛠 Build

Requires .NET 9 SDK:

winget install Microsoft.DotNet.SDK.9

Build the plugin:

Set-ExecutionPolicy -Scope Process Bypass
.\build.ps1

The installable ZIP will be created at:

artifacts\LayoutFallback-0.1.4.zip

Install the generated ZIP from Flow Launcher's plugin settings, then restart Flow Launcher.

Quick local development

You can use a script that builds and copies the build into Flow Launcher, so you don't need to do this manually.

For default Flow Launcher plugins directory:

.\install-dev.ps1

For portable Flow Launcher or a custom plugins directory:

.\install-dev.ps1 -FlowPluginsDirectory "D:\Apps\FlowLauncher\UserData\Plugins"

You need to restart Flow Launcher after installation.

📄 License

MIT — contributions welcome.

About

⌨️ This FlowLauncher plugin adds fallback results by converting the query between keyboard layouts available on the user's Windows system, e.g. Yfcnhjqrb -> Настройки.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Contributors

Languages