Some minor changes and additions have been made to the Compose Key sequences.
#requires AutoHotkey v1.1
#requires AutoHotkey v1.1
-; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-02-06
+; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-02-10
; Website : https://pieter-degroote.github.io/UltimateKEYS/
; Website : https://pieter-degroote.github.io/UltimateKEYS/
compose.item["bD"] := "{u+0189}" ; (Ɖ) capital letter African D
compose.item["be"] := "{u+0115}" ; (ĕ) e with breve
compose.item["bE"] := "{u+0114}" ; (Ĕ) E with breve
compose.item["bD"] := "{u+0189}" ; (Ɖ) capital letter African D
compose.item["be"] := "{u+0115}" ; (ĕ) e with breve
compose.item["bE"] := "{u+0114}" ; (Ĕ) E with breve
-compose.item["bf"] := "{u+0259}" ; (ə) small letter schwa (Azerbaijani)
-compose.item["bF"] := "{u+018f}" ; (Ə) capital letter schwa (Azerbaijani)
compose.item["bg"] := "{u+011f}" ; (ğ) g with breve
compose.item["bG"] := "{u+011e}" ; (Ğ) G with breve
compose.item["bi"] := "{u+012d}" ; (ĭ) i with breve
compose.item["bg"] := "{u+011f}" ; (ğ) g with breve
compose.item["bG"] := "{u+011e}" ; (Ğ) G with breve
compose.item["bi"] := "{u+012d}" ; (ĭ) i with breve
; Compose : Various Symbols
compose.item["sa"] := "{u+2100}" ; (℀) account of
; Compose : Various Symbols
compose.item["sa"] := "{u+2100}" ; (℀) account of
-compose.item["sb"] := "{u+203d}" ; (‽) interrobang
-compose.item["sB"] := "{u+2e18}" ; (⸘) inverted interrobang
compose.item["sc"] := "{u+2105}" ; (℅) care of
compose.item["sd"] := "{u+22c4}" ; (⋄) diamond operator
compose.item["se"] := "{u+212e}" ; (℮) estimated symbol
compose.item["sc"] := "{u+2105}" ; (℅) care of
compose.item["sd"] := "{u+22c4}" ; (⋄) diamond operator
compose.item["se"] := "{u+212e}" ; (℮) estimated symbol
compose.item["AE"] := "{u+00c6}" ; (Æ) letter AE
compose.item["dh"] := "{u+00f0}" ; (ð) small letter eth
compose.item["DH"] := "{u+00d0}" ; (Ð) capital letter eth
compose.item["AE"] := "{u+00c6}" ; (Æ) letter AE
compose.item["dh"] := "{u+00f0}" ; (ð) small letter eth
compose.item["DH"] := "{u+00d0}" ; (Ð) capital letter eth
+compose.item["ee"] := "{u+0259}" ; (ə) small letter schwa
+compose.item["EE"] := "{u+018f}" ; (Ə) capital letter schwa
compose.item["fs"] := "{u+017f}" ; (ſ) small letter long s
compose.item["ij"] := "{u+0133}" ; (ij) ligature ij
compose.item["IJ"] := "{u+0132}" ; (IJ) ligature IJ
compose.item["fs"] := "{u+017f}" ; (ſ) small letter long s
compose.item["ij"] := "{u+0133}" ; (ij) ligature ij
compose.item["IJ"] := "{u+0132}" ; (IJ) ligature IJ
compose.item["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
compose.item["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark
compose.item["??"] := "{u+00bf}" ; (¿) inverted question mark
compose.item["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
compose.item["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark
compose.item["??"] := "{u+00bf}" ; (¿) inverted question mark
+compose.item["!?"] := "{u+203d}" ; (‽) interrobang
+compose.item["?!"] := "{u+2e18}" ; (⸘) inverted interrobang
compose.item["oc"] := "{u+00a9}" ; (©) copyright sign
compose.item["(c"] := "{u+00a9}" ; (©) copyright sign
compose.item["op"] := "{u+2117}" ; (℗) sound recording copyright
compose.item["oc"] := "{u+00a9}" ; (©) copyright sign
compose.item["(c"] := "{u+00a9}" ; (©) copyright sign
compose.item["op"] := "{u+2117}" ; (℗) sound recording copyright
compose.item[";h"] := "{u+2043}" ; (⁃) hyphen bullet
compose.item[";t"] := "{u+2023}" ; (‣) triangular bullet
compose.item[";;"] := "{u+2022}" ; (•) bullet
compose.item[";h"] := "{u+2043}" ; (⁃) hyphen bullet
compose.item[";t"] := "{u+2023}" ; (‣) triangular bullet
compose.item[";;"] := "{u+2022}" ; (•) bullet
+compose.item[":("] := "{u+2639}" ; (☹) white frowning face
+compose.item[":)"] := "{u+263a}" ; (☺) white smiling face
+compose.item[";)"] := "{u+263b}" ; (☻) black smiling face
+compose.item["<3"] := "{u+2665}" ; (♥) black heart suit
compose.item["[]"] := "{u+2610}" ; (☐) ballot box
compose.item["[v"] := "{u+2611}" ; (☑) ballot box with check
compose.item["[y"] := "{u+2611}" ; (☑) ballot box with check
compose.item["[]"] := "{u+2610}" ; (☐) ballot box
compose.item["[v"] := "{u+2611}" ; (☑) ballot box with check
compose.item["[y"] := "{u+2611}" ; (☑) ballot box with check
>!sc056:: ; Right Alt + ISO Key
<^>!sc029:: ; AltGr + Grave Accent
<^>!sc056:: ; AltGr + ISO Key
>!sc056:: ; Right Alt + ISO Key
<^>!sc029:: ; AltGr + Grave Accent
<^>!sc056:: ; AltGr + ISO Key
- keys := InputHook("L2", gEndKeys)
- keys.Start()
- keys.Wait()
- Send % compose.item[keys.Input]
+ ih := InputHook("L2", gEndKeys)
+ ih.Start(), ih.Wait()
+ Send % compose.item[ih.Input]
-; UltimateKEYS (for AutoHotkey v2).ahk - 2025-02-06
+; UltimateKEYS (for AutoHotkey v2).ahk - 2025-02-10
; Website : https://pieter-degroote.github.io/UltimateKEYS/
; Website : https://pieter-degroote.github.io/UltimateKEYS/
compose["bD"] := "{u+0189}" ; (Ɖ) capital letter African D
compose["be"] := "{u+0115}" ; (ĕ) e with breve
compose["bE"] := "{u+0114}" ; (Ĕ) E with breve
compose["bD"] := "{u+0189}" ; (Ɖ) capital letter African D
compose["be"] := "{u+0115}" ; (ĕ) e with breve
compose["bE"] := "{u+0114}" ; (Ĕ) E with breve
-compose["bf"] := "{u+0259}" ; (ə) small letter schwa (Azerbaijani)
-compose["bF"] := "{u+018f}" ; (Ə) capital letter schwa (Azerbaijani)
compose["bg"] := "{u+011f}" ; (ğ) g with breve
compose["bG"] := "{u+011e}" ; (Ğ) G with breve
compose["bi"] := "{u+012d}" ; (ĭ) i with breve
compose["bg"] := "{u+011f}" ; (ğ) g with breve
compose["bG"] := "{u+011e}" ; (Ğ) G with breve
compose["bi"] := "{u+012d}" ; (ĭ) i with breve
; Compose : Various Symbols
compose["sa"] := "{u+2100}" ; (℀) account of
; Compose : Various Symbols
compose["sa"] := "{u+2100}" ; (℀) account of
-compose["sb"] := "{u+203d}" ; (‽) interrobang
-compose["sB"] := "{u+2e18}" ; (⸘) inverted interrobang
compose["sc"] := "{u+2105}" ; (℅) care of
compose["sd"] := "{u+22c4}" ; (⋄) diamond operator
compose["se"] := "{u+212e}" ; (℮) estimated symbol
compose["sc"] := "{u+2105}" ; (℅) care of
compose["sd"] := "{u+22c4}" ; (⋄) diamond operator
compose["se"] := "{u+212e}" ; (℮) estimated symbol
compose["AE"] := "{u+00c6}" ; (Æ) letter AE
compose["dh"] := "{u+00f0}" ; (ð) small letter eth
compose["DH"] := "{u+00d0}" ; (Ð) capital letter eth
compose["AE"] := "{u+00c6}" ; (Æ) letter AE
compose["dh"] := "{u+00f0}" ; (ð) small letter eth
compose["DH"] := "{u+00d0}" ; (Ð) capital letter eth
+compose["ee"] := "{u+0259}" ; (ə) small letter schwa
+compose["EE"] := "{u+018f}" ; (Ə) capital letter schwa
compose["fs"] := "{u+017f}" ; (ſ) small letter long s
compose["ij"] := "{u+0133}" ; (ij) ligature ij
compose["IJ"] := "{u+0132}" ; (IJ) ligature IJ
compose["fs"] := "{u+017f}" ; (ſ) small letter long s
compose["ij"] := "{u+0133}" ; (ij) ligature ij
compose["IJ"] := "{u+0132}" ; (IJ) ligature IJ
compose["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
compose["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark
compose["??"] := "{u+00bf}" ; (¿) inverted question mark
compose["o-"] := "{u+00ba}" ; (º) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)
compose["!!"] := "{u+00a1}" ; (¡) inverted exclamation mark
compose["??"] := "{u+00bf}" ; (¿) inverted question mark
+compose["!?"] := "{u+203d}" ; (‽) interrobang
+compose["?!"] := "{u+2e18}" ; (⸘) inverted interrobang
compose["oc"] := "{u+00a9}" ; (©) copyright sign
compose["(c"] := "{u+00a9}" ; (©) copyright sign
compose["op"] := "{u+2117}" ; (℗) sound recording copyright
compose["oc"] := "{u+00a9}" ; (©) copyright sign
compose["(c"] := "{u+00a9}" ; (©) copyright sign
compose["op"] := "{u+2117}" ; (℗) sound recording copyright
compose[";h"] := "{u+2043}" ; (⁃) hyphen bullet
compose[";t"] := "{u+2023}" ; (‣) triangular bullet
compose[";;"] := "{u+2022}" ; (•) bullet
compose[";h"] := "{u+2043}" ; (⁃) hyphen bullet
compose[";t"] := "{u+2023}" ; (‣) triangular bullet
compose[";;"] := "{u+2022}" ; (•) bullet
+compose[":("] := "{u+2639}" ; (☹) white frowning face
+compose[":)"] := "{u+263a}" ; (☺) white smiling face
+compose[";)"] := "{u+263b}" ; (☻) black smiling face
+compose["<3"] := "{u+2665}" ; (♥) black heart suit
compose["[]"] := "{u+2610}" ; (☐) ballot box
compose["[v"] := "{u+2611}" ; (☑) ballot box with check
compose["[y"] := "{u+2611}" ; (☑) ballot box with check
compose["[]"] := "{u+2610}" ; (☐) ballot box
compose["[v"] := "{u+2611}" ; (☑) ballot box with check
compose["[y"] := "{u+2611}" ; (☑) ballot box with check
>!sc056:: ; Right Alt + ISO Key
<^>!sc029:: ; AltGr + Grave Accent
<^>!sc056:: { ; AltGr + ISO Key
>!sc056:: ; Right Alt + ISO Key
<^>!sc029:: ; AltGr + Grave Accent
<^>!sc056:: { ; AltGr + ISO Key
- keys := InputHook("L2", gEndKeys)
- keys.Start()
- keys.Wait()
- if compose.Has(keys.Input)
- Send compose[keys.Input]
+ ih := InputHook("L2", gEndKeys)
+ ih.Start(), ih.Wait()
+ if compose.Has(ih.Input)
+ Send compose[ih.Input]