]> shimmer.witbreuk.eu Git - UltimateKEYS.git/commitdiff
Add files via upload
authorPieter Degroote <pieter-degroote@users.noreply.github.com>
Sun, 8 Dec 2024 21:13:05 +0000 (22:13 +0100)
committerGitHub <noreply@github.com>
Sun, 8 Dec 2024 21:13:05 +0000 (22:13 +0100)
The AHK scripts now fully work on both 'US' and 'Hausa (Latin - Nigeria)' presets on Windows.

autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk
autohotkey/UltimateKEYS (for AutoHotkey v2).ahk

index fdc5394662462b56696b44c013d541b990f34eff..3c6f92be61d1cebbea96ae8de8ffdd6f2fd6c3a6 100644 (file)
@@ -1,6 +1,6 @@
 #requires AutoHotkey v1.1
 
-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2024-11-20
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2024-11-30
 
 ; Website :  https://pieter-degroote.github.io/UltimateKEYS/
 
@@ -11,7 +11,7 @@
 
 ; Configuration :
 
-; Keyboard layout (on Windows) :  US QWERTY
+; Keyboard layout :  US QWERTY
 
 
 
@@ -903,13 +903,12 @@ cmpMathSymbols.item["4"] := "{u+2237}"  ; (∷) proportion sign
 cmpMathSymbols.item["6"] := "{u+2220}"  ; (∠) angle symbol
 cmpMathSymbols.item["9"] := "{u+221f}"  ; (∟) right angle
 cmpMathSymbols.item["0"] := "{u+2221}"  ; (∡) measured angle
-cmpMathSymbols.item[","] := "{u+2219}"  ; (∙) bullet operator
+cmpMathSymbols.item["."] := "{u+22c5}"  ; (⋅) dot operator
+cmpMathSymbols.item["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols.item["+"] := "{u+2295}"  ; (⊕) circled plus
 cmpMathSymbols.item["-"] := "{u+2296}"  ; (⊖) circled minus
 cmpMathSymbols.item["*"] := "{u+2297}"  ; (⊗) circled times
 cmpMathSymbols.item["/"] := "{u+2298}"  ; (⊘) circled division slash
-cmpMathSymbols.item["."] := "{u+2299}"  ; (⊙) circled dot operator
-cmpMathSymbols.item["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols.item[";"] := "{u+2235}"  ; (∵) because sign
 cmpMathSymbols.item[":"] := "{u+2234}"  ; (∴) therefore sign
 cmpMathSymbols.item["&"] := "{u+2227}"  ; (∧) logical and
@@ -1486,446 +1485,591 @@ cmpSmallN.item["9"] := "{u+277e}"  ; (❾) dingbat negative circled digit 9
 cmpSmallN.item["0"] := "{u+277f}"  ; (❿) dingbat negative circled digit 10
 
 
-; 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+2264}   ; (≤) less-than or equal to
+>!+sc003::
+<^>!+sc003::Send {u+00b2}  ; (²) superscript 2
+
+; Key :  3
+>!sc004::
+<^>!sc004::Send {u+2265}   ; (≥) greater-than or equal to
+>!+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::
+  if GetKeyState("CapsLock", "T")
+    Send {u+00c3}  ; (Ã) A with tilde
+  else
+    Send {u+00e3}  ; (ã) a with tilde
+  return
+>!+sc007::
+<^>!+sc007::
+  if GetKeyState("CapsLock", "T")
+    Send {u+00e3}  ; (ã) a with tilde
+  else
+    Send {u+00c3}  ; (Ã) A with tilde
+  return
 
->!a::
+; Key :  7
+>!sc008::
+<^>!sc008::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c4}  ; (Ä) A with diaeresis
+    Send {u+00d5}  ; (Õ) O with tilde
   else
-    Send {u+00e4}  ; (ä) a with diaeresis
+    Send {u+00f5}  ; (õ) o with tilde
   return
->!+a::
+>!+sc008::
+<^>!+sc008::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e4}  ; (ä) a with diaeresis
+    Send {u+00f5}  ; (õ) o with tilde
   else
-    Send {u+00c4}  ; (Ä) A with diaeresis
+    Send {u+00d5}  ; (Õ) O with tilde
   return
 
->!q::
+; Key :  8
+>!sc009::
+<^>!sc009::Send {u+201e}   ; („) double low-9 quotation mark
+>!+sc009::
+<^>!+sc009::Send {u+00a7}  ; (§) section sign
+
+; 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+2013}   ; (–) en dash
+>!+sc00C::
+<^>!+sc00C::Send {u+2014}  ; (—) em dash
+
+; 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+00c1}  ; (Á) A with acute
+    Send {u+00cb}  ; (Ë) E with diaeresis
   else
-    Send {u+00e1}  ; (á) a with acute
+    Send {u+00eb}  ; (ë) e with diaeresis
   return
->!+z::
+>!+sc012::
+<^>!+sc012::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e1}  ; (á) a with acute
+    Send {u+00eb}  ; (ë) e with diaeresis
   else
-    Send {u+00c1}  ; (Á) A with acute
+    Send {u+00cb}  ; (Ë) E with diaeresis
   return
 
->!x::
+; Key :  R
+>!sc013::
+<^>!sc013::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c0}  ; (À) A with grave
+    Send {u+00ca}  ; (Ê) E with circumflex
   else
-    Send {u+00e0}  ; (à) a with grave
+    Send {u+00ea}  ; (ê) e with circumflex
   return
->!+x::
+>!+sc013::
+<^>!+sc013::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e0}  ; (à) a with grave
+    Send {u+00ea}  ; (ê) e with circumflex
   else
-    Send {u+00c0}  ; (À) A with grave
+    Send {u+00ca}  ; (Ê) E with circumflex
   return
 
->!d::
+; Key :  T
+>!sc014::
+<^>!sc014::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c2}  ; (Â) A with circumflex
+    Send {u+00ce}  ; (Î) I with circumflex
   else
-    Send {u+00e2}  ; (â) a with circumflex
+    Send {u+00ee}  ; (î) i with circumflex
   return
->!+d::
+>!+sc014::
+<^>!+sc014::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e2}  ; (â) a with circumflex
+    Send {u+00ee}  ; (î) i with circumflex
   else
-    Send {u+00c2}  ; (Â) A with circumflex
+    Send {u+00ce}  ; (Î) I with circumflex
   return
 
->!c::
+; Key :  Y
+>!sc015::
+<^>!sc015::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c7}  ; (Ç) C with cedilla
+    Send {u+00db}  ; (Û) U with circumflex
   else
-    Send {u+00e7}  ; (ç) c with cedilla
+    Send {u+00fb}  ; (û) u with circumflex
   return
->!+c::
+>!+sc015::
+<^>!+sc015::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e7}  ; (ç) c with cedilla
+    Send {u+00fb}  ; (û) u with circumflex
   else
-    Send {u+00c7}  ; (Ç) C with cedilla
+    Send {u+00db}  ; (Û) U with circumflex
   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+00c9}  ; (É) E with acute
+    Send {u+00cf}  ; (Ï) I with diaeresis
   else
-    Send {u+00e9}  ; (é) e with acute
+    Send {u+00ef}  ; (ï) i with diaeresis
   return
->!+f::
+>!+sc017::
+<^>!+sc017::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e9}  ; (é) e with acute
+    Send {u+00ef}  ; (ï) i with diaeresis
   else
-    Send {u+00c9}  ; (É) E with acute
+    Send {u+00cf}  ; (Ï) I with diaeresis
   return
 
->!g::
+; Key :  O
+>!sc018::
+<^>!sc018::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c8}  ; (È) E with grave
+    Send {u+00d6}  ; (Ö) O with diaeresis
   else
-    Send {u+00e8}  ; (è) e with grave
+    Send {u+00f6}  ; (ö) o with diaeresis
   return
->!+g::
+>!+sc018::
+<^>!+sc018::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e8}  ; (è) e with grave
+    Send {u+00f6}  ; (ö) o with diaeresis
   else
-    Send {u+00c8}  ; (È) E with grave
+    Send {u+00d6}  ; (Ö) O with diaeresis
   return
 
->!r::
+; Key :  P
+>!sc019::
+<^>!sc019::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ca}  ; (Ê) E with circumflex
+    Send {u+00d4}  ; (Ô) O with circumflex
   else
-    Send {u+00ea}  ; (ê) e with circumflex
+    Send {u+00f4}  ; (ô) o with circumflex
   return
->!+r::
+>!+sc019::
+<^>!+sc019::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ea}  ; (ê) e with circumflex
+    Send {u+00f4}  ; (ô) o with circumflex
   else
-    Send {u+00ca}  ; (Ê) E with circumflex
+    Send {u+00d4}  ; (Ô) O with circumflex
   return
 
->!i::
+; 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+00cf}  ; (Ï) I with diaeresis
+    Send {u+00c4}  ; (Ä) A with diaeresis
   else
-    Send {u+00ef}  ; (ï) i with diaeresis
+    Send {u+00e4}  ; (ä) a with diaeresis
   return
->!+i::
+>!+sc01E::
+<^>!+sc01E::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ef}  ; (ï) i with diaeresis
+    Send {u+00e4}  ; (ä) a with diaeresis
   else
-    Send {u+00cf}  ; (Ï) I with diaeresis
+    Send {u+00c4}  ; (Ä) A with diaeresis
   return
 
->!v::
+; 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
->!+v::
+>!+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
 
->!b::
+; Key :  D
+>!sc020::
+<^>!sc020::
   if GetKeyState("CapsLock", "T")
-    Send {u+00cc}  ; (Ì) I with grave
+    Send {u+00c2}  ; (Â) A with circumflex
   else
-    Send {u+00ec}  ; (ì) i with grave
+    Send {u+00e2}  ; (â) a with circumflex
   return
->!+b::
+>!+sc020::
+<^>!+sc020::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ec}  ; (ì) i with grave
+    Send {u+00e2}  ; (â) a with circumflex
   else
-    Send {u+00cc}  ; (Ì) I with grave
+    Send {u+00c2}  ; (Â) A with circumflex
   return
 
->!t::
+; Key :  F
+>!sc021::
+<^>!sc021::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ce}  ; (Î) I with circumflex
+    Send {u+00c9}  ; (É) E with acute
   else
-    Send {u+00ee}  ; (î) i with circumflex
+    Send {u+00e9}  ; (é) e with acute
   return
->!+t::
+>!+sc021::
+<^>!+sc021::
   if GetKeyState("CapsLock", "T")
-    Send {u+00ee}  ; (î) i with circumflex
+    Send {u+00e9}  ; (é) e with acute
   else
-    Send {u+00ce}  ; (Î) I with circumflex
+    Send {u+00c9}  ; (É) E with acute
   return
 
->!n::
+; Key :  G
+>!sc022::
+<^>!sc022::
   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::
+>!+sc022::
+<^>!+sc022::
   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 :  H
+>!sc023::
+<^>!sc023::
   if GetKeyState("CapsLock", "T")
-    Send {u+00d6}  ; (Ö) O with diaeresis
+    Send {u+00da}  ; (Ú) U with acute
   else
-    Send {u+00f6}  ; (ö) o with diaeresis
+    Send {u+00fa}  ; (ú) u with acute
   return
->!+o::
+>!+sc023::
+<^>!+sc023::
   if GetKeyState("CapsLock", "T")
-    Send {u+00f6}  ; (ö) o with diaeresis
+    Send {u+00fa}  ; (ú) u with acute
   else
-    Send {u+00d6}  ; (Ö) O with diaeresis
+    Send {u+00da}  ; (Ú) U with acute
   return
 
->!k::
+; Key :  J
+>!sc024::
+<^>!sc024::
+  if GetKeyState("CapsLock", "T")
+    Send {u+00d9}  ; (Ù) U with grave
+  else
+    Send {u+00f9}  ; (ù) u with grave
+  return
+>!+sc024::
+<^>!+sc024::
+  if GetKeyState("CapsLock", "T")
+    Send {u+00f9}  ; (ù) u with grave
+  else
+    Send {u+00d9}  ; (Ù) U with grave
+  return
+
+; Key :  K
+>!sc025::
+<^>!sc025::
   if GetKeyState("CapsLock", "T")
     Send {u+0152}  ; (Œ) ligature OE
   else
     Send {u+0153}  ; (œ) ligature oe
   return
->!+k::
+>!+sc025::
+<^>!+sc025::
   if GetKeyState("CapsLock", "T")
     Send {u+0153}  ; (œ) ligature oe
   else
     Send {u+0152}  ; (Œ) ligature OE
   return
 
->!l::
+; Key :  L
+>!sc026::
+<^>!sc026::
   if GetKeyState("CapsLock", "T")
     Send {u+00d8}  ; (Ø) O with stroke
   else
     Send {u+00f8}  ; (ø) o with stroke
   return
->!+l::
+>!+sc026::
+<^>!+sc026::
   if GetKeyState("CapsLock", "T")
     Send {u+00f8}  ; (ø) o with stroke
   else
     Send {u+00d8}  ; (Ø) O with stroke
   return
 
->!,::
+; Key :  ; / : (semicolon / colon)
+>!sc027::
+<^>!sc027::Send {u+00b0}   ; (°) degree sign
+>!+sc027::
+<^>!+sc027::Send {u+00b7}  ; (·) middle dot
+
+; Key :  ' / " (apostrophe / quotation mark)
+>!sc028::
+<^>!sc028::Send {u+266a}   ; (♪) eighth note
+>!+sc028::
+<^>!+sc028::Send {u+266b}  ; (♫) beamed eighth notes
+
+; Key :  \ / | (backslash / vertical line)
+>!sc02B::
+<^>!sc02B::Send {u+2002}   ; en space
+>!+sc02B::
+<^>!+sc02B::Send {u+2003}  ; em space
+
+; Key :  Z
+>!sc02C::
+<^>!sc02C::
   if GetKeyState("CapsLock", "T")
-    Send {u+00d3}  ; (Ó) O with acute
-  else
-    Send {u+00f3}  ; (ó) o with acute
-  return
->!<::
-  if GetKeyState("CapsLock", "T")
-    Send {u+00f3}  ; (ó) o with acute
-  else
-    Send {u+00d3}  ; (Ó) O with acute
-  return
-
->!.::
-  if GetKeyState("CapsLock", "T")
-    Send {u+00d2}  ; (Ò) O with grave
+    Send {u+00c1}  ; (Á) A with acute
   else
-    Send {u+00f2}  ; (ò) o with grave
+    Send {u+00e1}  ; (á) a with acute
   return
->!>::
+>!+sc02C::
+<^>!+sc02C::
   if GetKeyState("CapsLock", "T")
-    Send {u+00f2}  ; (ò) o with grave
+    Send {u+00e1}  ; (á) a with acute
   else
-    Send {u+00d2}  ; (Ò) O with grave
+    Send {u+00c1}  ; (Á) A with acute
   return
 
->!p::
+; Key :  X
+>!sc02D::
+<^>!sc02D::
   if GetKeyState("CapsLock", "T")
-    Send {u+00d4}  ; (Ô) O with circumflex
+    Send {u+00c0}  ; (À) A with grave
   else
-    Send {u+00f4}  ; (ô) o with circumflex
+    Send {u+00e0}  ; (à) a with grave
   return
->!+p::
+>!+sc02D::
+<^>!+sc02D::
   if GetKeyState("CapsLock", "T")
-    Send {u+00f4}  ; (ô) o with circumflex
+    Send {u+00e0}  ; (à) a with grave
   else
-    Send {u+00d4}  ; (Ô) O with circumflex
+    Send {u+00c0}  ; (À) A with grave
   return
 
->!s::
+; Key :  C
+>!sc02E::
+<^>!sc02E::
   if GetKeyState("CapsLock", "T")
-    Send {u+1e9e}  ; (ẞ) capital sharp S (capital Eszett)
+    Send {u+00c7}  ; (Ç) C with cedilla
   else
-    Send {u+00df}  ; (ß) small sharp s (Eszett)
+    Send {u+00e7}  ; (ç) c with cedilla
   return
->!+s::
+>!+sc02E::
+<^>!+sc02E::
   if GetKeyState("CapsLock", "T")
-    Send {u+00df}  ; (ß) small sharp s (Eszett)
+    Send {u+00e7}  ; (ç) c with cedilla
   else
-    Send {u+1e9e}  ; (ẞ) capital sharp S (capital Eszett)
+    Send {u+00c7}  ; (Ç) C with cedilla
   return
 
->!u::
+; Key :  V
+>!sc02F::
+<^>!sc02F::
   if GetKeyState("CapsLock", "T")
-    Send {u+00dc}  ; (Ü) U with diaeresis
+    Send {u+00cd}  ; (Í) I with acute
   else
-    Send {u+00fc}  ; (ü) u with diaeresis
+    Send {u+00ed}  ; (í) i with acute
   return
->!+u::
+>!+sc02F::
+<^>!+sc02F::
   if GetKeyState("CapsLock", "T")
-    Send {u+00fc}  ; (ü) u with diaeresis
+    Send {u+00ed}  ; (í) i with acute
   else
-    Send {u+00dc}  ; (Ü) U with diaeresis
+    Send {u+00cd}  ; (Í) I with acute
   return
 
->!h::
+; Key :  B
+>!sc030::
+<^>!sc030::
   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
->!+h::
+>!+sc030::
+<^>!+sc030::
   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
 
->!j::
+; Key :  N
+>!sc031::
+<^>!sc031::
   if GetKeyState("CapsLock", "T")
-    Send {u+00d9}  ; (Ù) U with grave
+    Send {u+00d1}  ; (Ñ) N with tilde
   else
-    Send {u+00f9}  ; (ù) u with grave
+    Send {u+00f1}  ; (ñ) n with tilde
   return
->!+j::
+>!+sc031::
+<^>!+sc031::
   if GetKeyState("CapsLock", "T")
-    Send {u+00f9}  ; (ù) u with grave
+    Send {u+00f1}  ; (ñ) n with tilde
   else
-    Send {u+00d9}  ; (Ù) U with grave
+    Send {u+00d1}  ; (Ñ) N with tilde
   return
 
->!y::
-  if GetKeyState("CapsLock", "T")
-    Send {u+00db}  ; (Û) U with circumflex
-  else
-    Send {u+00fb}  ; (û) u with circumflex
-  return
->!+y::
-  if GetKeyState("CapsLock", "T")
-    Send {u+00fb}  ; (û) u with circumflex
-  else
-    Send {u+00db}  ; (Û) U with circumflex
-  return
+; Key :  M
+>!sc032::
+<^>!sc032::Send {u+00b5}   ; (µ) micro sign
+>!+sc032::
+<^>!+sc032::Send {u+00b1}  ; (±) plus-minus sign
 
->!6::
+; Key :  , / < (comma / less-than sign)
+>!sc033::
+<^>!sc033::
   if GetKeyState("CapsLock", "T")
-    Send {u+00c3}  ; (Ã) A with tilde
+    Send {u+00d3}  ; (Ó) O with acute
   else
-    Send {u+00e3}  ; (ã) a with tilde
+    Send {u+00f3}  ; (ó) o with acute
   return
->!+6::
+>!+sc033::
+<^>!+sc033::
   if GetKeyState("CapsLock", "T")
-    Send {u+00e3}  ; (ã) a with tilde
+    Send {u+00f3}  ; (ó) o with acute
   else
-    Send {u+00c3}  ; (Ã) A with tilde
+    Send {u+00d3}  ; (Ó) O with acute
   return
 
->!7::
+; Key :  . / > (period / greater-than sign)
+>!sc034::
+<^>!sc034::
   if GetKeyState("CapsLock", "T")
-    Send {u+00d5}  ; (Õ) O with tilde
+    Send {u+00d2}  ; (Ò) O with grave
   else
-    Send {u+00f5}  ; (õ) o with tilde
+    Send {u+00f2}  ; (ò) o with grave
   return
->!+7::
+>!+sc034::
+<^>!+sc034::
   if GetKeyState("CapsLock", "T")
-    Send {u+00f5}  ; (õ) o with tilde
+    Send {u+00f2}  ; (ò) o with grave
   else
-    Send {u+00d5}  ; (Õ) O with tilde
+    Send {u+00d2}  ; (Ò) O with grave
   return
 
->!m::Send {u+00b5}   ; (µ) micro sign
->!+m::Send {u+00b1}  ; (±) plus-minus sign
-
->!1::Send {u+00a1}   ; (¡) inverted exclamation mark
->!+1::Send {u+00b9}  ; (¹) superscript 1
-
->!2::Send {u+2264}   ; (≤) less-than or equal to
->!+2::Send {u+00b2}  ; (²) superscript 2
-
->!3::Send {u+2265}   ; (≥) greater-than or equal to
->!+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+00a7}  ; (§) section sign
-
->!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+2013}   ; (–) en dash
->!_::Send {u+2014}   ; (—) em dash
-
->!=::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+266a}   ; (♪) eighth note
->!"::Send {u+266b}   ; (♫) beamed eighth notes
-
->!\::Send {u+2002}   ;     en space
->!|::Send {u+2003}   ;     em space
-
->!/::Send {u+00bf}   ; (¿) inverted question mark
->!?::Send {u+2022}   ; (•) bullet
+; Key :  / / ? (slash / question mark)
+>!sc035::
+<^>!sc035::Send {u+00bf}   ; (¿) inverted question mark
+>!+sc035::
+<^>!+sc035::Send {u+2022}  ; (•) bullet
 
->!space::Send {u+00a0}   ; non-breaking space (NBSP)
->!+space::Send {u+00a0}  ; non-breaking space (NBSP)
+; Key :  (space)
+>!sc039::
+<^>!sc039::Send {u+00a0}   ; non-breaking space (NBSP)
+>!+sc039::
+<^>!+sc039::Send {u+00a0}  ; non-breaking space (NBSP)
 
 
 ; Configuration :  Compose Key Selector
 
->!`::
->!~::
+>!sc029::
+>!+sc029::
+<^>!sc029::
+<^>!+sc029::
 >!sc056::
 >!+sc056::
+<^>!sc056::
+<^>!+sc056::
   Input, keyA, L1, {bs}{del}{esc}{home}{end}
   Input, keyB, L1, {bs}{del}{esc}{home}{end}
 
index 3875dec72a2db9fd6a75401d4c8d0648128d0bfe..7ab442983fb43ca42e95826fb84bc99ae9fa3f5c 100644 (file)
@@ -1,6 +1,6 @@
 #requires AutoHotkey v2
 
-; UltimateKEYS (for AutoHotkey v2).ahk - 2024-11-20
+; UltimateKEYS (for AutoHotkey v2).ahk - 2024-11-30
 
 ; Website :  https://pieter-degroote.github.io/UltimateKEYS/
 
@@ -11,7 +11,7 @@
 
 ; Configuration :
 
-; Keyboard layout (on Windows) :  US QWERTY
+; Keyboard layout :  US QWERTY
 
 
 
@@ -904,13 +904,12 @@ cmpMathSymbols["4"] := "{u+2237}"  ; (∷) proportion sign
 cmpMathSymbols["6"] := "{u+2220}"  ; (∠) angle symbol
 cmpMathSymbols["9"] := "{u+221f}"  ; (∟) right angle
 cmpMathSymbols["0"] := "{u+2221}"  ; (∡) measured angle
-cmpMathSymbols[","] := "{u+2219}"  ; (∙) bullet operator
+cmpMathSymbols["."] := "{u+22c5}"  ; (⋅) dot operator
+cmpMathSymbols["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols["+"] := "{u+2295}"  ; (⊕) circled plus
 cmpMathSymbols["-"] := "{u+2296}"  ; (⊖) circled minus
 cmpMathSymbols["*"] := "{u+2297}"  ; (⊗) circled times
 cmpMathSymbols["/"] := "{u+2298}"  ; (⊘) circled division slash
-cmpMathSymbols["."] := "{u+2299}"  ; (⊙) circled dot operator
-cmpMathSymbols["="] := "{u+225d}"  ; (≝) equal to by definition
 cmpMathSymbols[";"] := "{u+2235}"  ; (∵) because sign
 cmpMathSymbols[":"] := "{u+2234}"  ; (∴) therefore sign
 cmpMathSymbols["&"] := "{u+2227}"  ; (∧) logical and
@@ -1487,446 +1486,591 @@ cmpSmallN["9"] := "{u+277e}"  ; (❾) dingbat negative circled digit 9
 cmpSmallN["0"] := "{u+277f}"  ; (❿) dingbat negative circled digit 10
 
 
-; 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+2264}"   ; (≤) less-than or equal to
+>!+sc003::
+<^>!+sc003::Send "{u+00b2}"  ; (²) superscript 2
+
+; Key :  3
+>!sc004::
+<^>!sc004::Send "{u+2265}"   ; (≥) greater-than or equal to
+>!+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:: {
+  if GetKeyState("CapsLock", "T")
+    Send "{u+00c3}"  ; (Ã) A with tilde
+  else
+    Send "{u+00e3}"  ; (ã) a with tilde
+}
+>!+sc007::
+<^>!+sc007:: {
+  if GetKeyState("CapsLock", "T")
+    Send "{u+00e3}"  ; (ã) a with tilde
+  else
+    Send "{u+00c3}"  ; (Ã) A with tilde
+}
 
->!a:: {
+; Key :  7
+>!sc008::
+<^>!sc008:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c4}"  ; (Ä) A with diaeresis
+    Send "{u+00d5}"  ; (Õ) O with tilde
   else
-    Send "{u+00e4}"  ; (ä) a with diaeresis
+    Send "{u+00f5}"  ; (õ) o with tilde
 }
->!+a:: {
+>!+sc008::
+<^>!+sc008:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e4}"  ; (ä) a with diaeresis
+    Send "{u+00f5}"  ; (õ) o with tilde
   else
-    Send "{u+00c4}"  ; (Ä) A with diaeresis
+    Send "{u+00d5}"  ; (Õ) O with tilde
 }
 
->!q:: {
+; Key :  8
+>!sc009::
+<^>!sc009::Send "{u+201e}"   ; („) double low-9 quotation mark
+>!+sc009::
+<^>!+sc009::Send "{u+00a7}"  ; (§) section sign
+
+; 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+2013}"   ; (–) en dash
+>!+sc00C::
+<^>!+sc00C::Send "{u+2014}"  ; (—) em dash
+
+; 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:: {
+; Key :  E
+>!sc012::
+<^>!sc012:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c1}"  ; (Á) A with acute
+    Send "{u+00cb}"  ; (Ë) E with diaeresis
   else
-    Send "{u+00e1}"  ; (á) a with acute
+    Send "{u+00eb}"  ; (ë) e with diaeresis
 }
->!+z:: {
+>!+sc012::
+<^>!+sc012:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e1}"  ; (á) a with acute
+    Send "{u+00eb}"  ; (ë) e with diaeresis
   else
-    Send "{u+00c1}"  ; (Á) A with acute
+    Send "{u+00cb}"  ; (Ë) E with diaeresis
 }
 
->!x:: {
+; Key :  R
+>!sc013::
+<^>!sc013:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c0}"  ; (À) A with grave
+    Send "{u+00ca}"  ; (Ê) E with circumflex
   else
-    Send "{u+00e0}"  ; (à) a with grave
+    Send "{u+00ea}"  ; (ê) e with circumflex
 }
->!+x:: {
+>!+sc013::
+<^>!+sc013:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e0}"  ; (à) a with grave
+    Send "{u+00ea}"  ; (ê) e with circumflex
   else
-    Send "{u+00c0}"  ; (À) A with grave
+    Send "{u+00ca}"  ; (Ê) E with circumflex
 }
 
->!d:: {
+; Key :  T
+>!sc014::
+<^>!sc014:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c2}"  ; (Â) A with circumflex
+    Send "{u+00ce}"  ; (Î) I with circumflex
   else
-    Send "{u+00e2}"  ; (â) a with circumflex
+    Send "{u+00ee}"  ; (î) i with circumflex
 }
->!+d:: {
+>!+sc014::
+<^>!+sc014:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e2}"  ; (â) a with circumflex
+    Send "{u+00ee}"  ; (î) i with circumflex
   else
-    Send "{u+00c2}"  ; (Â) A with circumflex
+    Send "{u+00ce}"  ; (Î) I with circumflex
 }
 
->!c:: {
+; Key :  Y
+>!sc015::
+<^>!sc015:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c7}"  ; (Ç) C with cedilla
+    Send "{u+00db}"  ; (Û) U with circumflex
   else
-    Send "{u+00e7}"  ; (ç) c with cedilla
+    Send "{u+00fb}"  ; (û) u with circumflex
 }
->!+c:: {
+>!+sc015::
+<^>!+sc015:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e7}"  ; (ç) c with cedilla
+    Send "{u+00fb}"  ; (û) u with circumflex
   else
-    Send "{u+00c7}"  ; (Ç) C with cedilla
+    Send "{u+00db}"  ; (Û) U with circumflex
 }
 
->!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
 }
->!+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
 }
 
->!f:: {
+; Key :  I
+>!sc017::
+<^>!sc017:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c9}"  ; (É) E with acute
+    Send "{u+00cf}"  ; (Ï) I with diaeresis
   else
-    Send "{u+00e9}"  ; (é) e with acute
+    Send "{u+00ef}"  ; (ï) i with diaeresis
 }
->!+f:: {
+>!+sc017::
+<^>!+sc017:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e9}"  ; (é) e with acute
+    Send "{u+00ef}"  ; (ï) i with diaeresis
   else
-    Send "{u+00c9}"  ; (É) E with acute
+    Send "{u+00cf}"  ; (Ï) I with diaeresis
 }
 
->!g:: {
+; Key :  O
+>!sc018::
+<^>!sc018:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c8}"  ; (È) E with grave
+    Send "{u+00d6}"  ; (Ö) O with diaeresis
   else
-    Send "{u+00e8}"  ; (è) e with grave
+    Send "{u+00f6}"  ; (ö) o with diaeresis
 }
->!+g:: {
+>!+sc018::
+<^>!+sc018:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e8}"  ; (è) e with grave
+    Send "{u+00f6}"  ; (ö) o with diaeresis
   else
-    Send "{u+00c8}"  ; (È) E with grave
+    Send "{u+00d6}"  ; (Ö) O with diaeresis
 }
 
->!r:: {
+; Key :  P
+>!sc019::
+<^>!sc019:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ca}"  ; (Ê) E with circumflex
+    Send "{u+00d4}"  ; (Ô) O with circumflex
   else
-    Send "{u+00ea}"  ; (ê) e with circumflex
+    Send "{u+00f4}"  ; (ô) o with circumflex
 }
->!+r:: {
+>!+sc019::
+<^>!+sc019:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ea}"  ; (ê) e with circumflex
+    Send "{u+00f4}"  ; (ô) o with circumflex
   else
-    Send "{u+00ca}"  ; (Ê) E with circumflex
+    Send "{u+00d4}"  ; (Ô) O with circumflex
 }
 
->!i:: {
+; 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+00cf}"  ; (Ï) I with diaeresis
+    Send "{u+00c4}"  ; (Ä) A with diaeresis
   else
-    Send "{u+00ef}"  ; (ï) i with diaeresis
+    Send "{u+00e4}"  ; (ä) a with diaeresis
 }
->!+i:: {
+>!+sc01E::
+<^>!+sc01E:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ef}"  ; (ï) i with diaeresis
+    Send "{u+00e4}"  ; (ä) a with diaeresis
   else
-    Send "{u+00cf}"  ; (Ï) I with diaeresis
+    Send "{u+00c4}"  ; (Ä) A with diaeresis
 }
 
->!v:: {
+; 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)
 }
->!+v:: {
+>!+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)
 }
 
->!b:: {
+; Key :  D
+>!sc020::
+<^>!sc020:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00cc}"  ; (Ì) I with grave
+    Send "{u+00c2}"  ; (Â) A with circumflex
   else
-    Send "{u+00ec}"  ; (ì) i with grave
+    Send "{u+00e2}"  ; (â) a with circumflex
 }
->!+b:: {
+>!+sc020::
+<^>!+sc020:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ec}"  ; (ì) i with grave
+    Send "{u+00e2}"  ; (â) a with circumflex
   else
-    Send "{u+00cc}"  ; (Ì) I with grave
+    Send "{u+00c2}"  ; (Â) A with circumflex
 }
 
->!t:: {
+; Key :  F
+>!sc021::
+<^>!sc021:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ce}"  ; (Î) I with circumflex
+    Send "{u+00c9}"  ; (É) E with acute
   else
-    Send "{u+00ee}"  ; (î) i with circumflex
+    Send "{u+00e9}"  ; (é) e with acute
 }
->!+t:: {
+>!+sc021::
+<^>!+sc021:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00ee}"  ; (î) i with circumflex
+    Send "{u+00e9}"  ; (é) e with acute
   else
-    Send "{u+00ce}"  ; (Î) I with circumflex
+    Send "{u+00c9}"  ; (É) E with acute
 }
 
->!n:: {
+; Key :  G
+>!sc022::
+<^>!sc022:: {
   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
 }
->!+n:: {
+>!+sc022::
+<^>!+sc022:: {
   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
 }
 
->!o:: {
+; Key :  H
+>!sc023::
+<^>!sc023:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00d6}"  ; (Ö) O with diaeresis
+    Send "{u+00da}"  ; (Ú) U with acute
   else
-    Send "{u+00f6}"  ; (ö) o with diaeresis
+    Send "{u+00fa}"  ; (ú) u with acute
 }
->!+o:: {
+>!+sc023::
+<^>!+sc023:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00f6}"  ; (ö) o with diaeresis
+    Send "{u+00fa}"  ; (ú) u with acute
   else
-    Send "{u+00d6}"  ; (Ö) O with diaeresis
+    Send "{u+00da}"  ; (Ú) U with acute
 }
 
->!k:: {
+; Key :  J
+>!sc024::
+<^>!sc024:: {
+  if GetKeyState("CapsLock", "T")
+    Send "{u+00d9}"  ; (Ù) U with grave
+  else
+    Send "{u+00f9}"  ; (ù) u with grave
+}
+>!+sc024::
+<^>!+sc024:: {
+  if GetKeyState("CapsLock", "T")
+    Send "{u+00f9}"  ; (ù) u with grave
+  else
+    Send "{u+00d9}"  ; (Ù) U with grave
+}
+
+; Key :  K
+>!sc025::
+<^>!sc025:: {
   if GetKeyState("CapsLock", "T")
     Send "{u+0152}"  ; (Œ) ligature OE
   else
     Send "{u+0153}"  ; (œ) ligature oe
 }
->!+k:: {
+>!+sc025::
+<^>!+sc025:: {
   if GetKeyState("CapsLock", "T")
     Send "{u+0153}"  ; (œ) ligature oe
   else
     Send "{u+0152}"  ; (Œ) ligature OE
 }
 
->!l:: {
+; Key :  L
+>!sc026::
+<^>!sc026:: {
   if GetKeyState("CapsLock", "T")
     Send "{u+00d8}"  ; (Ø) O with stroke
   else
     Send "{u+00f8}"  ; (ø) o with stroke
 }
->!+l:: {
+>!+sc026::
+<^>!+sc026:: {
   if GetKeyState("CapsLock", "T")
     Send "{u+00f8}"  ; (ø) o with stroke
   else
     Send "{u+00d8}"  ; (Ø) O with stroke
 }
 
->!,:: {
+; Key :  ; / : (semicolon / colon)
+>!sc027::
+<^>!sc027::Send "{u+00b0}"   ; (°) degree sign
+>!+sc027::
+<^>!+sc027::Send "{u+00b7}"  ; (·) middle dot
+
+; Key :  ' / " (apostrophe / quotation mark)
+>!sc028::
+<^>!sc028::Send "{u+266a}"   ; (♪) eighth note
+>!+sc028::
+<^>!+sc028::Send "{u+266b}"  ; (♫) beamed eighth notes
+
+; Key :  \ / | (backslash / vertical line)
+>!sc02B::
+<^>!sc02B::Send "{u+2002}"   ; en space
+>!+sc02B::
+<^>!+sc02B::Send "{u+2003}"  ; em space
+
+; Key :  Z
+>!sc02C::
+<^>!sc02C:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00d3}"  ; (Ó) O with acute
-  else
-    Send "{u+00f3}"  ; (ó) o with acute
-}
->!<:: {
-  if GetKeyState("CapsLock", "T")
-    Send "{u+00f3}"  ; (ó) o with acute
-  else
-    Send "{u+00d3}"  ; (Ó) O with acute
-}
-
->!.:: {
-  if GetKeyState("CapsLock", "T")
-    Send "{u+00d2}"  ; (Ò) O with grave
+    Send "{u+00c1}"  ; (Á) A with acute
   else
-    Send "{u+00f2}"  ; (ò) o with grave
+    Send "{u+00e1}"  ; (á) a with acute
 }
->!>:: {
+>!+sc02C::
+<^>!+sc02C:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00f2}"  ; (ò) o with grave
+    Send "{u+00e1}"  ; (á) a with acute
   else
-    Send "{u+00d2}"  ; (Ò) O with grave
+    Send "{u+00c1}"  ; (Á) A with acute
 }
 
->!p:: {
+; Key :  X
+>!sc02D::
+<^>!sc02D:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00d4}"  ; (Ô) O with circumflex
+    Send "{u+00c0}"  ; (À) A with grave
   else
-    Send "{u+00f4}"  ; (ô) o with circumflex
+    Send "{u+00e0}"  ; (à) a with grave
 }
->!+p:: {
+>!+sc02D::
+<^>!+sc02D:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00f4}"  ; (ô) o with circumflex
+    Send "{u+00e0}"  ; (à) a with grave
   else
-    Send "{u+00d4}"  ; (Ô) O with circumflex
+    Send "{u+00c0}"  ; (À) A with grave
 }
 
->!s:: {
+; Key :  C
+>!sc02E::
+<^>!sc02E:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+1e9e}"  ; (ẞ) capital sharp S (capital Eszett)
+    Send "{u+00c7}"  ; (Ç) C with cedilla
   else
-    Send "{u+00df}"  ; (ß) small sharp s (Eszett)
+    Send "{u+00e7}"  ; (ç) c with cedilla
 }
->!+s:: {
+>!+sc02E::
+<^>!+sc02E:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00df}"  ; (ß) small sharp s (Eszett)
+    Send "{u+00e7}"  ; (ç) c with cedilla
   else
-    Send "{u+1e9e}"  ; (ẞ) capital sharp S (capital Eszett)
+    Send "{u+00c7}"  ; (Ç) C with cedilla
 }
 
->!u:: {
+; Key :  V
+>!sc02F::
+<^>!sc02F:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00dc}"  ; (Ü) U with diaeresis
+    Send "{u+00cd}"  ; (Í) I with acute
   else
-    Send "{u+00fc}"  ; (ü) u with diaeresis
+    Send "{u+00ed}"  ; (í) i with acute
 }
->!+u:: {
+>!+sc02F::
+<^>!+sc02F:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00fc}"  ; (ü) u with diaeresis
+    Send "{u+00ed}"  ; (í) i with acute
   else
-    Send "{u+00dc}"  ; (Ü) U with diaeresis
+    Send "{u+00cd}"  ; (Í) I with acute
 }
 
->!h:: {
+; Key :  B
+>!sc030::
+<^>!sc030:: {
   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
 }
->!+h:: {
+>!+sc030::
+<^>!+sc030:: {
   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
 }
 
->!j:: {
+; Key :  N
+>!sc031::
+<^>!sc031:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00d9}"  ; (Ù) U with grave
+    Send "{u+00d1}"  ; (Ñ) N with tilde
   else
-    Send "{u+00f9}"  ; (ù) u with grave
+    Send "{u+00f1}"  ; (ñ) n with tilde
 }
->!+j:: {
+>!+sc031::
+<^>!+sc031:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00f9}"  ; (ù) u with grave
+    Send "{u+00f1}"  ; (ñ) n with tilde
   else
-    Send "{u+00d9}"  ; (Ù) U with grave
+    Send "{u+00d1}"  ; (Ñ) N with tilde
 }
 
->!y:: {
-  if GetKeyState("CapsLock", "T")
-    Send "{u+00db}"  ; (Û) U with circumflex
-  else
-    Send "{u+00fb}"  ; (û) u with circumflex
-}
->!+y:: {
-  if GetKeyState("CapsLock", "T")
-    Send "{u+00fb}"  ; (û) u with circumflex
-  else
-    Send "{u+00db}"  ; (Û) U with circumflex
-}
+; Key :  M
+>!sc032::
+<^>!sc032::Send "{u+00b5}"   ; (µ) micro sign
+>!+sc032::
+<^>!+sc032::Send "{u+00b1}"  ; (±) plus-minus sign
 
->!6:: {
+; Key :  , / < (comma / less-than sign)
+>!sc033::
+<^>!sc033:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00c3}"  ; (Ã) A with tilde
+    Send "{u+00d3}"  ; (Ó) O with acute
   else
-    Send "{u+00e3}"  ; (ã) a with tilde
+    Send "{u+00f3}"  ; (ó) o with acute
 }
->!+6:: {
+>!+sc033::
+<^>!+sc033:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00e3}"  ; (ã) a with tilde
+    Send "{u+00f3}"  ; (ó) o with acute
   else
-    Send "{u+00c3}"  ; (Ã) A with tilde
+    Send "{u+00d3}"  ; (Ó) O with acute
 }
 
->!7:: {
+; Key :  . / > (period / greater-than sign)
+>!sc034::
+<^>!sc034:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00d5}"  ; (Õ) O with tilde
+    Send "{u+00d2}"  ; (Ò) O with grave
   else
-    Send "{u+00f5}"  ; (õ) o with tilde
+    Send "{u+00f2}"  ; (ò) o with grave
 }
->!+7:: {
+>!+sc034::
+<^>!+sc034:: {
   if GetKeyState("CapsLock", "T")
-    Send "{u+00f5}"  ; (õ) o with tilde
+    Send "{u+00f2}"  ; (ò) o with grave
   else
-    Send "{u+00d5}"  ; (Õ) O with tilde
+    Send "{u+00d2}"  ; (Ò) O with grave
 }
 
->!m::Send "{u+00b5}"   ; (µ) micro sign
->!+m::Send "{u+00b1}"  ; (±) plus-minus sign
-
->!1::Send "{u+00a1}"   ; (¡) inverted exclamation mark
->!+1::Send "{u+00b9}"  ; (¹) superscript 1
-
->!2::Send "{u+2264}"   ; (≤) less-than or equal to
->!+2::Send "{u+00b2}"  ; (²) superscript 2
-
->!3::Send "{u+2265}"   ; (≥) greater-than or equal to
->!+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+00a7}"  ; (§) section sign
-
->!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+2013}"   ; (–) en dash
->!_::Send "{u+2014}"   ; (—) em dash
-
->!=::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+266a}"   ; (♪) eighth note
->!"::Send "{u+266b}"   ; (♫) beamed eighth notes
-
->!\::Send "{u+2002}"   ;     en space
->!|::Send "{u+2003}"   ;     em space
-
->!/::Send "{u+00bf}"   ; (¿) inverted question mark
->!?::Send "{u+2022}"   ; (•) bullet
+; Key :  / / ? (slash / question mark)
+>!sc035::
+<^>!sc035::Send "{u+00bf}"   ; (¿) inverted question mark
+>!+sc035::
+<^>!+sc035::Send "{u+2022}"  ; (•) bullet
 
->!space::Send "{u+00a0}"   ; non-breaking space (NBSP)
->!+space::Send "{u+00a0}"  ; non-breaking space (NBSP)
+; Key :  (space)
+>!sc039::
+<^>!sc039::Send "{u+00a0}"   ; non-breaking space (NBSP)
+>!+sc039::
+<^>!+sc039::Send "{u+00a0}"  ; non-breaking space (NBSP)
 
 
 ; Configuration :  Compose Key Selector
 
->!`::
->!~::
+>!sc029::
+>!+sc029::
+<^>!sc029::
+<^>!+sc029::
 >!sc056::
->!+sc056:: {
+>!+sc056::
+<^>!sc056::
+<^>!+sc056:: {
   ihA := InputHook("L1", gEndKeys)
   ihA.Start()
   ihA.Wait()