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