keyboard/ahk/acp-keyboard.ahk
2024-09-17 13:21:38 +01:00

644 lines
10 KiB
AutoHotkey
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#Requires AutoHotkey v2.0
; Disable the Alt+Shift language-switch shortcut, run the following:
; REG ADD "HKEY_CURRENT_USER\Keyboard Layout\Toggle" /v "Hotkey" /t REG_SZ /d "3" /f
; REG ADD "HKEY_CURRENT_USER\Keyboard Layout\Toggle" /v "Language Hotkey" /t REG_SZ /d "3" /f
; REG ADD "HKEY_CURRENT_USER\Keyboard Layout\Toggle" /v "Layout Hotkey" /t REG_SZ /d "3" /f
end_keys := "{esc},{tab},{enter},{backspace},{delete},{insert},{home},{end},{pgup},{pgdn},{up},{down},{left},{right}"
dead_acute := Map.Call(
" ", "{U+0027}",
"A", "{U+00C1}",
"a", "{U+00E1}",
"E", "{U+00C9}",
"e", "{U+00E9}",
"I", "{U+00CD}",
"i", "{U+00ED}",
"O", "{U+00D3}",
"o", "{U+00F3}",
"U", "{U+00DA}",
"u", "{U+00FA}",
"W", "{U+1E82}",
"w", "{U+1E83}",
"Y", "{U+00DD}",
"y", "{U+00FD}")
dead_circumflex := Map.Call(
" ", "{U+005E}",
"A", "{U+00C2}",
"a", "{U+00E2}",
"E", "{U+00CA}",
"e", "{U+00EA}",
"I", "{U+00CE}",
"i", "{U+00EE}",
"O", "{U+00D4}",
"o", "{U+00F4}",
"U", "{U+00DB}",
"u", "{U+00FB}",
"W", "{U+0174}",
"w", "{U+0175}",
"Y", "{U+0176}",
"y", "{U+0177}")
dead_diaeresis := Map.Call(
" ", "{U+0022}",
"A", "{U+00C4}",
"a", "{U+00E4}",
"E", "{U+00CB}",
"e", "{U+00EB}",
"I", "{U+00CF}",
"i", "{U+00EF}",
"O", "{U+00D6}",
"o", "{U+00F6}",
"U", "{U+00DC}",
"u", "{U+00FC}",
"W", "{U+1E84}",
"w", "{U+1E85}",
"Y", "{U+0178}",
"y", "{U+00FF}")
dead_grave := Map.Call(
" ", "{U+0060}",
"A", "{U+00C0}",
"a", "{U+00E0}",
"E", "{U+00C8}",
"e", "{U+00E8}",
"I", "{U+00CC}",
"i", "{U+00EC}",
"O", "{U+00D2}",
"o", "{U+00F2}",
"U", "{U+00D9}",
"u", "{U+00F9}",
"W", "{U+1E80}",
"w", "{U+1E81}",
"Y", "{U+1EF2}",
"y", "{U+1EF3}")
dead_macron := Map.Call(
" ", "{U+00AF}",
"A", "{U+0100}",
"a", "{U+0101}",
"E", "{U+0112}",
"e", "{U+0113}",
"I", "{U+012A}",
"i", "{U+012B}",
"O", "{U+014C}",
"o", "{U+014D}",
"U", "{U+016A}",
"u", "{U+016B}",
"Y", "{U+0232}",
"y", "{U+0233}")
; E00 - SC029
; ⁻
>!SC029::Send "{U+207B}"
<^>!SC029::Send "{U+207B}"
; ≈
>!+SC029::Send "{U+2248}"
<^>!+SC029::Send "{U+2248}"
; E01 - SC002
; ¹
>!SC002::Send "{U+00B9}"
<^>!SC002::Send "{U+00B9}"
; ¡
>!+SC002::Send "{U+00A1}"
<^>!+SC002::Send "{U+00A1}"
; E02 - SC003
; ²
>!SC003::Send "{U+00B2}"
<^>!SC003::Send "{U+00B2}"
; ©
>!+SC003::Send "{U+00A9}"
<^>!+SC003::Send "{U+00A9}"
; E03 - SC004
; ³
>!SC004::Send "{U+00B3}"
<^>!SC004::Send "{U+00B3}"
; £
>!+SC004::Send "{U+00A3}"
<^>!+SC004::Send "{U+00A3}"
; E04 - SC005
; ¢
>!SC005::Send "{U+00A2}"
<^>!SC005::Send "{U+00A2}"
; ℅
>!+SC005::Send "{U+2105}"
<^>!+SC005::Send "{U+2105}"
; E05 - SC006
; €
>!SC006::Send "{U+20AC}"
<^>!SC006::Send "{U+20AC}"
; ‰
>!+SC006::Send "{U+2030}"
<^>!+SC006::Send "{U+2030}"
; E06 - SC007
; √
>!SC007::Send "{U+221A}"
<^>!SC007::Send "{U+221A}"
; ✓
>!+SC007::Send "{U+2713}"
<^>!+SC007::Send "{U+2713}"
; E07 - SC008
; ⁊
>!SC008::Send "{U+204A}"
<^>!SC008::Send "{U+204A}"
; ✗
>!+SC008::Send "{U+2717}"
<^>!+SC008::Send "{U+2717}"
; E08 - SC009
; °
>!SC009::Send "{U+00B0}"
<^>!SC009::Send "{U+00B0}"
; •
>!+SC009::Send "{U+2022}"
<^>!+SC009::Send "{U+2022}"
; E09 - SC00A
; ª
>!SC00A::Send "{U+00AA}"
<^>!SC00A::Send "{U+00AA}"
;
>!+SC00A::Send ""
<^>!+SC00A::Send ""
; E10 - SC00B
; º
>!SC00B::Send "{U+00BA}"
<^>!SC00B::Send "{U+00BA}"
;
>!+SC00B::Send ""
<^>!+SC00B::Send ""
; E11 - SC00C
;
>!SC00C::Send "{U+2212}"
<^>!SC00C::Send "{U+2212}"
; ÷
>!+SC00C::Send "{U+00F7}"
<^>!+SC00C::Send "{U+00F7}"
; E12 - SC00D
; ×
>!SC00D::Send "{U+00D7}"
<^>!SC00D::Send "{U+00D7}"
; ≠
>!+SC00D::Send "{U+2260}"
<^>!+SC00D::Send "{U+2260}"
; SC00E (Backspace)
;
>!SC00E::Send "{backspace}"
<^>!SC00E::Send "{backspace}"
;
>!+SC00E::Send "{backspace}"
<^>!+SC00E::Send "{backspace}"
; D01 - SC010
; à
>!SC010::Send "{U+00E0}"
<^>!SC010::Send "{U+00E0}"
; À
>!+SC010::Send "{U+00C0}"
<^>!+SC010::Send "{U+00C0}"
; D02 - SC011
; é
>!SC011::Send "{U+00E9}"
<^>!SC011::Send "{U+00E9}"
; É
>!+SC011::Send "{U+00C9}"
<^>!+SC011::Send "{U+00C9}"
; D03 - SC012
; ë
>!SC012::Send "{U+00EB}"
<^>!SC012::Send "{U+00EB}"
; Ë
>!+SC012::Send "{U+00CB}"
<^>!+SC012::Send "{U+00CB}"
; D04 - SC013
; è
>!SC013::Send "{U+00E8}"
<^>!SC013::Send "{U+00E8}"
; È
>!+SC013::Send "{U+00C8}"
<^>!+SC013::Send "{U+00C8}"
; D05 - SC014
; ®
>!SC014::Send "{U+00AE}"
<^>!SC014::Send "{U+00AE}"
; ™
>!+SC014::Send "{U+2122}"
<^>!+SC014::Send "{U+2122}"
; D06 - SC015
; û
>!SC015::Send "{U+00FB}"
<^>!SC015::Send "{U+00FB}"
; Û
>!+SC015::Send "{U+00DB}"
<^>!+SC015::Send "{U+00DB}"
; D07 - SC016
; ü
>!SC016::Send "{U+00FC}"
<^>!SC016::Send "{U+00FC}"
; Ü
>!+SC016::Send "{U+00DC}"
<^>!+SC016::Send "{U+00DC}"
; D08 - SC017
; ï
>!SC017::Send "{U+00EF}"
<^>!SC017::Send "{U+00EF}"
; Ï
>!+SC017::Send "{U+00CF}"
<^>!+SC017::Send "{U+00CF}"
; D09 - SC018
; ö
>!SC018::Send "{U+00F6}"
<^>!SC018::Send "{U+00F6}"
; Ö
>!+SC018::Send "{U+00D6}"
<^>!+SC018::Send "{U+00D6}"
; D10 - SC019
; ¶
>!SC019::Send "{U+00B6}"
<^>!SC019::Send "{U+00B6}"
; §
>!+SC019::Send "{U+00A7}"
<^>!+SC019::Send "{U+00A7}"
; D11 - SC01A
;
>!SC01A::Send "{U+2018}"
<^>!SC01A::Send "{U+2018}"
; “
>!+SC01A::Send "{U+201C}"
<^>!+SC01A::Send "{U+201C}"
; D12 - SC01B
;
>!SC01B::Send "{U+2019}"
<^>!SC01B::Send "{U+2019}"
; ”
>!+SC01B::Send "{U+201D}"
<^>!+SC01B::Send "{U+201D}"
; C01 - SC01E
; ä
>!SC01E::Send "{U+00E4}"
<^>!SC01E::Send "{U+00E4}"
; Ä
>!+SC01E::Send "{U+00C4}"
<^>!+SC01E::Send "{U+00C4}"
; C02 - SC01F
; ß
>!SC01F::Send "{U+00DF}"
<^>!SC01F::Send "{U+00DF}"
; ẞ
>!+SC01F::Send "{U+1E9E}"
<^>!+SC01F::Send "{U+1E9E}"
; C03 - SC020
; ¨◌
>!SC020::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_diaeresis.Has(deadac.Input)) {
Send dead_diaeresis[deadac.Input]
} else {
Send deadac.Input
}
}
<^>!SC020::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_diaeresis.Has(deadac.Input)) {
Send dead_diaeresis[deadac.Input]
} else {
Send deadac.Input
}
}
; ″
>!+SC020::Send "{U+2033}"
<^>!+SC020::Send "{U+2033}"
; C04 - SC021
; ´◌
>!SC021::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_acute.Has(deadac.Input)) {
Send dead_acute[deadac.Input]
} else {
Send deadac.Input
}
}
<^>!SC021::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_acute.Has(deadac.Input)) {
Send dead_acute[deadac.Input]
} else {
Send deadac.Input
}
}
;
>!+SC021::Send "{U+2032}"
<^>!+SC021::Send "{U+2032}"
; C05 - SC022
; ¯◌
>!SC022::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_macron.Has(deadac.Input)) {
Send dead_macron[deadac.Input]
} else {
Send deadac.Input
}
}
<^>!SC022::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_macron.Has(deadac.Input)) {
Send dead_macron[deadac.Input]
} else {
Send deadac.Input
}
}
; «
>!+SC022::Send "{U+00AB}"
<^>!+SC022::Send "{U+00AB}"
; C06 - SC023
;
>!SC023::Send ""
<^>!SC023::Send ""
; »
>!+SC023::Send "{U+00BB}"
<^>!+SC023::Send "{U+00BB}"
; C07 - SC024
; `◌
>!SC024::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_grave.Has(deadac.Input)) {
Send dead_grave[deadac.Input]
} else {
Send deadac.Input
}
}
<^>!SC024::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_grave.Has(deadac.Input)) {
Send dead_grave[deadac.Input]
} else {
Send deadac.Input
}
}
;
>!+SC024::Send "{U+2039}"
<^>!+SC024::Send "{U+2039}"
; C08 - SC025
; ^◌
>!SC025::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_circumflex.Has(deadac.Input)) {
Send dead_circumflex[deadac.Input]
} else {
Send deadac.Input
}
}
<^>!SC025::{
deadac := InputHook("L1 C", end_keys)
deadac.Start()
deadac.Wait()
if (dead_circumflex.Has(deadac.Input)) {
Send dead_circumflex[deadac.Input]
} else {
Send deadac.Input
}
}
;
>!+SC025::Send "{U+203A}"
<^>!+SC025::Send "{U+203A}"
; C09 - SC026
; ô
>!SC026::Send "{U+00F4}"
<^>!SC026::Send "{U+00F4}"
; Ô
>!+SC026::Send "{U+00D4}"
<^>!+SC026::Send "{U+00D4}"
; C10 - SC027
; ;
>!SC027::Send "{U+003B}"
<^>!SC027::Send "{U+003B}"
; :
>!+SC027::Send "{U+003A}"
<^>!+SC027::Send "{U+003A}"
; C11 - SC028
;
>!SC028::Send "{U+201A}"
<^>!SC028::Send "{U+201A}"
; „
>!+SC028::Send "{U+201E}"
<^>!+SC028::Send "{U+201E}"
; C12 - SC02B
;
>!SC02B::Send ""
<^>!SC02B::Send ""
;
>!+SC02B::Send ""
<^>!+SC02B::Send ""
; B00 - SC056
; ê
>!SC056::Send "{U+00EA}"
<^>!SC056::Send "{U+00EA}"
; Ê
>!+SC056::Send "{U+00CA}"
<^>!+SC056::Send "{U+00CA}"
; B01 - SC02C
; æ
>!SC02C::Send "{U+00E6}"
<^>!SC02C::Send "{U+00E6}"
; Æ
>!+SC02C::Send "{U+00C6}"
<^>!+SC02C::Send "{U+00C6}"
; B02 - SC02D
; œ
>!SC02D::Send "{U+0153}"
<^>!SC02D::Send "{U+0153}"
; Œ
>!+SC02D::Send "{U+0152}"
<^>!+SC02D::Send "{U+0152}"
; B03 - SC02E
; ç
>!SC02E::Send "{U+00E7}"
<^>!SC02E::Send "{U+00E7}"
; Ç
>!+SC02E::Send "{U+00C7}"
<^>!+SC02E::Send "{U+00C7}"
; B04 - SC02F
; —
>!SC02F::Send "{U+2014}"
<^>!SC02F::Send "{U+2014}"
;
>!+SC02F::Send ""
<^>!+SC02F::Send ""
; B05 - SC030
;
>!SC030::Send "{U+2013}"
<^>!SC030::Send "{U+2013}"
;
>!+SC030::Send "{U+2011}"
<^>!+SC030::Send "{U+2011}"
; B06 - SC031
; ñ
>!SC031::Send "{U+00F1}"
<^>!SC031::Send "{U+00F1}"
; Ñ
>!+SC031::Send "{U+00D1}"
<^>!+SC031::Send "{U+00D1}"
; B07 - SC032
; μ
>!SC032::Send "{U+03BC}"
<^>!SC032::Send "{U+03BC}"
; Ω
>!+SC032::Send "{U+03A9}"
<^>!+SC032::Send "{U+03A9}"
; B08 - SC033
; …
>!SC033::Send "{U+2026}"
<^>!SC033::Send "{U+2026}"
; ≤
>!+SC033::Send "{U+2264}"
<^>!+SC033::Send "{U+2264}"
; B09 - SC034
; ⋅
>!SC034::Send "{U+22C5}"
<^>!SC034::Send "{U+22C5}"
; ≥
>!+SC034::Send "{U+2265}"
<^>!+SC034::Send "{U+2265}"
; B10 - SC035
; ±
>!SC035::Send "{U+00B1}"
<^>!SC035::Send "{U+00B1}"
; ¿
>!+SC035::Send "{U+00BF}"
<^>!+SC035::Send "{U+00BF}"
; SPC - SC039
; THSP
>!SC039::Send "{U+2009}"
<^>!SC039::Send "{U+2009}"
; NBSP
>!+SC039::Send "{U+00A0}"
<^>!+SC039::Send "{U+00A0}"