I'm looking to create a custom keyboard layout, mainly for typing unicode math symbols. The symbol set I need is very large, and the scheme I came up with involves multiple layouts and special combinations.
I type ` (backtick) once and instead I get a special character that we'll symbolize by *. By typing additional keys, I get specific keyboard layouts relevant to a particular theme. (I want to replace the back tick with a special symbol so that I remember it's a control code of sorts. By typing it twice, I get a normal back tick)
Here are some example mappings:
*s -> Set theory layout:
[ -> ∈ (element of)
o -> ∅ (empty set)
*r -> General math:
s -> ∫ (integral sign)
S -> ∬ (double integral sign)
*e -> Misc operators:
8 -> ∗ (convolution asterisk)
* -> ⋆ (star operator)
*g -> Greek alphabet
After typing a character such as =
, I can type a few other special combinations to modify that character. For example:
*x -> Negates the previous character:
= -> ≠ (unequal)
≡ -> ≢ (negation of three line equality)
*w -> Expands the previous character:
∫ -> ∭ (triple integral)
∬ -> ⨌ (quad integral)
The mappings are mnemonic. I could conceivably cram all the symbols I want onto a single layout, but it would be unusable, so I want to try to stick with this scheme or something similar.
The keyboard is for a Windows environment, but there is no question of me writing keyboard DLLs for it myself. I looked into it and it's just way too complicated.
Right now, I'm looking into AHK for a solution. Can it be done in AHK (or something similar)? If so, could you show me some examples to get me started?
I'd also like to know if there are other ways to do this.
I'm aware of the Microsoft Keyboard Layout Creator, and have used it in the past, but it's not nearly powerful enough. I'm also aware of Keyman by Tavultesoft, and I know for a fact it can do what I want, but it's absurdly expensive, so it's not an option.
`
to be replaced with a*
in the beginning? What do you mean by that? – phil294`
character with a special unicode symbol to remind me that I'm using a control code of sorts. I don't know what weird unicode symbol I'll use, so I just said*
. – GregRos