A compose key for Windows, free and open-source, created by Sam Hocevar.
A compose key allows to easily write special characters such as รฉ ลพ ร ล รป รธ โบ ยค โ ยซ โฏ โธ โ ใท โช โฌ using short and often very intuitive key combinations. For instance, รถ is obtained using o + ", and โฅ is obtained using < + 3.
WinCompose also supports Emoji input for ๐ ๐ป ๐ ๐ฉ ๐ ๐น ๐.
This is the PolyKybd fork. WinCompose is Sam Hocevar's project โ essentially all of the code, the compose-sequence data and the design are his work โ and this fork builds on ell1010's fork, which modernised the UI and retargeted to .NET Framework 4.8.1. It exists because PolyKybd uses WinCompose for unicode and emoji output on Windows and needed a handful of fixes. It does not claim to succeed either repository; both are still there, and these changes are meant to go back upstream.
-
Latest release โ
WinCompose-Setup-*.exeis the installer and registers WinCompose to start with Windows;WinCompose-NoInstall-*.zipis portable and runs from any folder. -
Older versions are in ell1010's releases and in Sam Hocevar's original releases.
Note: these builds are not code-signed, so Windows SmartScreen warns that the publisher is unrecognised โ choose More info โ Run anyway if you are happy to proceed. Signing is planned and waits on a registered business entity, since the certificate has to be issued to one.
Because they are unsigned, every release ships a SHA256SUMS.txt listing the
SHA-256 of each asset, written by the same CI run that built them:
Get-FileHash .\WinCompose-NoInstall-<version>.zip -Algorithm SHA256Compare that against the matching line. It proves the file is byte-for-byte what our CI produced โ it does not prove who produced it, which is what a signature is for.
After installation, WinCompose should appear in the System Tray. Press and release the โ Compose key to initiate a compose sequence (this key defaults to Right Alt); the icon should change to indicate a compose sequence is in progress.
Then type in the keys for a compose sequence, such as A then E for ร:
If Right Alt is not suitable for you, you can change it in the options.
Compose rules are supposed to be intuitive. Here are some examples:
- โ Compose ` a โ ร
- โ Compose ' e โ รฉ
- โ Compose ^ i โ รฎ
- โ Compose ~ n โ รฑ
- โ Compose / o โ รธ
- โ Compose " u โ รผ
- โ Compose o c โ ยฉ
- โ Compose + - โ ยฑ
- โ Compose : - โ รท
- โ Compose ( 7 ) โ โฆ
- โ Compose C C C P โ โญ
- โ Compose < 3 โ โฅ
Emoji sequences typically start with two โ Compose hits:
- โ Compose โ Compose a n g r y โ ๐
- โ Compose โ Compose g r i n n i n g โ ๐
- โ Compose โ Compose s u s h i โ ๐ฃ
- โ Compose โ Compose s n a k e โ ๐
A special Unicode input mode can be activated in the options and lets the user type in any Unicode character:
- โ Compose u 5 8 d Enter โ ึ (U+058D Right-Facing Armenian Eternity Sign)
- โ Compose u 2 3 f 0 Enter โ โฐ (U+23F0 Alarm Clock)
The full list of rules can be found by clicking on the WinCompose system tray icon or using the โShow Sequencesโฆโ menu entry:
The window allows you to filter the sequences being listed.
WinCompose supports the standard Compose file format. It provides more than
1700 compose rules from the Xorg project and the
dotXCompose project. You can add custom
rules by creating a file named .XCompose or .XCompose.txt in your
%USERPROFILE% folder. WinCompose must be restarted for changes to take
effect.
WinCompose stores its state in the %APPDATA%\wincompose folder: settings.ini
contains the settings, and metadata.xml contains all the metadata associated
with sequences.
WinCompose supports rules of more than 2 characters such as โ Compose ( 3 ) for โข.
WinCompose supports early exits. For instance, โ Compose Q will immediately type Q because there is currently no rule starting with the capital letter Q.
WinCompose carries translations for 47 languages, at varying completeness. Translation happens upstream on the Weblate project, so work done there reaches every fork; the badge is the live figure:
Make sure that all Git submodules are fetched, then just open src/wincompose.sln
in Visual Studio in order to build WinCompose. You will also need to install
Inno Setup if you wish to build the installer.
.github/workflows/build.yml compiles the app on every push and pull request.
release.yml builds the installer, the portable zip and SHA256SUMS.txt and
attaches them when a release is published โ see RELEASE.md.
Please report bugs or suggest improvements for this fork in its issue tracker.
For the upstream projects, use ell1010/wincompose or samhocevar/wincompose.

