Commit version 3.0
This commit is contained in:
commit
2e3c970323
8 changed files with 2868 additions and 0 deletions
20
LICENSE
Normal file
20
LICENSE
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
Copyright 2024 Anthony Perkins
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
a copy of this software and associated documentation files (the
|
||||||
|
"Software"), to deal in the Software without restriction, including
|
||||||
|
without limitation the rights to use, copy, modify, merge, publish,
|
||||||
|
distribute, sublicense, and/or sell copies of the Software, and to
|
||||||
|
permit persons to whom the Software is furnished to do so, subject to
|
||||||
|
the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included
|
||||||
|
in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
12
README.txt
Normal file
12
README.txt
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
ACP Keyboard
|
||||||
|
============
|
||||||
|
|
||||||
|
This is my custom keyboard layout. For the full spec, rationale, and images,
|
||||||
|
please see the spec file at the URL below:
|
||||||
|
|
||||||
|
https://acperkins.github.io/keyboard/spec.html
|
||||||
|
|
||||||
|
To download the Windows AutoHotKey build, see the GitHub Releases page at the
|
||||||
|
URL below:
|
||||||
|
|
||||||
|
https://github.com/acperkins/keyboard/releases
|
644
ahk/acp-keyboard.ahk
Normal file
644
ahk/acp-keyboard.ahk
Normal file
|
@ -0,0 +1,644 @@
|
||||||
|
#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+007C}"
|
||||||
|
<^>!SC029::Send "{U+007C}"
|
||||||
|
; ±
|
||||||
|
>!+SC029::Send "{U+00B1}"
|
||||||
|
<^>!+SC029::Send "{U+00B1}"
|
||||||
|
|
||||||
|
|
||||||
|
; E01 - SC002
|
||||||
|
; !
|
||||||
|
>!SC002::Send "{U+0021}"
|
||||||
|
<^>!SC002::Send "{U+0021}"
|
||||||
|
; ¡
|
||||||
|
>!+SC002::Send "{U+00A1}"
|
||||||
|
<^>!+SC002::Send "{U+00A1}"
|
||||||
|
|
||||||
|
|
||||||
|
; E02 - SC003
|
||||||
|
; ¢
|
||||||
|
>!SC003::Send "{U+00A2}"
|
||||||
|
<^>!SC003::Send "{U+00A2}"
|
||||||
|
; «
|
||||||
|
>!+SC003::Send "{U+00AB}"
|
||||||
|
<^>!+SC003::Send "{U+00AB}"
|
||||||
|
|
||||||
|
|
||||||
|
; E03 - SC004
|
||||||
|
; £
|
||||||
|
^>SC004::Send "{U+00A3}"
|
||||||
|
<^>!SC004::Send "{U+00A3}"
|
||||||
|
; »
|
||||||
|
>!+SC004::Send "{U+00BB}"
|
||||||
|
<^>!+SC004::Send "{U+00BB}"
|
||||||
|
|
||||||
|
|
||||||
|
; E04 - SC005
|
||||||
|
; €
|
||||||
|
>!SC005::Send "{U+20AC}"
|
||||||
|
<^>!SC005::Send "{U+20AC}"
|
||||||
|
; ‹
|
||||||
|
>!+SC005::Send "{U+2039}"
|
||||||
|
<^>!+SC005::Send "{U+2039}"
|
||||||
|
|
||||||
|
|
||||||
|
; E05 - SC006
|
||||||
|
; ‰
|
||||||
|
>!SC006::Send "{U+2030}"
|
||||||
|
<^>!SC006::Send "{U+2030}"
|
||||||
|
; ›
|
||||||
|
>!+SC006::Send "{U+203A}"
|
||||||
|
<^>!+SC006::Send "{U+203A}"
|
||||||
|
|
||||||
|
|
||||||
|
; 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 "{U+00D7}"
|
||||||
|
<^>!+SC00B::Send "{U+00D7}"
|
||||||
|
|
||||||
|
|
||||||
|
; E11 - SC00C
|
||||||
|
; −
|
||||||
|
>!SC00C::Send "{U+2212}"
|
||||||
|
<^>!SC00C::Send "{U+2212}"
|
||||||
|
; ÷
|
||||||
|
>!+SC00C::Send "{U+00F7}"
|
||||||
|
<^>!+SC00C::Send "{U+00F7}"
|
||||||
|
|
||||||
|
|
||||||
|
; E12 - SC00D
|
||||||
|
; ≈
|
||||||
|
>!SC00D::Send "{U+2248}"
|
||||||
|
<^>!SC00D::Send "{U+2248}"
|
||||||
|
; ≠
|
||||||
|
>!+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+00A9}"
|
||||||
|
<^>!+SC014::Send "{U+00A9}"
|
||||||
|
|
||||||
|
|
||||||
|
; 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+201C}"
|
||||||
|
<^>!SC01A::Send "{U+201C}"
|
||||||
|
; „
|
||||||
|
>!+SC01A::Send "{U+201E}"
|
||||||
|
<^>!+SC01A::Send "{U+201E}"
|
||||||
|
|
||||||
|
|
||||||
|
; D12 - SC01B
|
||||||
|
; ”
|
||||||
|
>!SC01B::Send "{U+201D}"
|
||||||
|
<^>!SC01B::Send "{U+201D}"
|
||||||
|
; ‚
|
||||||
|
>!+SC01B::Send "{U+201A}"
|
||||||
|
<^>!+SC01B::Send "{U+201A}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; 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 ""
|
||||||
|
<^>!+SC022::Send ""
|
||||||
|
|
||||||
|
|
||||||
|
; C06 - SC023
|
||||||
|
;
|
||||||
|
>!SC023::Send ""
|
||||||
|
<^>!SC023::Send ""
|
||||||
|
;
|
||||||
|
>!+SC023::Send ""
|
||||||
|
<^>!+SC023::Send ""
|
||||||
|
|
||||||
|
|
||||||
|
; 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 ""
|
||||||
|
<^>!+SC024::Send ""
|
||||||
|
|
||||||
|
|
||||||
|
; 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 ""
|
||||||
|
<^>!+SC025::Send ""
|
||||||
|
|
||||||
|
|
||||||
|
; 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+2019}"
|
||||||
|
<^>!SC028::Send "{U+2019}"
|
||||||
|
; ‘
|
||||||
|
>!+SC028::Send "{U+2018}"
|
||||||
|
<^>!+SC028::Send "{U+2018}"
|
||||||
|
|
||||||
|
|
||||||
|
; C12 - SC02B
|
||||||
|
; \
|
||||||
|
>!SC02B::Send "{U+005C}"
|
||||||
|
<^>!SC02B::Send "{U+005C}"
|
||||||
|
;
|
||||||
|
>!+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 ""
|
||||||
|
<^>!+SC030::Send ""
|
||||||
|
|
||||||
|
|
||||||
|
; B06 - SC031
|
||||||
|
; ñ
|
||||||
|
>!SC031::Send "{U+00F1}"
|
||||||
|
<^>!SC031::Send "{U+00F1}"
|
||||||
|
; Ñ
|
||||||
|
>!+SC031::Send "{U+00D1}"
|
||||||
|
<^>!+SC031::Send "{U+00D1}"
|
||||||
|
|
||||||
|
|
||||||
|
; B07 - SC032
|
||||||
|
; µ
|
||||||
|
>!SC032::Send "{U+00B5}"
|
||||||
|
<^>!SC032::Send "{U+00B5}"
|
||||||
|
; ™
|
||||||
|
>!+SC032::Send "{U+2122}"
|
||||||
|
<^>!+SC032::Send "{U+2122}"
|
||||||
|
|
||||||
|
|
||||||
|
; 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+003F}"
|
||||||
|
<^>!SC035::Send "{U+003F}"
|
||||||
|
; ¿
|
||||||
|
>!+SC035::Send "{U+00BF}"
|
||||||
|
<^>!+SC035::Send "{U+00BF}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; SPC - SC039
|
||||||
|
; NNBSP
|
||||||
|
>!SC039::Send "{U+202F}"
|
||||||
|
<^>!SC039::Send "{U+202F}"
|
||||||
|
; NBSP
|
||||||
|
>!+SC039::Send "{U+00A0}"
|
||||||
|
<^>!+SC039::Send "{U+00A0}"
|
8
xkb/install.sh
Executable file
8
xkb/install.sh
Executable file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/xkb/rules"
|
||||||
|
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/xkb/symbols"
|
||||||
|
cp ./rules/evdev "${XDG_CONFIG_HOME:-$HOME/.config}/xkb/rules/evdev"
|
||||||
|
cp ./rules/evdev.xml "${XDG_CONFIG_HOME:-$HOME/.config}/xkb/rules/evdev.xml"
|
||||||
|
cp ./symbols/acp "${XDG_CONFIG_HOME:-$HOME/.config}/xkb/symbols/acp"
|
5
xkb/rules/evdev
Normal file
5
xkb/rules/evdev
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
! option = symbols
|
||||||
|
acp = +acp(basic)
|
||||||
|
acp = +acp(us)
|
||||||
|
|
||||||
|
! include %S/evdev
|
28
xkb/rules/evdev.xml
Normal file
28
xkb/rules/evdev.xml
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE xkbConfigRegistry SYSTEM "xkb.dtd">
|
||||||
|
<xkbConfigRegistry version="1.1">
|
||||||
|
<layoutList>
|
||||||
|
<layout>
|
||||||
|
<configItem>
|
||||||
|
<name>acp</name>
|
||||||
|
<shortDescription>acp</shortDescription>
|
||||||
|
<description>ACP</description>
|
||||||
|
<countryList>
|
||||||
|
<iso3166Id>GB</iso3166Id>
|
||||||
|
<iso3166Id>US</iso3166Id>
|
||||||
|
</countryList>
|
||||||
|
<languageList>
|
||||||
|
<iso639Id>eng</iso639Id>
|
||||||
|
</languageList>
|
||||||
|
</configItem>
|
||||||
|
<variantList>
|
||||||
|
<variant>
|
||||||
|
<configItem>
|
||||||
|
<name>us</name>
|
||||||
|
<description>ACP (US)</description>
|
||||||
|
</configItem>
|
||||||
|
</variant>
|
||||||
|
</variantList>
|
||||||
|
</layout>
|
||||||
|
</layoutList>
|
||||||
|
</xkbConfigRegistry>
|
76
xkb/symbols/acp
Normal file
76
xkb/symbols/acp
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
default partial alphanumeric_keys modifier_keys
|
||||||
|
xkb_symbols "basic" {
|
||||||
|
|
||||||
|
name[Group1]= "ACP";
|
||||||
|
|
||||||
|
key <TLDE> { [ U0060, U00AC, U007C, U00B1 ] }; // ` ¬ | ±
|
||||||
|
key <AE01> { [ U0031, U0021, U0021, U00A1 ] }; // 1 ! ! ¡
|
||||||
|
key <AE02> { [ U0032, U0022, U00A2, U00AB ] }; // 2 " ¢ «
|
||||||
|
key <AE03> { [ U0033, U00A3, U00A3, U00BB ] }; // 3 £ £ »
|
||||||
|
key <AE04> { [ U0034, U0024, U20AC, U2039 ] }; // 4 $ € ‹
|
||||||
|
key <AE05> { [ U0035, U0025, U2030, U203A ] }; // 5 % ‰ ›
|
||||||
|
key <AE06> { [ U0036, U005E, U221A, U2713 ] }; // 6 ^ √ ✓
|
||||||
|
key <AE07> { [ U0037, U0026, U204A, U2717 ] }; // 7 & ⁊ ✗
|
||||||
|
key <AE08> { [ U0038, U002A, U00B0, U2022 ] }; // 8 * ° •
|
||||||
|
key <AE09> { [ U0039, U0028, U00AA, NoSymbol ] }; // 9 ( ª
|
||||||
|
key <AE10> { [ U0030, U0029, U00BA, U00D7 ] }; // 0 ) º ×
|
||||||
|
key <AE11> { [ U002D, U005F, U2212, U00F7 ] }; // - _ − ÷
|
||||||
|
key <AE12> { [ U003D, U002B, U2248, U2260 ] }; // + = ≈ ≠
|
||||||
|
|
||||||
|
key <AD01> { [ U0071, U0051, U00E0, U00C0 ] }; // q Q à À
|
||||||
|
key <AD02> { [ U0077, U0057, U00E9, U00C9 ] }; // w W é É
|
||||||
|
key <AD03> { [ U0065, U0045, U00EB, U00CB ] }; // e E ë Ë
|
||||||
|
key <AD04> { [ U0072, U0052, U00E8, U00C8 ] }; // r R è È
|
||||||
|
key <AD05> { [ U0074, U0054, U00AE, U00A9 ] }; // t T ® ©
|
||||||
|
key <AD06> { [ U0079, U0059, U00FB, U00DB ] }; // y Y û Û
|
||||||
|
key <AD07> { [ U0075, U0055, U00FC, U00DC ] }; // u U ü Ü
|
||||||
|
key <AD08> { [ U0069, U0049, U00EF, U00CF ] }; // i I ï Ï
|
||||||
|
key <AD09> { [ U006F, U004F, U00F6, U00D6 ] }; // o O ö Ö
|
||||||
|
key <AD10> { [ U0070, U0050, U00B6, U00A7 ] }; // p P ¶ §
|
||||||
|
key <AD11> { [ U005B, U007B, U201C, U201E ] }; // [ { “ „
|
||||||
|
key <AD12> { [ U005D, U007D, U201D, U201A ] }; // ] } ” ‚
|
||||||
|
|
||||||
|
key <AC01> { [ U0061, U0041, U00E4, U00C4 ] }; // a A ä Ä
|
||||||
|
key <AC02> { [ U0073, U0053, U00DF, U1E9E ] }; // s S ß ẞ
|
||||||
|
key <AC03> { [ U0064, U0044, dead_diaeresis, U2033 ] }; // d D ¨◌ ″
|
||||||
|
key <AC04> { [ U0066, U0046, dead_acute, U2032 ] }; // f F ´◌ ′
|
||||||
|
key <AC05> { [ U0067, U0047, dead_macron, NoSymbol ] }; // g G ¯◌
|
||||||
|
key <AC06> { [ U0068, U0048, NoSymbol, NoSymbol ] }; // h H
|
||||||
|
key <AC07> { [ U006A, U004A, dead_grave, NoSymbol ] }; // j J `◌
|
||||||
|
key <AC08> { [ U006B, U004B, dead_circumflex , NoSymbol ] }; // k K ^◌
|
||||||
|
key <AC09> { [ U006C, U004C, U00F4, U00D4 ] }; // l L ô Ô
|
||||||
|
key <AC10> { [ U003B, U003A, U003B, U003A ] }; // ; : ; :
|
||||||
|
key <AC11> { [ U0027, U0040, U2019, U2018 ] }; // ' @ ’ ‘
|
||||||
|
key <BKSL> { [ U0023, U007E, U005C, NoSymbol ] }; // # ~ \
|
||||||
|
|
||||||
|
key <LSGT> { [ U005C, U007C, U00EA, U00CA ] }; // \ | ê Ê
|
||||||
|
key <AB01> { [ U007A, U005A, U00E6, U00C6 ] }; // z Z æ Æ
|
||||||
|
key <AB02> { [ U0078, U0058, U0153, U0152 ] }; // x X œ Œ
|
||||||
|
key <AB03> { [ U0063, U0043, U00E7, U00C7 ] }; // c C ç Ç
|
||||||
|
key <AB04> { [ U0076, U0056, U2014, NoSymbol ] }; // v V —
|
||||||
|
key <AB05> { [ U0062, U0042, U2013, NoSymbol ] }; // b B –
|
||||||
|
key <AB06> { [ U006E, U004E, U00F1, U00D1 ] }; // n N ñ Ñ
|
||||||
|
key <AB07> { [ U006D, U004D, U00B5, U2122 ] }; // m M µ ™
|
||||||
|
key <AB08> { [ U002C, U003C, U2026, U2264 ] }; // , < … ≤
|
||||||
|
key <AB09> { [ U002E, U003E, U22C5, U2265 ] }; // . > ⋅ ≥
|
||||||
|
key <AB10> { [ U002F, U003F, U003F, U00BF ] }; // / ? ? ¿
|
||||||
|
|
||||||
|
key <SPCE> { [ U0020, U0020, U202F, U00A0 ] }; // [space] [space] [nnbsp] [nbsp]
|
||||||
|
|
||||||
|
include "level3(ralt_switch)"
|
||||||
|
};
|
||||||
|
|
||||||
|
default partial alphanumeric_keys modifier_keys
|
||||||
|
xkb_symbols "us" {
|
||||||
|
|
||||||
|
include "acp(basic)"
|
||||||
|
name[Group1]= "ACP (US)";
|
||||||
|
|
||||||
|
key <TLDE> { [ U0060, U007E, U007C, U00AC ] }; // ` ~ | ±
|
||||||
|
key <AE02> { [ U0032, U0040, U00A2, U00AB ] }; // 2 @ ¢ «
|
||||||
|
key <AE03> { [ U0033, U0023, U00A3, U00BB ] }; // 3 # £ »
|
||||||
|
key <AC11> { [ U0027, U0022, U2019, U2018 ] }; // ' " ’ ‘
|
||||||
|
key <BKSL> { [ U005C, U007C, U005C, NoSymbol ] }; // \ | \
|
||||||
|
|
||||||
|
include "level3(ralt_switch)"
|
||||||
|
};
|
Loading…
Reference in a new issue