I'm a big fan of the compose key, both for its universality and intuitive "syntax". For many years I endured the pain of a dual French/US keyboard layout (one for writing, the other for coding), until a coworker showed me the special Option-key shortcuts you can use on a Mac to make French accents, and then finally I settled on the nice and intuitive Compose Key support offered natively by Ubuntu: https://help.ubuntu.com/community/ComposeKey
Windows uses what they call "alt codes," where you hold down the alt key and type a numerical code on your numeric keypad. You can find them with a search: here's one site:
If you have a 105 key (EU, tall return) layout, consider changing to a layout with the ` as dead key. For example, the Irish layout is pretty much just the UK layout with dead key functionality + euro sign. `e will then type è while AltGr+e will type é.
If you have a 104 key (US, wide return) keyboard layout, you can try the US international layout. In that case, shift-~ will get you ` and you can use the same compose rules as above.
Assuming US keyboard, you can use US International as a secondary layout. That would make typing “single quote” then the letter an acute accented letter.
That's an acute, I want the accent the other way - and I know I could learn the alt-code but it's crazy if there isn't an easier way using the keyboard alone.
Why isn't it altgr+(letter) and repeated presses like holding down the letter on an Android mobile phone touch keyboard?
Then I can use the nice us keyboard without dead keys for programming and access the local layout by holding <AltGr> (right alt) for local characters (usually via localized dead keys).
I also use dual layouts and found that switching between US (for coding) and US international (typing with diacritics) is the most comfortable setup for me. Both in Win and Mac switching between both modes is just pressing Ctrl+Space and the US international layout allows me to type all diacritics I use (Catalan) with an US keyboard.
Maybe I’m just stating the obvious and everybody already knows and is moving aware from that, so I won’t explain the details. But if someone is interested just let me know
Basically the same here, now I settled on QWERTY with a few tricks to do french diacritic signs. Compose key can be a bit slow at times, so I only use it for the less common characters, like e-circumflex. For the really common ones like e-acute and e-grave I simply assign additional shortcuts: for example hyper+e = e-acute (my keyboard has got additional modifier keys: it's not just ctrl/alt/shift as I've got additional physical keys, which I configured to act as Hyper and Super).
I'm using a logical FR layout on a physical Mac FR layout, the underlying layout for Japanese input is QWERTY while the pinyin for Traditional Chinese uses AZERTY... I'm tired of all these context switches and I wish there was an universal keyboard IME that allow me to type the languages I care about without having to switch between IME all the time. Same complains about mobile (iOS). I might build something one day because of how annoying it is (at least typing English is easy from FR keyboard so that's one less keyboard to use).
Can’t you just configure Japanese IME to use the same one as physical keyboard map? Japanese IME shouldn’t be adamant about “keymap goes with language” model.
Also worth checking out is Ditto, clipboard history manager. Much snappier and lighter than the built-in one they eventually put into Windows. Nearly identical to KDE's Klipper, CTRL ` and your searchable clipboard history appears next to your cursor.
There was a software called 3dclip, which is essentially Ditto, but much more lightweight. I think it uses native windows elements and written without use of big libraries.
Unfortunately it's discontinued and website isn't available anymore, but I have installer for anyone who is interested (it's not modified or anything). It doesn't have history search, but if all you want is a multiclipboard, it does that, and some other useful things as well. I use it for many years and happy with it.
Tried Ditto but it's too big and slow for my taste.
Love that app. The built in one does not show tons of stuff you can copy to your clipboard.
I work in IT and people are baffled when I copy a few things, paste them one by one, then search for a thing I copied a week ago…I feel naked without Ditto.
It's really a killer utility. I find it to be slightly better than KDE's Klipper and much better than Butler as a clipboard in OS X (although it's been many years since I've used Butler)
I like to be able to records gifs/mp4s quickly as well, for reporting some issue with an animation on a website or whatever. On Linux I like to use Peek for that, and I use the built-in Screenshot tool otherwise on Ubuntu.
On windows you can use win+g which allows you to record videos of the current window. I think it’s for games but it works for everything else pretty well.
for screen shots, I mucked around with a bunch and ended up using lightshot https://app.prntscr.com/en/index.html and a tool called GifCam to take animated Gif screenshots.
A nice alternative for MobaXterm is Royal TS, especially for maintaining a list of 100’s of servers and simultaneously executing commands on a subset or all of them:
I was wondering why Windows doesn't come with a built in compose implementation. There doesn't seem to be a reason, just something that exists outside of the folklore of Microsoft/Windows [1].
I started to use WinCompose when I changed from a full size keyboard (with numpad) to a TKL keyboard which omits it.
As a mechanical engineer, I often need to type things like the degree symbol and with WinCompose it is just Compose, o, o whereas I used to type these using alt codes.
Other common uses are for sub and super scripts (₁¹), bullets (•), and my own custom ones like on for my email, which I set as Compose, e, m (since these days working from home I am constantly logging into lots of things).
The Win + . sequence opens the Emoji selector window, which as the name implies can only be used to select emojis. It's also more disruptive since it opens a separate window where you must navigate to or search for the desired emoji, select it, close the window, and then paste the selection into the original app. WinCompose (like XCompose) works as you are typing, without opening a new window; you just type a certain sequence starting with a special Compose key (like "Right-Alt ( 3 )") and it inserts arbitrary pre-defined characters (in this case ③). The key sequences and their replacements can be redefined by the user.
I don't know about everyone else, but in my copy of Windows 10, Win+. opens a small window attached to the text box I'm typing into. I can then type the name of the symbol I'm looking for, hit enter, and the symbol is inserted into the text box. Escape closes the box, so I don't even have to touch my mouse.
Hm. That doesn't look anything like the window I see when I type Win + . while connected to my Windows 10 PC at work. (All my own systems run Linux, so I can't test it locally.) That could be due to version differences, enterprise settings, or the fact that I'm accessing it remotely, but the UI I get behaves as a separate program, not an input method overlay, and only shows emoji.
If you win+. from the carat/focus on text input, just type a hint for the emoji and hit enter (or use arrow keys to select other result) and it should replace the string you typed. i.e. win+. Skull
Interesting. That was not my experience. I could type to search, but pressing enter just showed a message about copying the emoji to the clipboard. This was over a Remote Desktop connection, so perhaps that affected the behavior? Or it might depend on the specific type of text input field.
In any case, most of the characters I use XCompose for (such as arrows, mathematical operators, Greek letters, and non-ASCII punctuation) are not emojis and cannot be selected this way.
This is so nearly awesome, but the hint only works for emoji. So I can type "<WIN>+. sad <ENTER>" for a sad emoji but, e.g., "<WIN>+. gamma" doesn't find the Greek letter. There seems to be no way of selecting a symbol using only the keyboard. So I go back to charmap. Its shitty UI hasn't been improved in decades but at least it can search all of the unicode characters.
Wincompose can handle emojis, Compose compose g o b l i n will give you a tengu ("Japanese goblin") emoji for instance. But it's on you to try to guess what you think their names are and I usually fail.
For one, the character coverage is much broader than what's typically found on an international keyboard.
I use it all the time for typing arrows and other symbols, for example. YMMV but I also find it mnemonically better, from time to time I can just guess what the right Compose sequence is.
Wouldn't it be better to just create a new keyboard layout featuring the composed keys you want, rather than running software constantly in the background to achieve the same thing?
Not really. I don't know in advance which symbols I want to type, and even then I'd have to learn where I put the symbols on the custom layout, while the compose sequences I can usually guess. Considering the amount of background processes the typical Windows system runs, having one additional program really doesn't make a difference.
I don't necessarily mean that each individual user of the software should do this. I mean, why not just create a new layout instead of developing this? Or as a user, why not just use a layout someone else has already developed which has logical choices for the composed keys?
EDIT: Some compelling arguments in favour of the app in this thread. Thank you
On the 1 key, I have 1 and !. Maybe I could add ¹ and ₁, with AltGr and Shift+AltGr (or Ctrl, or something). Maybe ½ and ¼?
With Compose, I have ¹, ₁, ½, ⅓, ¼, ⅕, ⅙, ⅐, ⅛, ⅑, ⅒, ①, ⑩, ⑪, … ㊶ which involve the 1 key. I do not need to look up the sequences for these, as they're intuitive: Compose ^ 1, Compose _ 1, Compose 1 2, … Compose ( 4 1 ).
You could maybe use AltGr combined with dead keys to accomplish that, but I suppose it would be limited to combinations of two keys (plus the modifier).
EDIT: Actually, it seems Windows supports chained dead keys, so I think you could accomplish longer sequences with a plain old Windows keyboard layout definition too. But that's not supported with MSKLC.
you can't compose keyboard layouts, so you'd either have to stick with only QWERTY or generate separate enhanced layouts for Azerty + Dvorak + etc. discoverability would also be harder, and you'd have to hold down every key in the combo instead of pressing them in sequence holding the compose key, so you couldn't distinguish /ae/ vs /ea/ and you'd get carpal tunnel.
side-note: X11 layouts are really frustrating. there's a hard constraint of one key combo -> one Unicode character, which makes it impossible to output multiple characters. I run into this with Lushootseed, which has /ƛ̕/ (glottalized barred lambda encoded as barred lambda + accent marker), but you'd never write it without the accent in that language.
> there's a hard constraint of one key combo -> one Unicode character, which makes it impossible to output multiple characters.
The orthodox solution for this problem is an IME.
Quickest path to success is via editing a new map file /usr/share/m17n/lut.mim (see Blackfoot and Inuktitut in the same directory for examples of multiple character output) and then using the m17n plugin for fcitx or scim or ibus.
Because a Compose key allows you to type any of thousands of characters, which (a) isn't possible with a custom keyboard layout, and even if it was, (b) would be very difficult to learn.
So you're going to turn every key on the keyboard into a dead key? Also, the compose file can easily be customized, and some entries output multiple characters or involve non-character keys like the arrows. How is that going to work with a static keyboard layout?
Only AltGr + [the key] would be a dead key, not the bare key itself. Perhaps a tool could be made to convert compose files into Windows keyboard layout definitions with this strategy
That's a good point about non-character keys though, I don't think that could be supported with this method.
The built-in shortcuts are very easy to guess, it's great for things I don't type every day. Plus you can add or remove shortcuts so you can change your layout on the fly.
It's great in Windows, Compose is great in Linux, and it's also is a good alternative for the otherwise useless CapsLock key.
Compose key — and by extension WinCompose — is used as a mnemonic shortcut for various characters, both predefined and custom.
For example, I am using WinCompose right now: … ’ č ß ɐ ə ” « ʌ × þ ð n’t ď ɥ. All the characters inserted without leaving hands off keyboard.
As far as I know, there is no built-in keyboard on Windows with that kind of functionality (the emoji keyboard under `Win+.` coming close, but with no customization and more centered on inputting singular characters rather than blending in with normal keyboard usage).
When you press the APOSTROPHE ( ' ) key, QUOTATION MARK ( " ) key, ACCENT GRAVE ( ` ) key, TILDE ( ~ ) key, or ACCENT CIRCUMFLEX,. also called the CARET key, ( ^ ) key, nothing is displayed on the screen until you press a second key:"...
The constant downside to that is that you can no longer type these characters without considering what the next character is going to be, and pressing space if you want to opt out of the combination. If you type the accented characters much more often than the quotes it can be fine, but it gets annoying very quickly while programming.
The compose key is basically an opt-in alternative to combining those characters that also allows a lot of other combinations.
If you are willing to create your own layout or use a third-party layout, you could forgo dead keys and instead put all your symbols on the "AltGr" layer (which I think basically works the same as the "Compose" key).
The approach I took for my keyboard layout [0] was a compromise: I kept the base layout the same as US, but added a bunch of dead keys on the AltGr layer. So e.g. ⟨ď⟩ is ‘G-% d’; ⟨ɐ⟩ is ‘G-f a’.
Autohotkey is also useful for this. Any arbitrary set of characters can be auto replaced with the desired output, or alternatively be bound to a hotkey.
This removes the need to memorize some abstract set of Alt key sequences and instead one could type something such as ++degree to produce °. The sequence of characters could be anything to distinguish it from regularly used text, here using ++ and name of the symbol to illustrate.
I started writing my own WinCompose-like utility in AutoHotkey, before I learned about WinCompose. Gave up on that immediately, obviously.
AutoHotkey is really an amazing tool. The actual programming language is awkward, but it has capabilities no other tool offers without writing a bunch of tricky low-level C code yourself.
Being a plan 9 nerd, I originally found 9ime [1] when I wanted a compose key in windows. It serves the same purpose and has the same default compose key of right-Alt. I’ve yet to be frustrated by it enough to switch to wincompose (but the UX is certainly better).
Related but different (and no emoji special features), I was once recommended (either here or on Reddit) EurKEY [0] and have been using it since. Ö is (AltGr/Ctrl+Alt)+Shift+o.
I mainly type in English (and prefer it for programming), but I still need German Umlauts, it’s just a super convenient layout and even has niceties like typographical apostrophes (’ vs ') built in (ctrl+shift+alt+0).
To me, that seems more convenient than this (and Windows has a decent emoji picker with Win+. anyway, if you are into that )
Did you run into any problems using that layout? I tried using it (also after discovering it on HN) but I could not get around that bug where Windows error sounds appear randomly when alt tabbing.
I’ve been using it exclusively for probably over a year by now, the only problems I have is when crappy software has non-configurable hotkeys and conflicts with certain letters. And even then, AltGr instead of Ctrl+Alt usually works.
I'll have to remember this when I go back to windows one day.
I roll my own keyboard layout on Linux, and the Compose key is a nice to have. I put it where the right Alt normally lives along with the dead greek key (by using shift-RALT).
The touch keyboard can be really useful for any other special characters too. Just hold your click down on the key and you'll see other variants (e.g. S = šß§). I wouldn't rely on it to constantly type characters like that, but it is great every once in a while.
Cute. My least favorite part of any language class I've ever taken is if I have to type anything outside of the standard US english alphabet, the standard alt code method was never good.
Do you know if such a tool exists for Linux? I would like to use the US-INTL keyboard, as it allows me to write international characters easily, but comes with the downside that ' and " are dead keys, which makes programming annoying.
I did once manage to manually write a keyboard layout that gets around that, but it was a painful process and I've been since looking for a tool that allows me to create keyboard layouts more easily.
When porting my own multilingual keyboard layout [0] to Linux, I used M17N. It’s actually really convenient and flexible: the keyboard itself is specified as an sexp, which makes it easy to both write it manually and generate it from another format. (I actually ended up making a tool to translate from MSKLC to M17N format [1].)
The guessability of combos to compose characters with is really key to what makes the compose key a great tool. I wouldn't be surprised if Microsoft adopts this into their OS someday.
This was universal functionality on the DEC terminals that IBM adapted the PC AT Enhanced keyboard layouts from. It's a standard feature on Sun machines too, and can be turned on trivially in Linux.
AllChars hasn’t been maintained for a long time, last stable release is from 2007, bugs are not getting fixed. I switched from AllChars to WinCompose for that reason.
these days i prefer to use menus like Rofi for things like this. all you need to memorise is 1 hotkey to open the menu and then you can search and filter the list to find whatever character you want, say 'trademark' or 'tra' to find ™, or search for an emoji by describing it
You don't have to memorize compose key combinations unless you use a few strange ones often. "Compose", "t", "m" gives me "™". Your first guess is usually right.
This is great! It's a shame XCompose doesn't follow rfc1345 though, which is the input method I use on Emacs. I have to learn two different sets of composing sequences :(
(Fortunately they seem to agree on the majority of the accented Latin letters I use.)
Isn't this something that can be done in AutoHotkey?
I feel that it is more effective to have a powerful tool such as AHK and invest a bit into writing the combinations of key/mouse/whatever than to have several standalone programs.
What I meant is that while I'm not the target user of it, the actual value of WinCompose to its user is not the method of composing, but the pre-compiled database of available composition.
Unless I misunderstood you, yes it can be done in AHK but you would have to rewrite all the composition you want in it by hand
Yes, this i strue. I just found out that people tend to accumulate bits and pieces of software or configuration and at some point if may be worthwhile to invest in AHK to keep all this in one place, in a predictable way.
I'm on Linux and on a keyboard layout that already uses AltGr for a lot of symbols. What key do you use for the compose key? I certainly don't have a physical compose key on my keyboards.
In my case (AltGr similarly reserved for (mostly) Polish specific letters), I set it to the right Ctrl key, though keys like CapsLock and Menu are also good candidates.
As for other distributions, unfortunately I have no idea, but I would hazard a guess the right settings (if present) should be in similar places relating to keyboard setup.
Why is it composing e.g. ´ + e into é when that's the default behavior without composing? Is it just to make the compose key a no-op in all such scenarios?
This WinCompose app seemed to be what I've been looking for, but it didn't work for me.
Just so sluggish, sometimes missing keystrokes or waiting for it to catch up. Keyboard is one of those things that have to be INSTANT, even milliseconds is too long. This app is way to slow.
It seems to be written in .NET? Which would be a very poor choice for such an app.
EDIT: I presumed the sluggishness was because of .NET, perhaps my thinking is a bit dated.
.NET (framework) should be a very compelling choice for a win-only tray app. The framework is included with the OS, and the standard libraries will most likely already be in memory. The process footprint will be tiny and if the app is written correctly, it should be quite possible to make a very resource friendly app.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/kb...