Skip to content

Commit

Permalink
complete the compose sequences some more
Browse files Browse the repository at this point in the history
  • Loading branch information
Jonas-commits committed Jan 27, 2021
1 parent efa7322 commit 74a2e04
Show file tree
Hide file tree
Showing 5 changed files with 1,385 additions and 1,105 deletions.
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@ This project can also be modified for other Keyboard-transforming applications,
* Download Arduino IDE https://www.arduino.cc/en/software
* **Do not** attempt to flash a sketch by selecting the "Arduino Pro Micro" in the List. It will work, but soft-brick the device for further programming.
* Use the Entry "Lily Pad USB" instead. Although this is not a Lily Pad, it shares the relevant specifications

### Mirco USB Host Shield:
* USB runs with 5V, but the board is 3.3V only and therefore has a design flaw and has to be fixed
* Furthermore, the reset pin of the shield (**Not** the reset pin of the Arduino) has to be connected to 3.3V. Unfortunately, this pin is GND in Arduino, so we cannot just set the Pin to HIGH. I went straight after following setup: https://geekhack.org/index.php?topic=80421.0 which i documented also under [here](hardware/Setup.md)

### Software
* The USB Host Shield Library has to be installed in the Arduino Library Manager
* The HID-Project Library has to be installed in the Arduino Library Manager, standard Keyboard Library is insufficient.
Expand Down Expand Up @@ -59,5 +59,7 @@ As we have full control over the LEDs without changing the actual Locking state
## Limitations:
* No universal Unicode input method which works in all applications and does not require additional software available for Windows.
* As we are using HID-Boot Protocol, only the “normal” keys on your keyboard are supported. Media Keys Readin or whatever else you have on your keyboard is not supported. However, I mapped the most important Media Keys to L4 Layer, and you can map like many other as you want if you edit the source code ☺.
* Because of storage limitations, not all possible compose combinations can be added. So far, I only compiled the Base Module. I am planning to change that to the most often used keys. I never needed entering an “ǣ” for example. You can compile the compose combinations you actually use out of the \*.module files with the included [Python-Script](src/compose_generator/generate.py)
* Because of storage limitations, only compose sequences leading to a 2-Byte Unicode-Character could be considered. The goal is to have a almost complete version as in Neo-Layout. For further storage reasons, letters with diacrical marks can only be accessed by the most common and intuitive way, using the corresponing dead key. You can compile your own compose sequences by adding them in a \*.module file and compile it to C++-Code with the included [Python-Script](src/compose_generator/generate.py)

[![Hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FJonas-commits%2FNeo-Keyboard-Adapter&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=false)](https://hits.seeyoufarm.com)

3 changes: 3 additions & 0 deletions src/compose_generator/generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,9 @@
'approxeq': 'L5, KEY_NUM_LOCK',
'emdash': 'L1, KEY_MINUS',
'endash': 'L1, KEY_MINUS',
'includedin' : 'L6, KEY_A',
'numbersign' : 'L3, KEY_Z',
'asterisk' : 'L3, KEY_G',
}


Expand Down
149 changes: 149 additions & 0 deletions src/compose_generator/misc.module
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,138 @@
<Multi_key> <exclam> <exclam> : "¡" exclamdown # INVERTED EXCLAMATION MARK
<Multi_key> <question> <question> : "¿" questiondown # INVERTED QUESTION MARK

# Currencies
<Multi_key> <C> <E> : "₠" U20a0 # EURO-CURRENCY SIGN
<Multi_key> <C> <slash> : "₡" U20a1 # COLON SIGN
<Multi_key> <slash> <C> : "₡" U20a1 # COLON SIGN
<Multi_key> <C> <r> : "₢" U20a2 # CRUZEIRO SIGN
<Multi_key> <F> <r> : "₣" U20a3 # FRENCH FRANC SIGN
<Multi_key> <L> <equal> : "₤" U20a4 # LIRA SIGN
<Multi_key> <equal> <L> : "₤" U20a4 # LIRA SIGN
<Multi_key> <m> <slash> : "₥" U20a5 # MILL SIGN
<Multi_key> <slash> <m> : "₥" U20a5 # MILL SIGN
<Multi_key> <N> <equal> : "₦" U20a6 # NAIRA SIGN
<Multi_key> <equal> <N> : "₦" U20a6 # NAIRA SIGN
<Multi_key> <P> <t> : "₧" U20a7 # PESETA SIGN
<Multi_key> <R> <s> : "₨" U20a8 # RUPEE SIGN
<Multi_key> <W> <equal> : "₩" U20a9 # WON SIGN
<Multi_key> <equal> <W> : "₩" U20a9 # WON SIGN
# "₪" U20aa NEW SHEQEL SIGN
<Multi_key> <d> <equal> : "₫" U20ab # DONG SIGN
<Multi_key> <equal> <d> : "₫" U20ab # DONG SIGN
<Multi_key> <C> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <C> : "€" EuroSign # EURO SIGN
<Multi_key> <c> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <c> : "€" EuroSign # EURO SIGN
<Multi_key> <E> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <E> : "€" EuroSign # EURO SIGN
<Multi_key> <e> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <e> : "€" EuroSign # EURO SIGN
<Multi_key> <Cyrillic_ES> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <Cyrillic_ES> : "€" EuroSign # EURO SIGN
<Multi_key> <Cyrillic_IE> <equal> : "€" EuroSign # EURO SIGN
<Multi_key> <equal> <Cyrillic_IE> : "€" EuroSign # EURO SIGN
<Multi_key> <P> <equal> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <p> <equal> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <equal> <P> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <equal> <p> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <Cyrillic_ZE> <equal> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <Cyrillic_ze> <equal> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <equal> <Cyrillic_ZE> : "₽" U20bd # ROUBLE SIGN
<Multi_key> <equal> <Cyrillic_ze> : "₽" U20bd # ROUBLE SIGN
# "₭" U20ad KIP SIGN
# "₮" U20ae TUGRIK SIGN
# "₯" U20af DRACHMA SIGN
# "₰" U20b0 GERMAN PENNY SIGN
# "₱" U20b1 PESO SIGN
# "₲" U20b2 GUARANI SIGN
# "₳" U20b3 AUSTRAL SIGN
# "₴" U20b4 HRYVNIA SIGN
# "₵" U20b5 CEDI SIGN
<Multi_key> <R> <equal> : "₹" U20b9 # INDIAN RUPEE SIGN
<Multi_key> <equal> <R> : "₹" U20b9 # INDIAN RUPEE SIGN
<Multi_key> <r> <equal> : "₹" U20b9 # INDIAN RUPEE SIGN
<Multi_key> <equal> <r> : "₹" U20b9 # INDIAN RUPEE SIGN

<Multi_key> <C> <bar> : "¢" cent # CENT SIGN
<Multi_key> <bar> <C> : "¢" cent # CENT SIGN
<Multi_key> <c> <bar> : "¢" cent # CENT SIGN
<Multi_key> <bar> <c> : "¢" cent # CENT SIGN
<Multi_key> <c> <slash> : "¢" cent # CENT SIGN
<Multi_key> <slash> <c> : "¢" cent # CENT SIGN
<Multi_key> <L> <minus> : "£" sterling # POUND SIGN
<Multi_key> <minus> <L> : "£" sterling # POUND SIGN
<Multi_key> <l> <minus> : "£" sterling # POUND SIGN
<Multi_key> <minus> <l> : "£" sterling # POUND SIGN
<Multi_key> <Y> <equal> : "¥" yen # YEN SIGN
<Multi_key> <equal> <Y> : "¥" yen # YEN SIGN
<Multi_key> <y> <equal> : "¥" yen # YEN SIGN
<Multi_key> <equal> <y> : "¥" yen # YEN SIGN
<Multi_key> <Y> <minus> : "¥" yen # YEN SIGN
<Multi_key> <minus> <Y> : "¥" yen # YEN SIGN
<Multi_key> <y> <minus> : "¥" yen # YEN SIGN
<Multi_key> <minus> <y> : "¥" yen # YEN SIGN

# Long S
<Multi_key> <f> <s> : "ſ" U017f # LATIN SMALL LETTER LONG S
<Multi_key> <f> <S> : "ſ" U017f # LATIN SMALL LETTER LONG S
<dead_abovedot> <Multi_key> <f> <s> : "ẛ" U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE
<Multi_key> <dead_abovedot> <f> <s> : "ẛ" U1e9b # LATIN SMALL LETTER LONG S WITH DOT ABOVE

# Dashes
<Multi_key> <minus> <minus> <period> : "–" U2013 # EN DASH
<Multi_key> <minus> <minus> <minus> : "—" U2014 # EM DASH

# Musical alterations
<Multi_key> <numbersign> <q> : "♩" U2669 # QUARTER NOTE
<Multi_key> <numbersign> <e> : "♪" U266a # EIGHTH NOTE
<Multi_key> <numbersign> <E> : "♫" U266b # BEAMED EIGHTH NOTES
<Multi_key> <numbersign> <S> : "♬" U266c # BEAMED SIXTEENTH NOTES
<Multi_key> <numbersign> <b> : "♭" U266d # MUSIC FLAT SIGN
<Multi_key> <numbersign> <f> : "♮" U266e # MUSIC NATURAL SIGN
<Multi_key> <numbersign> <numbersign> : "♯" U266f # MUSIC SHARP SIGN

# Other symbols
<Multi_key> <s> <o> : "§" section # SECTION SIGN
<Multi_key> <o> <s> : "§" section # SECTION SIGN
<Multi_key> <S> <O> : "§" section # SECTION SIGN
<Multi_key> <O> <S> : "§" section # SECTION SIGN
<Multi_key> <s> <exclam> : "§" section # SECTION SIGN
<Multi_key> <S> <exclam> : "§" section # SECTION SIGN
<Multi_key> <Cyrillic_pe> <Cyrillic_a> : "§" section # SECTION SIGN

<Multi_key> <o> <x> : "¤" currency # CURRENCY SIGN
<Multi_key> <x> <o> : "¤" currency # CURRENCY SIGN
<Multi_key> <o> <X> : "¤" currency # CURRENCY SIGN
<Multi_key> <X> <o> : "¤" currency # CURRENCY SIGN
<Multi_key> <O> <X> : "¤" currency # CURRENCY SIGN
<Multi_key> <X> <O> : "¤" currency # CURRENCY SIGN
<Multi_key> <O> <x> : "¤" currency # CURRENCY SIGN
<Multi_key> <x> <O> : "¤" currency # CURRENCY SIGN

<Multi_key> <P> <P> : "¶" paragraph # PILCROW SIGN

<Multi_key> <N> <o> : "№" numerosign # NUMERO SIGN
<Multi_key> <N> <O> : "№" numerosign # NUMERO SIGN
<Multi_key> <Cyrillic_EN> <Cyrillic_o> : "№" numerosign # NUMERO SIGN
<Multi_key> <Cyrillic_EN> <Cyrillic_O> : "№" numerosign # NUMERO SIGN

<Multi_key> <question> <exclam> : "⸘" U2E18 # INVERTED INTERROBANG
<Multi_key> <exclam> <question> : "‽" U203D # INTERROBANG

<Multi_key> <C> <C> <C> <P> : "☭" U262D # HAMMER AND SICKLE
<Multi_key> <O> <A> : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A


<Multi_key> <colon> <parenright> : "☺" U263A # WHITE SMILING FACE
<Multi_key> <colon> <parenleft> : "☹" U2639 # WHITE FROWNING FACE
<Multi_key> <backslash> <o> <slash> : "🙌" # PERSON RAISING BOTH HANDS IN CELEBRATION

<Multi_key> <p> <o> <o> : "💩" U1F4A9 # PILE OF POO

<Multi_key> <F> <U> : "🖕" U1F595 # REVERSED HAND WITH MIDDLE FINGER EXTENDED
<Multi_key> <L> <L> <A> <P> : "🖖" U1F596 # RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS

<Multi_key> <s> <s> : "ß" ssharp # LATIN SMALL LETTER SHARP S
<Multi_key> <S> <S> : "ẞ" U1e9e # LATIN CAPITAL LETTER SHARP S
<Multi_key> <o> <e> : "œ" oe # LATIN SMALL LIGATURE OE
Expand Down Expand Up @@ -144,3 +276,20 @@
<Multi_key> <underscore> <equal> : "₌" U208C # SUBSCRIPT EQUALS SIGN
<Multi_key> <underscore> <parenleft> : "₍" U208D # SUBSCRIPT LEFT PARENTHESIS
<Multi_key> <underscore> <parenright> : "₎" U208E # SUBSCRIPT RIGHT PARENTHESIS


<dead_circumflex> <Multi_key> <S> <M> : "℠" U2120 # SERVICE MARK
<Multi_key> <S> <M> : "℠" U2120 # SERVICE MARK
<dead_circumflex> <Multi_key> <s> <M> : "℠" U2120 # SERVICE MARK
<Multi_key> <s> <M> : "℠" U2120 # SERVICE MARK
<dead_circumflex> <Multi_key> <S> <m> : "℠" U2120 # SERVICE MARK
<Multi_key> <S> <m> : "℠" U2120 # SERVICE MARK
<dead_circumflex> <Multi_key> <s> <m> : "℠" U2120 # SERVICE MARK
<Multi_key> <s> <m> : "℠" U2120 # SERVICE MARK
<dead_circumflex> <Multi_key> <T> <M> : "™" U2122 # TRADE MARK SIGN
<Multi_key> <T> <M> : "™" U2122 # TRADE MARK SIGN
<dead_circumflex> <Multi_key> <t> <M> : "™" U2122 # TRADE MARK SIGN
<Multi_key> <t> <M> : "™" U2122 # TRADE MARK SIGN
<dead_circumflex> <Multi_key> <T> <m> : "™" U2122 # TRADE MARK SIGN
<Multi_key> <T> <m> : "™" U2122 # TRADE MARK SIGN
<dead_circumflex> <Multi_key> <t> <m> : "™" U2122 # TRADE MARK SIGN
Loading

0 comments on commit 74a2e04

Please sign in to comment.