<p align="center">
	<a href="https://github.com/DemerNkardaz/DSL-KeyPad"><img src="https://custom-icon-badges.herokuapp.com/badge/GitHub-[Main]-eeeeee?logoColor=eeeeee&style=for-the-badge&logo=github&labelColor=363B40" alt="GitHub"/></a>
	<a href="https://sourceforge.net/projects/dsl-keypad/"><img src="https://custom-icon-badges.herokuapp.com/badge/Source-Forge-f76300?logoColor=f76300&style=for-the-badge&logo=sourceforge&labelColor=363B40" alt="SourceForge"/></a>
	<a href="https://gitlab.com/DemerNkardaz/dsl-keypad"><img src="https://custom-icon-badges.herokuapp.com/badge/Git-Lab-db4128?logoColor=db4128&style=for-the-badge&logo=gitlab&labelColor=363B40" alt="GitLab"/></a>
	<a href="https://bitbucket.org/nkardaz/public/src/"><img src="https://custom-icon-badges.herokuapp.com/badge/Bit-Bucket-eee?logoColor=eee&style=for-the-badge&logo=bitbucket&labelColor=2d79ce" alt="Bitbucket"/></a>
	<a href="https://codeberg.org/Yalla/DSL-KeyPad"><img src="https://img.shields.io/badge/Code-Berg-eeeeee?style=for-the-badge&logo=codeberg&logoColor=ffffff&labelColor=2185d0" alt="Codeberg"/></a>
<br>
	<a href="https://www.autohotkey.com/boards/viewtopic.php?f=83&t=138452"><img src="https://custom-icon-badges.herokuapp.com/badge/AHK-Forum-ecedef?logoColor=eeeeee&style=for-the-badge&logo=autohotkey&labelColor=79c572" alt="Forum"/></a>
	<a href="https://habr.com/ru/articles/932600/"><img src="https://custom-icon-badges.herokuapp.com/badge/Хабр-Статья-ecedef?logoColor=eeeeee&style=for-the-badge&logo=habr&labelColor=629ebb" alt="Forum"/></a>
</p>

<br>

$$
\begin{array}{c}
\Large \color{#e2b041}\mathbf{DSL \ KeyPad} \\
\text{ } \\
\normalsize \mathbf{Type \ multiple \ languages \ with \ two \ layouts} \\
\small \text{Ænglisċ sprǣċ | Français | Română | Tiếng Việt … } \\
\small \text{Ελληνική γλώσσα | 𐐔𐐯𐑅𐐨𐑉𐐯𐐻 𐐈𐑊𐑁𐐰𐐺𐐯𐐻 | ᚹᛟᛞᛁᚾᛊ᛫ᚱᚢᚾᛟ … } \\
\small \text{Словѣньскъ ѩꙁыкъ | Қазақ тілі | Рꙋмѫнѣскъ | Аԥсуа бызшәа … }
\\
\\
\\
\\
\\
\normalsize \mathbf{et \ various \ symbols \ too } \\
\end{array}
$$

<p align="center">
🜁🜃🜂🜄🝞🝟🜲🜅🜆🜊🜍🝁🝆🝗🝘🜬🝩⚶⚴☊♉︎☄︎⚲⛤☤⚚☥♕♔♥♣⅍℆⌬⮃⬱⇶‽⁗⅝≋∰∜ …<br>☰☱☲☳☯︎☴☵☶☷
</p>

---

<p align="center">
<img src="https://custom-icon-badges.herokuapp.com/badge/unicode_symbols-6400+-yellow?logo=unicode&labelColor=ffffff" alt="unicode"/>
<img src="https://custom-icon-badges.herokuapp.com/badge/forge’s_sequences-6300+-yellow?logoColor=333333&logo=anvil&labelColor=ffffff" alt="forge"/>
<img src="https://custom-icon-badges.herokuapp.com/badge/binds-2600+/800+-yellow?logo=keybind&labelColor=ffffff" alt="binds"/>
<br>
<img src="https://wakatime.com/badge/user/e572f348-6192-4188-a508-7efe46e45cd5/project/687cb256-bc63-49cf-b4c8-fc242ad60efb.svg?style=social" alt="wakatime"/>
<img src="https://img.shields.io/github/watchers/DemerNkardaz/DSL-KeyPad" alt="GitHub watchers"/>
<img src="https://img.shields.io/github/stars/DemerNkardaz/DSL-KeyPad" alt="GitHub stars"/>
<img src="https://img.shields.io/gitlab/stars/DemerNkardaz%2Fdsl-keypad" alt="GitLab stars"/>
<img src="https://hitscounter.dev/api/hit?url=https%3A%2F%2Fgithub.com%2FDemerNkardaz%2FDSL-KeyPad&label=visits&color=yellow" alt="visits"/>
<br>
<a href="https://github.com/DemerNkardaz/DSL-KeyPad"><img src="https://img.shields.io/github/downloads/DemerNkardaz/DSL-KeyPad/total?logo=github&label=%F0%9F%A1%87&labelColor=ffffff&logoColor=333333&color=yellow" alt="GitHub Downloads"/></a>
<a href="https://sourceforge.net/projects/dsl-keypad/"><img src="https://img.shields.io/sourceforge/dt/dsl-keypad?logo=sourceforge&label=%F0%9F%A1%87&labelColor=ffffff&color=yellow" alt="SourceForge Downloads"/></a>
<a href="https://github.com/DemerNkardaz/DSL-KeyPad/releases/latest"><img src="https://img.shields.io/github/v/tag/DemerNkardaz/DSL-KeyPad?label=%E2%9C%AA&labelColor=ffffff&color=yellow" alt="Latest Version"/></a>
<a href="https://github.com/DemerNkardaz/DSL-KeyPad/releases/latest"><img src="https://img.shields.io/github/release-date/DemerNkardaz/DSL-KeyPad?label=%F0%9F%A1%85&labelColor=ffffff&color=yellow" alt="Latest Version"/></a>
</p>

<br>

<img src="src/Bin/DSLKeyPad_App_Icons/DSLKeyPad.app.ico" alt="" width="74" align="left">

“DSL KeyPad” is a tool written on [AutoHotkey 2.0](https://www.autohotkey.com/), designed for inputting a wide range of characters using hotkeys, [Compose](https://en.wikipedia.org/wiki/Compose_key)-like mode and auxiliary functions.

This tool extends the range of characters available for input directly from the keyboard and primarily focuses on Latin and Cyrillic scripts, but is not limited to them. You only need to have Russian and English keyboard layouts installed in your system to be able to write in multiple languages, for example:

- **Latin**: <span title="Old English">Ænglisċ sprǣċe</span>, <span title="French">Français</span>, <span title="Vietnamese">Tiếng Việt</span>, <span title="Mandarin (Romanization)">Hànyǔ Pīnyīn</span>, <span title="Old Norse">Norrœnt mál</span>, <span title="Faroese">Føroyskt mál</span>, <span title="Romanian">Limba Română</span>, <span title="Spanish">Español</span>, <span title="Polish">Język polski</span>, <span title="Czech">Čeština</span>, <span title="Norwegian Bokmål">Bokmål</span>, <span title="Tamazight">Tamaziɣt</span>, <span title="Turkish">Türkçe</span>, <span title="Skolt Sami">Sää’mǩiõll</span>, <span title="Lithuanian">Lietùvių kalbà</span>…

- **Cyrillic**: <span title="Kazakh">Қазақ тілі</span>, <span title="Dungan">Хуэйзў йүян</span>, <span title="Tajik">Забони тоҷикӣ</span>, <span title="Yaghnobi">Йағнобӣ зивок</span>, <span title="Abkhaz">Аԥсуа бызшәа</span>, <span title="Avar">Авар мацӏ</span>, <span title="Ukrainian">Українська мова</span>, <span title="Old Church Slavonic">Словѣньскъ ѩꙁꙑкъ</span>, <span title="Montenegrin">Црногорски језик</span>, <span title="Old Romanian (Cyrillic)">Ли́мба Рꙋмѫнѣскъ</span>, <span title="Itelmen">Итәнмәӈин крвэԓхатас</span>, <span title="Daur">Даһур Усүүэ</span>, <span title="Evenki">Эвэды̄ турэ̄н</span>, <span title="Azerbaijani (Cyrillic)">Азәрбајҹанҹа</span>, <span title="Bashkir">Башҡорт теле</span>, <span title="Talysh">Тэлэңгэт</span>, <span title="Chuvash">Чӑваш чӗлхи</span>…

The tool implements support for inputting various writing systems, for example: Runes, Glagolitic, Old Turkic, Old Permic, Phoenician, Ancient North Arabian etc. An International Phonetic Alphabet input mode is also available.

Downloading available on [Releases](https://github.com/DemerNkardaz/DSL-KeyPad/releases) & [SourceForge](https://sourceforge.net/projects/dsl-keypad/files/).

**⚠️ AutoHotkey is required to use this tool.** Install it via Powershell or [download from its site](https://www.autohotkey.com/).

```powershell
winget install AutoHotkey.AutoHotkey
```

<br>

![Sequences Tab](https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/panel_forge_tab_en.png)

<p align="center">
	<i>Forge’s Sequences Tab</i>
</p>

<br>

### Shortlist of Features

- **Multilayer bindings**: Including different for English (“Latin set”) and Russian (“Cyrillic set”).
  E.g., \[en.\] <kbd>RAlt + A or Z</kbd> → `Ă`/`Ż`, then \[ru.\] <kbd>RAlt + Ф or Я</kbd> → `Ѳ`/`Ѧ`. Supports user-defined key bindings.

- **Compositing mode, or “Forge”**: Converts a sequence (“recipes”) of one set of characters into another.<br>E.g., `AE` `OE` `TH` `ІѦ` `ЯЕ` `ⰦⰤ` `Ups` → `Æ` `Œ` `Þ` `Ѩ` `Ԙ` `Ⱙ` `Ʊ`. Supports user-defined recipes.

- **Alternative input**: A set of modes for various non-Latin/Cyrillic scripts (primarily historic), IPA, and mathematical symbols.<br>E.g., \[Runic `ᛢᚹᛖᚱᛏᚤᚢᛁᛟᛈᚨᛊᛞᚠᚷᚺᛃᚲᛚᛉᚳᚡᛒᚾᛗ᛬`\] \[Glagolitic `ⰉⰜⰖⰍⰅⰐⰃⰞⰛⰈⰘⰟⰗⰂⰀⰒⰓⰡⰝⰔⰏⰋⰠⰁⰣⰦ`\].<br>Available scripts:

  - [International Phonetic Alphabet](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet)
  - [Runic](https://en.wikipedia.org/wiki/Runic_script)
  - [Glagolitic](https://en.wikipedia.org/wiki/Glagolitic_script)
  - [Old Turkic](https://en.wikipedia.org/wiki/Old_Turkic_script)
  - [Old Permic](https://en.wikipedia.org/wiki/Old_Permic_script)
  - [Old Hungarian](https://en.wikipedia.org/wiki/Old_Hungarian_script)
  - [Gothic](https://en.wikipedia.org/wiki/Gothic_alphabet)
  - [Aghwan](https://en.wikipedia.org/wiki/Caucasian_Albanian_script)
  - [Etruscan, Oscan, South Picene, Umbrian…](https://en.wikipedia.org/wiki/Old_Italic_scripts)
  - [Phoenician](https://en.wikipedia.org/wiki/Phoenician_alphabet)
  - [Samaritan](https://en.wikipedia.org/wiki/Samaritan_scriptbet)
  - [Ancient South Arabian](https://en.wikipedia.org/wiki/Ancient_South_Arabian_script)
  - [Ancient North Arabian](https://en.wikipedia.org/wiki/Ancient_North_Arabian)
  - [Carian](https://en.wikipedia.org/wiki/Carian_alphabets)
  - [Lycian](https://en.wikipedia.org/wiki/Lycian_alphabet)
  - [Lydian](https://en.wikipedia.org/wiki/Lydian_alphabet)
  - [Sidetic](https://en.wikipedia.org/wiki/Sidetic_language#The_Sidetic_script)
  - [Cypriot Syllabary](https://en.wikipedia.org/wiki/Cypriot_syllabary)
  - [Tifinagh](https://en.wikipedia.org/wiki/Tifinagh)
  - [Ugaritic](https://en.wikipedia.org/wiki/Ugaritic_alphabet)
  - [Old Persian](https://en.wikipedia.org/wiki/Old_Persian_cuneiform)
  - [Imperial Aramaic](https://en.wikipedia.org/wiki/Aramaic_alphabet)
  - [Palmyrene](https://en.wikipedia.org/wiki/Palmyrene_alphabet)
  - [Inscriptional Parthian](https://en.wikipedia.org/wiki/Inscriptional_Parthian)
  - [Manichaean](https://en.wikipedia.org/wiki/Manichaean_script)
  - [Deseret](https://en.wikipedia.org/wiki/Deseret_alphabet)
  - [Shavian](https://en.wikipedia.org/wiki/Shavian_alphabet)

  **Note:** Sidetic requires wait before Windows and Noto Fonts developers add support for it, but you can use it anyway.

- **Glyph variations**: Allows entering alternative variants of symbols, if available.<br>E.g., `A` → `ᴬ` `𝐴` `𝐀` `𝑨` `𝙰` `Ａ` `ᴀ` `𝔄` `𝕬` `𝒜` `𝓐` `𝔸` `Ⓐ` `🅐` `🄰` `🅰` `🄐`.<br>“Reginal indicator” and “Tag” symbols modes also included.

  - **Regional indicators example:** `🇦​🇷` → 🇦🇷, `🇻​🇦` → 🇻🇦;
  - **Tags example:** `🏴gbwls<cancel tag>` → 🏴󠁧󠁢󠁷󠁬󠁳󠁿<br>Actions: Activate “Tags” mode via selector GUI, “Compose” → type “bfl” \[🏴\], type “gbwls” (text will be invisible), “Compose” → type “tcancel”.

- **TELEX/VNI-like modes**: simplifies typing of [Tiếng Việt](https://en.wikipedia.org/wiki/Vietnamese_language) (Vietnamese), [Tơlơi Jơrai](https://en.wikipedia.org/wiki/Jarai_language) (Jarai) and [Hànyǔ Pīnyīn](https://en.wikipedia.org/wiki/Pinyin) with input similar to Vietnamese Telex and VNI layouts.

- **Switch between entering Unicode symbols/HTML Code/ $\LaTeX$ Commands**, if available.<br>E.g., `Ă` `Ǣ` → `&Abreve;` `&#482;` ${\color{darkorange}\texttt{and}}$ `\u{A}` `\={\AE}` ${\color{darkorange}\texttt{or}}$ `\breve{A}` `\bar{\AE}` $\breve{A}$ $\text{Ǣ}$.

- **Search symbols in local library by tags**: Allows searching for symbols in the local library by tags for easy input.<br>E.g., `latin small ligature turned oe with short stroke` or shortened `oe tur str` → `ꭂ`.

- **Internal keyboard layouts**: Includes support for user-defined layouts.<br>Includes built-in support for:

  - **Latin:** _QWERTY_, [AZERTY](https://en.wikipedia.org/wiki/AZERTY), <span title="© David Piepgrass">[Asset](https://millikeys.sourceforge.net/asset/)</span>, <span title="© Oxey">[Blaze](https://layouts.wiki/layouts/2022/blaze/)</span>, <span title="© Eva Callico, AKL">[Canary](https://github.com/Apsu/Canary)</span>, [Colemak](https://en.wikipedia.org/wiki/Colemak), <span title="© Oxey">[Dhorf](https://oxey.dev/dhorf/index.html)</span>, [Dvorak](https://en.wikipedia.org/wiki/Dvorak_keyboard_layout), <span title="© Suraj N. Kurapati">[Engrammer](https://sunaku.github.io/engrammer-keyboard-layout.html)</span>, <span title="© Keyhabit">[Focal](https://github.com/Keyhabit/Focal-keyboard-layout)</span>, <span title="© GalileoBlues">[Gallium](https://github.com/GalileoBlues/Gallium)</span>, <span title="© Richard Davison">[Graphite](https://github.com/rdavison/graphite-layout)</span>, <span title="© Nikolay Nemshilov">[Halmak](https://github.com/kaievns/halmak)</span>, [JCUKEN](https://en.wikipedia.org/wiki/Phonetic_keyboard_layout#/media/File:UKNCkeyboard.png), <span title="© Isla/Danie">[Kuntem](https://layouts.wiki/layouts/2024/kuntem/)</span>, <span title="© Smudge">[Nerps](https://github.com/GalileoBlues/Gallium?tab=readme-ov-file#changes)</span>, <span title="© David Norman">[Norman](https://normanlayout.info)</span>, <span title="QWERTY modification with ÞǷẞƏƷƔ instead of [];',.">PanQWERTY</span>, <span title="© ClemenPine">[Pine](https://layouts.wiki/layouts/2021/pine/)</span>, <span title="© Keith Kim">[Qwickly](https://github.com/qwickly-org/Qwickly)</span>, <span title="© ibrahimab000">[Rain](https://layouts.wiki/layouts/2024/rain/)</span>, <span title="© GalileoBlues">[Recurva](https://github.com/GalileoBlues/Recurva)</span>, <span title="© Oxey">[Stronk](https://oxey.dev/stronk/index.html)</span>, <span title="© Oxey">[Sturdy](https://oxey.dev/sturdy/index.html)</span>, <span title="© OJ Bucao">[Workman](https://workmanlayout.org)</span>.
  - **Cyrillic:** _ЙЦУКЕН_, [Диктор](https://github.com/mshkrebtan/diktor), [ИІУКЕН (1907)](https://ru.wikipedia.org/wiki/ЙЦУКЕН#/media/Файл:Underwood.jpg), ЯШЕРТЫ, <span title="Kharlamak">Харламак</span>, <span title="Rulemak © Geert Hendrickx">[Рулемак](https://forum.colemak.com/viewtopic.php?id=519)</span>.<br><br>**Note:** the built-in layouts have been adapted, i.e., they do not fully correspond to their originals.

- **Modifications**: Allows creating user’s mods.

- **Other Features...**

<br>

<p align="center">
	<table>
		<tr>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/panel_fastkeys_tab_en.png" alt="FastKeys Tab" width="460"></td>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/panel_scripts_tab_en.png" alt="Scripts Tab" width="460"></td>
		</tr>
		<tr>
			<th><i>FastKeys Tab</i></th>
			<th><i>Scripts Tab</i></th>
		</tr>
		<tr>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/panel_help_tab_en.png" alt="Help Tab" width="460"></td>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/panel_about_en.png" alt="About" width="460"></td>
		</tr>
		<tr>
			<th><i>Help Tab</i></th>
			<th><i>About</i></th>
		</tr>
		<tr>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/scripter_alternative_input.png" alt="Alternative Input Selector" width="460"></td>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/scripter_glyph_variatioins.png" alt="Glyph Variations Selector" width="460"></td>
		</tr>
		<tr>
			<th><i>Alternative Input Selector</i></th>
			<th><i>Glyph Variations Selector</i></th>
		</tr>
		<tr>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/user_recipes_panel_en.png" alt="User Recipes Panel" width="460"></td>
			<td><img src="https://raw.githubusercontent.com/DemerNkardaz/DSL-KeyPad-Docs/refs/heads/main/Media/user_recipes_editor_en.png" alt="User Recipes Editor" width="460"></td>
		</tr>
		<tr>
			<th><i>User-Defined Recipes Panel</i></th>
			<th><i>User-Defined Recipes Editor</i></th>
		</tr>
	</table>
<p>

<br>

**Strong** recommendation: use the extended character set only for text writing, no more.<br>Using these characters for passwords, file names, etc., is dangerous.

**Strong 2** recommendation: turn off all AutoHotkey processes while playing games with sensitive anti-cheat systems. Games do not tolerate people who use AHK for gaining an advantage, and it is possible to be kicked or banned for having an AHK process running, even if the script does not provide an advantage.

---

[![GitHub](https://img.shields.io/github/v/release/DemerNkardaz/DSL-KeyPad?include_prereleases&label=%F0%9F%8F%B7%EF%B8%8F&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad) [![GitHub](https://img.shields.io/github/release-date-pre/DemerNkardaz/DSL-KeyPad?logo=github&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad) ![Static Badge](https://img.shields.io/badge/AutoHotkey-V2-yellow) [![GitHub](https://img.shields.io/github/downloads-pre/DemerNkardaz/DSL-KeyPad/latest/total?logo=github&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad)
[![jsDelivr](https://img.shields.io/jsdelivr/gh/hm/DemerNkardaz/DSL-KeyPad?logo=jsdelivr&color=yellow)](https://www.jsdelivr.com/package/gh/DemerNkardaz/DSL-KeyPad)

<details>
	<summary>Extended information</summary>

| GitHub                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | GitLab / Bitbucket                                                                                                                                                                                                                                                                                               | SourceForge                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [![GitHub](https://img.shields.io/github/downloads/DemerNkardaz/DSL-KeyPad/total?logo=github&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad)<br>[![GitHub](https://img.shields.io/github/commit-activity/m/DemerNkardaz/DSL-KeyPad?logo=github&label=commits&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad)<br>[![GitHub](https://img.shields.io/github/last-commit/DemerNkardaz/DSL-KeyPad/main?logo=github&color=yellow)](https://github.com/DemerNkardaz/DSL-KeyPad) | [![GitLab](https://img.shields.io/gitlab/last-commit/DemerNkardaz%2Fdsl-keypad?logo=gitlab&color=yellow)](https://gitlab.com/DemerNkardaz/dsl-keypad)<br>[![Bitbucket](https://img.shields.io/bitbucket/last-commit/nkardaz/public/main?logo=bitbucket&color=yellow)](https://bitbucket.org/nkardaz/public/src/) | [![SourceForge](https://img.shields.io/sourceforge/dm/dsl-keypad?logo=sourceforge&color=yellow)](https://sourceforge.net/projects/dsl-keypad/)<br>[![SourceForge](https://img.shields.io/sourceforge/commit-count/dsl-keypad/code?logo=sourceforge&label=commits&color=yellow)](https://sourceforge.net/projects/dsl-keypad/)<br>[![SourceForge](https://img.shields.io/sourceforge/last-commit/dsl-keypad/code?logo=sourceforge&color=yellow)](https://sourceforge.net/projects/dsl-keypad/) |

</details>
