Typed in the wrong keyboard layout? Fix it with one keystroke — anywhere in your IDE.
Alt + Shift + L
You start typing — fast, without looking — and only after a full sentence
you notice the keyboard was on the wrong layout. Instead of real text you
get gibberish: tbh rumv kgau, instead of אני רוצה לעשות, ghbdtn
instead of привет, dkssud instead of 안녕. Every language has a name
for this mess, and every developer loses their train of thought retyping it.
GibberishFix fixes it with one keystroke ( Alt + Shift + L) — and on Windows it also switches your OS keyboard to match, so you just keep typing.
GibberishFix works in any VS Code‑based editor — VS Code itself, as well as forks and AI‑first IDEs such as Cursor, Windsurf, VSCodium, Antigravity, and similar.
Inside those editors it works in places most tools can't reach:
| Surface | Supported |
|---|---|
| Code editor & multi‑cursor selections | ✅ |
| Search / replace & Quick Open boxes | ✅ |
| AI chat panels — Claude Code, GitHub Copilot Chat, Cursor AI, Antigravity, Gemini Code Assist | ✅ |
It reaches webview chat panels through a clipboard‑relay pipeline (cut → convert → paste → switch OS keyboard) — the one mechanism that penetrates extension webviews.
Select the gibberish text (or select nothing — it converts the whole input) and press one of:
| Shortcut | Behavior |
|---|---|
Alt+Shift+L |
Auto / mixed — every character is converted by its own script. Latin → target and target → English happen at once, so mixed gibberish like vna,bv ... ארוק becomes המשתנה ... true. |
Alt+Shift+E |
All to English — target‑script characters → English; text already in English is left untouched. |
Alt+Shift+T |
All to target — English → the target language; text already in the target script is left untouched. |
Rule of thumb: use Alt+Shift+L when you typed without looking and the
mess could go either way; use the forced commands when you want the whole
input collapsed into one script.
To rebind a shortcut, click the ⌨️ indicator in the status bar and pick ⚙️ Customize keyboard shortcuts… at the bottom of the menu.
By default targetLanguage is auto: GibberishFix looks at which
keyboard layouts — other than English — are installed in your OS
(Windows), and uses them as the target:
- only one such layout installed → that one is the target;
- two or more → the language you last converted to (remembered automatically), or the first detected one until then.
The active target is always shown in the status bar as
⌨️ <language>. Click it — or run GibberishFix: Choose Target
Language from the Command Palette — to pick any of the 32 languages
explicitly. Picking one pins it: this sets targetLanguage to your
choice and turns auto‑detection off. Set it back to auto in Settings to
re‑enable detection.
| Setting | Default | What it does |
|---|---|---|
gibberish-fix.targetLanguage |
auto |
The target language. auto detects it from your installed OS keyboards; picking a language from the status bar pins it instead. See Choosing the target language. |
gibberish-fix.switchOSKeyboard |
true |
After converting, switch the Windows keyboard layout to match (so you keep typing seamlessly). |
gibberish-fix.convertDigits |
true |
Convert digits too — important for languages with native digits (Farsi, Bengali, …). |
gibberish-fix.selectAllIfNoSelection |
true |
With no selection, convert the entire input field instead of doing nothing. |
GibberishFix supports all 32 languages below, auto‑generated from simple-keyboard-layouts. Every example is computed mechanically from the real layout data — column 3 shows exactly what you get.
| Language | Examples | Local expression for the mistake | |
|---|---|---|---|
| 🇮🇱 | Hebrew (עברית) | 1. akuo → שלום2. ארוק → true |
Typing «שכחתי להעביר שפה» (forgot to switch language) or «מקלדת הפוכה» (flipped keyboard); the result is «ג׳יבריש» (gibberish). |
| 🇷🇺 | Russian (русский) | 1. ghndtm → привет2. екгу → true |
Typing «не в той раскладке» (in the wrong layout); the result is jokingly «кракозя́бры» (krakozyabry). |
| 🇺🇦 | Ukrainian (українська) | 1. ghndsm → привіт2. екгу → true |
Typing «не в тій розкладці» (in the wrong layout) or «забув змінити мову» (forgot to change language); the result is «кракозябри». |
| 🇧🇾 | Belarusian (беларуская) | 1. ghsdbnfyyt → прывітанне2. екгу → true |
Typing «не ў той раскладцы» (in the wrong layout); the result is «краказябры». |
| 🇰🇷 | Korean (한국어) | ᄉ겨ᄃ → true |
Typing «한영 오타» (Han-Yeong typo) or «영타» (typing in English layout); the result is playfully called «외계어» (alien language). |
| 🇯🇵 | Japanese (日本語) | 1. byiaf → こんにちは2. かすない → true |
Typing «IMEオフのまま» (leaving the IME off) or «ローマ字入力» (typing in Romaji layout by mistake); the result is «打ち間違い» (typing error). |
| 🇹🇭 | Thai (ไทย) | ะพีำ → true |
Typing «ลืมเปลี่ยนภาษา» (forgot to change the language); the result is famously called «ภาษาต่างดาว» (alien language). |
| 🇬🇷 | Greek (Ελληνικά) | 1. geia → γεια2. τρθε → true |
Typing «ξέχασα να γυρίσω το πληκτρολόγιο» (forgot to switch the keyboard); the result is called «αλαμπουρνέζικα» (gibberish / gobbledygook). |
| 🇸🇦 | Arabic (العربية) | 1. lvpfh → مرحبا2. فقعث → true |
Typing «نسيت أحول اللغة» (I forgot to change the language); the result is often called «طلاسم» (talismans / indecipherable text). |
| 🇮🇷 | Persian / Farsi (فارسی) | 1. sghl → سلام2. فقعث → true |
Typing «کیبورد انگلیسی بود» (the keyboard was on English); the result is called «خرچنگ قورباغه» (crabs and frogs — messy, unreadable scribble). |
| 🇲🇰 | Macedonian (македонски) | 1. zdravo → здраво2. труе → true |
Typing «грешна тастатура» (wrong keyboard layout); the result is called «хиероглифи» (hieroglyphs). |
| 🇬🇪 | Georgian (ქართული) | 1. gamarjoba → გამარჯობა2. ტრუე → true |
Typing «არასწორი განლაგება» (wrong layout) or «ინგლისურად დამრჩა» (left it in English); the result is called «იეროგლიფები» (hieroglyphs). |
| 🇦🇲 | Armenian – Eastern (հայերեն) | տրըէ → true |
Typing «սխալ ստեղնաշար» (wrong keyboard); the result is jokingly called «անհասկանալի տեքստ» (unintelligible text). |
| 🇦🇲 | Armenian – Western (հայերէն) | դրըէ → true |
Typing «սխալ ստեղնաշար» (wrong keyboard); the result is called «խառնակ գիր» (jumbled writing). |
| 🇵🇰 | Urdu (اردو) | 1. slam → سلام2. ترءع → true |
Typing «غلط کی بورڈ» (wrong keyboard) or «زبان بدلنا بھول گیا» (forgot to change language); the result is «مہمل الفاظ» (nonsense words). |
| 🇵🇰 | Urdu – Standard (اردو) | 1. jdrs → اردو2. ٹدتھ → true |
Typing «غلط کی بورڈ» (wrong keyboard) or «زبان بدلنا بھول گیا» (forgot to change language); the result is «مہمل الفاظ» (nonsense words). |
| 🇲🇲 | Burmese (မြန်မာ) | အမကန → true |
Typing «ကီးဘုတ်မှားနေတယ်» (the keyboard is wrong); the result is «စာလွဲ» (misaligned / jumbled text). |
| 🇮🇷 | Gilaki (گیلکی) | فقعئ → true |
Typing «کیبورد عوض نبوو» (the keyboard wasn’t changed); the result is also called «خرچنگ قورباغه». |
| 🇮🇶 | Kurdish – Sorani (کوردی) | ترئە → true |
Typing «تەختەکلیلەکە ھەڵەیە» (the keyboard is wrong); the result is «تێکەڵ و پێکەڵ» (jumbled up). |
| 🇵🇰 | Sindhi (سنڌي) | ترءع → true |
Typing «غلط ڪيبورڊ» (wrong keyboard layout); the result is «گڑبڑ» (jumbled / mess). |
| 🇵🇰 | Balochi (بلۏچی) | ترءع → true |
Typing «کیبورد مٹ نہ کتگ» (forgot to switch keyboard); the result is «رد و بند» (mixed-up nonsense). |
| 🇨🇳 | Uyghur (ئۇيغۇرچە) | ترۇې → true |
Typing «بۇسۇنتاختا خاتا» (wrong keyboard layout); the result is «چۈشەنگىسىز خەت» (unintelligible writing). |
| 🇮🇳 | Hindi (हिन्दी) | 1. cxndls → नमस्ते2. ूीहा → true |
Typing «गलत कीबोर्ड लेआउट» (wrong keyboard layout) or «अंग्रेज़ी में टाइप हो गया» (typed in English by mistake); the result is «कचरा टेक्स्ट» (garbage text) or «जिब्रिश». |
| 🇧🇩 | Bengali (বাংলা) | িাোে → true |
Typing «ভুল কীবোর্ড লেআউট» (wrong keyboard layout); the result is «হিব্রি-জিব্রি» (hibri-jibri / gibberish). |
| 🇮🇳 | Punjabi – Gurmukhi (ਪੰਜਾਬੀ) | 1. hxpeyr → ਪੰਜਾਬੀ2. ੂੀਹਾ → true |
Typing «ਗਲਤ ਕੀਬੋਰਡ ਲੇਆਉਟ» (wrong keyboard layout); the result is «ਗੜਬੜ ਲਿਖਤ» (messed-up writing). |
| 🇮🇳 | Assamese (অসমীয়া) | 1. cxnsjeh → নমস্কাৰ2. ূীহা → true |
Typing «ভুল কীবৰ্ড লেআউট» (wrong keyboard layout); the result is «অস্পষ্ট পাঠ» (unclear text). |
| 🇮🇳 | Odia (ଓଡ଼ିଆ) | 1. vcmdkej → ନମସ୍କାର2. ୂୀବା → true |
Typing «ଭୁଲ କିବୋର୍ଡ଼ ଲେଆଉଟ୍» (wrong keyboard layout); the result is «ଗିବ୍ରିଶ୍» (gibberish). |
| 🇮🇳 | Telugu (తెలుగు) | ూీహా → true |
Typing «తప్పు కీబోర్డ్ లేఅవుట్» (wrong keyboard layout); the result is «పిచ్చి రాతలు» (crazy / nonsense writing). |
| 🇮🇳 | Kannada (ಕನ್ನಡ) | 1. vcmsjeh → ನಮಸ್ಕಾರ2. ೂೀಹಾ → true |
Typing «ತಪ್ಪು ಕೀಬೋರ್ಡ್ ಲೇಔಟ್» (wrong keyboard layout); the result is «ಗೀಚುಬರಹ» (scribble / gibberish). |
| 🇮🇳 | Malayalam (മലയാളം) | ഊഈങആ → true |
Typing «തെറ്റായ കീബോർഡ് ലേഔട്ട്» (wrong keyboard layout); the result is «കിറുക്കൻ എഴുത്ത്» (crazy / unreadable text). |
| 🇷🇺 | Russian – Old orthography (русскій) | екгу → true |
Typing «не в той раскладке» (in the wrong layout); the result is «дореволюціонныя кракозябры» (pre-revolutionary krakozyabry). |
| 🇬🇳 | N'Ko (ߒߞߏ) | 1. qkx → ߒߞߏ2. ߕߙߎߋ → true |
Typing «ߛߓߍߘ߲ߊ߫ ߝߎ߬ߕߎ߲߬ߜߊ߬ߣߍ߲» (wrong keyboard layout); the result is «ߡߊ߬ߛߊ߲߬ߜߊ߲߬ߣߍ߲» (jumbled / confused text). |
Some scripts (Korean, several Indic and rare Arabic‑based ones) compose letters from multiple keys, so a clean latin → word example can't be shown — those rows keep only the
→ trueexample.
GibberishFix fixes the text you typed. These companion extensions fix how right‑to‑left text is displayed in each AI chat panel — they're separate, complementary tools:
| Extension | What it does | Install |
|---|---|---|
| Claude Code RTL | Proper RTL rendering for the Claude Code chat panel. | Open VSX |
| Copilot Chat RTL | Proper RTL rendering for GitHub Copilot Chat. | Open VSX |
| Cursor Chat RTL | Proper RTL rendering for Cursor's AI chat. | Open VSX |
| Gemini Code Assist RTL | Proper RTL rendering for Gemini Code Assist. | Open VSX |
| Antigravity Chat RTL | Proper RTL rendering for Antigravity's chat. | Open VSX |
The language layouts are sourced from simple-keyboard-layouts by Francisco Hodge, under the MIT License. GibberishFix itself is released under the MIT License.
מתחילים להקליד — מהר, בלי להסתכל — ורק אחרי משפט שלם שמים לב שהמקלדת
הייתה על ה‑layout הלא נכון. במקום טקסט אמיתי יוצא ג'יבריש: tbh rumv kgau,
במקום אני רוצה לעשות, או ארוק במקום true. לכל שפה יש שם משלה לבלגן
הזה, וכל מפתח/ת מאבד/ת את חוט המחשבה בזמן ההקלדה מחדש.
GibberishFix מתקן את זה בלחיצה אחת — ובמערכת Windows גם מחליף את שפת המקלדת של מערכת ההפעלה בהתאם, כך שפשוט ממשיכים להקליד.
GibberishFix עובד בכל עורך מבוסס VS Code — גם ב‑VS Code עצמו וגם ב‑forks וב‑IDEs ממוקדי‑AI כמו Cursor, Windsurf, VSCodium, Antigravity ועוד.
בתוך אותם עורכים זה עובד במקומות שרוב הכלים לא מגיעים אליהם:
| משטח | נתמך |
|---|---|
| עורך הקוד וריבוי סמנים | ✅ |
| תיבות חיפוש/החלפה ו‑Quick Open | ✅ |
| פאנלי צ'אט AI — Claude Code, GitHub Copilot Chat, Cursor AI, Antigravity, Gemini Code Assist | ✅ |
ההגעה לפאנלי הצ'אט (webview) נעשית דרך מנגנון "ממסר לוח" — גזירה ← המרה ← הדבקה ← החלפת מקלדת — המנגנון היחיד שחודר ל‑webview של תוספים.
יש לסמן את הטקסט המשובש (או לא לסמן כלום — אז כל הקלט יומר) וללחוץ על אחד מ:
| קיצור | התנהגות |
|---|---|
Alt+Shift+L |
אוטומטי / מעורב — כל תו מומר לפי הסקריפט שלו עצמו. Latin ← שפת היעד ושפת היעד ← אנגלית קורים בו‑זמנית, כך שטקסט מעורב כמו vna,bv ... ארוק הופך ל‑המשתנה ... true. |
Alt+Shift+E |
הכל לאנגלית — תווי שפת היעד ← אנגלית; טקסט שכבר באנגלית נשאר כפי שהוא. |
Alt+Shift+T |
הכל לשפת היעד — אנגלית ← שפת היעד; טקסט שכבר בשפת היעד נשאר כפי שהוא. |
כלל אצבע: להשתמש ב‑Alt+Shift+L כשהקלדת בלי להסתכל והבלגן יכול להיות
בשני הכיוונים; להשתמש בפקודות הכפויות כשרוצים לרכז את כל הקלט לסקריפט אחד.
כדי לשנות קיצור, ללחוץ על אינדיקטור ה‑⌨️ שבשורת הסטטוס ולבחור ⚙️ Customize keyboard shortcuts… בתחתית התפריט.
כברירת מחדל targetLanguage מוגדר ל‑auto: GibberishFix בודק אילו
פריסות מקלדת — מלבד אנגלית — מותקנות במערכת ההפעלה (Windows), ומשתמש בהן
כשפת היעד:
- מותקנת פריסה אחת בלבד כזו ← היא שפת היעד;
- מותקנות שתיים או יותר ← השפה שאליה המרת לאחרונה (נשמרת אוטומטית), או הראשונה שזוהתה עד אז.
שפת היעד הפעילה מוצגת תמיד בשורת הסטטוס בתור ⌨️ <שפה>. לחיצה עליה —
או הרצת GibberishFix: Choose Target Language מתוך ה‑Command Palette —
פותחת בחירה מפורשת מבין 32 השפות. בחירת שפה מקבעת אותה: ההגדרה
targetLanguage מתעדכנת לבחירה שלך והזיהוי האוטומטי מבוטל. כדי להחזיר את
הזיהוי, יש להחזיר את ההגדרה ל‑auto.
| הגדרה | ברירת מחדל | מה היא עושה |
|---|---|---|
gibberish-fix.targetLanguage |
auto |
שפת היעד. auto מזהה אותה לפי מקלדות ה‑OS המותקנות; בחירת שפה משורת הסטטוס מקבעת אותה במקום. ראו «בחירת שפת היעד» למעלה. |
gibberish-fix.switchOSKeyboard |
true |
אחרי ההמרה — להחליף את פריסת המקלדת ב‑Windows בהתאם (כדי שתמשיך/י להקליד ברצף). |
gibberish-fix.convertDigits |
true |
להמיר גם ספרות — חשוב לשפות עם ספרות מקומיות (פרסית, בנגלית ועוד). |
gibberish-fix.selectAllIfNoSelection |
true |
כשאין סימון — להמיר את כל שדה הקלט במקום לא לעשות כלום. |
GibberishFix תומך בכל 32 השפות הבאות, שנוצרות אוטומטית מתוך simple-keyboard-layouts (הדוגמאות המלאות לכל שפה מופיעות בטבלה בקטע האנגלי למעלה):
עברית · רוסית · אוקראינית · בלארוסית · קוריאנית · יפנית · תאית · יוונית · ערבית · פרסית · מקדונית · גאורגית · ארמנית (מזרחית) · ארמנית (מערבית) · אורדו · אורדו (תקני) · בורמזית · גילקי · כורדית (סוראני) · סינדי · בלוצ'י · אויגורית · הינדי · בנגלית · פנג'אבי (גורמוקי) · אסאמית · אודיה · טלוגו · קנאדה · מליאלאם · רוסית (כתיב ישן) · נְקוֹ
GibberishFix מתקן את הטקסט שהקלדת. התוספים הנלווים הבאים מתקנים את האופן שבו טקסט מימין‑לשמאל מוצג בכל פאנל צ'אט של AI — אלה כלים נפרדים ומשלימים:
| תוסף | מה הוא עושה | התקנה |
|---|---|---|
| Claude Code RTL | תצוגת RTL תקינה לפאנל הצ'אט של Claude Code. | Open VSX |
| Copilot Chat RTL | תצוגת RTL תקינה ל‑GitHub Copilot Chat. | Open VSX |
| Cursor Chat RTL | תצוגת RTL תקינה לצ'אט ה‑AI של Cursor. | Open VSX |
| Gemini Code Assist RTL | תצוגת RTL תקינה ל‑Gemini Code Assist. | Open VSX |
| Antigravity Chat RTL | תצוגת RTL תקינה לצ'אט של Antigravity. | Open VSX |