From 048f7dfca330f5077b3656b13d8f55982bbda9c6 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Sat, 7 Dec 2024 23:28:13 +0100 Subject: [PATCH] Add files via upload The AHK scripts now fully work on both the 'US' and 'Hausa (Latin - Nigeria)' presets on Windows. --- ...1.1 (unofficial) (for AutoHotkey v1.1).ahk | 658 ++++++++++------- ... v1.1 (unofficial) (for AutoHotkey v2).ahk | 698 +++++++++++------- ...1.2 (unofficial) (for AutoHotkey v1.1).ahk | 657 ++++++++++------- ... v1.2 (unofficial) (for AutoHotkey v2).ahk | 693 ++++++++++------- ...1.3 (unofficial) (for AutoHotkey v1.1).ahk | 661 ++++++++++------- ... v1.3 (unofficial) (for AutoHotkey v2).ahk | 689 ++++++++++------- 6 files changed, 2450 insertions(+), 1606 deletions(-) diff --git a/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk b/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk index d97fe2f..364a6b6 100644 --- a/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk +++ b/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v1.1 -; EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk - 2024-10-14 +; EurKEY v1.1 (unofficial) (for AutoHotkey v1.1).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -525,456 +525,596 @@ dkMathSymbols.item["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols.item[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send {u+00a1} ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send {u+00b9} ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send {u+00b2} ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send {u+00b3} ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send {u+00a3} ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send {u+00a5} ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send {u+20ac} ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send {u+00a2} ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item[key] + key := "" ; avoids leaking content via debug properties + return +>!+sc007:: +<^>!+sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item[key] + key := "" ; avoids leaking content via debug properties + return ->!a:: - if GetKeyState("CapsLock", "T") - Send {u+00c4} ; (Ä) A with diaeresis - else - Send {u+00e4} ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingAbove.item[key] + key := "" return ->!+a:: - if GetKeyState("CapsLock", "T") - Send {u+00e4} ; (ä) a with diaeresis - else - Send {u+00c4} ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacron.item[key] + key := "" return ->!q:: +; Key : 8 +>!sc009:: +<^>!sc009::Send {u+201e} ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send {u+201a} ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send {u+201c} ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send {u+2018} ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send {u+201d} ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send {u+2019} ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkSymbols.item[key] + key := "" + return +>!+sc00C:: +<^>!+sc00C::Send {u+2116} ; (№) numero sign + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send {u+00d7} ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send {u+00f7} ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: if GetKeyState("CapsLock", "T") Send {u+00c6} ; (Æ) letter AE else Send {u+00e6} ; (æ) letter ae return ->!+q:: +>!+sc010:: +<^>!+sc010:: if GetKeyState("CapsLock", "T") Send {u+00e6} ; (æ) letter ae else Send {u+00c6} ; (Æ) letter AE return ->!w:: +; Key : W +>!sc011:: +<^>!sc011:: if GetKeyState("CapsLock", "T") Send {u+00c5} ; (Å) A with ring above else Send {u+00e5} ; (å) a with ring above return ->!+w:: +>!+sc011:: +<^>!+sc011:: if GetKeyState("CapsLock", "T") Send {u+00e5} ; (å) a with ring above else Send {u+00c5} ; (Å) A with ring above return ->!z:: +; Key : E +>!sc012:: +<^>!sc012:: if GetKeyState("CapsLock", "T") - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis else - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis return ->!+z:: +>!+sc012:: +<^>!+sc012:: if GetKeyState("CapsLock", "T") - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis else - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis return ->!x:: +; Key : R +>!sc013:: +<^>!sc013:: if GetKeyState("CapsLock", "T") - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute else - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute return ->!+x:: +>!+sc013:: +<^>!+sc013:: if GetKeyState("CapsLock", "T") - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute else - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute return ->!c:: +; Key : T +>!sc014:: +<^>!sc014:: if GetKeyState("CapsLock", "T") - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn else - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn return ->!+c:: +>!+sc014:: +<^>!+sc014:: if GetKeyState("CapsLock", "T") - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn else - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn return ->!d:: +; Key : Y +>!sc015:: +<^>!sc015:: if GetKeyState("CapsLock", "T") - Send {u+00d0} ; (Ð) capital letter eth + Send {u+0178} ; (Ÿ) Y with diaeresis else - Send {u+00f0} ; (ð) small letter eth + Send {u+00ff} ; (ÿ) y with diaeresis return ->!+d:: +>!+sc015:: +<^>!+sc015:: if GetKeyState("CapsLock", "T") - Send {u+00f0} ; (ð) small letter eth + Send {u+00ff} ; (ÿ) y with diaeresis else - Send {u+00d0} ; (Ð) capital letter eth + Send {u+0178} ; (Ÿ) Y with diaeresis return ->!e:: +; Key : U +>!sc016:: +<^>!sc016:: if GetKeyState("CapsLock", "T") - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis else - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis return ->!+e:: +>!+sc016:: +<^>!+sc016:: if GetKeyState("CapsLock", "T") - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis else - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis return ->!f:: +; Key : I +>!sc017:: +<^>!sc017:: if GetKeyState("CapsLock", "T") - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis else - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis return ->!+f:: +>!+sc017:: +<^>!+sc017:: if GetKeyState("CapsLock", "T") - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis else - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis return ->!g:: +; Key : O +>!sc018:: +<^>!sc018:: if GetKeyState("CapsLock", "T") - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis else - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis return ->!+g:: +>!+sc018:: +<^>!+sc018:: if GetKeyState("CapsLock", "T") - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis else - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis return ->!i:: +; Key : P +>!sc019:: +<^>!sc019:: if GetKeyState("CapsLock", "T") - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE else - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe return ->!+i:: +>!+sc019:: +<^>!+sc019:: if GetKeyState("CapsLock", "T") - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe else - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE return ->!v:: +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send {u+00ab} ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send {u+2039} ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send {u+00bb} ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send {u+203a} ; (›) right-pointing single angle quotation mark + +; Key : A +>!sc01E:: +<^>!sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis else - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis return ->!+v:: +>!+sc01E:: +<^>!+sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis else - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis return ->!b:: +; Key : S +>!sc01F:: +<^>!sc01F::Send {u+00df} ; (ß) small sharp s (Eszett) +>!+sc01F:: +<^>!+sc01F::Send {u+00a7} ; (§) section sign + +; Key : D +>!sc020:: +<^>!sc020:: if GetKeyState("CapsLock", "T") - Send {u+00cd} ; (Í) I with acute + Send {u+00d0} ; (Ð) capital letter eth else - Send {u+00ed} ; (í) i with acute + Send {u+00f0} ; (ð) small letter eth return ->!+b:: +>!+sc020:: +<^>!+sc020:: if GetKeyState("CapsLock", "T") - Send {u+00ed} ; (í) i with acute + Send {u+00f0} ; (ð) small letter eth else - Send {u+00cd} ; (Í) I with acute + Send {u+00d0} ; (Ð) capital letter eth return ->!k:: +; Key : F +>!sc021:: +<^>!sc021:: if GetKeyState("CapsLock", "T") - Send {u+0132} ; (IJ) ligature IJ + Send {u+00c8} ; (È) E with grave else - Send {u+0133} ; (ij) ligature ij + Send {u+00e8} ; (è) e with grave return ->!+k:: +>!+sc021:: +<^>!+sc021:: if GetKeyState("CapsLock", "T") - Send {u+0133} ; (ij) ligature ij + Send {u+00e8} ; (è) e with grave else - Send {u+0132} ; (IJ) ligature IJ + Send {u+00c8} ; (È) E with grave return ->!n:: +; Key : G +>!sc022:: +<^>!sc022:: if GetKeyState("CapsLock", "T") - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c9} ; (É) E with acute else - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e9} ; (é) e with acute return ->!+n:: +>!+sc022:: +<^>!+sc022:: if GetKeyState("CapsLock", "T") - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e9} ; (é) e with acute else - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c9} ; (É) E with acute return ->!o:: +; Key : H +>!sc023:: +<^>!sc023:: if GetKeyState("CapsLock", "T") - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00d9} ; (Ù) U with grave else - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00f9} ; (ù) u with grave return ->!+o:: +>!+sc023:: +<^>!+sc023:: if GetKeyState("CapsLock", "T") - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00f9} ; (ù) u with grave else - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00d9} ; (Ù) U with grave return ->!p:: +; Key : J +>!sc024:: +<^>!sc024:: if GetKeyState("CapsLock", "T") - Send {u+0152} ; (Œ) ligature OE + Send {u+00da} ; (Ú) U with acute else - Send {u+0153} ; (œ) ligature oe + Send {u+00fa} ; (ú) u with acute return ->!+p:: +>!+sc024:: +<^>!+sc024:: if GetKeyState("CapsLock", "T") - Send {u+0153} ; (œ) ligature oe + Send {u+00fa} ; (ú) u with acute else - Send {u+0152} ; (Œ) ligature OE + Send {u+00da} ; (Ú) U with acute return ->!l:: +; Key : K +>!sc025:: +<^>!sc025:: if GetKeyState("CapsLock", "T") - Send {u+00d8} ; (Ø) O with stroke + Send {u+0132} ; (IJ) ligature IJ else - Send {u+00f8} ; (ø) o with stroke + Send {u+0133} ; (ij) ligature ij return ->!+l:: +>!+sc025:: +<^>!+sc025:: if GetKeyState("CapsLock", "T") - Send {u+00f8} ; (ø) o with stroke + Send {u+0133} ; (ij) ligature ij else - Send {u+00d8} ; (Ø) O with stroke + Send {u+0132} ; (IJ) ligature IJ return ->!,:: +; Key : L +>!sc026:: +<^>!sc026:: if GetKeyState("CapsLock", "T") - Send {u+00d2} ; (Ò) O with grave + Send {u+00d8} ; (Ø) O with stroke else - Send {u+00f2} ; (ò) o with grave + Send {u+00f8} ; (ø) o with stroke return ->!<:: +>!+sc026:: +<^>!+sc026:: if GetKeyState("CapsLock", "T") - Send {u+00f2} ; (ò) o with grave + Send {u+00f8} ; (ø) o with stroke else - Send {u+00d2} ; (Ò) O with grave + Send {u+00d8} ; (Ø) O with stroke return ->!.:: - if GetKeyState("CapsLock", "T") - Send {u+00d3} ; (Ó) O with acute - else - Send {u+00f3} ; (ó) o with acute +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item[key] + key := "" return ->!>:: - if GetKeyState("CapsLock", "T") - Send {u+00f3} ; (ó) o with acute - else - Send {u+00d3} ; (Ó) O with acute +>!+sc027:: +<^>!+sc027::Send {u+00b7} ; (·) middle dot + +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item[key] + key := "" return +>!+sc028:: +<^>!+sc028::Send {u+2020} ; (†) dagger ->!t:: +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item[key] + key := "" + return +>!+sc029:: +<^>!+sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item[key] + key := "" + return + +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B::Send {u+00ac} ; (¬) not sign +>!+sc02B:: +<^>!+sc02B::Send {u+00a6} ; (¦) broken bar + +; Key : Z +>!sc02C:: +<^>!sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave else - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave return ->!+t:: +>!+sc02C:: +<^>!+sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave else - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave return ->!u:: +; Key : X +>!sc02D:: +<^>!sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute else - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute return ->!+u:: +>!+sc02D:: +<^>!+sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute else - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute return ->!h:: +; Key : C +>!sc02E:: +<^>!sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla else - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla return ->!+h:: +>!+sc02E:: +<^>!+sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla else - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla return ->!j:: +; Key : V +>!sc02F:: +<^>!sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave else - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave return ->!+j:: +>!+sc02F:: +<^>!+sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave else - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave return ->!y:: +; Key : B +>!sc030:: +<^>!sc030:: if GetKeyState("CapsLock", "T") - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute else - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute return ->!+y:: +>!+sc030:: +<^>!+sc030:: if GetKeyState("CapsLock", "T") - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute else - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute return ->!r:: +; Key : N +>!sc031:: +<^>!sc031:: if GetKeyState("CapsLock", "T") - Send {u+00dd} ; (Ý) Y with acute + Send {u+00d1} ; (Ñ) N with tilde else - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde return ->!+r:: +>!+sc031:: +<^>!+sc031:: if GetKeyState("CapsLock", "T") - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde else - Send {u+00dd} ; (Ý) Y with acute - return - ->!s::Send {u+00df} ; (ß) small sharp s (Eszett) ->!+s::Send {u+00a7} ; (§) section sign - ->!1::Send {u+00a1} ; (¡) inverted exclamation mark ->!+1::Send {u+00b9} ; (¹) superscript 1 - ->!2::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send {u+00b2} ; (²) superscript 2 - ->!3::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send {u+00b3} ; (³) superscript 3 - ->!4::Send {u+00a3} ; (£) pound sign ->!+4::Send {u+00a5} ; (¥) yen sign - ->!5::Send {u+20ac} ; (€) euro sign ->!+5::Send {u+00a2} ; (¢) cent sign (dollar) - ->!8::Send {u+201e} ; („) double low-9 quotation mark ->!+8::Send {u+201a} ; (‚) single low-9 quotation mark - ->!9::Send {u+201c} ; (“) left double quotation mark ->!+9::Send {u+2018} ; (‘) left single quotation mark - ->!0::Send {u+201d} ; (”) right double quotation mark ->!+0::Send {u+2019} ; (’) right single quotation mark - ->!=::Send {u+00d7} ; (×) multiplication sign ->!+=::Send {u+00f7} ; (÷) division sign - ->![::Send {u+00ab} ; («) left-pointing double angle quotation mark ->!{::Send {u+2039} ; (‹) left-pointing single angle quotation mark - ->!]::Send {u+00bb} ; (») right-pointing double angle quotation mark ->!}::Send {u+203a} ; (›) right-pointing single angle quotation mark - ->!+;::Send {u+00b7} ; (·) middle dot - ->!"::Send {u+2020} ; (†) dagger - ->!/::Send {u+00bf} ; (¿) inverted question mark ->!?::Send {u+2026} ; (…) horizontal ellipsis - ->!\::Send {u+00ac} ; (¬) not sign ->!|::Send {u+00a6} ; (¦) broken bar - ->!space::Send {u+00a0} ; non-breaking space ->!+space::Send {u+00a0} ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCircumflex.item[key] - key := "" ; avoids leaking content via debug properties - return ->!+6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCaron.item[key] - key := "" ; avoids leaking content via debug properties + Send {u+00d1} ; (Ñ) N with tilde return ->!7:: +; Key : M +>!sc032:: +<^>!sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkRingAbove.item[key] + Send % dkGreekAlphabet.item[key] key := "" return ->!+7:: +>!+sc032:: +<^>!+sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMacron.item[key] + Send % dkMathSymbols.item[key] key := "" return ->!':: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkAcuteAccent.item[key] - key := "" +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00d2} ; (Ò) O with grave + else + Send {u+00f2} ; (ò) o with grave return ->!;:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkDiaeresis.item[key] - key := "" +>!+sc033:: +<^>!+sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00f2} ; (ò) o with grave + else + Send {u+00d2} ; (Ò) O with grave return ->!`:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGraveAccent.item[key] - key := "" - return ->!~:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkTilde.item[key] - key := "" +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00d3} ; (Ó) O with acute + else + Send {u+00f3} ; (ó) o with acute return - ->!-:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkSymbols.item[key] - key := "" +>!+sc034:: +<^>!+sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00f3} ; (ó) o with acute + else + Send {u+00d3} ; (Ó) O with acute return ->!_::Send {u+2116} ; (№) numero sign ->!m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGreekAlphabet.item[key] - key := "" - return ->!+m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMathSymbols.item[key] - key := "" - return +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send {u+00bf} ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send {u+2026} ; (…) horizontal ellipsis + +; Key : (space) +>!sc039:: +<^>!sc039::Send {u+00a0} ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send {u+00a0} ; non-breaking space (NBSP) diff --git a/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk b/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk index feb8f93..0d8b8e3 100644 --- a/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk +++ b/autohotkey/EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v2 -; EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk - 2024-10-14 +; EurKEY v1.1 (unofficial) (for AutoHotkey v2).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -526,451 +526,451 @@ dkMathSymbols["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send "{u+00a1}" ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send "{u+00b9}" ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send "{u+00b2}" ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send "{u+00b3}" ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send "{u+00a3}" ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send "{u+00a5}" ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send "{u+20ac}" ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send "{u+00a2}" ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCircumflex.Has(ih.Input) + Send dkCircumflex[ih.Input] +} +>!+sc007:: +<^>!+sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCaron.Has(ih.Input) + Send dkCaron[ih.Input] +} ->!a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c4}" ; (Ä) A with diaeresis - else - Send "{u+00e4}" ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkRingAbove.Has(ih.Input) + Send dkRingAbove[ih.Input] } ->!+a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e4}" ; (ä) a with diaeresis - else - Send "{u+00c4}" ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkMacron.Has(ih.Input) + Send dkMacron[ih.Input] } ->!q:: { +; Key : 8 +>!sc009:: +<^>!sc009::Send "{u+201e}" ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send "{u+201a}" ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send "{u+201c}" ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send "{u+2018}" ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send "{u+201d}" ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send "{u+2019}" ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkSymbols.Has(ih.Input) + Send dkSymbols[ih.Input] +} +>!+sc00C:: +<^>!+sc00C::Send "{u+2116}" ; (№) numero sign + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send "{u+00d7}" ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send "{u+00f7}" ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00c6}" ; (Æ) letter AE else Send "{u+00e6}" ; (æ) letter ae } ->!+q:: { +>!+sc010:: +<^>!+sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00e6}" ; (æ) letter ae else Send "{u+00c6}" ; (Æ) letter AE } ->!w:: { +; Key : W +>!sc011:: +<^>!sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00c5}" ; (Å) A with ring above else Send "{u+00e5}" ; (å) a with ring above } ->!+w:: { +>!+sc011:: +<^>!+sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00e5}" ; (å) a with ring above else Send "{u+00c5}" ; (Å) A with ring above } ->!z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c0}" ; (À) A with grave - else - Send "{u+00e0}" ; (à) a with grave -} ->!+z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e0}" ; (à) a with grave - else - Send "{u+00c0}" ; (À) A with grave -} - ->!x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c1}" ; (Á) A with acute - else - Send "{u+00e1}" ; (á) a with acute -} ->!+x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e1}" ; (á) a with acute - else - Send "{u+00c1}" ; (Á) A with acute -} - ->!c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c7}" ; (Ç) C with cedilla - else - Send "{u+00e7}" ; (ç) c with cedilla -} ->!+c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e7}" ; (ç) c with cedilla - else - Send "{u+00c7}" ; (Ç) C with cedilla -} - ->!d:: { - if GetKeyState("CapsLock", "T") - Send "{u+00d0}" ; (Ð) capital letter eth - else - Send "{u+00f0}" ; (ð) small letter eth -} ->!+d:: { - if GetKeyState("CapsLock", "T") - Send "{u+00f0}" ; (ð) small letter eth - else - Send "{u+00d0}" ; (Ð) capital letter eth -} - ->!e:: { +; Key : E +>!sc012:: +<^>!sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00cb}" ; (Ë) E with diaeresis else Send "{u+00eb}" ; (ë) e with diaeresis } ->!+e:: { +>!+sc012:: +<^>!+sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00eb}" ; (ë) e with diaeresis else Send "{u+00cb}" ; (Ë) E with diaeresis } ->!f:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c8}" ; (È) E with grave - else - Send "{u+00e8}" ; (è) e with grave -} ->!+f:: { +; Key : R +>!sc013:: +<^>!sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00e8}" ; (è) e with grave - else - Send "{u+00c8}" ; (È) E with grave -} - ->!g:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c9}" ; (É) E with acute - else - Send "{u+00e9}" ; (é) e with acute -} ->!+g:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e9}" ; (é) e with acute - else - Send "{u+00c9}" ; (É) E with acute -} - ->!i:: { - if GetKeyState("CapsLock", "T") - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute else - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute } ->!+i:: { +>!+sc013:: +<^>!+sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute else - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute } ->!v:: { +; Key : T +>!sc014:: +<^>!sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn else - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn } ->!+v:: { +>!+sc014:: +<^>!+sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn else - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn } ->!b:: { +; Key : Y +>!sc015:: +<^>!sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis else - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis } ->!+b:: { +>!+sc015:: +<^>!+sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis else - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis } ->!k:: { +; Key : U +>!sc016:: +<^>!sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis else - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis } ->!+k:: { +>!+sc016:: +<^>!+sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis else - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis } ->!n:: { +; Key : I +>!sc017:: +<^>!sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis else - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis } ->!+n:: { +>!+sc017:: +<^>!+sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis else - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis } ->!o:: { +; Key : O +>!sc018:: +<^>!sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00d6}" ; (Ö) O with diaeresis else Send "{u+00f6}" ; (ö) o with diaeresis } ->!+o:: { +>!+sc018:: +<^>!+sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00f6}" ; (ö) o with diaeresis else Send "{u+00d6}" ; (Ö) O with diaeresis } ->!p:: { +; Key : P +>!sc019:: +<^>!sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0152}" ; (Œ) ligature OE else Send "{u+0153}" ; (œ) ligature oe } ->!+p:: { +>!+sc019:: +<^>!+sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0153}" ; (œ) ligature oe else Send "{u+0152}" ; (Œ) ligature OE } ->!l:: { +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send "{u+00ab}" ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send "{u+00bb}" ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send "{u+203a}" ; (›) right-pointing single angle quotation mark + +; Key : A +>!sc01E:: +<^>!sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00d8}" ; (Ø) O with stroke + Send "{u+00c4}" ; (Ä) A with diaeresis else - Send "{u+00f8}" ; (ø) o with stroke + Send "{u+00e4}" ; (ä) a with diaeresis } ->!+l:: { +>!+sc01E:: +<^>!+sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00f8}" ; (ø) o with stroke + Send "{u+00e4}" ; (ä) a with diaeresis else - Send "{u+00d8}" ; (Ø) O with stroke + Send "{u+00c4}" ; (Ä) A with diaeresis } ->!,:: { - if GetKeyState("CapsLock", "T") - Send "{u+00d2}" ; (Ò) O with grave - else - Send "{u+00f2}" ; (ò) o with grave -} ->!<:: { - if GetKeyState("CapsLock", "T") - Send "{u+00f2}" ; (ò) o with grave - else - Send "{u+00d2}" ; (Ò) O with grave -} +; Key : S +>!sc01F:: +<^>!sc01F::Send "{u+00df}" ; (ß) small sharp s (Eszett) +>!+sc01F:: +<^>!+sc01F::Send "{u+00a7}" ; (§) section sign ->!.:: { +; Key : D +>!sc020:: +<^>!sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+00d0}" ; (Ð) capital letter eth else - Send "{u+00f3}" ; (ó) o with acute + Send "{u+00f0}" ; (ð) small letter eth } ->!>:: { +>!+sc020:: +<^>!+sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+00f3}" ; (ó) o with acute + Send "{u+00f0}" ; (ð) small letter eth else - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+00d0}" ; (Ð) capital letter eth } ->!t:: { +; Key : F +>!sc021:: +<^>!sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave else - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave } ->!+t:: { +>!+sc021:: +<^>!+sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave else - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave } ->!u:: { +; Key : G +>!sc022:: +<^>!sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute else - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute } ->!+u:: { +>!+sc022:: +<^>!+sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute else - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute } ->!h:: { +; Key : H +>!sc023:: +<^>!sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00d9}" ; (Ù) U with grave else Send "{u+00f9}" ; (ù) u with grave } ->!+h:: { +>!+sc023:: +<^>!+sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00f9}" ; (ù) u with grave else Send "{u+00d9}" ; (Ù) U with grave } ->!j:: { +; Key : J +>!sc024:: +<^>!sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00da}" ; (Ú) U with acute else Send "{u+00fa}" ; (ú) u with acute } ->!+j:: { +>!+sc024:: +<^>!+sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00fa}" ; (ú) u with acute else Send "{u+00da}" ; (Ú) U with acute } ->!y:: { +; Key : K +>!sc025:: +<^>!sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ else - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij } ->!+y:: { +>!+sc025:: +<^>!+sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij else - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ } ->!r:: { +; Key : L +>!sc026:: +<^>!sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00dd}" ; (Ý) Y with acute + Send "{u+00d8}" ; (Ø) O with stroke else - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke } ->!+r:: { +>!+sc026:: +<^>!+sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke else - Send "{u+00dd}" ; (Ý) Y with acute -} - ->!s::Send "{u+00df}" ; (ß) small sharp s (Eszett) ->!+s::Send "{u+00a7}" ; (§) section sign - ->!1::Send "{u+00a1}" ; (¡) inverted exclamation mark ->!+1::Send "{u+00b9}" ; (¹) superscript 1 - ->!2::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send "{u+00b2}" ; (²) superscript 2 - ->!3::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send "{u+00b3}" ; (³) superscript 3 - ->!4::Send "{u+00a3}" ; (£) pound sign ->!+4::Send "{u+00a5}" ; (¥) yen sign - ->!5::Send "{u+20ac}" ; (€) euro sign ->!+5::Send "{u+00a2}" ; (¢) cent sign (dollar) - ->!8::Send "{u+201e}" ; („) double low-9 quotation mark ->!+8::Send "{u+201a}" ; (‚) single low-9 quotation mark - ->!9::Send "{u+201c}" ; (“) left double quotation mark ->!+9::Send "{u+2018}" ; (‘) left single quotation mark - ->!0::Send "{u+201d}" ; (”) right double quotation mark ->!+0::Send "{u+2019}" ; (’) right single quotation mark - ->!=::Send "{u+00d7}" ; (×) multiplication sign ->!+=::Send "{u+00f7}" ; (÷) division sign - ->![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark ->!{::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark - ->!]::Send "{u+00bb}" ; (») right-pointing double angle quotation mark ->!}::Send "{u+203a}" ; (›) right-pointing single angle quotation mark - ->!+;::Send "{u+00b7}" ; (·) middle dot - ->!"::Send "{u+2020}" ; (†) dagger - ->!/::Send "{u+00bf}" ; (¿) inverted question mark ->!?::Send "{u+2026}" ; (…) horizontal ellipsis - ->!\::Send "{u+00ac}" ; (¬) not sign ->!|::Send "{u+00a6}" ; (¦) broken bar - ->!space::Send "{u+00a0}" ; non-breaking space ->!+space::Send "{u+00a0}" ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCircumflex.Has(ih.Input) - Send dkCircumflex[ih.Input] -} ->!+6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCaron.Has(ih.Input) - Send dkCaron[ih.Input] + Send "{u+00d8}" ; (Ø) O with stroke } ->!7:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkRingAbove.Has(ih.Input) - Send dkRingAbove[ih.Input] -} ->!+7:: { +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() - if dkMacron.Has(ih.Input) - Send dkMacron[ih.Input] + if dkDiaeresis.Has(ih.Input) + Send dkDiaeresis[ih.Input] } +>!+sc027:: +<^>!+sc027::Send "{u+00b7}" ; (·) middle dot ->!':: { +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkAcuteAccent.Has(ih.Input) Send dkAcuteAccent[ih.Input] } ->!;:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkDiaeresis.Has(ih.Input) - Send dkDiaeresis[ih.Input] -} +>!+sc028:: +<^>!+sc028::Send "{u+2020}" ; (†) dagger ->!`:: { +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGraveAccent.Has(ih.Input) Send dkGraveAccent[ih.Input] } ->!~:: { +>!+sc029:: +<^>!+sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() @@ -978,26 +978,166 @@ dkMathSymbols[" "] := "{u+221a}" ; (√) square root Send dkTilde[ih.Input] } ->!-:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkSymbols.Has(ih.Input) - Send dkSymbols[ih.Input] +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B::Send "{u+00ac}" ; (¬) not sign +>!+sc02B:: +<^>!+sc02B::Send "{u+00a6}" ; (¦) broken bar + +; Key : Z +>!sc02C:: +<^>!sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c0}" ; (À) A with grave + else + Send "{u+00e0}" ; (à) a with grave +} +>!+sc02C:: +<^>!+sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e0}" ; (à) a with grave + else + Send "{u+00c0}" ; (À) A with grave +} + +; Key : X +>!sc02D:: +<^>!sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c1}" ; (Á) A with acute + else + Send "{u+00e1}" ; (á) a with acute +} +>!+sc02D:: +<^>!+sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e1}" ; (á) a with acute + else + Send "{u+00c1}" ; (Á) A with acute } ->!_::Send "{u+2116}" ; (№) numero sign ->!m:: { +; Key : C +>!sc02E:: +<^>!sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c7}" ; (Ç) C with cedilla + else + Send "{u+00e7}" ; (ç) c with cedilla +} +>!+sc02E:: +<^>!+sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e7}" ; (ç) c with cedilla + else + Send "{u+00c7}" ; (Ç) C with cedilla +} + +; Key : V +>!sc02F:: +<^>!sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cc}" ; (Ì) I with grave + else + Send "{u+00ec}" ; (ì) i with grave +} +>!+sc02F:: +<^>!+sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ec}" ; (ì) i with grave + else + Send "{u+00cc}" ; (Ì) I with grave +} + +; Key : B +>!sc030:: +<^>!sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cd}" ; (Í) I with acute + else + Send "{u+00ed}" ; (í) i with acute +} +>!+sc030:: +<^>!+sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ed}" ; (í) i with acute + else + Send "{u+00cd}" ; (Í) I with acute +} + +; Key : N +>!sc031:: +<^>!sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d1}" ; (Ñ) N with tilde + else + Send "{u+00f1}" ; (ñ) n with tilde +} +>!+sc031:: +<^>!+sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f1}" ; (ñ) n with tilde + else + Send "{u+00d1}" ; (Ñ) N with tilde +} + +; Key : M +>!sc032:: +<^>!sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGreekAlphabet.Has(ih.Input) Send dkGreekAlphabet[ih.Input] } ->!+m:: { +>!+sc032:: +<^>!+sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkMathSymbols.Has(ih.Input) Send dkMathSymbols[ih.Input] } + +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d2}" ; (Ò) O with grave + else + Send "{u+00f2}" ; (ò) o with grave +} +>!+sc033:: +<^>!+sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f2}" ; (ò) o with grave + else + Send "{u+00d2}" ; (Ò) O with grave +} + +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d3}" ; (Ó) O with acute + else + Send "{u+00f3}" ; (ó) o with acute +} +>!+sc034:: +<^>!+sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f3}" ; (ó) o with acute + else + Send "{u+00d3}" ; (Ó) O with acute +} + +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send "{u+00bf}" ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send "{u+2026}" ; (…) horizontal ellipsis + +; Key : (space) +>!sc039:: +<^>!sc039::Send "{u+00a0}" ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send "{u+00a0}" ; non-breaking space (NBSP) diff --git a/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk b/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk index da40322..a448ed3 100644 --- a/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk +++ b/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v1.1 -; EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk - 2024-10-14 +; EurKEY v1.2 (unofficial) (for AutoHotkey v1.1).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -521,455 +521,596 @@ dkMathSymbols.item["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols.item[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send {u+00a1} ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send {u+00b9} ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send {u+00b2} ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send {u+00b3} ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send {u+00a3} ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send {u+00a5} ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send {u+20ac} ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send {u+00a2} ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item[key] + key := "" ; avoids leaking content via debug properties + return +>!+sc007:: +<^>!+sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item[key] + key := "" ; avoids leaking content via debug properties + return ->!a:: - if GetKeyState("CapsLock", "T") - Send {u+00c4} ; (Ä) A with diaeresis - else - Send {u+00e4} ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingAbove.item[key] + key := "" return ->!+a:: - if GetKeyState("CapsLock", "T") - Send {u+00e4} ; (ä) a with diaeresis - else - Send {u+00c4} ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacron.item[key] + key := "" return ->!q:: +; Key : 8 +>!sc009:: +<^>!sc009::Send {u+201e} ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send {u+201a} ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send {u+201c} ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send {u+2018} ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send {u+201d} ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send {u+2019} ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkSymbols.item[key] + key := "" + return +>!+sc00C:: +<^>!+sc00C::Send {u+2116} ; (№) numero sign + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send {u+00d7} ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send {u+00f7} ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: if GetKeyState("CapsLock", "T") Send {u+00c6} ; (Æ) letter AE else Send {u+00e6} ; (æ) letter ae return ->!+q:: +>!+sc010:: +<^>!+sc010:: if GetKeyState("CapsLock", "T") Send {u+00e6} ; (æ) letter ae else Send {u+00c6} ; (Æ) letter AE return ->!w:: +; Key : W +>!sc011:: +<^>!sc011:: if GetKeyState("CapsLock", "T") Send {u+00c5} ; (Å) A with ring above else Send {u+00e5} ; (å) a with ring above return ->!+w:: +>!+sc011:: +<^>!+sc011:: if GetKeyState("CapsLock", "T") Send {u+00e5} ; (å) a with ring above else Send {u+00c5} ; (Å) A with ring above return ->!z:: +; Key : E +>!sc012:: +<^>!sc012:: if GetKeyState("CapsLock", "T") - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis else - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis return ->!+z:: +>!+sc012:: +<^>!+sc012:: if GetKeyState("CapsLock", "T") - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis else - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis return ->!x:: +; Key : R +>!sc013:: +<^>!sc013:: if GetKeyState("CapsLock", "T") - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute else - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute return ->!+x:: +>!+sc013:: +<^>!+sc013:: if GetKeyState("CapsLock", "T") - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute else - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute return ->!c:: +; Key : T +>!sc014:: +<^>!sc014:: if GetKeyState("CapsLock", "T") - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn else - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn return ->!+c:: +>!+sc014:: +<^>!+sc014:: if GetKeyState("CapsLock", "T") - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn else - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn return ->!d:: +; Key : Y +>!sc015:: +<^>!sc015:: if GetKeyState("CapsLock", "T") - Send {u+0110} ; (Đ) D with stroke + Send {u+0178} ; (Ÿ) Y with diaeresis else - Send {u+0111} ; (đ) d with stroke + Send {u+00ff} ; (ÿ) y with diaeresis return ->!+d:: +>!+sc015:: +<^>!+sc015:: if GetKeyState("CapsLock", "T") - Send {u+0111} ; (đ) d with stroke + Send {u+00ff} ; (ÿ) y with diaeresis else - Send {u+0110} ; (Đ) D with stroke + Send {u+0178} ; (Ÿ) Y with diaeresis return ->!e:: +; Key : U +>!sc016:: +<^>!sc016:: if GetKeyState("CapsLock", "T") - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis else - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis return ->!+e:: +>!+sc016:: +<^>!+sc016:: if GetKeyState("CapsLock", "T") - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis else - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis return ->!f:: +; Key : I +>!sc017:: +<^>!sc017:: if GetKeyState("CapsLock", "T") - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis else - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis return ->!+f:: +>!+sc017:: +<^>!+sc017:: if GetKeyState("CapsLock", "T") - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis else - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis return ->!g:: +; Key : O +>!sc018:: +<^>!sc018:: if GetKeyState("CapsLock", "T") - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis else - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis return ->!+g:: +>!+sc018:: +<^>!+sc018:: if GetKeyState("CapsLock", "T") - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis else - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis return ->!i:: +; Key : P +>!sc019:: +<^>!sc019:: if GetKeyState("CapsLock", "T") - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE else - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe return ->!+i:: +>!+sc019:: +<^>!+sc019:: if GetKeyState("CapsLock", "T") - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe else - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE return ->!v:: +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send {u+00ab} ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send {u+2039} ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send {u+00bb} ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send {u+203a} ; (›) right-pointing single angle quotation mark + +; Key : A +>!sc01E:: +<^>!sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis else - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis return ->!+v:: +>!+sc01E:: +<^>!+sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis else - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis return ->!b:: +; Key : S +>!sc01F:: +<^>!sc01F::Send {u+00df} ; (ß) small sharp s (Eszett) +>!+sc01F:: +<^>!+sc01F::Send {u+00a7} ; (§) section sign + +; Key : D +>!sc020:: +<^>!sc020:: if GetKeyState("CapsLock", "T") - Send {u+00cd} ; (Í) I with acute + Send {u+0110} ; (Đ) D with stroke else - Send {u+00ed} ; (í) i with acute + Send {u+0111} ; (đ) d with stroke return ->!+b:: +>!+sc020:: +<^>!+sc020:: if GetKeyState("CapsLock", "T") - Send {u+00ed} ; (í) i with acute + Send {u+0111} ; (đ) d with stroke else - Send {u+00cd} ; (Í) I with acute + Send {u+0110} ; (Đ) D with stroke return ->!k:: +; Key : F +>!sc021:: +<^>!sc021:: if GetKeyState("CapsLock", "T") - Send {u+0132} ; (IJ) ligature IJ + Send {u+00c8} ; (È) E with grave else - Send {u+0133} ; (ij) ligature ij + Send {u+00e8} ; (è) e with grave return ->!+k:: +>!+sc021:: +<^>!+sc021:: if GetKeyState("CapsLock", "T") - Send {u+0133} ; (ij) ligature ij + Send {u+00e8} ; (è) e with grave else - Send {u+0132} ; (IJ) ligature IJ + Send {u+00c8} ; (È) E with grave return ->!n:: +; Key : G +>!sc022:: +<^>!sc022:: if GetKeyState("CapsLock", "T") - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c9} ; (É) E with acute else - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e9} ; (é) e with acute return ->!+n:: +>!+sc022:: +<^>!+sc022:: if GetKeyState("CapsLock", "T") - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e9} ; (é) e with acute else - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c9} ; (É) E with acute return ->!o:: +; Key : H +>!sc023:: +<^>!sc023:: if GetKeyState("CapsLock", "T") - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00d9} ; (Ù) U with grave else - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00f9} ; (ù) u with grave return ->!+o:: +>!+sc023:: +<^>!+sc023:: if GetKeyState("CapsLock", "T") - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00f9} ; (ù) u with grave else - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00d9} ; (Ù) U with grave return ->!p:: +; Key : J +>!sc024:: +<^>!sc024:: if GetKeyState("CapsLock", "T") - Send {u+0152} ; (Œ) ligature OE + Send {u+00da} ; (Ú) U with acute else - Send {u+0153} ; (œ) ligature oe + Send {u+00fa} ; (ú) u with acute return ->!+p:: +>!+sc024:: +<^>!+sc024:: if GetKeyState("CapsLock", "T") - Send {u+0153} ; (œ) ligature oe + Send {u+00fa} ; (ú) u with acute else - Send {u+0152} ; (Œ) ligature OE + Send {u+00da} ; (Ú) U with acute return ->!l:: +; Key : K +>!sc025:: +<^>!sc025:: if GetKeyState("CapsLock", "T") - Send {u+00d8} ; (Ø) O with stroke + Send {u+0132} ; (IJ) ligature IJ else - Send {u+00f8} ; (ø) o with stroke + Send {u+0133} ; (ij) ligature ij return ->!+l:: +>!+sc025:: +<^>!+sc025:: if GetKeyState("CapsLock", "T") - Send {u+00f8} ; (ø) o with stroke + Send {u+0133} ; (ij) ligature ij else - Send {u+00d8} ; (Ø) O with stroke + Send {u+0132} ; (IJ) ligature IJ return ->!,:: +; Key : L +>!sc026:: +<^>!sc026:: if GetKeyState("CapsLock", "T") - Send {u+00d2} ; (Ò) O with grave + Send {u+00d8} ; (Ø) O with stroke else - Send {u+00f2} ; (ò) o with grave + Send {u+00f8} ; (ø) o with stroke return ->!<:: +>!+sc026:: +<^>!+sc026:: if GetKeyState("CapsLock", "T") - Send {u+00f2} ; (ò) o with grave + Send {u+00f8} ; (ø) o with stroke else - Send {u+00d2} ; (Ò) O with grave + Send {u+00d8} ; (Ø) O with stroke return ->!.:: - if GetKeyState("CapsLock", "T") - Send {u+00d3} ; (Ó) O with acute - else - Send {u+00f3} ; (ó) o with acute +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027::Send {u+00b0} ; (°) degree sign +>!+sc027:: +<^>!+sc027::Send {u+00b7} ; (·) middle dot + +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item[key] + key := "" return ->!>:: - if GetKeyState("CapsLock", "T") - Send {u+00f3} ; (ó) o with acute - else - Send {u+00d3} ; (Ó) O with acute +>!+sc028:: +<^>!+sc028:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item[key] + key := "" + return + +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item[key] + key := "" + return +>!+sc029:: +<^>!+sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item[key] + key := "" return ->!t:: +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B::Send {u+00ac} ; (¬) not sign +>!+sc02B:: +<^>!+sc02B::Send {u+00a6} ; (¦) broken bar + +; Key : Z +>!sc02C:: +<^>!sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave else - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave return ->!+t:: +>!+sc02C:: +<^>!+sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave else - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave return ->!u:: +; Key : X +>!sc02D:: +<^>!sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute else - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute return ->!+u:: +>!+sc02D:: +<^>!+sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute else - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute return ->!h:: +; Key : C +>!sc02E:: +<^>!sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla else - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla return ->!+h:: +>!+sc02E:: +<^>!+sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla else - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla return ->!j:: +; Key : V +>!sc02F:: +<^>!sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave else - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave return ->!+j:: +>!+sc02F:: +<^>!+sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave else - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave return ->!y:: +; Key : B +>!sc030:: +<^>!sc030:: if GetKeyState("CapsLock", "T") - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute else - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute return ->!+y:: +>!+sc030:: +<^>!+sc030:: if GetKeyState("CapsLock", "T") - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute else - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute return ->!r:: +; Key : N +>!sc031:: +<^>!sc031:: if GetKeyState("CapsLock", "T") - Send {u+00dd} ; (Ý) Y with acute + Send {u+00d1} ; (Ñ) N with tilde else - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde return ->!+r:: +>!+sc031:: +<^>!+sc031:: if GetKeyState("CapsLock", "T") - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde else - Send {u+00dd} ; (Ý) Y with acute - return - ->!s::Send {u+00df} ; (ß) small sharp s (Eszett) ->!+s::Send {u+00a7} ; (§) section sign - ->!1::Send {u+00a1} ; (¡) inverted exclamation mark ->!+1::Send {u+00b9} ; (¹) superscript 1 - ->!2::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send {u+00b2} ; (²) superscript 2 - ->!3::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send {u+00b3} ; (³) superscript 3 - ->!4::Send {u+00a3} ; (£) pound sign ->!+4::Send {u+00a5} ; (¥) yen sign - ->!5::Send {u+20ac} ; (€) euro sign ->!+5::Send {u+00a2} ; (¢) cent sign (dollar) - ->!8::Send {u+201e} ; („) double low-9 quotation mark ->!+8::Send {u+201a} ; (‚) single low-9 quotation mark - ->!9::Send {u+201c} ; (“) left double quotation mark ->!+9::Send {u+2018} ; (‘) left single quotation mark - ->!0::Send {u+201d} ; (”) right double quotation mark ->!+0::Send {u+2019} ; (’) right single quotation mark - ->!=::Send {u+00d7} ; (×) multiplication sign ->!+=::Send {u+00f7} ; (÷) division sign - ->![::Send {u+00ab} ; («) left-pointing double angle quotation mark ->!{::Send {u+2039} ; (‹) left-pointing single angle quotation mark - ->!]::Send {u+00bb} ; (») right-pointing double angle quotation mark ->!}::Send {u+203a} ; (›) right-pointing single angle quotation mark - ->!;::Send {u+00b0} ; (°) degree sign ->!+;::Send {u+00b7} ; (·) middle dot - ->!/::Send {u+00bf} ; (¿) inverted question mark ->!?::Send {u+2026} ; (…) horizontal ellipsis - ->!\::Send {u+00ac} ; (¬) not sign ->!|::Send {u+00a6} ; (¦) broken bar - ->!space::Send {u+00a0} ; non-breaking space ->!+space::Send {u+00a0} ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCircumflex.item[key] - key := "" ; avoids leaking content via debug properties - return ->!+6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCaron.item[key] - key := "" ; avoids leaking content via debug properties + Send {u+00d1} ; (Ñ) N with tilde return ->!7:: +; Key : M +>!sc032:: +<^>!sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkRingAbove.item[key] + Send % dkGreekAlphabet.item[key] key := "" return ->!+7:: +>!+sc032:: +<^>!+sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMacron.item[key] + Send % dkMathSymbols.item[key] key := "" return ->!':: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkAcuteAccent.item[key] - key := "" +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00d2} ; (Ò) O with grave + else + Send {u+00f2} ; (ò) o with grave return ->!":: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkDiaeresis.item[key] - key := "" +>!+sc033:: +<^>!+sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00f2} ; (ò) o with grave + else + Send {u+00d2} ; (Ò) O with grave return ->!`:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGraveAccent.item[key] - key := "" - return ->!~:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkTilde.item[key] - key := "" +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00d3} ; (Ó) O with acute + else + Send {u+00f3} ; (ó) o with acute return - ->!-:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkSymbols.item[key] - key := "" +>!+sc034:: +<^>!+sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00f3} ; (ó) o with acute + else + Send {u+00d3} ; (Ó) O with acute return ->!_::Send {u+2116} ; (№) numero sign ->!m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGreekAlphabet.item[key] - key := "" - return ->!+m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMathSymbols.item[key] - key := "" - return +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send {u+00bf} ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send {u+2026} ; (…) horizontal ellipsis + +; Key : (space) +>!sc039:: +<^>!sc039::Send {u+00a0} ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send {u+00a0} ; non-breaking space (NBSP) diff --git a/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk b/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk index 7d3e0b9..49353f8 100644 --- a/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk +++ b/autohotkey/EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v2 -; EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk - 2024-10-14 +; EurKEY v1.2 (unofficial) (for AutoHotkey v2).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -522,435 +522,433 @@ dkMathSymbols["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send "{u+00a1}" ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send "{u+00b9}" ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send "{u+00b2}" ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send "{u+00b3}" ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send "{u+00a3}" ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send "{u+00a5}" ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send "{u+20ac}" ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send "{u+00a2}" ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCircumflex.Has(ih.Input) + Send dkCircumflex[ih.Input] +} +>!+sc007:: +<^>!+sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCaron.Has(ih.Input) + Send dkCaron[ih.Input] +} ->!a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c4}" ; (Ä) A with diaeresis - else - Send "{u+00e4}" ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkRingAbove.Has(ih.Input) + Send dkRingAbove[ih.Input] } ->!+a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e4}" ; (ä) a with diaeresis - else - Send "{u+00c4}" ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkMacron.Has(ih.Input) + Send dkMacron[ih.Input] } ->!q:: { +; Key : 8 +>!sc009:: +<^>!sc009::Send "{u+201e}" ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send "{u+201a}" ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send "{u+201c}" ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send "{u+2018}" ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send "{u+201d}" ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send "{u+2019}" ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkSymbols.Has(ih.Input) + Send dkSymbols[ih.Input] +} +>!+sc00C:: +<^>!+sc00C::Send "{u+2116}" ; (№) numero sign + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send "{u+00d7}" ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send "{u+00f7}" ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00c6}" ; (Æ) letter AE else Send "{u+00e6}" ; (æ) letter ae } ->!+q:: { +>!+sc010:: +<^>!+sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00e6}" ; (æ) letter ae else Send "{u+00c6}" ; (Æ) letter AE } ->!w:: { +; Key : W +>!sc011:: +<^>!sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00c5}" ; (Å) A with ring above else Send "{u+00e5}" ; (å) a with ring above } ->!+w:: { +>!+sc011:: +<^>!+sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00e5}" ; (å) a with ring above else Send "{u+00c5}" ; (Å) A with ring above } ->!z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c0}" ; (À) A with grave - else - Send "{u+00e0}" ; (à) a with grave -} ->!+z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e0}" ; (à) a with grave - else - Send "{u+00c0}" ; (À) A with grave -} - ->!x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c1}" ; (Á) A with acute - else - Send "{u+00e1}" ; (á) a with acute -} ->!+x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e1}" ; (á) a with acute - else - Send "{u+00c1}" ; (Á) A with acute -} - ->!c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c7}" ; (Ç) C with cedilla - else - Send "{u+00e7}" ; (ç) c with cedilla -} ->!+c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e7}" ; (ç) c with cedilla - else - Send "{u+00c7}" ; (Ç) C with cedilla -} - ->!d:: { - if GetKeyState("CapsLock", "T") - Send "{u+0110}" ; (Đ) D with stroke - else - Send "{u+0111}" ; (đ) d with stroke -} ->!+d:: { - if GetKeyState("CapsLock", "T") - Send "{u+0111}" ; (đ) d with stroke - else - Send "{u+0110}" ; (Đ) D with stroke -} - ->!e:: { +; Key : E +>!sc012:: +<^>!sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00cb}" ; (Ë) E with diaeresis else Send "{u+00eb}" ; (ë) e with diaeresis } ->!+e:: { +>!+sc012:: +<^>!+sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00eb}" ; (ë) e with diaeresis else Send "{u+00cb}" ; (Ë) E with diaeresis } ->!f:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c8}" ; (È) E with grave - else - Send "{u+00e8}" ; (è) e with grave -} ->!+f:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e8}" ; (è) e with grave - else - Send "{u+00c8}" ; (È) E with grave -} - ->!g:: { +; Key : R +>!sc013:: +<^>!sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00c9}" ; (É) E with acute - else - Send "{u+00e9}" ; (é) e with acute -} ->!+g:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e9}" ; (é) e with acute - else - Send "{u+00c9}" ; (É) E with acute -} - ->!i:: { - if GetKeyState("CapsLock", "T") - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute else - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute } ->!+i:: { +>!+sc013:: +<^>!+sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute else - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute } ->!v:: { +; Key : T +>!sc014:: +<^>!sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn else - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn } ->!+v:: { +>!+sc014:: +<^>!+sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn else - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn } ->!b:: { +; Key : Y +>!sc015:: +<^>!sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis else - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis } ->!+b:: { +>!+sc015:: +<^>!+sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis else - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis } ->!k:: { +; Key : U +>!sc016:: +<^>!sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis else - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis } ->!+k:: { +>!+sc016:: +<^>!+sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis else - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis } ->!n:: { +; Key : I +>!sc017:: +<^>!sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis else - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis } ->!+n:: { +>!+sc017:: +<^>!+sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis else - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis } ->!o:: { +; Key : O +>!sc018:: +<^>!sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00d6}" ; (Ö) O with diaeresis else Send "{u+00f6}" ; (ö) o with diaeresis } ->!+o:: { +>!+sc018:: +<^>!+sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00f6}" ; (ö) o with diaeresis else Send "{u+00d6}" ; (Ö) O with diaeresis } ->!p:: { +; Key : P +>!sc019:: +<^>!sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0152}" ; (Œ) ligature OE else Send "{u+0153}" ; (œ) ligature oe } ->!+p:: { +>!+sc019:: +<^>!+sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0153}" ; (œ) ligature oe else Send "{u+0152}" ; (Œ) ligature OE } ->!l:: { +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send "{u+00ab}" ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send "{u+00bb}" ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send "{u+203a}" ; (›) right-pointing single angle quotation mark + +; Key : A +>!sc01E:: +<^>!sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00d8}" ; (Ø) O with stroke + Send "{u+00c4}" ; (Ä) A with diaeresis else - Send "{u+00f8}" ; (ø) o with stroke + Send "{u+00e4}" ; (ä) a with diaeresis } ->!+l:: { +>!+sc01E:: +<^>!+sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00f8}" ; (ø) o with stroke + Send "{u+00e4}" ; (ä) a with diaeresis else - Send "{u+00d8}" ; (Ø) O with stroke + Send "{u+00c4}" ; (Ä) A with diaeresis } ->!,:: { - if GetKeyState("CapsLock", "T") - Send "{u+00d2}" ; (Ò) O with grave - else - Send "{u+00f2}" ; (ò) o with grave -} ->!<:: { - if GetKeyState("CapsLock", "T") - Send "{u+00f2}" ; (ò) o with grave - else - Send "{u+00d2}" ; (Ò) O with grave -} +; Key : S +>!sc01F:: +<^>!sc01F::Send "{u+00df}" ; (ß) small sharp s (Eszett) +>!+sc01F:: +<^>!+sc01F::Send "{u+00a7}" ; (§) section sign ->!.:: { +; Key : D +>!sc020:: +<^>!sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+0110}" ; (Đ) D with stroke else - Send "{u+00f3}" ; (ó) o with acute + Send "{u+0111}" ; (đ) d with stroke } ->!>:: { +>!+sc020:: +<^>!+sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+00f3}" ; (ó) o with acute + Send "{u+0111}" ; (đ) d with stroke else - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+0110}" ; (Đ) D with stroke } ->!t:: { +; Key : F +>!sc021:: +<^>!sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave else - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave } ->!+t:: { +>!+sc021:: +<^>!+sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave else - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave } ->!u:: { +; Key : G +>!sc022:: +<^>!sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute else - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute } ->!+u:: { +>!+sc022:: +<^>!+sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute else - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute } ->!h:: { +; Key : H +>!sc023:: +<^>!sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00d9}" ; (Ù) U with grave else Send "{u+00f9}" ; (ù) u with grave } ->!+h:: { +>!+sc023:: +<^>!+sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00f9}" ; (ù) u with grave else Send "{u+00d9}" ; (Ù) U with grave } ->!j:: { +; Key : J +>!sc024:: +<^>!sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00da}" ; (Ú) U with acute else Send "{u+00fa}" ; (ú) u with acute } ->!+j:: { +>!+sc024:: +<^>!+sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00fa}" ; (ú) u with acute else Send "{u+00da}" ; (Ú) U with acute } ->!y:: { +; Key : K +>!sc025:: +<^>!sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ else - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij } ->!+y:: { +>!+sc025:: +<^>!+sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij else - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ } ->!r:: { +; Key : L +>!sc026:: +<^>!sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00dd}" ; (Ý) Y with acute + Send "{u+00d8}" ; (Ø) O with stroke else - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke } ->!+r:: { +>!+sc026:: +<^>!+sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke else - Send "{u+00dd}" ; (Ý) Y with acute -} - ->!s::Send "{u+00df}" ; (ß) small sharp s (Eszett) ->!+s::Send "{u+00a7}" ; (§) section sign - ->!1::Send "{u+00a1}" ; (¡) inverted exclamation mark ->!+1::Send "{u+00b9}" ; (¹) superscript 1 - ->!2::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send "{u+00b2}" ; (²) superscript 2 - ->!3::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send "{u+00b3}" ; (³) superscript 3 - ->!4::Send "{u+00a3}" ; (£) pound sign ->!+4::Send "{u+00a5}" ; (¥) yen sign - ->!5::Send "{u+20ac}" ; (€) euro sign ->!+5::Send "{u+00a2}" ; (¢) cent sign (dollar) - ->!8::Send "{u+201e}" ; („) double low-9 quotation mark ->!+8::Send "{u+201a}" ; (‚) single low-9 quotation mark - ->!9::Send "{u+201c}" ; (“) left double quotation mark ->!+9::Send "{u+2018}" ; (‘) left single quotation mark - ->!0::Send "{u+201d}" ; (”) right double quotation mark ->!+0::Send "{u+2019}" ; (’) right single quotation mark - ->!=::Send "{u+00d7}" ; (×) multiplication sign ->!+=::Send "{u+00f7}" ; (÷) division sign - ->![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark ->!{::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark - ->!]::Send "{u+00bb}" ; (») right-pointing double angle quotation mark ->!}::Send "{u+203a}" ; (›) right-pointing single angle quotation mark - ->!;::Send "{u+00b0}" ; (°) degree sign ->!+;::Send "{u+00b7}" ; (·) middle dot - ->!/::Send "{u+00bf}" ; (¿) inverted question mark ->!?::Send "{u+2026}" ; (…) horizontal ellipsis - ->!\::Send "{u+00ac}" ; (¬) not sign ->!|::Send "{u+00a6}" ; (¦) broken bar - ->!space::Send "{u+00a0}" ; non-breaking space ->!+space::Send "{u+00a0}" ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCircumflex.Has(ih.Input) - Send dkCircumflex[ih.Input] -} ->!+6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCaron.Has(ih.Input) - Send dkCaron[ih.Input] + Send "{u+00d8}" ; (Ø) O with stroke } ->!7:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkRingAbove.Has(ih.Input) - Send dkRingAbove[ih.Input] -} ->!+7:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkMacron.Has(ih.Input) - Send dkMacron[ih.Input] -} +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027::Send "{u+00b0}" ; (°) degree sign +>!+sc027:: +<^>!+sc027::Send "{u+00b7}" ; (·) middle dot ->!':: { +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkAcuteAccent.Has(ih.Input) Send dkAcuteAccent[ih.Input] } ->!":: { +>!+sc028:: +<^>!+sc028:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() @@ -958,14 +956,17 @@ dkMathSymbols[" "] := "{u+221a}" ; (√) square root Send dkDiaeresis[ih.Input] } ->!`:: { +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGraveAccent.Has(ih.Input) Send dkGraveAccent[ih.Input] } ->!~:: { +>!+sc029:: +<^>!+sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() @@ -973,26 +974,166 @@ dkMathSymbols[" "] := "{u+221a}" ; (√) square root Send dkTilde[ih.Input] } ->!-:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkSymbols.Has(ih.Input) - Send dkSymbols[ih.Input] +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B::Send "{u+00ac}" ; (¬) not sign +>!+sc02B:: +<^>!+sc02B::Send "{u+00a6}" ; (¦) broken bar + +; Key : Z +>!sc02C:: +<^>!sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c0}" ; (À) A with grave + else + Send "{u+00e0}" ; (à) a with grave +} +>!+sc02C:: +<^>!+sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e0}" ; (à) a with grave + else + Send "{u+00c0}" ; (À) A with grave +} + +; Key : X +>!sc02D:: +<^>!sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c1}" ; (Á) A with acute + else + Send "{u+00e1}" ; (á) a with acute +} +>!+sc02D:: +<^>!+sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e1}" ; (á) a with acute + else + Send "{u+00c1}" ; (Á) A with acute +} + +; Key : C +>!sc02E:: +<^>!sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c7}" ; (Ç) C with cedilla + else + Send "{u+00e7}" ; (ç) c with cedilla +} +>!+sc02E:: +<^>!+sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e7}" ; (ç) c with cedilla + else + Send "{u+00c7}" ; (Ç) C with cedilla +} + +; Key : V +>!sc02F:: +<^>!sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cc}" ; (Ì) I with grave + else + Send "{u+00ec}" ; (ì) i with grave +} +>!+sc02F:: +<^>!+sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ec}" ; (ì) i with grave + else + Send "{u+00cc}" ; (Ì) I with grave +} + +; Key : B +>!sc030:: +<^>!sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cd}" ; (Í) I with acute + else + Send "{u+00ed}" ; (í) i with acute +} +>!+sc030:: +<^>!+sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ed}" ; (í) i with acute + else + Send "{u+00cd}" ; (Í) I with acute } ->!_::Send "{u+2116}" ; (№) numero sign ->!m:: { +; Key : N +>!sc031:: +<^>!sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d1}" ; (Ñ) N with tilde + else + Send "{u+00f1}" ; (ñ) n with tilde +} +>!+sc031:: +<^>!+sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f1}" ; (ñ) n with tilde + else + Send "{u+00d1}" ; (Ñ) N with tilde +} + +; Key : M +>!sc032:: +<^>!sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGreekAlphabet.Has(ih.Input) Send dkGreekAlphabet[ih.Input] } ->!+m:: { +>!+sc032:: +<^>!+sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkMathSymbols.Has(ih.Input) Send dkMathSymbols[ih.Input] } + +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d2}" ; (Ò) O with grave + else + Send "{u+00f2}" ; (ò) o with grave +} +>!+sc033:: +<^>!+sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f2}" ; (ò) o with grave + else + Send "{u+00d2}" ; (Ò) O with grave +} + +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d3}" ; (Ó) O with acute + else + Send "{u+00f3}" ; (ó) o with acute +} +>!+sc034:: +<^>!+sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f3}" ; (ó) o with acute + else + Send "{u+00d3}" ; (Ó) O with acute +} + +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send "{u+00bf}" ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send "{u+2026}" ; (…) horizontal ellipsis + +; Key : (space) +>!sc039:: +<^>!sc039::Send "{u+00a0}" ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send "{u+00a0}" ; non-breaking space (NBSP) diff --git a/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk b/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk index d233bed..b828345 100644 --- a/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk +++ b/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v1.1 -; EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk - 2024-10-14 +; EurKEY v1.3 (unofficial) (for AutoHotkey v1.1).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -526,465 +526,606 @@ dkMathSymbols.item["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols.item[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send {u+00a1} ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send {u+00b9} ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send {u+00b2} ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send {u+00b3} ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send {u+00a3} ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send {u+00a5} ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send {u+20ac} ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send {u+00a2} ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item[key] + key := "" ; avoids leaking content via debug properties + return +>!+sc007:: +<^>!+sc007:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item[key] + key := "" ; avoids leaking content via debug properties + return ->!a:: - if GetKeyState("CapsLock", "T") - Send {u+00c4} ; (Ä) A with diaeresis - else - Send {u+00e4} ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingAbove.item[key] + key := "" return ->!+a:: - if GetKeyState("CapsLock", "T") - Send {u+00e4} ; (ä) a with diaeresis - else - Send {u+00c4} ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacron.item[key] + key := "" return ->!q:: +; Key : 8 +>!sc009:: +<^>!sc009::Send {u+201e} ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send {u+201a} ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send {u+201c} ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send {u+2018} ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send {u+201d} ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send {u+2019} ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C::Send {u+2713} ; (✓) check mark +>!+sc00C:: +<^>!+sc00C::Send {u+2717} ; (✗) ballot x + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send {u+00d7} ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send {u+00f7} ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: if GetKeyState("CapsLock", "T") Send {u+00c6} ; (Æ) letter AE else Send {u+00e6} ; (æ) letter ae return ->!+q:: +>!+sc010:: +<^>!+sc010:: if GetKeyState("CapsLock", "T") Send {u+00e6} ; (æ) letter ae else Send {u+00c6} ; (Æ) letter AE return ->!w:: +; Key : W +>!sc011:: +<^>!sc011:: if GetKeyState("CapsLock", "T") Send {u+00c5} ; (Å) A with ring above else Send {u+00e5} ; (å) a with ring above return ->!+w:: +>!+sc011:: +<^>!+sc011:: if GetKeyState("CapsLock", "T") Send {u+00e5} ; (å) a with ring above else Send {u+00c5} ; (Å) A with ring above return ->!z:: +; Key : E +>!sc012:: +<^>!sc012:: if GetKeyState("CapsLock", "T") - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis else - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis return ->!+z:: +>!+sc012:: +<^>!+sc012:: if GetKeyState("CapsLock", "T") - Send {u+00e0} ; (à) a with grave + Send {u+00eb} ; (ë) e with diaeresis else - Send {u+00c0} ; (À) A with grave + Send {u+00cb} ; (Ë) E with diaeresis return ->!x:: +; Key : R +>!sc013:: +<^>!sc013:: if GetKeyState("CapsLock", "T") - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute else - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute return ->!+x:: +>!+sc013:: +<^>!+sc013:: if GetKeyState("CapsLock", "T") - Send {u+00e1} ; (á) a with acute + Send {u+00fd} ; (ý) y with acute else - Send {u+00c1} ; (Á) A with acute + Send {u+00dd} ; (Ý) Y with acute return ->!c:: +; Key : T +>!sc014:: +<^>!sc014:: if GetKeyState("CapsLock", "T") - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn else - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn return ->!+c:: +>!+sc014:: +<^>!+sc014:: if GetKeyState("CapsLock", "T") - Send {u+00e7} ; (ç) c with cedilla + Send {u+00fe} ; (þ) small letter thorn else - Send {u+00c7} ; (Ç) C with cedilla + Send {u+00de} ; (Þ) capital letter thorn return ->!d:: +; Key : Y +>!sc015:: +<^>!sc015:: if GetKeyState("CapsLock", "T") - Send {u+0110} ; (Đ) D with stroke + Send {u+0178} ; (Ÿ) Y with diaeresis else - Send {u+0111} ; (đ) d with stroke + Send {u+00ff} ; (ÿ) y with diaeresis return ->!+d:: +>!+sc015:: +<^>!+sc015:: if GetKeyState("CapsLock", "T") - Send {u+0111} ; (đ) d with stroke + Send {u+00ff} ; (ÿ) y with diaeresis else - Send {u+0110} ; (Đ) D with stroke + Send {u+0178} ; (Ÿ) Y with diaeresis return ->!e:: +; Key : U +>!sc016:: +<^>!sc016:: if GetKeyState("CapsLock", "T") - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis else - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis return ->!+e:: +>!+sc016:: +<^>!+sc016:: if GetKeyState("CapsLock", "T") - Send {u+00eb} ; (ë) e with diaeresis + Send {u+00fc} ; (ü) u with diaeresis else - Send {u+00cb} ; (Ë) E with diaeresis + Send {u+00dc} ; (Ü) U with diaeresis return ->!f:: +; Key : I +>!sc017:: +<^>!sc017:: if GetKeyState("CapsLock", "T") - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis else - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis return ->!+f:: +>!+sc017:: +<^>!+sc017:: if GetKeyState("CapsLock", "T") - Send {u+00e8} ; (è) e with grave + Send {u+00ef} ; (ï) i with diaeresis else - Send {u+00c8} ; (È) E with grave + Send {u+00cf} ; (Ï) I with diaeresis return ->!g:: +; Key : O +>!sc018:: +<^>!sc018:: if GetKeyState("CapsLock", "T") - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis else - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis return ->!+g:: +>!+sc018:: +<^>!+sc018:: if GetKeyState("CapsLock", "T") - Send {u+00e9} ; (é) e with acute + Send {u+00f6} ; (ö) o with diaeresis else - Send {u+00c9} ; (É) E with acute + Send {u+00d6} ; (Ö) O with diaeresis return ->!i:: +; Key : P +>!sc019:: +<^>!sc019:: if GetKeyState("CapsLock", "T") - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE else - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe return ->!+i:: +>!+sc019:: +<^>!+sc019:: if GetKeyState("CapsLock", "T") - Send {u+00ef} ; (ï) i with diaeresis + Send {u+0153} ; (œ) ligature oe else - Send {u+00cf} ; (Ï) I with diaeresis + Send {u+0152} ; (Œ) ligature OE return ->!v:: +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send {u+00ab} ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send {u+2039} ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send {u+00bb} ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send {u+203a} ; (›) right-pointing single angle quotation mark + +; Key : A +>!sc01E:: +<^>!sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis else - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis return ->!+v:: +>!+sc01E:: +<^>!+sc01E:: if GetKeyState("CapsLock", "T") - Send {u+00ec} ; (ì) i with grave + Send {u+00e4} ; (ä) a with diaeresis else - Send {u+00cc} ; (Ì) I with grave + Send {u+00c4} ; (Ä) A with diaeresis return ->!b:: +; Key : S +>!sc01F:: +<^>!sc01F:: if GetKeyState("CapsLock", "T") - Send {u+00cd} ; (Í) I with acute + Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett) else - Send {u+00ed} ; (í) i with acute + Send {u+00df} ; (ß) small sharp s (Eszett) return ->!+b:: +>!+sc01F:: +<^>!+sc01F:: if GetKeyState("CapsLock", "T") - Send {u+00ed} ; (í) i with acute + Send {u+00df} ; (ß) small sharp s (Eszett) else - Send {u+00cd} ; (Í) I with acute + Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett) return ->!k:: +; Key : D +>!sc020:: +<^>!sc020:: if GetKeyState("CapsLock", "T") - Send {u+0132} ; (IJ) ligature IJ + Send {u+0110} ; (Đ) D with stroke else - Send {u+0133} ; (ij) ligature ij + Send {u+0111} ; (đ) d with stroke return ->!+k:: +>!+sc020:: +<^>!+sc020:: if GetKeyState("CapsLock", "T") - Send {u+0133} ; (ij) ligature ij + Send {u+0111} ; (đ) d with stroke else - Send {u+0132} ; (IJ) ligature IJ + Send {u+0110} ; (Đ) D with stroke return ->!n:: +; Key : F +>!sc021:: +<^>!sc021:: if GetKeyState("CapsLock", "T") - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c8} ; (È) E with grave else - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e8} ; (è) e with grave return ->!+n:: +>!+sc021:: +<^>!+sc021:: if GetKeyState("CapsLock", "T") - Send {u+00f1} ; (ñ) n with tilde + Send {u+00e8} ; (è) e with grave else - Send {u+00d1} ; (Ñ) N with tilde + Send {u+00c8} ; (È) E with grave return ->!o:: +; Key : G +>!sc022:: +<^>!sc022:: if GetKeyState("CapsLock", "T") - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00c9} ; (É) E with acute else - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00e9} ; (é) e with acute return ->!+o:: +>!+sc022:: +<^>!+sc022:: if GetKeyState("CapsLock", "T") - Send {u+00f6} ; (ö) o with diaeresis + Send {u+00e9} ; (é) e with acute else - Send {u+00d6} ; (Ö) O with diaeresis + Send {u+00c9} ; (É) E with acute return ->!p:: +; Key : H +>!sc023:: +<^>!sc023:: if GetKeyState("CapsLock", "T") - Send {u+0152} ; (Œ) ligature OE + Send {u+00d9} ; (Ù) U with grave else - Send {u+0153} ; (œ) ligature oe + Send {u+00f9} ; (ù) u with grave return ->!+p:: +>!+sc023:: +<^>!+sc023:: if GetKeyState("CapsLock", "T") - Send {u+0153} ; (œ) ligature oe + Send {u+00f9} ; (ù) u with grave else - Send {u+0152} ; (Œ) ligature OE + Send {u+00d9} ; (Ù) U with grave return ->!l:: +; Key : J +>!sc024:: +<^>!sc024:: if GetKeyState("CapsLock", "T") - Send {u+00d8} ; (Ø) O with stroke + Send {u+00da} ; (Ú) U with acute else - Send {u+00f8} ; (ø) o with stroke + Send {u+00fa} ; (ú) u with acute return ->!+l:: +>!+sc024:: +<^>!+sc024:: if GetKeyState("CapsLock", "T") - Send {u+00f8} ; (ø) o with stroke + Send {u+00fa} ; (ú) u with acute else - Send {u+00d8} ; (Ø) O with stroke + Send {u+00da} ; (Ú) U with acute return ->!,:: +; Key : K +>!sc025:: +<^>!sc025:: if GetKeyState("CapsLock", "T") - Send {u+00d2} ; (Ò) O with grave + Send {u+0132} ; (IJ) ligature IJ else - Send {u+00f2} ; (ò) o with grave + Send {u+0133} ; (ij) ligature ij return ->!<:: +>!+sc025:: +<^>!+sc025:: if GetKeyState("CapsLock", "T") - Send {u+00f2} ; (ò) o with grave + Send {u+0133} ; (ij) ligature ij else - Send {u+00d2} ; (Ò) O with grave + Send {u+0132} ; (IJ) ligature IJ return ->!.:: +; Key : L +>!sc026:: +<^>!sc026:: if GetKeyState("CapsLock", "T") - Send {u+00d3} ; (Ó) O with acute + Send {u+00d8} ; (Ø) O with stroke else - Send {u+00f3} ; (ó) o with acute + Send {u+00f8} ; (ø) o with stroke return ->!>:: +>!+sc026:: +<^>!+sc026:: if GetKeyState("CapsLock", "T") - Send {u+00f3} ; (ó) o with acute + Send {u+00f8} ; (ø) o with stroke else - Send {u+00d3} ; (Ó) O with acute + Send {u+00d8} ; (Ø) O with stroke return ->!s:: - if GetKeyState("CapsLock", "T") - Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett) - else - Send {u+00df} ; (ß) small sharp s (Eszett) +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027::Send {u+00b0} ; (°) degree sign +>!+sc027:: +<^>!+sc027::Send {u+00b7} ; (·) middle dot + +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item[key] + key := "" return ->!+s:: - if GetKeyState("CapsLock", "T") - Send {u+00df} ; (ß) small sharp s (Eszett) - else - Send {u+1e9e} ; (ẞ) capital sharp S (capital Eszett) +>!+sc028:: +<^>!+sc028:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item[key] + key := "" + return + +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item[key] + key := "" + return +>!+sc029:: +<^>!+sc029:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item[key] + key := "" return ->!t:: +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkSymbols.item[key] + key := "" + return +>!+sc02B:: +<^>!+sc02B::Send {u+00a6} ; (¦) broken bar + +; Key : Z +>!sc02C:: +<^>!sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave else - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave return ->!+t:: +>!+sc02C:: +<^>!+sc02C:: if GetKeyState("CapsLock", "T") - Send {u+00fe} ; (þ) small letter thorn + Send {u+00e0} ; (à) a with grave else - Send {u+00de} ; (Þ) capital letter thorn + Send {u+00c0} ; (À) A with grave return ->!u:: +; Key : X +>!sc02D:: +<^>!sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute else - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute return ->!+u:: +>!+sc02D:: +<^>!+sc02D:: if GetKeyState("CapsLock", "T") - Send {u+00fc} ; (ü) u with diaeresis + Send {u+00e1} ; (á) a with acute else - Send {u+00dc} ; (Ü) U with diaeresis + Send {u+00c1} ; (Á) A with acute return ->!h:: +; Key : C +>!sc02E:: +<^>!sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla else - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla return ->!+h:: +>!+sc02E:: +<^>!+sc02E:: if GetKeyState("CapsLock", "T") - Send {u+00f9} ; (ù) u with grave + Send {u+00e7} ; (ç) c with cedilla else - Send {u+00d9} ; (Ù) U with grave + Send {u+00c7} ; (Ç) C with cedilla return ->!j:: +; Key : V +>!sc02F:: +<^>!sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave else - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave return ->!+j:: +>!+sc02F:: +<^>!+sc02F:: if GetKeyState("CapsLock", "T") - Send {u+00fa} ; (ú) u with acute + Send {u+00ec} ; (ì) i with grave else - Send {u+00da} ; (Ú) U with acute + Send {u+00cc} ; (Ì) I with grave return ->!y:: +; Key : B +>!sc030:: +<^>!sc030:: if GetKeyState("CapsLock", "T") - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute else - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute return ->!+y:: +>!+sc030:: +<^>!+sc030:: if GetKeyState("CapsLock", "T") - Send {u+00ff} ; (ÿ) y with diaeresis + Send {u+00ed} ; (í) i with acute else - Send {u+0178} ; (Ÿ) Y with diaeresis + Send {u+00cd} ; (Í) I with acute return ->!r:: +; Key : N +>!sc031:: +<^>!sc031:: if GetKeyState("CapsLock", "T") - Send {u+00dd} ; (Ý) Y with acute + Send {u+00d1} ; (Ñ) N with tilde else - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde return ->!+r:: +>!+sc031:: +<^>!+sc031:: if GetKeyState("CapsLock", "T") - Send {u+00fd} ; (ý) y with acute + Send {u+00f1} ; (ñ) n with tilde else - Send {u+00dd} ; (Ý) Y with acute - return - ->!1::Send {u+00a1} ; (¡) inverted exclamation mark ->!+1::Send {u+00b9} ; (¹) superscript 1 - ->!2::Send {u+00aa} ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send {u+00b2} ; (²) superscript 2 - ->!3::Send {u+00ba} ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send {u+00b3} ; (³) superscript 3 - ->!4::Send {u+00a3} ; (£) pound sign ->!+4::Send {u+00a5} ; (¥) yen sign - ->!5::Send {u+20ac} ; (€) euro sign ->!+5::Send {u+00a2} ; (¢) cent sign (dollar) - ->!8::Send {u+201e} ; („) double low-9 quotation mark ->!+8::Send {u+201a} ; (‚) single low-9 quotation mark - ->!9::Send {u+201c} ; (“) left double quotation mark ->!+9::Send {u+2018} ; (‘) left single quotation mark - ->!0::Send {u+201d} ; (”) right double quotation mark ->!+0::Send {u+2019} ; (’) right single quotation mark - ->!-::Send {u+2713} ; (✓) check mark ->!_::Send {u+2717} ; (✗) ballot x - ->!=::Send {u+00d7} ; (×) multiplication sign ->!+=::Send {u+00f7} ; (÷) division sign - ->![::Send {u+00ab} ; («) left-pointing double angle quotation mark ->!{::Send {u+2039} ; (‹) left-pointing single angle quotation mark - ->!]::Send {u+00bb} ; (») right-pointing double angle quotation mark ->!}::Send {u+203a} ; (›) right-pointing single angle quotation mark - ->!;::Send {u+00b0} ; (°) degree sign ->!+;::Send {u+00b7} ; (·) middle dot - ->!/::Send {u+00bf} ; (¿) inverted question mark ->!?::Send {u+2026} ; (…) horizontal ellipsis - ->!space::Send {u+00a0} ; non-breaking space ->!+space::Send {u+00a0} ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCircumflex.item[key] - key := "" ; avoids leaking content via debug properties - return ->!+6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCaron.item[key] - key := "" ; avoids leaking content via debug properties + Send {u+00d1} ; (Ñ) N with tilde return ->!7:: +; Key : M +>!sc032:: +<^>!sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkRingAbove.item[key] + Send % dkGreekAlphabet.item[key] key := "" return ->!+7:: +>!+sc032:: +<^>!+sc032:: Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMacron.item[key] + Send % dkMathSymbols.item[key] key := "" return ->!':: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkAcuteAccent.item[key] - key := "" +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00d2} ; (Ò) O with grave + else + Send {u+00f2} ; (ò) o with grave return ->!":: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkDiaeresis.item[key] - key := "" +>!+sc033:: +<^>!+sc033:: + if GetKeyState("CapsLock", "T") + Send {u+00f2} ; (ò) o with grave + else + Send {u+00d2} ; (Ò) O with grave return ->!`:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGraveAccent.item[key] - key := "" +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00d3} ; (Ó) O with acute + else + Send {u+00f3} ; (ó) o with acute return ->!~:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkTilde.item[key] - key := "" +>!+sc034:: +<^>!+sc034:: + if GetKeyState("CapsLock", "T") + Send {u+00f3} ; (ó) o with acute + else + Send {u+00d3} ; (Ó) O with acute return ->!\:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkSymbols.item[key] - key := "" - return ->!|::Send {u+00a6} ; (¦) broken bar +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send {u+00bf} ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send {u+2026} ; (…) horizontal ellipsis ->!m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGreekAlphabet.item[key] - key := "" - return ->!+m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMathSymbols.item[key] - key := "" - return +; Key : (space) +>!sc039:: +<^>!sc039::Send {u+00a0} ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send {u+00a0} ; non-breaking space (NBSP) diff --git a/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk b/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk index 1a0d327..1abe296 100644 --- a/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk +++ b/autohotkey/EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v2 -; EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk - 2024-10-14 +; EurKEY v1.3 (unofficial) (for AutoHotkey v2).ahk - 2024-11-30 ; GitHub : https://github.com/pieter-degroote/EurKEY-clone @@ -9,7 +9,7 @@ ; Configuration : -; Keyboard layout (on Windows) : US QWERTY +; Keyboard layout : US QWERTY @@ -527,445 +527,437 @@ dkMathSymbols["L"] := "{u+2226}" ; (∦) not parallel to dkMathSymbols[" "] := "{u+221a}" ; (√) square root -; Configuration : 'Right Alt' and 'Right Alt + Shift' on US QWERTY +; Configuration : 'AltGr (RAlt)' and 'AltGr (RAlt) + Shift' modifiers + +; Key : 1 +>!sc002:: +<^>!sc002::Send "{u+00a1}" ; (¡) inverted exclamation mark +>!+sc002:: +<^>!+sc002::Send "{u+00b9}" ; (¹) superscript 1 + +; Key : 2 +>!sc003:: +<^>!sc003::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc003:: +<^>!+sc003::Send "{u+00b2}" ; (²) superscript 2 + +; Key : 3 +>!sc004:: +<^>!sc004::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +>!+sc004:: +<^>!+sc004::Send "{u+00b3}" ; (³) superscript 3 + +; Key : 4 +>!sc005:: +<^>!sc005::Send "{u+00a3}" ; (£) pound sign +>!+sc005:: +<^>!+sc005::Send "{u+00a5}" ; (¥) yen sign + +; Key : 5 +>!sc006:: +<^>!sc006::Send "{u+20ac}" ; (€) euro sign +>!+sc006:: +<^>!+sc006::Send "{u+00a2}" ; (¢) cent sign (dollar) + +; Key : 6 +>!sc007:: +<^>!sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCircumflex.Has(ih.Input) + Send dkCircumflex[ih.Input] +} +>!+sc007:: +<^>!+sc007:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkCaron.Has(ih.Input) + Send dkCaron[ih.Input] +} ->!a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c4}" ; (Ä) A with diaeresis - else - Send "{u+00e4}" ; (ä) a with diaeresis +; Key : 7 +>!sc008:: +<^>!sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkRingAbove.Has(ih.Input) + Send dkRingAbove[ih.Input] } ->!+a:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e4}" ; (ä) a with diaeresis - else - Send "{u+00c4}" ; (Ä) A with diaeresis +>!+sc008:: +<^>!+sc008:: { + ih := InputHook("L1", dkEndKeys) + ih.Start() + ih.Wait() + if dkMacron.Has(ih.Input) + Send dkMacron[ih.Input] } ->!q:: { +; Key : 8 +>!sc009:: +<^>!sc009::Send "{u+201e}" ; („) double low-9 quotation mark +>!+sc009:: +<^>!+sc009::Send "{u+201a}" ; (‚) single low-9 quotation mark + +; Key : 9 +>!sc00A:: +<^>!sc00A::Send "{u+201c}" ; (“) left double quotation mark +>!+sc00A:: +<^>!+sc00A::Send "{u+2018}" ; (‘) left single quotation mark + +; Key : 0 +>!sc00B:: +<^>!sc00B::Send "{u+201d}" ; (”) right double quotation mark +>!+sc00B:: +<^>!+sc00B::Send "{u+2019}" ; (’) right single quotation mark + +; Key : - / _ (hyphen-minus / underscore) +>!sc00C:: +<^>!sc00C::Send "{u+2713}" ; (✓) check mark +>!+sc00C:: +<^>!+sc00C::Send "{u+2717}" ; (✗) ballot x + +; Key : = / + (equals sign / plus sign) +>!sc00D:: +<^>!sc00D::Send "{u+00d7}" ; (×) multiplication sign +>!+sc00D:: +<^>!+sc00D::Send "{u+00f7}" ; (÷) division sign + +; Key : Q +>!sc010:: +<^>!sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00c6}" ; (Æ) letter AE else Send "{u+00e6}" ; (æ) letter ae } ->!+q:: { +>!+sc010:: +<^>!+sc010:: { if GetKeyState("CapsLock", "T") Send "{u+00e6}" ; (æ) letter ae else Send "{u+00c6}" ; (Æ) letter AE } ->!w:: { +; Key : W +>!sc011:: +<^>!sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00c5}" ; (Å) A with ring above else Send "{u+00e5}" ; (å) a with ring above } ->!+w:: { +>!+sc011:: +<^>!+sc011:: { if GetKeyState("CapsLock", "T") Send "{u+00e5}" ; (å) a with ring above else Send "{u+00c5}" ; (Å) A with ring above } ->!z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c0}" ; (À) A with grave - else - Send "{u+00e0}" ; (à) a with grave -} ->!+z:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e0}" ; (à) a with grave - else - Send "{u+00c0}" ; (À) A with grave -} - ->!x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c1}" ; (Á) A with acute - else - Send "{u+00e1}" ; (á) a with acute -} ->!+x:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e1}" ; (á) a with acute - else - Send "{u+00c1}" ; (Á) A with acute -} - ->!c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c7}" ; (Ç) C with cedilla - else - Send "{u+00e7}" ; (ç) c with cedilla -} ->!+c:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e7}" ; (ç) c with cedilla - else - Send "{u+00c7}" ; (Ç) C with cedilla -} - ->!d:: { - if GetKeyState("CapsLock", "T") - Send "{u+0110}" ; (Đ) D with stroke - else - Send "{u+0111}" ; (đ) d with stroke -} ->!+d:: { - if GetKeyState("CapsLock", "T") - Send "{u+0111}" ; (đ) d with stroke - else - Send "{u+0110}" ; (Đ) D with stroke -} - ->!e:: { +; Key : E +>!sc012:: +<^>!sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00cb}" ; (Ë) E with diaeresis else Send "{u+00eb}" ; (ë) e with diaeresis } ->!+e:: { +>!+sc012:: +<^>!+sc012:: { if GetKeyState("CapsLock", "T") Send "{u+00eb}" ; (ë) e with diaeresis else Send "{u+00cb}" ; (Ë) E with diaeresis } ->!f:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c8}" ; (È) E with grave - else - Send "{u+00e8}" ; (è) e with grave -} ->!+f:: { - if GetKeyState("CapsLock", "T") - Send "{u+00e8}" ; (è) e with grave - else - Send "{u+00c8}" ; (È) E with grave -} - ->!g:: { - if GetKeyState("CapsLock", "T") - Send "{u+00c9}" ; (É) E with acute - else - Send "{u+00e9}" ; (é) e with acute -} ->!+g:: { +; Key : R +>!sc013:: +<^>!sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00e9}" ; (é) e with acute - else - Send "{u+00c9}" ; (É) E with acute -} - ->!i:: { - if GetKeyState("CapsLock", "T") - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute else - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute } ->!+i:: { +>!+sc013:: +<^>!+sc013:: { if GetKeyState("CapsLock", "T") - Send "{u+00ef}" ; (ï) i with diaeresis + Send "{u+00fd}" ; (ý) y with acute else - Send "{u+00cf}" ; (Ï) I with diaeresis + Send "{u+00dd}" ; (Ý) Y with acute } ->!v:: { +; Key : T +>!sc014:: +<^>!sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn else - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn } ->!+v:: { +>!+sc014:: +<^>!+sc014:: { if GetKeyState("CapsLock", "T") - Send "{u+00ec}" ; (ì) i with grave + Send "{u+00fe}" ; (þ) small letter thorn else - Send "{u+00cc}" ; (Ì) I with grave + Send "{u+00de}" ; (Þ) capital letter thorn } ->!b:: { +; Key : Y +>!sc015:: +<^>!sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis else - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis } ->!+b:: { +>!+sc015:: +<^>!+sc015:: { if GetKeyState("CapsLock", "T") - Send "{u+00ed}" ; (í) i with acute + Send "{u+00ff}" ; (ÿ) y with diaeresis else - Send "{u+00cd}" ; (Í) I with acute + Send "{u+0178}" ; (Ÿ) Y with diaeresis } ->!k:: { +; Key : U +>!sc016:: +<^>!sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis else - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis } ->!+k:: { +>!+sc016:: +<^>!+sc016:: { if GetKeyState("CapsLock", "T") - Send "{u+0133}" ; (ij) ligature ij + Send "{u+00fc}" ; (ü) u with diaeresis else - Send "{u+0132}" ; (IJ) ligature IJ + Send "{u+00dc}" ; (Ü) U with diaeresis } ->!n:: { +; Key : I +>!sc017:: +<^>!sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis else - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis } ->!+n:: { +>!+sc017:: +<^>!+sc017:: { if GetKeyState("CapsLock", "T") - Send "{u+00f1}" ; (ñ) n with tilde + Send "{u+00ef}" ; (ï) i with diaeresis else - Send "{u+00d1}" ; (Ñ) N with tilde + Send "{u+00cf}" ; (Ï) I with diaeresis } ->!o:: { +; Key : O +>!sc018:: +<^>!sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00d6}" ; (Ö) O with diaeresis else Send "{u+00f6}" ; (ö) o with diaeresis } ->!+o:: { +>!+sc018:: +<^>!+sc018:: { if GetKeyState("CapsLock", "T") Send "{u+00f6}" ; (ö) o with diaeresis else Send "{u+00d6}" ; (Ö) O with diaeresis } ->!p:: { +; Key : P +>!sc019:: +<^>!sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0152}" ; (Œ) ligature OE else Send "{u+0153}" ; (œ) ligature oe } ->!+p:: { +>!+sc019:: +<^>!+sc019:: { if GetKeyState("CapsLock", "T") Send "{u+0153}" ; (œ) ligature oe else Send "{u+0152}" ; (Œ) ligature OE } ->!l:: { - if GetKeyState("CapsLock", "T") - Send "{u+00d8}" ; (Ø) O with stroke - else - Send "{u+00f8}" ; (ø) o with stroke -} ->!+l:: { - if GetKeyState("CapsLock", "T") - Send "{u+00f8}" ; (ø) o with stroke - else - Send "{u+00d8}" ; (Ø) O with stroke -} +; Key : [ / { (left square bracket / left curly bracket) +>!sc01A:: +<^>!sc01A::Send "{u+00ab}" ; («) left-pointing double angle quotation mark +>!+sc01A:: +<^>!+sc01A::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark + +; Key : ] / } (right square bracket / right curly bracket) +>!sc01B:: +<^>!sc01B::Send "{u+00bb}" ; (») right-pointing double angle quotation mark +>!+sc01B:: +<^>!+sc01B::Send "{u+203a}" ; (›) right-pointing single angle quotation mark ->!,:: { +; Key : A +>!sc01E:: +<^>!sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00d2}" ; (Ò) O with grave + Send "{u+00c4}" ; (Ä) A with diaeresis else - Send "{u+00f2}" ; (ò) o with grave + Send "{u+00e4}" ; (ä) a with diaeresis } ->!<:: { +>!+sc01E:: +<^>!+sc01E:: { if GetKeyState("CapsLock", "T") - Send "{u+00f2}" ; (ò) o with grave + Send "{u+00e4}" ; (ä) a with diaeresis else - Send "{u+00d2}" ; (Ò) O with grave + Send "{u+00c4}" ; (Ä) A with diaeresis } ->!.:: { +; Key : S +>!sc01F:: +<^>!sc01F:: { if GetKeyState("CapsLock", "T") - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+1e9e}" ; (ẞ) capital sharp S (capital Eszett) else - Send "{u+00f3}" ; (ó) o with acute + Send "{u+00df}" ; (ß) small sharp s (Eszett) } ->!>:: { +>!+sc01F:: +<^>!+sc01F:: { if GetKeyState("CapsLock", "T") - Send "{u+00f3}" ; (ó) o with acute + Send "{u+00df}" ; (ß) small sharp s (Eszett) else - Send "{u+00d3}" ; (Ó) O with acute + Send "{u+1e9e}" ; (ẞ) capital sharp S (capital Eszett) } ->!s:: { +; Key : D +>!sc020:: +<^>!sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+1e9e}" ; (ẞ) capital sharp S (capital Eszett) + Send "{u+0110}" ; (Đ) D with stroke else - Send "{u+00df}" ; (ß) small sharp s (Eszett) + Send "{u+0111}" ; (đ) d with stroke } ->!+s:: { +>!+sc020:: +<^>!+sc020:: { if GetKeyState("CapsLock", "T") - Send "{u+00df}" ; (ß) small sharp s (Eszett) + Send "{u+0111}" ; (đ) d with stroke else - Send "{u+1e9e}" ; (ẞ) capital sharp S (capital Eszett) + Send "{u+0110}" ; (Đ) D with stroke } ->!t:: { +; Key : F +>!sc021:: +<^>!sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave else - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave } ->!+t:: { +>!+sc021:: +<^>!+sc021:: { if GetKeyState("CapsLock", "T") - Send "{u+00fe}" ; (þ) small letter thorn + Send "{u+00e8}" ; (è) e with grave else - Send "{u+00de}" ; (Þ) capital letter thorn + Send "{u+00c8}" ; (È) E with grave } ->!u:: { +; Key : G +>!sc022:: +<^>!sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute else - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute } ->!+u:: { +>!+sc022:: +<^>!+sc022:: { if GetKeyState("CapsLock", "T") - Send "{u+00fc}" ; (ü) u with diaeresis + Send "{u+00e9}" ; (é) e with acute else - Send "{u+00dc}" ; (Ü) U with diaeresis + Send "{u+00c9}" ; (É) E with acute } ->!h:: { +; Key : H +>!sc023:: +<^>!sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00d9}" ; (Ù) U with grave else Send "{u+00f9}" ; (ù) u with grave } ->!+h:: { +>!+sc023:: +<^>!+sc023:: { if GetKeyState("CapsLock", "T") Send "{u+00f9}" ; (ù) u with grave else Send "{u+00d9}" ; (Ù) U with grave } ->!j:: { +; Key : J +>!sc024:: +<^>!sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00da}" ; (Ú) U with acute else Send "{u+00fa}" ; (ú) u with acute } ->!+j:: { +>!+sc024:: +<^>!+sc024:: { if GetKeyState("CapsLock", "T") Send "{u+00fa}" ; (ú) u with acute else Send "{u+00da}" ; (Ú) U with acute } ->!y:: { +; Key : K +>!sc025:: +<^>!sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ else - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij } ->!+y:: { +>!+sc025:: +<^>!+sc025:: { if GetKeyState("CapsLock", "T") - Send "{u+00ff}" ; (ÿ) y with diaeresis + Send "{u+0133}" ; (ij) ligature ij else - Send "{u+0178}" ; (Ÿ) Y with diaeresis + Send "{u+0132}" ; (IJ) ligature IJ } ->!r:: { +; Key : L +>!sc026:: +<^>!sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00dd}" ; (Ý) Y with acute + Send "{u+00d8}" ; (Ø) O with stroke else - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke } ->!+r:: { +>!+sc026:: +<^>!+sc026:: { if GetKeyState("CapsLock", "T") - Send "{u+00fd}" ; (ý) y with acute + Send "{u+00f8}" ; (ø) o with stroke else - Send "{u+00dd}" ; (Ý) Y with acute -} - ->!1::Send "{u+00a1}" ; (¡) inverted exclamation mark ->!+1::Send "{u+00b9}" ; (¹) superscript 1 - ->!2::Send "{u+00aa}" ; (ª) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+2::Send "{u+00b2}" ; (²) superscript 2 - ->!3::Send "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) ->!+3::Send "{u+00b3}" ; (³) superscript 3 - ->!4::Send "{u+00a3}" ; (£) pound sign ->!+4::Send "{u+00a5}" ; (¥) yen sign - ->!5::Send "{u+20ac}" ; (€) euro sign ->!+5::Send "{u+00a2}" ; (¢) cent sign (dollar) - ->!8::Send "{u+201e}" ; („) double low-9 quotation mark ->!+8::Send "{u+201a}" ; (‚) single low-9 quotation mark - ->!9::Send "{u+201c}" ; (“) left double quotation mark ->!+9::Send "{u+2018}" ; (‘) left single quotation mark - ->!0::Send "{u+201d}" ; (”) right double quotation mark ->!+0::Send "{u+2019}" ; (’) right single quotation mark - ->!-::Send "{u+2713}" ; (✓) check mark ->!_::Send "{u+2717}" ; (✗) ballot x - ->!=::Send "{u+00d7}" ; (×) multiplication sign ->!+=::Send "{u+00f7}" ; (÷) division sign - ->![::Send "{u+00ab}" ; («) left-pointing double angle quotation mark ->!{::Send "{u+2039}" ; (‹) left-pointing single angle quotation mark - ->!]::Send "{u+00bb}" ; (») right-pointing double angle quotation mark ->!}::Send "{u+203a}" ; (›) right-pointing single angle quotation mark - ->!;::Send "{u+00b0}" ; (°) degree sign ->!+;::Send "{u+00b7}" ; (·) middle dot - ->!/::Send "{u+00bf}" ; (¿) inverted question mark ->!?::Send "{u+2026}" ; (…) horizontal ellipsis - ->!space::Send "{u+00a0}" ; non-breaking space ->!+space::Send "{u+00a0}" ; non-breaking space - - -; Configuration : Dead Keys on 'Right Alt' and 'Right Alt + Shift' - ->!6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCircumflex.Has(ih.Input) - Send dkCircumflex[ih.Input] -} ->!+6:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkCaron.Has(ih.Input) - Send dkCaron[ih.Input] + Send "{u+00d8}" ; (Ø) O with stroke } ->!7:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkRingAbove.Has(ih.Input) - Send dkRingAbove[ih.Input] -} ->!+7:: { - ih := InputHook("L1", dkEndKeys) - ih.Start() - ih.Wait() - if dkMacron.Has(ih.Input) - Send dkMacron[ih.Input] -} +; Key : ; / : (semicolon / colon) +>!sc027:: +<^>!sc027::Send "{u+00b0}" ; (°) degree sign +>!+sc027:: +<^>!+sc027::Send "{u+00b7}" ; (·) middle dot ->!':: { +; Key : ' / " (apostrophe / quotation mark) +>!sc028:: +<^>!sc028:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkAcuteAccent.Has(ih.Input) Send dkAcuteAccent[ih.Input] } ->!":: { +>!+sc028:: +<^>!+sc028:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() @@ -973,14 +965,17 @@ dkMathSymbols[" "] := "{u+221a}" ; (√) square root Send dkDiaeresis[ih.Input] } ->!`:: { +; Key : ` / ~ (grave accent / tilde) +>!sc029:: +<^>!sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGraveAccent.Has(ih.Input) Send dkGraveAccent[ih.Input] } ->!~:: { +>!+sc029:: +<^>!+sc029:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() @@ -988,26 +983,172 @@ dkMathSymbols[" "] := "{u+221a}" ; (√) square root Send dkTilde[ih.Input] } ->!\:: { +; Key : \ / | (backslash / vertical line) +>!sc02B:: +<^>!sc02B:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkSymbols.Has(ih.Input) Send dkSymbols[ih.Input] } ->!|::Send "{u+00a6}" ; (¦) broken bar +>!+sc02B:: +<^>!+sc02B::Send "{u+00a6}" ; (¦) broken bar ->!m:: { +; Key : Z +>!sc02C:: +<^>!sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c0}" ; (À) A with grave + else + Send "{u+00e0}" ; (à) a with grave +} +>!+sc02C:: +<^>!+sc02C:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e0}" ; (à) a with grave + else + Send "{u+00c0}" ; (À) A with grave +} + +; Key : X +>!sc02D:: +<^>!sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c1}" ; (Á) A with acute + else + Send "{u+00e1}" ; (á) a with acute +} +>!+sc02D:: +<^>!+sc02D:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e1}" ; (á) a with acute + else + Send "{u+00c1}" ; (Á) A with acute +} + +; Key : C +>!sc02E:: +<^>!sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00c7}" ; (Ç) C with cedilla + else + Send "{u+00e7}" ; (ç) c with cedilla +} +>!+sc02E:: +<^>!+sc02E:: { + if GetKeyState("CapsLock", "T") + Send "{u+00e7}" ; (ç) c with cedilla + else + Send "{u+00c7}" ; (Ç) C with cedilla +} + +; Key : V +>!sc02F:: +<^>!sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cc}" ; (Ì) I with grave + else + Send "{u+00ec}" ; (ì) i with grave +} +>!+sc02F:: +<^>!+sc02F:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ec}" ; (ì) i with grave + else + Send "{u+00cc}" ; (Ì) I with grave +} + +; Key : B +>!sc030:: +<^>!sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00cd}" ; (Í) I with acute + else + Send "{u+00ed}" ; (í) i with acute +} +>!+sc030:: +<^>!+sc030:: { + if GetKeyState("CapsLock", "T") + Send "{u+00ed}" ; (í) i with acute + else + Send "{u+00cd}" ; (Í) I with acute +} + +; Key : N +>!sc031:: +<^>!sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d1}" ; (Ñ) N with tilde + else + Send "{u+00f1}" ; (ñ) n with tilde +} +>!+sc031:: +<^>!+sc031:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f1}" ; (ñ) n with tilde + else + Send "{u+00d1}" ; (Ñ) N with tilde +} + +; Key : M +>!sc032:: +<^>!sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkGreekAlphabet.Has(ih.Input) Send dkGreekAlphabet[ih.Input] } ->!+m:: { +>!+sc032:: +<^>!+sc032:: { ih := InputHook("L1", dkEndKeys) ih.Start() ih.Wait() if dkMathSymbols.Has(ih.Input) Send dkMathSymbols[ih.Input] } + +; Key : , / < (comma / less-than sign) +>!sc033:: +<^>!sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d2}" ; (Ò) O with grave + else + Send "{u+00f2}" ; (ò) o with grave +} +>!+sc033:: +<^>!+sc033:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f2}" ; (ò) o with grave + else + Send "{u+00d2}" ; (Ò) O with grave +} + +; Key : . / > (period / greater-than sign) +>!sc034:: +<^>!sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00d3}" ; (Ó) O with acute + else + Send "{u+00f3}" ; (ó) o with acute +} +>!+sc034:: +<^>!+sc034:: { + if GetKeyState("CapsLock", "T") + Send "{u+00f3}" ; (ó) o with acute + else + Send "{u+00d3}" ; (Ó) O with acute +} + +; Key : / / ? (slash / question mark) +>!sc035:: +<^>!sc035::Send "{u+00bf}" ; (¿) inverted question mark +>!+sc035:: +<^>!+sc035::Send "{u+2026}" ; (…) horizontal ellipsis + +; Key : (space) +>!sc039:: +<^>!sc039::Send "{u+00a0}" ; non-breaking space (NBSP) +>!+sc039:: +<^>!+sc039::Send "{u+00a0}" ; non-breaking space (NBSP)