Coder Social home page Coder Social logo

wincompose's Introduction

WinCompose

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 😁 👻 👍 💩 🎁 🌹 🐊.

Download latest: WinCompose 0.9.11 (September 3, 2021) or browse releases

Note: this software is not digitally signed. You can help with this by donating to the project.

Quick start

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 Æ:

Quick Launch

If Right Alt is not suitable for you, you can change it in the options.

Examples

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:

Sequence List

The window allows you to filter the sequences being listed.

Features

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 q.

As of now, WinCompose is almost fully translated to Afrikaans, Belarusian, Catalan, Chinese, Czech, Dutch, Estonian, French, German, Greek, Italian, Japanese, Lithuanian, Norwegian, Polish, Portuguese, Brazilian Portuguese, Russian, Sardinian, Spanish, and Swedish. It is partially translated to Danish, Esperanto, Finnish, Hungarian, Indonesian, Irish, Romanian, Serbian, Slovak, and Slovenian. You can help us translate it to more languages using the Weblate project:

Translation status

Development

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.

Bugs and Improvements

Please report bugs or suggest improvements to Sam Hocevar [email protected] or preferably to the GitHub issue tracker.

wincompose's People

Contributors

asereze avatar benlitz avatar bgo-eiu avatar comradekingu avatar cosmoconsole avatar davimedrade avatar drake4478 avatar dtruebin avatar ext5 avatar fitojb avatar gigysurk avatar gjelbrim avatar greywatcher avatar hosseinabaspanah avatar liuxilu avatar m93a avatar milotype avatar moonbood avatar ndr-2000 avatar necrose99 avatar nijel avatar otiel avatar piotrrogulski avatar rillig avatar samhocevar avatar santossi avatar sutnistj avatar victorenator avatar vistaus avatar weblate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wincompose's Issues

Remap compose key to AltGr key release(only AltGr pressed)

how can i make this case?
In Linux i use "xcape -t 1000 -e "Control_L=Tab;ISO_Level3_Shift=Multi_key"
so when i press AltGr with any key it's work like usual combination(layout )
when i just press and release AltGr(ISO_Level3_Shift) it release like Compose(Multi_key) and i can write any compose combinations.

Caps lock - alternate way of accessing.

Enhancement.
In KDE on openSUSE, I set caps lock as the compose key, then set another option so that when I pressed both shifts it would toggle caps lock.
WinCompose, seeing as it effectively disables caps lock when it uses that button for composing, should provide an alternate method of toggling caps lock status, so a separate program isn't needed for the same purpose.
Such as both shifts toggle caps lock, or both shifts enable caps lock + one shift disables, or possibly double-click shift to toggle.
I imagine this option being just to the right of the Compose Key: dropdown.
Also, I don't think this new option should be greyed out when another key is selected as the compose key, just in case some other program is also capable of breaking the caps lock key.

AltGr modifier (e.g. German keyboard layout) not intercepted

The German keyboard layout uses the right Alt key (named AltGr, see AltGr on Wikipedia) to input some characters like ~ (via AltGr & +) or | (AltGr & <). While fortunately the compose key can be set to another key, WinCompose does not register my inputting e.g. ~ via that key combination. It's alternative (using Ctrl+LeftAlt) also is not registered.

Compositions using ~ and other AltGr-only characters, e.g. ñ, can therefore not be input. The same issue will probably arise for other keyboard layouts, e.g. the French AZERTY one.

This could be related to the Authotkey bug mentioned in #4.

Option to retain original behaviour of the Compose key

If the AltGr key is used as the Compose key, the original AltGr combinations no longer work. This is the expected behaviour on Unix, but people have expressed the need for the following behaviour:

  • Press AltGr, release AltGr, press key, release key: AltGr acts as Compose
  • Press AltGr, press another key, release both keys: AltGr acts as the original AltGr

Wincompose frequently stops working until restart

Hello,

Coming from "AllChars", I have to say that wincompose is a huge improvement. Thanks very much!

Unfortunately (just like AllChars), wincompose stops working several times a day. It doesn't crash - keys are just not composed.

Fortunately, there's the "restart" menu item which corrects this very quickly (restarting AllChars took much longer).

Is this a known bug?
I'm using wincompose on a German Windows 7, 64 bit

cu
Markus

MS Word 2010 - Font converted to MS Gothic

If I use a character like ⓟ in Word 2010, the font changes to MS Gothic from whatever the default font is and then it does not change back to the original font.

Is this expected behaviour?

Is there a workaround?

Maybe this is a problem in Word?

WinCompose messes with dead keys

The following two problems were reported by @crazygolem in #9 with regards to the dead key ^ on a Swiss-French keyboard:

  • Composing with ^, e.g. ^ 2 for ², does not work.
  • Pressing ^ no longer results in ^ being considered a dead key, even out of compose mode.

This is due to ToUnicodeEx() eating dead keys. See this interesting thread on StackOverflow. Other projects seem to have abandoned the function in favour of other solutions. See keymagic’s implementation.

Input doesn’t work in Pidgin

Quoting a WinCompose user:

I noticed that in the notes for version 0.4.2, you say "Better support
for GTK+ applications such as Pidgin." However, I am not able to get
WinCompose to work with Pidgin 2.10.11 on Windows 7. Is there a step
I'm missing somewhere to make it work with Pidgin? I used the
installer ("Setup") for v0.6.13.

When I press my compose key (left Windows to match my old Mac option
key), I see the WinCompose icon turn green in the systray, then I type
my sequence, and the icon turns back to black, but there is no
character inserted into my conversation window. I've tried changing my
compose key back to "Right Ctrl", and I've tried several different
sequences, but haven't had any luck.

Missing sequences

Looking through all the sequences, I could not find any sequences for the Greek letters Alpha and Theta, both capital and small letters. I would suggest you include
*a for small Greek letter alpha
*A for capital Greek letter alpha
*th for small Greek letter theta
*TH for capital Greek letter theta

Presently, *a and *A are used for a (A) with a ring, but these can be created using various other sequences. On the other hand, using *a etc. for the Greek letters as suggested would make the system more consistent as all other sequences of asterisk and a letter produce Greek letters.

Better symbol list

At 1600 sequences and counting, the symbol list has become almost unusable. It’s probably time for some refactoring (gather symbols in groups, for instance).

Install crashes in Virtualbox Win7

When I try to run WinCompose-Setup-0.4.5.exe in a Win 7 (32bit) that is living inside a Virtualbox under linux (Ubuntu) it crashed with an error: "The NTVDM CPU has encountered an illegal instruction".

Use a Nullsoft installer for a release package instead?

Cheers, Helmut

Using caps lock as the compose key - gets stuck on

Since I never use caps lock it works well as a compose key, except that on occasion with certain combos (particularly up arrow-up arrow) the caps lock function actually works and I'm stuck in cool mode. I've had to disable, turn of caps, and reenable. I've tried adjusting the delay but am wondering if there's anything else I can do or if there's a way to completely disable caps but still use it for compose.

thanks!

Compose key "backtick" should be "grave accent"

WinCompose labels the ``` symbol as "backtick", which is an informal label for the grave accent. This is an easy fix, takes maybe ten seconds.

(About the comment in keys.txt: yes, an & is called an ampersand.)

/o and more doesn't work

It's listed in sequences, but it doesn't work. The same applies to all Norwegian letters:
/o, /ae, /aa. These opens menuitems (even when using Left-Control as modifier). After the first keystroke, I see the menu becomes active and the rest gets sent there.

Other characters, like /z works just fine.

Disabled state uses wrong tray icon

On line 536 of WinCompose.ahk (v0.4.6) the wrong tray icon is set.

Where the tray icon is set,

    else if (state == "DISABLED")
    {
        suspend on
        menu tray, check, % _("menu.disable")
        ; TODO: use icon groups here
        menu tray, icon, %resource_file%, 2, 1
        menu tray, tip, %app% (disabled)
    }

should be

        menu tray, icon, %resource_file%, 3, 1

(This is Chaz from the AHK fora. I suggested the search box among other things.)

Binary files in VCS

Hello!

First, let me thank you for working on wincompose. I come from X.org/Linux world but sometimes need to use Windows and WinCompose is a wonderful tool to make that OS much more useful!

Have a look at my fork https://github.com/jsarenik/wincompose . The difference is, there are no binaries in the repository tree. The bin-free tree I got simply by running

git filter-branch --tree-filter "rm -rf bin"

The command above will change every commit in the repository so you will have to git push --force but once done, nobody will ever have to download all the past versions upon git clone...

All the binaries can be uploaded to Releases section of the project https://github.com/jsarenik/wincompose/releases by using tags

git tag v0.4.6 67ed8e1fd3296a9a9b3a96d2a35c93f89f176470
git push --tags

(the rest is done by using GitHub WebUI's tab Releases)

I really appreciate your work on WinCompose!
Thanks and good luck!

http://build-doctor.com/2008/08/22/your-version-control-system-is-not-a-file-system/

WinCompose doesn’t have many users

Now that it’s become pretty usable, I’ve been wondering how to better promote WinCompose. Most Windows software websites look like gigantic ad-ridden spam platforms, unfortunately. I doubt anyone actually visits them. So, where to go?

WinCompose is chatty when it starts

When WinCompose is launched, it pops up a system tray balloon saying that it has launched and that $n compose sequences are loaded.

When you're logging into Windows and starting a bunch of background tasks, none of them should display an alert balloon unless there is something that needs attention.

This alert should be removed or there should be an option to disable it.

Add an option to allow the use of the numeric keypad.

This would mainly help the use of +, -, . keys, but also make more natural to use shortcuts with digits (1).

As this key substitution could create side effects, an option to enable or disable this behavior is preferable.

(1) Some shortcuts are especially tricky, like compose, maj + &, maj + ' on an azerty keyboard to produce ¼.

Enhancement request: append %USERPROFILE%\.XCompose to Compose.txt

This project is wonderful! I've had some hotstrings mapped in my omnibus AHK script for a couple years, but they always pop up when I don't want them. I frequently use characters not included in your default configuration; maybe it would be useful to look for a file at %USERPROFILE%\.XCompose and append that to the Compose.txt file. I am using the dotXCompose file from https://github.com/kragen/xcompose, and it seems to work well in addition to your defaults (although it does remap some sequences).

Problem in el.po file

Because the string
msgstr "Επιστροφή στη λειτουργία χωρίς διάκριση πεζών-κεφαλαίων, σε μη έγκυρες ακολουθίες"
has been split into two lines, is not shown translated.

Keyboard doesn’t work in Sequences window

The up/down arrows no longer work to browse the Categories section, and only the space character can be typed in the Search box. I broke something but I have no idea what.

Full rewrite status

The fully rewritten version of WinCompose is almost done. It will be version 0.7, not 1.0, because I have quite some additional things in mind for version 1.0.

Still a few things are broken, but it's coming around nicely. Here are the last things to do before we can release version 0.7:

  • reimplement the timeout feature
  • reimplement the case-insensitive sequence resolution postponed to 0.7.1
  • fix the installation process (currently translation DLLs are not shipped)
  • fix the language selection combo box (it's empty)
  • fix the key selection combo box (display is broken)
  • reimplement the "visit website" menu entry
  • reimplement the "disable" menu entry
  • Escape as a compose key seems broken
  • add the Insert key to the list of possible compose keys

This could be nice to have, but not a showstopper:

  • make the timeout selection user friendly (maybe use a slider?)
  • implement the "compose key retains its initial behaviour" feature (or disable that menu entry for now)

WinCompose ignores when the keyboard layout is switched

Current behavior:

  • To write 1/4 on an azerty layout: compose, shift + &, shift + '.
  • To write 1/4 on a qwerty layout: compose, shift + 1, shift + 4.

Expected behavior:

  • To write 1/4 on an azerty layout: compose, shift + &, shift + '.
  • To write 1/4 on a qwerty layout: compose, 1, 4.

Split the Settings and Sequences window

Now that the Sequences pane is getting more and more information in it, it will benefit from being larger. In contrast, the Settings pane should be kept small because it does not have as much information in it.

The best course of action should be to split them into two distinct windows. Good luck!

Better systray icon needed

The current systray icon does not integrate nicely with the rest of the desktop:
image

Maybe we should completely rethink the icon? We could use the composing character for instance:
image

Warn about new releases; optionally download them

Apparently Windows doesn’t have a decent mechanism for program updates. We will have to implement the 23879874th “ping webpage; if new_version then warn user” mechanism so that people stay up-to-date.

Menu key still acts as a menu key instead of compose key in some applications

As reported in #9:

v0.6.6, Windows 7, Polish keyboard (and I am not switching between layouts). Everything works perfectly if I assign compose key to the Right Windows key; however, when I tried to assign it to the Menu key (which I would prefer, since this is what I use for Compose on my Linux computers), it still works as Menu rather than Compose. I haven't tested all alternatives, but some randomly selected (CapsLock, Right Control) seem to work correctly, only Menu is an exception.

Performance issues since v0.5.0

Users report a lot of compose key misses. This is mostly caused by performance issues in AHK’s ChangeHookState which is called every time the compose key is pressed.

Accessing files relative to current working directory

I noticed this bug when trying to package portable version of WinCompose for Chocolatey - when you run WinCompose, it's reading res/ and po/ files from folders relative to current working directory. This means if I am (in console for example) at C:\ and run Apps\WinCompose\WinCompose.exe it is trying to read C:\po and C:\res, so it's unable to load standard sequences.

In AutoHotKey there is A_ScriptDIr variable, maybe it should be used to use real paths to res and po folders?

upwards arrow wrong key combination

When trying to create an "upwards arrow" ↑ instead of pressing up twice it has to be pressed 3 times.

This seems trivial but I thought I should report it anyway.

Character + (plus) is sometimes ignored

Hello,

I try to create a new entry in WinCompose.txt.

I would like to use a ‘+’ (PLUS) sign in the definition.
But this sign is truncated when it follows some unicode characters.

For instance I want to use a reversed S followed by plus sign: Ƨ+

So when using the line below the + is lacking (whatever the number of ‘+’)
<Multi_key>

: "Ƨ+" # S plus

But if I add a space before the reversed S the + appears as expected:
<Multi_key>

: " Ƨ+" # S plus

WinCompose is a great tool, thank you for sharing this.

GUI refresh in not case sensitive

Sometimes the “Sequences” tab is not updated when you select an item.
Especially when changing to item with a different case.

How to reproduce:
1 - Open Wincompose->Options, Sequences tab
2 - Select a Sequence for Exemple ~Y (Latin Captital Letter Y with tilde)
3 - Now select the Sequence just below: ~y (Latin Small Letter Y with tilde)
4 - The description is not updated

This is probably because a comparison is not case sensitive.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.