forked from Github/qmk_firmware
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
a913db63aa | ||
![]() |
ced7e9a0ce | ||
![]() |
268d0efa7e | ||
![]() |
4ef2b0f818 | ||
![]() |
0c5c39c18a | ||
![]() |
92dd1b977b | ||
![]() |
d7f352de98 | ||
![]() |
19990a21a9 | ||
![]() |
3f292ec723 | ||
![]() |
eba3d68394 | ||
![]() |
224dcac08f | ||
![]() |
36f3dba195 | ||
![]() |
c0dd142d9f | ||
![]() |
59c572eaf0 | ||
![]() |
8db1be6420 |
@@ -2,24 +2,27 @@
|
||||
|
||||
These allow you to combine a modifier with a keycode. When pressed, the keydown event for the modifier, then `kc` will be sent. On release, the keyup event for `kc`, then the modifier will be sent.
|
||||
|
||||
|Key |Aliases |Description |
|
||||
|----------|-------------------------------|------------------------------------------------------|
|
||||
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|
||||
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|
||||
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|
||||
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)`|Hold Left GUI and press `kc` |
|
||||
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|
||||
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|
||||
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|
||||
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|
||||
|`SGUI(kc)`|`SCMD(kc)`, `SWIN(kc)` |Hold Left Shift and GUI and press `kc` |
|
||||
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|
||||
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|
||||
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|
||||
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|
||||
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|
||||
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|
||||
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
|
||||
|Key |Aliases |Description |
|
||||
|----------|----------------------------------|------------------------------------------------------|
|
||||
|`LCTL(kc)`|`C(kc)` |Hold Left Control and press `kc` |
|
||||
|`LSFT(kc)`|`S(kc)` |Hold Left Shift and press `kc` |
|
||||
|`LALT(kc)`|`A(kc)`, `LOPT(kc)` |Hold Left Alt and press `kc` |
|
||||
|`LGUI(kc)`|`G(kc)`, `LCMD(kc)`, `LWIN(kc)` |Hold Left GUI and press `kc` |
|
||||
|`RCTL(kc)`| |Hold Right Control and press `kc` |
|
||||
|`RSFT(kc)`| |Hold Right Shift and press `kc` |
|
||||
|`RALT(kc)`|`ROPT(kc)`, `ALGR(kc)` |Hold Right Alt and press `kc` |
|
||||
|`RGUI(kc)`|`RCMD(kc)`, `LWIN(kc)` |Hold Right GUI and press `kc` |
|
||||
|`LSG(kc)` |`SGUI(kc)`, `SCMD(kc)`, `SWIN(kc)`|Hold Left Shift and GUI and press `kc` |
|
||||
|`LAG(kc)` | |Hold Left Alt and Left GUI and press `kc` |
|
||||
|`RSG(kc)` | |Hold Right Shift and Right GUI and press `kc` |
|
||||
|`RAG(kc)` | |Hold Right Alt and Right GUI and press `kc` |
|
||||
|`LCA(kc)` | |Hold Left Control and Alt and press `kc` |
|
||||
|`LSA(kc)` | |Hold Left Shift and Left Alt and press `kc` |
|
||||
|`RSA(kc)` |`SAGR(kc)` |Hold Right Shift and Right Alt (AltGr) and press `kc` |
|
||||
|`RCS(kc)` | |Hold Right Control and Right Shift and press `kc` |
|
||||
|`LCAG(kc)`| |Hold Left Control, Alt and GUI and press `kc` |
|
||||
|`MEH(kc)` | |Hold Left Control, Shift and Alt and press `kc` |
|
||||
|`HYPR(kc)`| |Hold Left Control, Shift, Alt and GUI and press `kc` |
|
||||
|
||||
You can also chain them, for example `LCTL(LALT(KC_DEL))` or `C(A(KC_DEL))` makes a key that sends Control+Alt+Delete with a single keypress.
|
||||
|
||||
|
@@ -7,9 +7,9 @@
|
||||
[](https://github.com/qmk/qmk_firmware/pulse/monthly)
|
||||
[](https://github.com/qmk/qmk_firmware/)
|
||||
|
||||
## Qu'est-ce que QMK Firmware ?
|
||||
## Qu'est-ce que QMK Firmware?
|
||||
|
||||
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
|
||||
QMK (*Quantum Mechanical Keyboard*) est une communauté open source qui maintient le firmware QMK, la QMK Toolbox (*Boite à outil*), qmk.fm et leurs documentations. QMK Firmware est un firmware dédié aux claviers qui est basé sur [tmk\_keyboard](https://github.com/tmk/tmk_keyboard). Il offre des fonctionnalités très utiles pour les contrôleurs Atmel AVR, et, plus spécifiquement pour [les produits d'OLKB](https://olkb.com), le clavier [ErgoDox EZ](https://www.ergodox-ez.com), et pour les [produits Clueboard](https://clueboard.co/). Il prend désormais aussi en charge les processeurs ARM qui utilisent ChibiOS. Vous pouvez l'utiliser pour contrôler un clavier personnalisé soudé à la main ou alors sur un clavier avec un PCB personnalisé.
|
||||
|
||||
## Comment l'obtenir
|
||||
|
||||
@@ -23,7 +23,7 @@ Avant d'être prêt à compiler vous allez devoir [installer un environnement](f
|
||||
|
||||
make planck/rev4:default
|
||||
|
||||
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais « subprojects » ou « folder »). Cette option peut donc être omise :
|
||||
Cette commande compilera la révision `rev4` du clavier `planck` avec la disposition `default`. Notez que tous les claviers n'ont pas forcément de révisions (aussi appelées sous-projects ou dossiers, ou en anglais «subprojects» ou «folder»). Cette option peut donc être omise:
|
||||
|
||||
make preonic:default
|
||||
|
||||
|
@@ -9,7 +9,7 @@ Nous vous recommandons d'utiliser l'utilitaire [Zadig](https://zadig.akeo.ie/).
|
||||
## Installation
|
||||
|
||||
Passez votre clavier en mode bootloader, soit en appuyant sur le keycode `RESET` (qui peut se trouver dans un calque différent) ou en appuyant sur le bouton reset qui se trouve en général sous la board. Si votre clavier n'a aucune de ces options, essayez de le brancher en maintenant Escape ou Espace+`B` appuyés (voir la documentation de [Bootmagic](feature_bootmagic.md) pour plus de détails). Certaines boards utilisent [Command](feature_command.md) à la place de Bootmagic. Dans ce cas, vous pouvez entrer en mode bootloader en appuyant, à n'importe quel moment lorsque le clavier est branché, sur les combinaisons de touches Shift Gauche+Shift Droit+`B` ou Shift Gauche+Shift Droit+Escape.
|
||||
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut : Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut : Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
|
||||
Certains claviers ont des instructions spécifiques pour passer en mode bootloader. Par exemple, la touche [Bootmagic Lite]](feature_bootmagic.md#bootmagic-lite) (défaut: Échap) peut être sur une touche différente telle que Contrôle Gauche. La combinaison pour la Command (défaut: Shift Gauche+Shift Droit) peut être différente, par exemple Contrôle Gauche+Contrôle Droit. Référez-vous au fichier README de votre clavier.
|
||||
|
||||
Pour mettre un clavier en mode bootloader avec USBaspLoader, appuyez sur le bouton `RESET` tout en maintenant le bouton `BOOT`. Vous pouvez aussi maintenir le bouton `BOOT` en branchant le câble USB.
|
||||
|
||||
@@ -43,4 +43,4 @@ Cliquez dessus avec le bouton droit et sélectionner **Désinstaller le périph
|
||||
|
||||

|
||||
|
||||
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau !
|
||||
Appuyez sur **Action → Analyser les changements de hardware**. A ce stade, vous devriez pouvoir saisir à nouveau. Vérifiez dans Zadig que les périphériques utilisent bien le pilote `HidUsb`. Si c'est le cas, vous avez corrigé le problème, votre clavier devrait fonctionner à nouveau!
|
||||
|
@@ -20,7 +20,7 @@ Veuillez noter que lancer `make` avec `sudo` est généralement une **mauvaise**
|
||||
|
||||
### Règles `udev` pour Linux
|
||||
|
||||
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes :
|
||||
Sous Linux, vous aurez besoin des permissions appropriées pour accéder au MCU (le micro-contrôleur). Vous avez le choix d'utiliser `sudo` en flashant le firmware, ou placer ces fichiers dans `/etc/udev/rules.d`. Une fois ajouté, lancez les commandes suivantes:
|
||||
|
||||
```console
|
||||
sudo udevadm control --reload-rules
|
||||
|
@@ -6,13 +6,13 @@ Cette page détaille diverses questions fréquemment posées par les utilisateur
|
||||
|
||||
## `hid_listen` ne reconnaît pas de périphérique
|
||||
|
||||
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire :
|
||||
Lorsque la console de débugage sur votre périphérique n'est pas prêt, vous obtiendrez un message similaire:
|
||||
|
||||
```
|
||||
Waiting for device:.........
|
||||
```
|
||||
|
||||
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message :
|
||||
Une fois le périphérique connecté, *hid_listen* le trouve et vous obtiendrez ce message:
|
||||
|
||||
```
|
||||
Waiting for new device:.........................
|
||||
@@ -61,7 +61,7 @@ Vous ne voulez probablement pas "briquer" votre clavier, rendre impossible d'éc
|
||||
|
||||
- Si votre map de clavier n'inclut pas de RESET, pour entrer en mode DFU, vous devrez appuyer sur le bouton reset du PCB. Cela implique que vous devrez certainement dévisser certaines pièces de votre clavier pour y accéder.
|
||||
- Modifier les fichiers tmk_core / common peut rendre le clavier inutilisable
|
||||
- Si un fichier .hex trop large est la cause du problème : `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash n’aura pas été fait et le clavier restera en mode DFU.
|
||||
- Si un fichier .hex trop large est la cause du problème: `make dfu` supprime le bloc puis teste la taille (il ne fait pas les choses dans le bon ordre), ce qui provoque une erreur. En résultat, le flash n’aura pas été fait et le clavier restera en mode DFU.
|
||||
- Pour finir, notez que la taille maximale d'un fichier .hex sur un Plank est de 7000h (28672 decimal)
|
||||
|
||||
```
|
||||
@@ -118,7 +118,7 @@ Sous Windows, activez l'option `Permettre au périphérique de sortir l'ordinate
|
||||
|
||||
Appuyer sur n'importe quelle touche en mode veille devrait sortir l'ordinateur de veille.
|
||||
|
||||
## Vous utilisez un Arduino ?
|
||||
## Vous utilisez un Arduino?
|
||||
|
||||
**Faites attention au fait que le nommage des pin d'un Arduino diffère de la puce**. Par exemple, la pin `D0` n'est pas `PD0`. Vérifiez le circuit avec la fiche technique.
|
||||
|
||||
|
@@ -44,7 +44,7 @@ Le premier n'est reconnu que sur macOS, alors que le dernier, `KC_SLEP` et `KC_W
|
||||
|
||||
## Modificateur "One Shot"
|
||||
|
||||
Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex : `CEtte` à la place de `Cette`. La fonctionnalité « One shot » shift permet de corriger ça.
|
||||
Cette fonctionnalité permet de corriger un problème avec la touche Shift. En effet, il arrive de saisir plusieurs majuscules en ne voulant en saisir qu'une sur un mot. Ex: `CEtte` à la place de `Cette`. La fonctionnalité «One shot» shift permet de corriger ça.
|
||||
|
||||
https://github.com/tmk/tmk_keyboard/issues/67
|
||||
|
||||
@@ -59,7 +59,7 @@ Pour les touches de modification et les actions de calque, vous devez placer `KC
|
||||
|
||||
## Support de touche à verrouillage mécanique
|
||||
|
||||
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h` :
|
||||
Cette fonctionnalité permet l'usage de *touches à verrouillage mécanique* comme [ces interrupteurs Alps](https://deskthority.net/wiki/Alps_SKCL_Lock). Vous pouvez l'activer en ajoutant ceci à votre `config.h`:
|
||||
|
||||
```
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
@@ -27,15 +27,15 @@ Méthodes de flash compatibles :
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
|
||||
* [dfu-programmer](https://github.com/dfu-programmer/dfu-programmer) / `:dfu` avec QMK (outil en ligne de commande recommandé)
|
||||
|
||||
Ordre des actions :
|
||||
Ordre des actions:
|
||||
|
||||
1. Pressez le keycode `RESET`, ou appuyez sur le bouton physique RESET ou alors créez un contact entre RST et GND.
|
||||
2. Attendez que l'OS detecte l'appareil.
|
||||
3. Éffacez la mémoire, cela peut être fait automatiquement.
|
||||
4. Flasher le fichier .hex.
|
||||
5. Redémarrez l'appareil en mode « application », cela peut être fait automatiquement.
|
||||
5. Redémarrez l'appareil en mode «application», cela peut être fait automatiquement.
|
||||
|
||||
Alternativement :
|
||||
Alternativement:
|
||||
|
||||
make <keyboard>:<keymap>:dfu
|
||||
|
||||
@@ -48,11 +48,11 @@ QMK a un fork du bootloader LUFA DFU qui vous permet de faire un simple scan de
|
||||
#define QMK_LED E6
|
||||
#define QMK_SPEAKER C6
|
||||
|
||||
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère « bootloader » est ajoutée au nom du produit.
|
||||
Le fabricant et le nom du produit proviennent de vos définitions dans fichier `config.h`, et la chaîne de caractère «bootloader» est ajoutée au nom du produit.
|
||||
|
||||
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple : `make planck/rev4:default:bootloader`.
|
||||
Pour génerer le bootloader, utilisez la cible `bootloader`. Exemple: `make planck/rev4:default:bootloader`.
|
||||
|
||||
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple : `make planck/rev4:default:production`.
|
||||
Pour génerer un fichier .hex prêt pour la production qui contiendra tant l'application que le bootloader, utilisez la cible `production`. Exemple: `make planck/rev4:default:production`.
|
||||
|
||||
### Commandes DFU
|
||||
|
||||
@@ -67,7 +67,7 @@ Il y a plusieurs commandes DFU que vous pouvez utiliser pour flasher le firmware
|
||||
|
||||
Les cartes arduinos et leurs clones utilisent le [bootloader Caterina](https://github.com/arduino/ArduinoCore-avr/tree/master/bootloaders/caterina) (tous les claviers utilisant un Pro Micro, ou un clone). Ils utilisent aussi le protocole avr109 pour communiquer en virtuellement en série (serial en anglais). Les bootloaders comme le [A-Star](https://www.pololu.com/docs/0J61/9) sont basés sur Caterina.
|
||||
|
||||
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@@ -81,20 +81,20 @@ Pour vérifier la compatibilité avec un bootloader Caterina, vérifiez que ce b
|
||||
BOOTLOADER = caterina
|
||||
```
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandée)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) avec avr109 / `:avrdude` (Outil en ligne de commande recommandé)
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash :
|
||||
|
||||
1. Pressez la touche avec le keycode `RESET`, ou reliez les ports GND et RST. Vous n'avez que 7 secondes pour flasher une fois que l'opération a été faite.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Attendez que l'appareil redémarre automatiquement.
|
||||
|
||||
ou, utilisez :
|
||||
ou, utilisez:
|
||||
|
||||
make <keyboard>:<keymap>:avrdude
|
||||
|
||||
@@ -111,7 +111,7 @@ Il existe un certain nombre de commandes DFU que vous pouvez utiliser pour mettr
|
||||
|
||||
Halfkay est un protocole ultra-simple développé par PJRC qui utilise HID et qui est fourni avec tous les Teensys après le modèle 2.0.
|
||||
|
||||
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@@ -125,24 +125,24 @@ Pour vérifier la compatibilité avec le booloader Halfkay, vérifiez que ce blo
|
||||
BOOTLOADER = halfkay
|
||||
```
|
||||
|
||||
Flasher compatibles :
|
||||
Flasher compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recomandée)
|
||||
* [Teensy Loader](https://www.pjrc.com/teensy/loader.html) (petit utilitaire ultra simple)
|
||||
[Teensy Loader en ligne de commande](https://www.pjrc.com/teensy/loader_cli.html) (Outil en ligne de commande recommandé)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash:
|
||||
|
||||
1. Pressez la touche du keycode `RESET`, ou reliez les ports RST et GND rapidement. Vous avez ensuite 7 secondes pour réaliser le flash.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
## USBasploader
|
||||
|
||||
USBasploader est un bootloader développé par matrixstorm. Il est utilisé sur des processeurs AVR non-USB comme le ATmega328P, qui fonctionne grâce à V-USB.
|
||||
|
||||
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que ce bloc est présent dans votre fichier `rules.mk`:
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@@ -156,24 +156,24 @@ Pour vérifier la compatibilité avec le booloader USBasploader, vérifiez que c
|
||||
BOOTLOADER = USBasp
|
||||
```
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (Interface graphique recommandé)
|
||||
* [avrdude](https://www.nongnu.org/avrdude/) avec le programmeur `usbasp`.
|
||||
* [AVRDUDESS](https://github.com/zkemble/AVRDUDESS)
|
||||
|
||||
Séquence de flash :
|
||||
Séquence de flash:
|
||||
|
||||
1. Pressez la touche du keycode `RESET`, ou reliez le port de boot pendant que RST et GND snt reliés. Cela doit être fait très rapidement.
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
## BootloadHID
|
||||
|
||||
BootloadHID est un bootloader pour les microcontrôleurs AVR. L'utilitaire de téleversement ne demande pas de drivers au niveau du kernel et peut être lancé sans installer aucune DLLs.
|
||||
|
||||
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
|
||||
Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que ce bloc existe dans votre fichier `rules.mk` :
|
||||
|
||||
```make
|
||||
# Bootloader selection
|
||||
@@ -187,50 +187,50 @@ Pour vérifier la compatibilité avec le bootloader bootloadHID, vérifiez que c
|
||||
BOOTLOADER = bootloadHID
|
||||
```
|
||||
|
||||
Utilitaires de flash compatibles :
|
||||
Utilitaires de flash compatibles:
|
||||
|
||||
* [HIDBootFlash](http://vusb.wikidot.com/project:hidbootflash) (Utilitaire avec interface graphique recommandé)
|
||||
* [bootloadhid Command Line](https://www.obdev.at/products/vusb/bootloadhid.html) / `:BootloadHID` avec QMK (utilitaire en ligne de commande recommandé)
|
||||
|
||||
Séquence de flash
|
||||
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes :
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
|
||||
* Pressez la touche du keycode `RESET` (Cela ne fonctionnera pas sur certains appareils).
|
||||
* Verrouillez la touche « Salt » tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
|
||||
* Verrouillez la touche «Salt» tout en branchant le clavier (Généralement ce principe est documenté dans le fichier readme du clavier)
|
||||
2. Attendez que l'OS détecte l'appareil.
|
||||
3. Flasher le fichier .hex.
|
||||
4. Redémarrez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
4. Redémarrez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
|
||||
Ou alors :
|
||||
Ou alors:
|
||||
|
||||
make <keyboard>:<keymap>:bootloadHID
|
||||
|
||||
## STM32
|
||||
|
||||
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex : STM32F103) mais le processus reste le même.
|
||||
Tous les processeurs STM32 contiennent un bootloader installé en usine qui ne peut pas être modifié ou supprimé. Certains processeurs STM32 ont des bootloaders qui ne peuvent pas être programmés par USB (ex: STM32F103) mais le processus reste le même.
|
||||
|
||||
Pour le moment, aucune variable `BOOTLOADER` n'est nécessaire dans le fichier `rules.mk`.
|
||||
|
||||
Flashers compatibles :
|
||||
Flashers compatibles:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases) (interface graphique recommandé)
|
||||
* [dfu-util](https://github.com/Stefan-Schmidt/dfu-util) / `:dfu-util` (utilitaire en ligne de commande recommandé)
|
||||
|
||||
Séquence pour flasher:
|
||||
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes :
|
||||
1. Entrez dans le bootloader en utilisant l'une de ces méthodes:
|
||||
* Utilisez une touche sur laquelle le keycode `RESET` (Cela peut ne pas fonctionner sur les appareils STM32F042)
|
||||
* Si un circuit de réinitialisation (Reset) est présent alors utilisé le bouton qui lui est dédié.
|
||||
* Autrement, vous devez réaliser une liaison entre BOOT0 et VCC (en appuyant sur le bouton ou à l'aide d'un pont) puis faire un pont entre RESET et GND et enfin relacher le pont BOOT0.
|
||||
2. Attendre que l'os détecte l'appareil.
|
||||
3. Flasher un fichier `.bin`.h
|
||||
* Vous allez recevoir un avertissement à propos de la signature DFU. Ignorez-la.
|
||||
4. Réinitialisez l'appareil en mode « application ». Cela peut être fait automatiquement.
|
||||
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex : `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
|
||||
4. Réinitialisez l'appareil en mode «application». Cela peut être fait automatiquement.
|
||||
* Si vous êtes en train de travailler en ligne de commande, par exemple avec un `make planck/rev6:default:dfu-util` alors soyez bien sur que l'argument `:leave` est passé aux arguments DFU grâce à la variable `DFU_ARGS` à l'intérieur de votre fichier `rules.mk` (Ex: `DFU_ARGS = -d 0483:df11 -a 0 -s 0x08000000:leave`) afin que votre appareil redémarre après avoir été flashé.
|
||||
|
||||
### Commandes STM32
|
||||
|
||||
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32 :
|
||||
Il y a différentes commandes que vous pouvez utiliser pour flasher un firmware dans un appareil STM32:
|
||||
|
||||
* `:dfu-util` - C'est l'option standard pour flasher un appareil STM32. Le script attendra qu'un bootloader STM32 soit présent.
|
||||
* `:dfu-util-split-left` - Permet de flasher un firmware normalement, tout comme l'option précédente mais permet de configurer le côté gauche des paramètres EEPROM sur un clavier scindé.
|
||||
|
@@ -88,7 +88,7 @@ Par exemple, si votre keymap s'appelle "xyverz" et que vous fabriquez une keymap
|
||||
|
||||
La commande va vérifier la configuration du clavier, puis tentera de le flasher en fonction du bootloader (chargeur d’amorçage) spécifié. Cela signifie que vous n'avez pas besoin de savoir quel bootloader votre clavier utilise. Exécutez simplement la commande et laissez-le faire le gros du travail.
|
||||
|
||||
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information n’est pas configurée ou si vous tentez de flasher un clavier qui ne permet pas d’être flashé alors vous obtiendrez cette erreur :
|
||||
Cependant, tout dépend du bootloader qui est installé sur le clavier. Si cette information n’est pas configurée ou si vous tentez de flasher un clavier qui ne permet pas d’être flashé alors vous obtiendrez cette erreur:
|
||||
|
||||
WARNING: This board's bootloader is not specified or is not supported by the ":flash" target at this time.
|
||||
|
||||
@@ -326,7 +326,7 @@ Il y aun certain nombre de commandes du DFU que vous pouvez utiliser pour flash
|
||||
|
||||
### BootloadHID
|
||||
|
||||
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante :
|
||||
Pour les claviers basés sur Bootmapper Client(BMC)/bootloadHID/ATmega32A, si vous êtes prêts à compiler et flasher le firmware, ouvrez votre fenêtre de terminal et lancez la commande suivante:
|
||||
|
||||
make <my_keyboard>:<my_keymap>:bootloaderHID
|
||||
|
||||
@@ -351,7 +351,7 @@ Error opening HIDBoot device: The specified device was not found
|
||||
Trying again in 5s.
|
||||
```
|
||||
|
||||
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait s’afficher :
|
||||
Une fois ce résultat obtenu, réinitialisez le contrôleur. Le résultat suivant devrait s’afficher:
|
||||
|
||||
```
|
||||
Page size = 128 (0x80)
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# よくあるビルドの質問
|
||||
|
||||
<!---
|
||||
original document: 0.10.33:docs/faq_build.md
|
||||
git diff 0.10.33 HEAD -- docs/faq_build.md | cat
|
||||
original document: 0.12.43:docs/faq_build.md
|
||||
git diff 0.12.43 HEAD -- docs/faq_build.md | cat
|
||||
-->
|
||||
|
||||
このページは QMK のビルドに関する質問を説明します。まだビルドをしていない場合は、[ビルド環境のセットアップ](ja/getting_started_build_tools.md) および [Make 手順](ja/getting_started_make_guide.md)ガイドを読むべきです。
|
||||
@@ -22,73 +22,9 @@
|
||||
|
||||
`make` を `sudo` で実行することは一般的には良い考えでは***なく***、可能であれば前者の方法のいずれかを使うべきです。
|
||||
|
||||
### Linux の `udev` ルール
|
||||
### Linux の `udev` ルール :id=linux-udev-rules
|
||||
|
||||
Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか、`/etc/udev/rules.d/` にこのファイルを配置することで、通信することができます。
|
||||
|
||||
**/etc/udev/rules.d/50-qmk.rules:**
|
||||
```
|
||||
# Atmel DFU
|
||||
### ATmega16U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FEF", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega32U2
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF0", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega16U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF3", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### ATmega32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF4", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### AT90USB64
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FF9", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
### AT90USB128
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="2FFB", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# Input Club
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1C11", ATTRS{idProduct}=="B007", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# STM32duino
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1EAF", ATTRS{idProduct}=="0003", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
# STM32 DFU
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="DF11", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# BootloadHID
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DF", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# USBAspLoader
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16C0", ATTRS{idProduct}=="05DC", TAG+="uaccess", RUN{builtin}+="uaccess"
|
||||
|
||||
# ModemManager should ignore the following devices
|
||||
# Atmel SAM-BA (Massdrop)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="03EB", ATTRS{idProduct}=="6124", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
|
||||
# Caterina (Pro Micro)
|
||||
## Spark Fun Electronics
|
||||
### Pro Micro 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9203", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Pro Micro 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9205", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### LilyPad 3V3/8MHz (and some Pro Micro clones)
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1B4F", ATTRS{idProduct}=="9207", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Pololu Electronics
|
||||
### A-Star 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="1FFB", ATTRS{idProduct}=="0101", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Arduino SA
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## Adafruit Industries LLC
|
||||
### Feather 32U4
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000C", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 3V3/8MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000D", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### ItsyBitsy 32U4 5V/16MHz
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="239A", ATTRS{idProduct}=="000E", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
## dog hunter AG
|
||||
### Leonardo
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0036", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
### Micro
|
||||
SUBSYSTEMS=="usb", ATTRS{idVendor}=="2A03", ATTRS{idProduct}=="0037", TAG+="uaccess", RUN{builtin}+="uaccess", ENV{ID_MM_DEVICE_IGNORE}="1"
|
||||
```
|
||||
Linux では、ブートローダデバイスと通信するには適切な権限が必要です。ファームウェアを書き込む時に `sudo` を使うか(非推奨)、`/etc/udev/rules.d/` に[このファイル](https://github.com/qmk/qmk_firmware/tree/master/util/udev/50-qmk.rules)を配置することで、通信することができます。
|
||||
|
||||
追加が完了したら、以下を実行します:
|
||||
|
||||
@@ -129,9 +65,9 @@ https://github.com/tmk/tmk_keyboard/issues/150
|
||||
- https://www.mcselec.com/index.php?page=shop.product_details&flypage=shop.flypage&product_id=92&option=com_phpshop&Itemid=1
|
||||
|
||||
### キーボードに書き込んだが何も起こらない、あるいはキーの押下が登録されない - ARM (rev6 planck、clueboard 60、hs60v2 など) でも同じ (Feb 2019)
|
||||
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなる*しれません*。EEPROM のリセットでこれが修正されます。
|
||||
ARM ベースのチップ上での EEPROM の動作によって、保存された設定が無効になる場合があります。これはデフォルトレイヤに影響し、まだ調査中の特定の環境下でキーボードが使えなくなるかも*しれません*。EEPROM のリセットでこれが修正されます。
|
||||
|
||||
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使って eeprom のリセットを強制することができます。このイメージを書き込んだ後で、通常のファームウェアを書き込むと、キーボードが_通常_ の動作順序に復元されます。
|
||||
[Planck rev6 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/539284620861243409/planck_rev6_default.bin) を使って eeprom のリセットを強制することができます。このイメージを書き込んだ後で、通常のファームウェアを書き込むと、キーボードが _通常_ の動作順序に復元されます。
|
||||
[Preonic rev3 reset EEPROM](https://cdn.discordapp.com/attachments/473506116718952450/537849497313738762/preonic_rev3_default.bin)
|
||||
|
||||
いずれかの形式でブートマジックが有効になっている場合は、これも実行できるはずです (実行方法の詳細については、[ブートマジックドキュメント](ja/feature_bootmagic.md)とキーボード情報を見てください)。
|
||||
|
@@ -1,16 +1,17 @@
|
||||
# Docker クイックスタート
|
||||
|
||||
<!---
|
||||
original document: 0.9.32:docs/getting_started_docker.md
|
||||
git diff 0.9.32 HEAD -- docs/getting_started_docker.md | cat
|
||||
original document: 0.12.43:docs/getting_started_docker.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_docker.md | cat
|
||||
-->
|
||||
|
||||
このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる Docker ワークフローを含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、他の人とまったく同じ環境と QMK ビルド基盤を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。
|
||||
|
||||
## 必要事項
|
||||
|
||||
主な前提条件は動作する `docker` がインストールされていることです。
|
||||
主な前提条件は動作する `docker` または `podman` がインストールされていることです。
|
||||
* [Docker CE](https://docs.docker.com/install/#supported-platforms)
|
||||
* [Podman](https://podman.io/getting-started/installation)
|
||||
|
||||
## 使い方
|
||||
|
||||
@@ -29,7 +30,7 @@ util/docker_build.sh <keyboard>:<keymap>
|
||||
|
||||
これは目的のキーボード/キーマップをコンパイルし、結果として書き込み用に `.hex` あるいは `.bin` ファイルを QMK ディレクトリの中に残します。`:keymap` が省略された場合は全てのキーマップが使われます。パラメータの形式は、`make` を使ってビルドする時と同じであることに注意してください。
|
||||
|
||||
`target` を指定して Docker から直接キーボードをビルドし、_かつ_書き込むためのサポートもあります。
|
||||
`target` を指定して Docker から直接キーボードをビルドし、_かつ_ 書き込むためのサポートもあります。
|
||||
|
||||
```bash
|
||||
util/docker_build.sh keyboard:keymap:target
|
||||
@@ -43,10 +44,17 @@ util/docker_build.sh
|
||||
# パラメータを入力として読み込みます (空白にすると全てのキーボード/キーマップ)
|
||||
```
|
||||
|
||||
`RUNTIME` 環境変数にコンテナランタイム名やパスを設定することで、使用したいコンテナランタイムを手動で設定できます。
|
||||
デフォルトでは docker や podman は自動的に検出され、podman より docker が優先されます。
|
||||
|
||||
```bash
|
||||
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
|
||||
```
|
||||
|
||||
## FAQ
|
||||
|
||||
### なぜ Windows/macOS 上で書き込めないのですか?
|
||||
|
||||
Windows と macOS では、実行するために [Docker Machine](http://gw.tnode.com/docker/docker-machine-with-usb-support-on-windows-macos/) が必要です。これはセットアップが面倒なので、お勧めではありません: 代わりに [QMK Toolbox](https://github.com/qmk/qmk_toolbox) を使ってください。
|
||||
|
||||
!> Docker for Windows は[Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) を有効にする必要があります。これは、Windows 7、Windows 8 および **Windows 10 Home** のような Hyper-V を搭載していない Windows のバージョンでは機能しないことを意味します。
|
||||
!> Docker for Windows は [Hyper-V](https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v) を有効にする必要があります。これは、Windows 7、Windows 8 および **Windows 10 Home** のような Hyper-V を搭載していない Windows のバージョンでは機能しないことを意味します。
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# QMK で GitHub を使う方法
|
||||
|
||||
<!---
|
||||
original document: 0.9.43:docs/getting_started_github.md
|
||||
git diff 0.9.43 HEAD -- docs/getting_started_github.md | cat
|
||||
original document: 0.12.43:docs/getting_started_github.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_github.md | cat
|
||||
-->
|
||||
|
||||
GitHub は慣れていない人には少し注意が必要です - このガイドは、QMK におけるフォーク、クローン、プルリクエストのサブミットの各ステップについて説明します。
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# より詳細な `make` 手順
|
||||
|
||||
<!---
|
||||
original document: 0.10.33:docs/getting_started_make_guide.md
|
||||
git diff 0.10.33 HEAD -- docs/getting_started_make_guide.md | cat
|
||||
original document: 0.12.43:docs/getting_started_make_guide.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_make_guide.md | cat
|
||||
-->
|
||||
|
||||
`make` コマンドの完全な構文は `<keyboard_folder>:<keymap>:<target>` です:
|
||||
@@ -19,16 +19,32 @@
|
||||
`<target>` は以下を意味します
|
||||
* target が指定されない場合は、以下の `all` と同じです
|
||||
* `all` は指定されたキーボード/リビジョン/キーマップの可能な全ての組み合わせのコンパイルを行います。例えば、`make planck/rev4:default` は1つの .hex を生成しますが、`make planck/rev4:all` は planck で利用可能な全てのキーマップについて hex を生成します。
|
||||
* `flash`、`dfu`、`teensy`、`avrdude`、`dfu-util` または `bootloadHID` はファームウェアをコンパイルし、キーボードにアップロードします。コンパイルが失敗すると、何もアップロードされません。使用するプログラマはキーボードに依存します。ほとんどのキーボードでは `dfu` ですが、ChibiOS キーボードについては `dfu-util` 、標準的な Teensy については `teensy` を使います。キーボードに使うコマンドを見つけるには、キーボード固有の readme をチェックしてください。
|
||||
* **注意**: 一部のオペレーティングシステムではこれらのコマンドが機能するためには root アクセスが必要です。その場合、例えば `sudo make planck/rev4:default:flash` を実行する必要があります。
|
||||
* `flash`、`dfu`、`teensy`、`avrdude`、`dfu-util`、`bootloadHID` はファームウェアをコンパイルし、キーボードにアップロードします。コンパイルが失敗すると、何もアップロードされません。使用するプログラマはキーボードに依存します。ほとんどのキーボードでは `dfu` ですが、ChibiOS キーボードについては `dfu-util` 、標準的な Teensy については `teensy` を使います。キーボードに使うコマンドを見つけるには、キーボード固有の readme をチェックしてください。
|
||||
利用可能なブートローダの詳細は[ファームウェアの書き込み](ja/flashing.md)ガイドを参照してください。
|
||||
* **Note**: 一部のオペレーティングシステムでは、これらのコマンドが機能するためには特権アクセスが必要です。これは、root アクセスなしでこれらにアクセスするために [`udev ルール`](ja/faq_build.md#linux-udev-rules) を設定するか、あるいは root アクセスでコマンドを実行する (`sudo make planck/rev4:default:flash`) 必要があるかもしれないことを意味します。
|
||||
* `clean` は、全てをゼロからビルドするためにビルド出力フォルダを掃除します。説明できない問題がある場合は、通常のコンパイルの前にこれを実行してください。
|
||||
* `distclean` は、.hex ファイルと .bin ファイルを削除します。
|
||||
|
||||
次のターゲットは開発者向けです:
|
||||
|
||||
* `show_path` ソースとオブジェクトファイルのパスを表示します。
|
||||
* `dump_vars` makefile 変数をダンプします。
|
||||
* `objs-size` 個々のオブジェクトファイルのサイズを表示します。
|
||||
* `show_build_options` 'rules.mk' のオプションセットを表示します。
|
||||
* `check-md5` 生成されたバイナリファイルの md5 チェックサムを表示します。
|
||||
|
||||
make コマンドの最後、つまり target の後に追加のオプションを追加することもできます
|
||||
|
||||
* `make COLOR=false` - カラー出力をオフ
|
||||
* `make SILENT=true` - エラー/警告以外の出力をオフ
|
||||
* `make VERBOSE=true` - 全ての gcc のものを出力 (デバッグする必要が無い限り面白くありません)
|
||||
* `make EXTRAFLAGS=-E` - コンパイルせずにコードを前処理 (#define コマンドをデバッグしようとする場合に便利)
|
||||
* `make VERBOSE_LD_CMD=yes` - -v オプションを指定して ld コマンドを実行します。
|
||||
* `make VERBOSE_AS_CMD=yes` - -v オプションを指定して as コマンドを実行します。
|
||||
* `make VERBOSE_C_CMD=<c_source_file>` - 指定された C ソースファイルをコンパイルするときに -v オプションを追加します。
|
||||
* `make DUMP_C_MACROS=<c_source_file>` - 指定された C ソースファイルをコンパイルするときにプリプロセッサマクロをダンプします。
|
||||
* `make DUMP_C_MACROS=<c_source_file> > <logfile>` - 指定された C ソースファイルをコンパイルするときにプリプロセッサマクロを `<logfile>` にダンプします。
|
||||
* `make VERBOSE_C_INCLUDE=<c_source_file>` - 指定された C ソースファイルをコンパイルするときにインクルードされるファイル名をダンプします。
|
||||
* `make VERBOSE_C_INCLUDE=<c_source_file> 2> <logfile>` - 指定された C ソースファイルをコンパイルするときにインクルードされるファイル名を `<logfile>` にダンプします。
|
||||
|
||||
make コマンド自体にもいくつかの追加オプションがあります。詳細は `make --help` を入力してください。最も有用なのはおそらく `-jx` です。これは複数の CPU を使ってコンパイルしたいことを指定し、`x` は使用したい CPU の数を表します。設定すると、特に多くのキーボード/キーマップをコンパイルしている場合は、コンパイル時間を大幅に短縮することができます。通常は、コンパイル中に他の作業を行うための余裕をもたせるために、持っている CPU の数より1つ少ない値に設定します。全てのオペレーティングシステムと make バージョンがオプションをサポートしているわけではないことに注意してください。
|
||||
|
||||
@@ -104,7 +120,7 @@ make コマンド自体にもいくつかの追加オプションがあります
|
||||
|
||||
これにより、送信したい文字に対応するニーモニックを入力することで Unicode 文字を送信することができます。キーマップファイル内にマッピングテーブルを保持する必要があります。可能な全てのコードポイント( `0x10FFFF` まで)がサポートされます。
|
||||
|
||||
詳細と制限については、[Unicode ページ](ja/feature_unicode.md) を見てください。
|
||||
詳細と制限については、[Unicode ページ](ja/feature_unicode.md)を見てください。
|
||||
|
||||
`AUDIO_ENABLE`
|
||||
|
||||
@@ -116,11 +132,11 @@ C6 ピン(抽象化が必要)でオーディオ出力できます。詳細は[
|
||||
|
||||
`API_SYSEX_ENABLE`
|
||||
|
||||
これにより Quantum SYSEX API を使って文字列を送信することができます (どこに?)
|
||||
これにより Quantum SYSEX API を使って文字列を(どこかに?)送信することができます
|
||||
|
||||
`KEY_LOCK_ENABLE`
|
||||
|
||||
これは [キーロック](ja/feature_key_lock.md) を有効にします。
|
||||
これは[キーロック](ja/feature_key_lock.md)を有効にします。
|
||||
|
||||
`SPLIT_KEYBOARD`
|
||||
|
||||
@@ -132,7 +148,7 @@ ARM ベースの分割キーボード用の標準分割通信ドライバはま
|
||||
|
||||
`CUSTOM_MATRIX`
|
||||
|
||||
デフォルトのマトリックス走査ルーチンを独自のコードで置き換えます。詳細については、[カスタムマトリックスページ](ja/custom_matrix.md) を見てください。
|
||||
デフォルトのマトリックス走査ルーチンを独自のコードで置き換えます。詳細については、[カスタムマトリックスページ](ja/custom_matrix.md)を見てください。
|
||||
|
||||
`DEBOUNCE_TYPE`
|
||||
|
||||
|
@@ -1,8 +1,8 @@
|
||||
# Vagrant クイックスタート
|
||||
|
||||
<!---
|
||||
original document: 0.9.10:docs/getting_started_vagrant.md
|
||||
git diff 0.9.10 HEAD -- docs/getting_started_vagrant.md | cat
|
||||
original document: 0.12.43:docs/getting_started_vagrant.md
|
||||
git diff 0.12.43 HEAD -- docs/getting_started_vagrant.md | cat
|
||||
-->
|
||||
|
||||
このプロジェクトは、プライマリオペレーティングシステムに大きな変更を加えることなくキーボードの新しいファームウェアを非常に簡単に構築することができる `Vagrantfile` を含みます。これは、あなたがプロジェクトをクローンしビルドを実行した時に、ビルドのために Vagrantfile を使っている他のユーザと全く同じ環境を持つことも保証します。これにより、人々はあなたが遭遇した問題の解決をより簡単に行えるようになります。
|
||||
@@ -12,16 +12,16 @@
|
||||
このリポジトリ内の `Vagrantfile` を使うには、[Vagrant](https://www.vagrantup.com/) およびサポートされるプロバイダがインストールされている必要があります:
|
||||
|
||||
* [VirtualBox](https://www.virtualbox.org/) (バージョン 5.0.12 以降)
|
||||
* 'Vagrant を使うために最もアクセスしやすいプラットフォーム' として販売
|
||||
* 「Vagrant を使うために最もアクセスしやすいプラットフォーム」とうたわれています。
|
||||
* [VMware Workstation](https://www.vmware.com/products/workstation) および [Vagrant VMware プラグイン](https://www.vagrantup.com/vmware)
|
||||
* (有料) VMware プラグインには、ライセンスされた VMware Workstation/Fusion のコピーが必要です。
|
||||
* [Docker](https://www.docker.com/)
|
||||
|
||||
Vagrant 以外に、適切なプロバイダがインストールされ、その後におそらくコンピュータを再起動すると、このプロジェクトをチェックアウトしたフォルダ内の任意の場所で 'vagrant up' を単純に実行することができ、このプロジェクトをビルドするのに必要な全てのツールが含まれる環境(仮想マシンあるいはコンテナ)が開始されます。Vagrant をうまく始めるためのヒントの投稿がありますが、それ以外に、以下のビルドドキュメントを参照することもできます。
|
||||
Vagrant 以外に、適切なプロバイダがインストールされ、その後におそらくコンピュータを再起動すると、このプロジェクトをチェックアウトしたフォルダ内の任意の場所で 'vagrant up' を単純に実行することができ、このプロジェクトをビルドするのに必要な全てのツールが含まれる環境(仮想マシンあるいはコンテナ)が開始されます。Vagrant 起動時にうまく始めるためのヒントが表示されますが、それ以外に、以下のビルドドキュメントを参照することもできます。
|
||||
|
||||
## ファームウェアの書き込み
|
||||
|
||||
ファームウェアを書き込む"簡単"な方法は、ホスト OS からツールを使うことです:
|
||||
ファームウェアを書き込む「簡単な」方法は、ホスト OS からツールを使うことです:
|
||||
|
||||
* [QMK Toolbox](https://github.com/qmk/qmk_toolbox) (推奨)
|
||||
* [Teensy ローダー](https://www.pjrc.com/teensy/loader.html)
|
||||
|
@@ -68,7 +68,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
- bare minimum required code for a board to boot into QMK should be present
|
||||
- initialisation code for the matrix and critical devices
|
||||
- mirroring existing functionality of a commercial board (like custom keycodes and special animations etc.) should be handled through non-`default` keymaps
|
||||
- VIAL-related files or changes will not be accepted, as they are not used by QMK firmware (no VIAL-specific core code has been submitted or merged)
|
||||
- Vial-related files or changes will not be accepted, as they are not used by QMK firmware (no Vial-specific core code has been submitted or merged)
|
||||
- `keyboard.c`
|
||||
- empty `xxxx_xxxx_kb()` or other weak-defined default implemented functions removed
|
||||
- commented-out functions removed too
|
||||
|
77
keyboards/4pplet/eagle_viper_rep/info.json
Normal file
77
keyboards/4pplet/eagle_viper_rep/info.json
Normal file
@@ -0,0 +1,77 @@
|
||||
{
|
||||
"keyboard_name": "Eagle/Viper Rep",
|
||||
"url": "https://github.com/4pplet/eagle_viper_rep",
|
||||
"maintainer": "4pplet",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "x": 0, "y": 0 },
|
||||
{ "label": "!", "x": 1, "y": 0 },
|
||||
{ "label": "@", "x": 2, "y": 0 },
|
||||
{ "label": "#", "x": 3, "y": 0 },
|
||||
{ "label": "$", "x": 4, "y": 0 },
|
||||
{ "label": "%", "x": 5, "y": 0 },
|
||||
{ "label": "^", "x": 6, "y": 0 },
|
||||
{ "label": "&", "x": 7, "y": 0 },
|
||||
{ "label": "*", "x": 8, "y": 0 },
|
||||
{ "label": "(", "x": 9, "y": 0 },
|
||||
{ "label": ")", "x": 10, "y": 0 },
|
||||
{ "label": "_", "x": 11, "y": 0 },
|
||||
{ "label": "+", "x": 12, "y": 0 },
|
||||
{ "label": "|", "x": 13, "y": 0 },
|
||||
{ "label": "~", "x": 14, "y": 0 },
|
||||
{ "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
|
||||
{ "label": "Q", "x": 1.5, "y": 1 },
|
||||
{ "label": "W", "x": 2.5, "y": 1 },
|
||||
{ "label": "E", "x": 3.5, "y": 1 },
|
||||
{ "label": "R", "x": 4.5, "y": 1 },
|
||||
{ "label": "T", "x": 5.5, "y": 1 },
|
||||
{ "label": "Y", "x": 6.5, "y": 1 },
|
||||
{ "label": "U", "x": 7.5, "y": 1 },
|
||||
{ "label": "I", "x": 8.5, "y": 1 },
|
||||
{ "label": "O", "x": 9.5, "y": 1 },
|
||||
{ "label": "P", "x": 10.5, "y": 1 },
|
||||
{ "label": "{", "x": 11.5, "y": 1 },
|
||||
{ "label": "}", "x": 12.5, "y": 1 },
|
||||
{ "label": "Backsp.", "x": 13.5, "y": 1, "w": 1.5 },
|
||||
{ "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
|
||||
{ "label": "A", "x": 1.75, "y": 2 },
|
||||
{ "label": "S", "x": 2.75, "y": 2 },
|
||||
{ "label": "D", "x": 3.75, "y": 2 },
|
||||
{ "label": "F", "x": 4.75, "y": 2 },
|
||||
{ "label": "G", "x": 5.75, "y": 2 },
|
||||
{ "label": "H", "x": 6.75, "y": 2 },
|
||||
{ "label": "J", "x": 7.75, "y": 2 },
|
||||
{ "label": "K", "x": 8.75, "y": 2 },
|
||||
{ "label": "L", "x": 9.75, "y": 2 },
|
||||
{ "label": ":", "x": 10.75, "y": 2 },
|
||||
{ "label": "\"", "x": 11.75, "y": 2 },
|
||||
{ "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
|
||||
{ "label": "Shift", "x": 0, "y": 3, "w": 1.25 },
|
||||
{ "label": "|", "x": 1.25, "y": 3 },
|
||||
{ "label": "Z", "x": 2.25, "y": 3 },
|
||||
{ "label": "X", "x": 3.25, "y": 3 },
|
||||
{ "label": "C", "x": 4.25, "y": 3 },
|
||||
{ "label": "V", "x": 5.25, "y": 3 },
|
||||
{ "label": "B", "x": 6.25, "y": 3 },
|
||||
{ "label": "N", "x": 7.25, "y": 3 },
|
||||
{ "label": "M", "x": 8.25, "y": 3 },
|
||||
{ "label": "<", "x": 9.25, "y": 3 },
|
||||
{ "label": ">", "x": 10.25, "y": 3 },
|
||||
{ "label": "?", "x": 11.25, "y": 3 },
|
||||
{ "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
|
||||
{ "label": "Fn", "x": 14, "y": 3, "w": 1 },
|
||||
{ "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
|
||||
{ "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
|
||||
{ "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
|
||||
{ "label": "Space", "x": 3.75, "y": 4, "w": 6.25 },
|
||||
{ "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
|
||||
{ "label": "Menu", "x": 11.25, "y": 4, "w": 1.25 },
|
||||
{ "label": "Win", "x": 12.5, "y": 4, "w": 1.25 },
|
||||
{ "label": "Ctrl", "x": 13.75, "y": 4, "w": 1.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
34
keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c
Normal file
34
keyboards/4pplet/eagle_viper_rep/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, MO(1)),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
55
keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c
Normal file
55
keyboards/4pplet/eagle_viper_rep/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// main layer
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT, KC_RGUI, MO(1)),
|
||||
// basic function layer
|
||||
[1] = LAYOUT_all(
|
||||
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
// extra layer for VIA
|
||||
[2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
// extra layer for VIA
|
||||
[3] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
// extra layer for VIA
|
||||
[4] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
1
keyboards/4pplet/eagle_viper_rep/keymaps/via/rules.mk
Normal file
1
keyboards/4pplet/eagle_viper_rep/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
19
keyboards/4pplet/eagle_viper_rep/readme.md
Normal file
19
keyboards/4pplet/eagle_viper_rep/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Viper/Eagle REP Rev A
|
||||
|
||||
A alternative PCB for Viper and Eagle V2 and V3
|
||||
|
||||
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
|
||||
* Hardware Supported: Viper/Eagle REP Rev A
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4pplet/eagle_viper_rep/rev_a:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
How to enter bootloader (DFU):
|
||||
* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware.
|
||||
* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it.
|
||||
|
||||
Alternative option if the firmware is already pre-flashed:
|
||||
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default.
|
23
keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h
Normal file
23
keyboards/4pplet/eagle_viper_rep/rev_a/chconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CH_CFG_ST_FREQUENCY 10000
|
||||
|
||||
#define CH_CFG_ST_RESOLUTION 16
|
||||
|
||||
#include_next <chconf.h>
|
72
keyboards/4pplet/eagle_viper_rep/rev_a/config.h
Normal file
72
keyboards/4pplet/eagle_viper_rep/rev_a/config.h
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0x4444
|
||||
#define PRODUCT_ID 0x0007
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER 4pplet
|
||||
#define PRODUCT Eagle Viper REP Rev A
|
||||
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 7
|
||||
|
||||
#define MATRIX_COL_PINS { A0, B1, B0, A4, B5, B4, B3 }
|
||||
#define MATRIX_ROW_PINS { A2, A1, B8, A10, C15, A15, B7, B6, C14, C13}
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* In switch leds */
|
||||
#define BACKLIGHT_PIN A3
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD2
|
||||
#define BACKLIGHT_PWM_CHANNEL 4
|
||||
#define BACKLIGHT_PAL_MODE 2
|
||||
#define BACKLIGHT_ON_STATE 1
|
||||
#define BACKLIGHT_LEVELS 10
|
||||
#define BACKLIGHT_BREATHING TRUE
|
||||
|
||||
/* Underglow */
|
||||
#define RGB_DI_PIN A7
|
||||
#define WS2812_SPI SPID1
|
||||
#define WS2812_SPI_MOSI_PAL_MODE 0
|
||||
#define WS2812_SPI_SCK_PIN A5
|
||||
#define WS2812_SPI_SCK_PAL_MODE 0
|
||||
#define RGBLED_NUM 16
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
/* Indicator leds */
|
||||
#define LOCK_LIGHTS TRUE
|
||||
#define DISPLAY_LAYERS TRUE
|
||||
#define CAPS_PIN B2
|
||||
#define NUM_PIN B12
|
||||
#define SCROLL_PIN B13
|
||||
#define LAYER_1 B14
|
||||
#define LAYER_2 B15
|
||||
#define LAYER_3 A8
|
||||
#define LAYER_4 A9
|
||||
#define LAYER_5 B9
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCE 5
|
||||
|
||||
/* Added extra layer for use of layer leds */
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 5
|
25
keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h
Normal file
25
keyboards/4pplet/eagle_viper_rep/rev_a/halconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C FALSE
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
34
keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h
Normal file
34
keyboards/4pplet/eagle_viper_rep/rev_a/mcuconf.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_TIM2
|
||||
#define STM32_PWM_USE_TIM2 TRUE
|
||||
|
||||
#undef STM32_SPI_USE_SPI1
|
||||
#define STM32_SPI_USE_SPI1 TRUE
|
||||
|
||||
/* Reallocate the SysTick timer from TIM2 to TIM3, TIM2 is used for in switch leds */
|
||||
#undef STM32_ST_USE_TIMER
|
||||
#define STM32_ST_USE_TIMER 3
|
19
keyboards/4pplet/eagle_viper_rep/rev_a/readme.md
Normal file
19
keyboards/4pplet/eagle_viper_rep/rev_a/readme.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Viper/Eagle REP Rev A
|
||||
|
||||
A alternative PCB for Viper and Eagle V2 and V3
|
||||
|
||||
* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
|
||||
* Hardware Supported: Viper/Eagle REP Rev A
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 4pplet/eagle_viper_rep/rev_a:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
How to enter bootloader (DFU):
|
||||
* Press and hold the button on the keyboard (the small one on the same side as the MCU) for more than 1 second. The keyboard will then enter bootloader (DFU) mode and it's ready to flash the firmware.
|
||||
* Note: If holding the button a shorter time, the keyboard will just reset. If you want to exit bootloader mode without flashing a firmware, dissconnect the keyboard from your PC and reconnect it.
|
||||
|
||||
Alternative option if the firmware is already pre-flashed:
|
||||
* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. Bootmagic lite is enabled by default.
|
108
keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c
Normal file
108
keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.c
Normal file
@@ -0,0 +1,108 @@
|
||||
/*
|
||||
Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "rev_a.h"
|
||||
|
||||
void board_init(void) {
|
||||
setPinInputHigh(CAPS_PIN);
|
||||
setPinInputHigh(SCROLL_PIN);
|
||||
setPinInputHigh(NUM_PIN);
|
||||
}
|
||||
|
||||
/* Set indicator leds to indicate lock states */
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res && LOCK_LIGHTS) {
|
||||
if(led_state.caps_lock){
|
||||
setPinOutput(CAPS_PIN);
|
||||
writePin(CAPS_PIN, 0);
|
||||
}
|
||||
else
|
||||
setPinInputHigh(CAPS_PIN);
|
||||
if(led_state.scroll_lock){
|
||||
setPinOutput(SCROLL_PIN);
|
||||
writePin(SCROLL_PIN, 0);
|
||||
}
|
||||
else
|
||||
setPinInputHigh(SCROLL_PIN);
|
||||
if(led_state.num_lock){
|
||||
setPinOutput(NUM_PIN);
|
||||
writePin(NUM_PIN, 0);
|
||||
}
|
||||
else
|
||||
setPinInputHigh(NUM_PIN);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
layer_state_t layer_state_set_kb(layer_state_t state) {
|
||||
state = layer_state_set_user(state);
|
||||
if(DISPLAY_LAYERS){
|
||||
setLayerLed(state);
|
||||
}
|
||||
return state;
|
||||
}
|
||||
/* Set indicator leds to indicate which layer is active */
|
||||
void setLayerLed(layer_state_t state){
|
||||
switch(get_highest_layer(state)){
|
||||
case 0 :
|
||||
setPinOutput(LAYER_1);
|
||||
writePin(LAYER_1, 0);
|
||||
setPinInputHigh(LAYER_2);
|
||||
setPinInputHigh(LAYER_3);
|
||||
setPinInputHigh(LAYER_4);
|
||||
setPinInputHigh(LAYER_5);
|
||||
break;
|
||||
case 1 :
|
||||
setPinOutput(LAYER_2);
|
||||
writePin(LAYER_2, 0);
|
||||
setPinInputHigh(LAYER_1);
|
||||
setPinInputHigh(LAYER_3);
|
||||
setPinInputHigh(LAYER_4);
|
||||
setPinInputHigh(LAYER_5);
|
||||
break;
|
||||
case 2 :
|
||||
setPinOutput(LAYER_3);
|
||||
writePin(LAYER_3, 0);
|
||||
setPinInputHigh(LAYER_1);
|
||||
setPinInputHigh(LAYER_2);
|
||||
setPinInputHigh(LAYER_4);
|
||||
setPinInputHigh(LAYER_5);
|
||||
break;
|
||||
case 3 :
|
||||
writePin(LAYER_4, 0);
|
||||
setPinInputHigh(LAYER_5);
|
||||
setPinInputHigh(LAYER_1);
|
||||
setPinInputHigh(LAYER_2);
|
||||
setPinInputHigh(LAYER_3);
|
||||
setPinOutput(LAYER_4);
|
||||
break;
|
||||
case 4 :
|
||||
setPinOutput(LAYER_5);
|
||||
writePin(LAYER_5, 0);
|
||||
setPinInputHigh(LAYER_1);
|
||||
setPinInputHigh(LAYER_2);
|
||||
setPinInputHigh(LAYER_3);
|
||||
setPinInputHigh(LAYER_4);
|
||||
break;
|
||||
default :
|
||||
setPinInputHigh(LAYER_1);
|
||||
setPinInputHigh(LAYER_2);
|
||||
setPinInputHigh(LAYER_3);
|
||||
setPinInputHigh(LAYER_4);
|
||||
setPinInputHigh(LAYER_5);
|
||||
}
|
||||
}
|
41
keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h
Normal file
41
keyboards/4pplet/eagle_viper_rep/rev_a/rev_a.h
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
Copyright 2021 Stefan Sundin "4pplet" <4pplet@protonmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
void setLayerLed(layer_state_t state);
|
||||
|
||||
#define LAYOUT_all( \
|
||||
k00, k10, k01, k11, k02, k12, k03, k13, k04, k14, k05, k15, k06, k16, k36, \
|
||||
k20, k30, k21, k31, k22, k32, k23, k33, k24, k34, k25, k35, k26, k56,\
|
||||
k40, k50, k41, k51, k42, k52, k43, k53, k44, k54, k45, k55, k46, k76,\
|
||||
k60, k70, k61, k71, k62, k72, k63, k73, k64, k74, k65, k75, k66, k96,\
|
||||
k80, k90, k91, k93, k94, k85, k95, k86 \
|
||||
) \
|
||||
{ \
|
||||
{k00, k01, k02, k03, k04, k05, k06}, \
|
||||
{k10, k11, k12, k13, k14, k15, k16}, \
|
||||
{k20, k21, k22, k23, k24, k25, k26}, \
|
||||
{k30, k31, k32, k33, k34, k35, k36}, \
|
||||
{k40, k41, k42, k43, k44, k45, k46}, \
|
||||
{k50, k51, k52, k53, k54, k55, k56}, \
|
||||
{k60, k61, k62, k63, k64, k65, k66}, \
|
||||
{k70, k71, k72, k73, k74, k75, k76}, \
|
||||
{k80, KC_NO, KC_NO, KC_NO, KC_NO, k85, k86}, \
|
||||
{k90, k91, KC_NO, k93, k94, k95, k96} \
|
||||
}
|
23
keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk
Normal file
23
keyboards/4pplet/eagle_viper_rep/rev_a/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = STM32F072
|
||||
|
||||
# Build Options
|
||||
# comment out to disable the options.
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = yes # Console for debug
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = yes
|
||||
BACKLIGHT_DRIVER = pwm
|
||||
RGBLIGHT_ENABLE = yes
|
||||
WS2812_DRIVER = spi
|
||||
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
@@ -15,16 +15,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, K213, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, K313, \
|
||||
K40, K41, K42, K46, K410, K411, K412, K413 ) \
|
||||
{ \
|
||||
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, K013, K014}, \
|
||||
{K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, K113 }, \
|
||||
{K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, K213 }, \
|
||||
{K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, K313 }, \
|
||||
{K40, K41, K42, K46, K410, K411, K412, K413 } \
|
||||
}
|
||||
#define ___ KC_NO
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, ___ }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___ }, \
|
||||
{ K40, K41, K42, ___, ___, ___, K46, ___, ___, ___, K4A, K4B, K4C, K4D, ___ } \
|
||||
}
|
||||
|
@@ -1,27 +1,31 @@
|
||||
{
|
||||
"keyboard_name": "geminate60",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"maintainer": "Weirdo-F",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label":"K00", "x":0, "y":0},
|
||||
{"label":"K01", "x":1, "y":0},
|
||||
{"label":"K02", "x":2, "y":0},
|
||||
{"label":"K0", "x":3, "y":0},
|
||||
{"label":"K03", "x":3, "y":0},
|
||||
{"label":"K04", "x":4, "y":0},
|
||||
{"label":"K05", "x":5, "y":0},
|
||||
{"label":"K06", "x":6, "y":0},
|
||||
{"label":"K07", "x":7, "y":0},
|
||||
{"label":"K08", "x":8, "y":0},
|
||||
{"label":"K09", "x":9, "y":0},
|
||||
{"label":"K010", "x":10, "y":0},
|
||||
{"label":"K011", "x":11, "y":0},
|
||||
{"label":"K012", "x":12, "y":0},
|
||||
{"label":"K013", "x":13, "y":0},
|
||||
{"label":"K014", "x":14, "y":0},
|
||||
{"label":"K0A", "x":10, "y":0},
|
||||
{"label":"K0B", "x":11, "y":0},
|
||||
{"label":"K0C", "x":12, "y":0},
|
||||
{"label":"K0D", "x":13, "y":0},
|
||||
{"label":"K0E", "x":14, "y":0},
|
||||
|
||||
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||
{"label":"K11", "x":1.5, "y":1},
|
||||
{"label":"K12", "x":2.5, "y":1},
|
||||
@@ -32,10 +36,11 @@
|
||||
{"label":"K17", "x":7.5, "y":1},
|
||||
{"label":"K18", "x":8.5, "y":1},
|
||||
{"label":"K19", "x":9.5, "y":1},
|
||||
{"label":"K110", "x":10.5, "y":1},
|
||||
{"label":"K111", "x":11.5, "y":1},
|
||||
{"label":"K112", "x":12.5, "y":1},
|
||||
{"label":"K113", "x":13.5, "y":1, "w":1.5},
|
||||
{"label":"K1A", "x":10.5, "y":1},
|
||||
{"label":"K1B", "x":11.5, "y":1},
|
||||
{"label":"K1C", "x":12.5, "y":1},
|
||||
{"label":"K1D", "x":13.5, "y":1, "w":1.5},
|
||||
|
||||
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||
{"label":"K21", "x":1.75, "y":2},
|
||||
{"label":"K22", "x":2.75, "y":2},
|
||||
@@ -46,10 +51,11 @@
|
||||
{"label":"K27", "x":7.75, "y":2},
|
||||
{"label":"K28", "x":8.75, "y":2},
|
||||
{"label":"K29", "x":9.75, "y":2},
|
||||
{"label":"K210", "x":10.75, "y":2},
|
||||
{"label":"K211", "x":11.75, "y":2},
|
||||
{"label":"K212", "x":12.75, "y":2},
|
||||
{"label":"K213", "x":13.75, "y":2, "w":1.25},
|
||||
{"label":"K2A", "x":10.75, "y":2},
|
||||
{"label":"K2B", "x":11.75, "y":2},
|
||||
{"label":"K2C", "x":12.75, "y":2},
|
||||
{"label":"K2D", "x":13.75, "y":2, "w":1.25},
|
||||
|
||||
{"label":"K30", "x":0, "y":3, "w":1.25},
|
||||
{"label":"K31", "x":1.25, "y":3},
|
||||
{"label":"K32", "x":2.25, "y":3},
|
||||
@@ -60,20 +66,20 @@
|
||||
{"label":"K37", "x":7.25, "y":3},
|
||||
{"label":"K38", "x":8.25, "y":3},
|
||||
{"label":"K39", "x":9.25, "y":3},
|
||||
{"label":"K310", "x":10.25, "y":3},
|
||||
{"label":"K311", "x":11.25, "y":3},
|
||||
{"label":"K312", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K313", "x":14, "y":3},
|
||||
{"label":"K3A", "x":10.25, "y":3},
|
||||
{"label":"K3B", "x":11.25, "y":3},
|
||||
{"label":"K3C", "x":12.25, "y":3, "w":1.75},
|
||||
{"label":"K3D", "x":14, "y":3},
|
||||
|
||||
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||
{"label":"K42", "x":2.5, "y":4, "w":1.25},
|
||||
{"label":"K46", "x":3.75, "y":4, "w":6.25},
|
||||
{"label":"K410", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K411", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K412", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"K413", "x":13.75, "y":4, "w":1.25}
|
||||
{"label":"K4A", "x":10, "y":4, "w":1.25},
|
||||
{"label":"K4B", "x":11.25, "y":4, "w":1.25},
|
||||
{"label":"K4C", "x":12.5, "y":4, "w":1.25},
|
||||
{"label":"K4D", "x":13.75, "y":4, "w":1.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||
}
|
||||
|
@@ -1,18 +1,18 @@
|
||||
/* Copyright 2020 Weirdo
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
@@ -23,18 +23,22 @@ enum layer_names {
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LWIN, KC_LALT,KC_SPACE, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL),
|
||||
|
||||
[_BASE] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), //
|
||||
[_FN] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
};
|
||||
|
||||
|
@@ -1,18 +1,18 @@
|
||||
/* Copyright 2020 Weirdo
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
@@ -20,30 +20,39 @@
|
||||
enum layer_names { _BASE, _FN ,_FN1 ,_FN2 };
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPACE, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL),
|
||||
|
||||
[_BASE] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RALT, KC_RWIN, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT), //
|
||||
[_FN] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_FN1] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_FN2] = LAYOUT_all(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
[_FN2] = LAYOUT(KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
||||
|
||||
bool led_update_user(led_t led_state) {
|
||||
|
@@ -2,9 +2,9 @@
|
||||
|
||||

|
||||
|
||||
A 60% keyboard based on STM32f303
|
||||
A 60% keyboard based on STM32F303.
|
||||
|
||||
* Keyboard Maintainer: [Weirdo](https://weirdo-f.github.io)(https://github.com/1248314361)
|
||||
* Keyboard Maintainer: [Weirdo](https://github.com/weirdo-f) ([weirdo-f.github.io](https://))
|
||||
* Hardware Supported: Geminate60
|
||||
* Hardware Availability: Not yet
|
||||
|
||||
|
@@ -282,7 +282,7 @@ void test_slow_update(void) {
|
||||
if (++x >= oled_max_chars()) {
|
||||
x = 0;
|
||||
if (++y >= oled_max_lines()) {
|
||||
// The whole screen was filled - start the next phase.
|
||||
// The whole screen was filled - start the next phase.
|
||||
++phase;
|
||||
x = y = 0;
|
||||
}
|
||||
|
@@ -11,7 +11,7 @@ Available commands using a single key:
|
||||
Available test patterns:
|
||||
- QMK logo (clipped to fit on the display).
|
||||
- Fill the whole screen with as much unique characters as possible (all 94 printable ASCII characters are used, and if the display has more character positions available, the same characters are printed again, but inverted).
|
||||
- “Slow update” test — instead of updating the whole screen at once, draw things piece by piece to uncover display update bugs. The drawing sequence used by this test:
|
||||
- “Slow update” test — instead of updating the whole screen at once, draw things piece by piece to uncover display update bugs. The drawing sequence used by this test:
|
||||
- Fill the whole screen with printable ASCII characters (similar to the previous test, but characters are drawn one by one with 250 ms intervals between them, and inverted characters are not used to avoid obscuring the next phases).
|
||||
- Draw a frame along the screen edges, starting from the top left corner and going down along the left edge, then along the bottom, right and top edges, with 50 ms delay after every pixel.
|
||||
- Repeat the same sequence again, but with the character sequence shifted by 1 character (so that the updates would be visible).
|
||||
|
@@ -4,9 +4,12 @@
|
||||
"maintainer": "Swiftrax",
|
||||
"width": 15,
|
||||
"height": 5,
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_60_ansi_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,A", "x":10, "y":0}, {"label":"0,B", "x":11, "y":0}, {"label":"0,C", "x":12, "y":0}, {"label":"0,D", "x":13, "y":0}, {"label":"2,D", "x":14, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,A", "x":10.5, "y":1}, {"label":"1,B", "x":11.5, "y":1}, {"label":"1,C", "x":12.5, "y":1}, {"label":"1,D", "x":13.5, "y":1, "w":1.5}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,A", "x":10.75, "y":2}, {"label":"2,B", "x":11.75, "y":2}, {"label":"2,C", "x":12.75, "y":2, "w":2.25}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,1", "x":2.25, "y":3}, {"label":"3,2", "x":3.25, "y":3}, {"label":"3,3", "x":4.25, "y":3}, {"label":"3,4", "x":5.25, "y":3}, {"label":"3,5", "x":6.25, "y":3}, {"label":"3,6", "x":7.25, "y":3}, {"label":"3,7", "x":8.25, "y":3}, {"label":"3,8", "x":9.25, "y":3}, {"label":"3,9", "x":10.25, "y":3}, {"label":"3,A", "x":11.25, "y":3}, {"label":"3,B", "x":12.25, "y":3, "w":1.75}, {"label":"3,C", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,8", "x":10, "y":4, "w":1.25}, {"label":"4,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,A", "x":12.5, "y":4, "w":1.25}, {"label":"4,B", "x":13.75, "y":4, "w":1.25}]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -17,14 +17,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_DEL,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______,
|
||||
_______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
@@ -17,21 +17,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , KC_DEL,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, MO(1) ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, MO(1) , KC_RCTL
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
_______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______,
|
||||
_______, _______, KC_UP , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
[2] = LAYOUT_60_ansi_split_bs_rshift(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
|
@@ -20,7 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT( \
|
||||
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||
|
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = 60_ansi_split_bs_rshift
|
||||
|
@@ -6,60 +6,145 @@
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 80,
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Fn", "x":14, "y":0}, {"label":"Insert", "x":15.25, "y":0}, {"label":"`", "x":0, "y":1.25}, {"label":"1", "x":1, "y":1.25}, {"label":"2", "x":2, "y":1.25}, {"label":"3", "x":3, "y":1.25}, {"label":"4", "x":4, "y":1.25}, {"label":"5", "x":5, "y":1.25}, {"label":"6", "x":6, "y":1.25}, {"label":"7", "x":7, "y":1.25}, {"label":"8", "x":8, "y":1.25}, {"label":"9", "x":9, "y":1.25}, {"label":"0", "x":10, "y":1.25}, {"label":"-", "x":11, "y":1.25}, {"label":"=", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Home", "x":15.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"[", "x":11.5, "y":2.25}, {"label":"]", "x":12.5, "y":2.25}, {"label":"\\", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":";", "x":10.75, "y":3.25}, {"label":"'", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":",", "x":9.25, "y":4.25}, {"label":".", "x":10.25, "y":4.25}, {"label":"/", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":1.75}, {"label":"\u2191", "x":14.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":13.25, "y":5.5}, {"label":"\u2193", "x":14.25, "y":5.5}, {"label":"\u2192", "x":15.25, "y":5.5}]
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":1.25, "y":0},
|
||||
{"label":"F2", "x":2.25, "y":0},
|
||||
{"label":"F3", "x":3.25, "y":0},
|
||||
{"label":"F4", "x":4.25, "y":0},
|
||||
{"label":"F5", "x":5.5, "y":0},
|
||||
{"label":"F6", "x":6.5, "y":0},
|
||||
{"label":"F7", "x":7.5, "y":0},
|
||||
{"label":"F8", "x":8.5, "y":0},
|
||||
{"label":"F9", "x":9.75, "y":0},
|
||||
{"label":"F10", "x":10.75, "y":0},
|
||||
{"label":"F11", "x":11.75, "y":0},
|
||||
{"label":"F12", "x":12.75, "y":0},
|
||||
{"label":"Fn", "x":14, "y":0},
|
||||
{"label":"Insert", "x":15.25, "y":0},
|
||||
|
||||
{"label":"`", "x":0, "y":1.25},
|
||||
{"label":"1", "x":1, "y":1.25},
|
||||
{"label":"2", "x":2, "y":1.25},
|
||||
{"label":"3", "x":3, "y":1.25},
|
||||
{"label":"4", "x":4, "y":1.25},
|
||||
{"label":"5", "x":5, "y":1.25},
|
||||
{"label":"6", "x":6, "y":1.25},
|
||||
{"label":"7", "x":7, "y":1.25},
|
||||
{"label":"8", "x":8, "y":1.25},
|
||||
{"label":"9", "x":9, "y":1.25},
|
||||
{"label":"0", "x":10, "y":1.25},
|
||||
{"label":"-", "x":11, "y":1.25},
|
||||
{"label":"=", "x":12, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label":"Home", "x":15.25, "y":1.25},
|
||||
|
||||
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2.25},
|
||||
{"label":"W", "x":2.5, "y":2.25},
|
||||
{"label":"E", "x":3.5, "y":2.25},
|
||||
{"label":"R", "x":4.5, "y":2.25},
|
||||
{"label":"T", "x":5.5, "y":2.25},
|
||||
{"label":"Y", "x":6.5, "y":2.25},
|
||||
{"label":"U", "x":7.5, "y":2.25},
|
||||
{"label":"I", "x":8.5, "y":2.25},
|
||||
{"label":"O", "x":9.5, "y":2.25},
|
||||
{"label":"P", "x":10.5, "y":2.25},
|
||||
{"label":"[", "x":11.5, "y":2.25},
|
||||
{"label":"]", "x":12.5, "y":2.25},
|
||||
{"label":"\\", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":2.25},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3.25},
|
||||
{"label":"S", "x":2.75, "y":3.25},
|
||||
{"label":"D", "x":3.75, "y":3.25},
|
||||
{"label":"F", "x":4.75, "y":3.25},
|
||||
{"label":"G", "x":5.75, "y":3.25},
|
||||
{"label":"H", "x":6.75, "y":3.25},
|
||||
{"label":"J", "x":7.75, "y":3.25},
|
||||
{"label":"K", "x":8.75, "y":3.25},
|
||||
{"label":"L", "x":9.75, "y":3.25},
|
||||
{"label":";", "x":10.75, "y":3.25},
|
||||
{"label":"'", "x":11.75, "y":3.25},
|
||||
{"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
|
||||
{"label":"Shift", "x":0, "y":4.25, "w":2.25},
|
||||
{"label":"Z", "x":2.25, "y":4.25},
|
||||
{"label":"X", "x":3.25, "y":4.25},
|
||||
{"label":"C", "x":4.25, "y":4.25},
|
||||
{"label":"V", "x":5.25, "y":4.25},
|
||||
{"label":"B", "x":6.25, "y":4.25},
|
||||
{"label":"N", "x":7.25, "y":4.25},
|
||||
{"label":"M", "x":8.25, "y":4.25},
|
||||
{"label":",", "x":9.25, "y":4.25},
|
||||
{"label":".", "x":10.25, "y":4.25},
|
||||
{"label":"/", "x":11.25, "y":4.25},
|
||||
{"label":"Shift", "x":12.25, "y":4.25, "w":1.75},
|
||||
{"label":"\u2191", "x":14.25, "y":4.5},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||
{"label":"Win", "x":1.25, "y":5.25, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||
{"x":3.75, "y":5.25, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":5.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5},
|
||||
{"label":"\u2190", "x":13.25, "y":5.5},
|
||||
{"label":"\u2193", "x":14.25, "y":5.5},
|
||||
{"label":"\u2192", "x":15.25, "y":5.5}
|
||||
]
|
||||
},
|
||||
|
||||
"LAYOUT_iso": {
|
||||
"layout": [
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":1.25, "y":0},
|
||||
{"label":"F2", "x":2.25, "y":0},
|
||||
{"label":"F3", "x":3.25, "y":0},
|
||||
{"label":"F4", "x":4.25, "y":0},
|
||||
{"label":"F5", "x":5.5, "y":0},
|
||||
{"label":"F6", "x":6.5, "y":0},
|
||||
{"label":"F7", "x":7.5, "y":0},
|
||||
{"label":"F8", "x":8.5, "y":0},
|
||||
{"label":"F9", "x":9.75, "y":0},
|
||||
{"label":"F10", "x":10.75, "y":0},
|
||||
{"label":"F11", "x":11.75, "y":0},
|
||||
{"label":"F12", "x":12.75, "y":0},
|
||||
{"label":"Fn", "x":14, "y":0},
|
||||
{"label":"Insert", "x":15.25, "y":0},
|
||||
{"label":"Esc", "x":0, "y":0},
|
||||
{"label":"F1", "x":1.25, "y":0},
|
||||
{"label":"F2", "x":2.25, "y":0},
|
||||
{"label":"F3", "x":3.25, "y":0},
|
||||
{"label":"F4", "x":4.25, "y":0},
|
||||
{"label":"F5", "x":5.5, "y":0},
|
||||
{"label":"F6", "x":6.5, "y":0},
|
||||
{"label":"F7", "x":7.5, "y":0},
|
||||
{"label":"F8", "x":8.5, "y":0},
|
||||
{"label":"F9", "x":9.75, "y":0},
|
||||
{"label":"F10", "x":10.75, "y":0},
|
||||
{"label":"F11", "x":11.75, "y":0},
|
||||
{"label":"F12", "x":12.75, "y":0},
|
||||
{"label":"Fn", "x":14, "y":0},
|
||||
{"label":"Insert", "x":15.25, "y":0},
|
||||
|
||||
{"label":"`", "x":0, "y":1.25},
|
||||
{"label":"1", "x":1, "y":1.25},
|
||||
{"label":"2", "x":2, "y":1.25},
|
||||
{"label":"3", "x":3, "y":1.25},
|
||||
{"label":"4", "x":4, "y":1.25},
|
||||
{"label":"5", "x":5, "y":1.25},
|
||||
{"label":"6", "x":6, "y":1.25},
|
||||
{"label":"7", "x":7, "y":1.25},
|
||||
{"label":"8", "x":8, "y":1.25},
|
||||
{"label":"9", "x":9, "y":1.25},
|
||||
{"label":"0", "x":10, "y":1.25},
|
||||
{"label":"-", "x":11, "y":1.25},
|
||||
{"label":"=", "x":12, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label":"Home", "x":15.25, "y":1.25},
|
||||
{"label":"`", "x":0, "y":1.25},
|
||||
{"label":"1", "x":1, "y":1.25},
|
||||
{"label":"2", "x":2, "y":1.25},
|
||||
{"label":"3", "x":3, "y":1.25},
|
||||
{"label":"4", "x":4, "y":1.25},
|
||||
{"label":"5", "x":5, "y":1.25},
|
||||
{"label":"6", "x":6, "y":1.25},
|
||||
{"label":"7", "x":7, "y":1.25},
|
||||
{"label":"8", "x":8, "y":1.25},
|
||||
{"label":"9", "x":9, "y":1.25},
|
||||
{"label":"0", "x":10, "y":1.25},
|
||||
{"label":"-", "x":11, "y":1.25},
|
||||
{"label":"=", "x":12, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label":"Home", "x":15.25, "y":1.25},
|
||||
|
||||
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2.25},
|
||||
{"label":"W", "x":2.5, "y":2.25},
|
||||
{"label":"E", "x":3.5, "y":2.25},
|
||||
{"label":"R", "x":4.5, "y":2.25},
|
||||
{"label":"T", "x":5.5, "y":2.25},
|
||||
{"label":"Y", "x":6.5, "y":2.25},
|
||||
{"label":"U", "x":7.5, "y":2.25},
|
||||
{"label":"I", "x":8.5, "y":2.25},
|
||||
{"label":"O", "x":9.5, "y":2.25},
|
||||
{"label":"P", "x":10.5, "y":2.25},
|
||||
{"label":"[", "x":11.5, "y":2.25},
|
||||
{"label":"]", "x":12.5, "y":2.25},
|
||||
{"label":"Delete", "x":15.25, "y":2.25},
|
||||
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{"label":"Q", "x":1.5, "y":2.25},
|
||||
{"label":"W", "x":2.5, "y":2.25},
|
||||
{"label":"E", "x":3.5, "y":2.25},
|
||||
{"label":"R", "x":4.5, "y":2.25},
|
||||
{"label":"T", "x":5.5, "y":2.25},
|
||||
{"label":"Y", "x":6.5, "y":2.25},
|
||||
{"label":"U", "x":7.5, "y":2.25},
|
||||
{"label":"I", "x":8.5, "y":2.25},
|
||||
{"label":"O", "x":9.5, "y":2.25},
|
||||
{"label":"P", "x":10.5, "y":2.25},
|
||||
{"label":"[", "x":11.5, "y":2.25},
|
||||
{"label":"]", "x":12.5, "y":2.25},
|
||||
{"label":"Delete", "x":15.25, "y":2.25},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":3, "w":1.75},
|
||||
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3.25},
|
||||
{"label":"S", "x":2.75, "y":3.25},
|
||||
{"label":"D", "x":3.75, "y":3.25},
|
||||
@@ -72,7 +157,7 @@
|
||||
{"label":";", "x":10.75, "y":3.25},
|
||||
{"label":"'", "x":11.75, "y":3.25},
|
||||
{"label":"ISO #", "x":12.75, "y":3.25},
|
||||
{"label":"Enter", "x":13.5, "y":2.25, "w":1.5, "h":2},
|
||||
{"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2},
|
||||
|
||||
{"label":"Shift", "x":0, "y":4.25, "w":1.25},
|
||||
{"label":"ISO \\", "x":1.25, "y":4.25},
|
||||
@@ -93,13 +178,13 @@
|
||||
{"label":"GUI", "x":1.25, "y":5.25, "w":1.25},
|
||||
{"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||
{"label":"Space", "x":3.75, "y":5.25, "w":6.25},
|
||||
{"label":"Alt", "x":10, "y":5.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5},
|
||||
{"label":"Alt", "x":10, "y":5.25, "w":1.5},
|
||||
{"label":"Ctrl", "x":11.5, "y":5.25, "w":1.5},
|
||||
|
||||
{"label":"Left", "x":13.25, "y":5.5},
|
||||
{"label":"Down", "x":14.25, "y":5.5},
|
||||
{"label":"Right", "x":15.25, "y":5.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
#include "le_chiffre.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
led_config_t g_led_config = { {
|
||||
// Key Matrix to LED Index
|
||||
{ 3, 4, NO_LED, 5, 6 },
|
||||
@@ -29,3 +30,4 @@ led_config_t g_led_config = { {
|
||||
|
||||
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
|
||||
} };
|
||||
#endif
|
||||
|
70
keyboards/makrosu/config.h
Normal file
70
keyboards/makrosu/config.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/* Copyright 2021 Valdydesu_
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xAB69
|
||||
#define PRODUCT_ID 0x8585
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER valdydesu_
|
||||
#define PRODUCT makrosu
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 1
|
||||
#define MATRIX_COLS 6
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { B6 }
|
||||
#define MATRIX_COL_PINS { B2, B3, B1, F7, F6, F5}
|
||||
#define UNUSED_PINS
|
||||
|
||||
#define ENCODERS_PAD_A { D1 }
|
||||
#define ENCODERS_PAD_B { E6 }
|
||||
#define ENCODER_DIRECTION_FLIP
|
||||
#define TAP_CODE_DELAY 10
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define BOOTMAGIC_LITE_ROW 0
|
||||
#define BOOTMAGIC_LITE_COLUMN 5
|
||||
/* number of backlight levels */
|
||||
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
|
||||
/* Locking resynchronize hack */
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
|
||||
|
||||
// EEPROM usage
|
||||
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 0
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
21
keyboards/makrosu/info.json
Normal file
21
keyboards/makrosu/info.json
Normal file
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"keyboard_name": "MakrOSU",
|
||||
"url": "",
|
||||
"maintainer": "Valdydesu_",
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
|
||||
{"label" : "Esc", "x":0, "y":0},
|
||||
{"label" : "F1", "x":1, "y":0},
|
||||
{"label" : "F2", "x":2, "y":0},
|
||||
|
||||
{"label" : "Lower", "x":0, "y":1},
|
||||
{"label" : "Z", "x":1.5, "y":1},
|
||||
{"label" : "X", "x":2.5, "y":1}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
122
keyboards/makrosu/keymaps/default/keymap.c
Normal file
122
keyboards/makrosu/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,122 @@
|
||||
/* Copyright 2021 Valdydesu_
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum planck_layers {
|
||||
_1,
|
||||
_2,
|
||||
_3,
|
||||
_4
|
||||
|
||||
};
|
||||
|
||||
|
||||
enum planck_keycodes {
|
||||
L1 = SAFE_RANGE,
|
||||
L2,
|
||||
L3
|
||||
|
||||
};
|
||||
|
||||
#define LOWER MO(_4)
|
||||
#define IND_1 D4
|
||||
#define IND_2 C6
|
||||
#define IND_3 D7
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_1] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2,
|
||||
LOWER, KC_Z, KC_X),
|
||||
|
||||
[_2] = LAYOUT(
|
||||
LALT(KC_TAB), LGUI(KC_TAB), LCTL(KC_S),
|
||||
LOWER, LCTL(KC_C), LCTL(KC_V)),
|
||||
|
||||
[_3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_4] = LAYOUT(
|
||||
L1, L2, L3,
|
||||
_______, _______, _______),
|
||||
|
||||
};
|
||||
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
state = update_tri_layer_state(state, _4, X_PAUSE, X_PAUSE);
|
||||
writePin(IND_1, layer_state_cmp(state, 1));
|
||||
writePin(IND_2, layer_state_cmp(state, 2));
|
||||
writePin(IND_3, layer_state_cmp(state, 3));
|
||||
return state;
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case L1:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_1);
|
||||
}
|
||||
return false;
|
||||
case L2:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_2);
|
||||
}
|
||||
return false;
|
||||
case L3:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_3);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
//init the Pro Micro on-board LEDs
|
||||
setPinOutput(IND_1);
|
||||
setPinOutput(IND_2);
|
||||
setPinOutput(IND_3);
|
||||
//set to off
|
||||
writePinHigh(IND_1);
|
||||
writePinHigh(IND_2);
|
||||
writePinHigh(IND_3);
|
||||
}
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (layer_state_is(_1)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_UP);
|
||||
} else {
|
||||
tap_code(KC_DOWN);
|
||||
}
|
||||
} else if (layer_state_is(_2)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_RGHT);
|
||||
} else {
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
} else if (layer_state_is(_3)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
122
keyboards/makrosu/keymaps/via/keymap.c
Normal file
122
keyboards/makrosu/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,122 @@
|
||||
/* Copyright 2021 Valdydesu_
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum planck_layers {
|
||||
_1,
|
||||
_2,
|
||||
_3,
|
||||
_4
|
||||
|
||||
};
|
||||
|
||||
|
||||
enum planck_keycodes {
|
||||
L1 = SAFE_RANGE,
|
||||
L2,
|
||||
L3
|
||||
|
||||
};
|
||||
|
||||
#define LOWER MO(_4)
|
||||
#define IND_1 D4
|
||||
#define IND_2 C6
|
||||
#define IND_3 D7
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_1] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2,
|
||||
LOWER, KC_Z, KC_X),
|
||||
|
||||
[_2] = LAYOUT(
|
||||
LALT(KC_TAB), LGUI(KC_TAB), LCTL(KC_S),
|
||||
LOWER, LCTL(KC_C), LCTL(KC_V)),
|
||||
|
||||
[_3] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[_4] = LAYOUT(
|
||||
L1, L2, L3,
|
||||
_______, _______, _______),
|
||||
|
||||
};
|
||||
|
||||
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
state = update_tri_layer_state(state, _4, X_PAUSE, X_PAUSE);
|
||||
writePin(IND_1, layer_state_cmp(state, 1));
|
||||
writePin(IND_2, layer_state_cmp(state, 2));
|
||||
writePin(IND_3, layer_state_cmp(state, 3));
|
||||
return state;
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case L1:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_1);
|
||||
}
|
||||
return false;
|
||||
case L2:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_2);
|
||||
}
|
||||
return false;
|
||||
case L3:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_3);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
//init the Pro Micro on-board LEDs
|
||||
setPinOutput(IND_1);
|
||||
setPinOutput(IND_2);
|
||||
setPinOutput(IND_3);
|
||||
//set to off
|
||||
writePinHigh(IND_1);
|
||||
writePinHigh(IND_2);
|
||||
writePinHigh(IND_3);
|
||||
}
|
||||
|
||||
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||
if (layer_state_is(_1)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_UP);
|
||||
} else {
|
||||
tap_code(KC_DOWN);
|
||||
}
|
||||
} else if (layer_state_is(_2)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_RGHT);
|
||||
} else {
|
||||
tap_code(KC_LEFT);
|
||||
}
|
||||
} else if (layer_state_is(_3)) {
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
1
keyboards/makrosu/keymaps/via/rules.mk
Normal file
1
keyboards/makrosu/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
16
keyboards/makrosu/makrosu.c
Normal file
16
keyboards/makrosu/makrosu.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2021 Valdydesu_
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include "makrosu.h"
|
20
keyboards/makrosu/makrosu.h
Normal file
20
keyboards/makrosu/makrosu.h
Normal file
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
/* This is a shortcut to help you visually see your layout.
|
||||
*
|
||||
* The first section contains all of the arguments representing the physical
|
||||
* layout of the board and position of the keys.
|
||||
*
|
||||
* The second converts the arguments into a two-dimensional array which
|
||||
* represents the switch matrix.
|
||||
*/
|
||||
#define LAYOUT( \
|
||||
K02, K03, K04, \
|
||||
K00, K01, K05 \
|
||||
) \
|
||||
{ \
|
||||
{ K00, K01, K02, K03, K04, K05 }, \
|
||||
}
|
||||
|
14
keyboards/makrosu/readme.md
Normal file
14
keyboards/makrosu/readme.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# [Makrosu Keypad](https://www.instagram.com/p/CJ8eoQ7BoGZ/)
|
||||
|
||||
A Macropad that has 1 rotary encoder, 2 switches and 3 push buttons. Default function is for playing OSU!
|
||||
|
||||
* Keyboard Maintainer: [Valdy](https://github.com/valdiieee)
|
||||
* Hardware Supported: Pro Micro, EC11 rotary encoder, MX Style Switches, Push Buttons, 1n4148 diodes
|
||||
* Hardware Availability: Private GB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make makrosu:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
23
keyboards/makrosu/rules.mk
Normal file
23
keyboards/makrosu/rules.mk
Normal file
@@ -0,0 +1,23 @@
|
||||
# MCU name
|
||||
MCU = atmega32u4
|
||||
|
||||
# Bootloader selection
|
||||
BOOTLOADER = caterina
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes
|
@@ -35,8 +35,7 @@
|
||||
{"label":"0", "x":10, "y":1.25},
|
||||
{"label":"-", "x":11, "y":1.25},
|
||||
{"label":"=", "x":12, "y":1.25},
|
||||
{"label":"\\", "x":13, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label":"Page Up", "x":15, "y":1.25},
|
||||
|
||||
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||
@@ -54,6 +53,7 @@
|
||||
{"label":"]", "x":12.5, "y":2.25},
|
||||
{"label":"\\", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label":"Page Down", "x":15, "y":2.25},
|
||||
|
||||
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
|
||||
{"label":"A", "x":1.75, "y":3.25},
|
||||
{"label":"S", "x":2.75, "y":3.25},
|
||||
@@ -66,11 +66,12 @@
|
||||
{"label":"L", "x":9.75, "y":3.25},
|
||||
{"label":";", "x":10.75, "y":3.25},
|
||||
{"label":"'", "x":11.75, "y":3.25},
|
||||
{"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
{"label":"#", "x":12.75, "y":3.25},
|
||||
{"label":"Enter", "x":13.75, "y":3.25, "w":1.25},
|
||||
{"label":"End", "x":15, "y":3.25},
|
||||
|
||||
{"label":"Left Shift", "x":0, "y":4.25, "w":1.25},
|
||||
{"label":"\\", "x":0, "y":4.25},
|
||||
{"label":"\\", "x":1.25, "y":4.25},
|
||||
{"label":"Z", "x":2.25, "y":4.25},
|
||||
{"label":"X", "x":3.25, "y":4.25},
|
||||
{"label":"C", "x":4.25, "y":4.25},
|
||||
@@ -96,4 +97,4 @@
|
||||
{"label":"Right", "x":15, "y":5.25}]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -142,7 +142,7 @@ uint8_t adns_read_reg(uint8_t reg_addr) {
|
||||
|
||||
void adns_write_reg(uint8_t reg_addr, uint8_t data) {
|
||||
adns_cs_select();
|
||||
adns_serial_write(reg_addr);
|
||||
adns_serial_write( 0b10000000 | reg_addr );
|
||||
adns_serial_write(data);
|
||||
adns_cs_deselect();
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to
|
||||
|
||||
## Revisions
|
||||
|
||||
There are two main revisions for the PloopyCo Tracball, everything up to 1.004, and 1.005.
|
||||
There are two main revisions for the PloopyCo Tracball, everything up to 1.004, and 1.005-1.006.
|
||||
|
||||
In the 1.005 revision, button for was changed from pin B5 to B6, and the debug LED pin was changed from F7 to B5.
|
||||
|
||||
|
@@ -12,8 +12,8 @@ It's a DIY, QMK Powered Trackball...Mini!
|
||||
|
||||
Make example for this trackball (after setting up your build environment):
|
||||
|
||||
make ploopyco/trackball_mini/rev1_001:default:flash
|
||||
make ploopyco/trackball_mini/rev1_001:via:flash
|
||||
make ploopyco/trackball_mini/rev1_002:default:flash
|
||||
make ploopyco/trackball_mini/rev1_002:via:flash
|
||||
|
||||
To jump to the bootloader, hold down "Button 4" (immediate right of the ball)
|
||||
|
||||
@@ -51,13 +51,13 @@ This should allow you to more heavily customize the behavior.
|
||||
|
||||
Alternatively, the `process_wheel` and `process_mouse` functions can both be replaced too, to allow for even more functionality.
|
||||
|
||||
Additionally, you can change the DPI/CPI or speed of the trackball by calling `adns_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` macro that will cycle through an array of options for the DPI. This is set to 375, 750, and 1375, but can be changed. 750 is the default.
|
||||
Additionally, you can change the DPI/CPI or speed of the trackball by calling `adns_set_cpi` at any time. Additionally, there is a `DPI_CONFIG` macro that will cycle through an array of options for the DPI. This is set to 375, 750, and 1375, but can be changed. 1375 is the default.
|
||||
|
||||
To configure/set your own array, there are two defines to use, `PLOOPY_DPI_OPTIONS` to set the array, and `PLOOPY_DPI_DEFAULT`.
|
||||
|
||||
```c
|
||||
#define PLOOPY_DPI_OPTIONS { CPI375, CPI750, CPI1375}
|
||||
#define PLOOPY_DPI_DEFAULT 1
|
||||
#define PLOOPY_DPI_DEFAULT 2
|
||||
```
|
||||
|
||||
The `PLOOPY_DPI_OPTIONS` array sets the values that you want to be able to cycle through, and the order they are in. The "default" define lets the firmware know which of these options is the default and should be loaded by default.
|
||||
@@ -72,4 +72,4 @@ When flashing the bootloader, use the following fuse settings:
|
||||
|----------|-------------|
|
||||
| Low | `0x5E` |
|
||||
| High | `0x99` |
|
||||
| Extended | `0xC3` |
|
||||
| Extended | `0xC3` |
|
||||
|
@@ -31,7 +31,7 @@
|
||||
*/
|
||||
#define DIRECT_PINS \
|
||||
{ \
|
||||
{ D4, D2, E6, D7, B6 } \
|
||||
{ D4, D2, E6, B6, D7 } \
|
||||
}
|
||||
|
||||
// These pins are not broken out, and cannot be used normally.
|
||||
|
40
keyboards/ploopyco/trackball_mini/rev1_002/config.h
Normal file
40
keyboards/ploopyco/trackball_mini/rev1_002/config.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/* Copyright 2021 Colin Lam (Ploopy Corporation)
|
||||
* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||
* Copyright 2019 Sunjun Kim
|
||||
* Copyright 2019 Hiroyuki Okada
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* Keyboard Matrix Assignments
|
||||
*
|
||||
* Change this to how you wired your keyboard
|
||||
* COLS: AVR pins used for columns, left to right
|
||||
* ROWS: AVR pins used for rows, top to bottom
|
||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||
*
|
||||
*/
|
||||
#define DIRECT_PINS \
|
||||
{ \
|
||||
{ D4, D2, E6, B6, D7 } \
|
||||
}
|
||||
|
||||
// These pins are not broken out, and cannot be used normally.
|
||||
// They are set as output and pulled high, by default
|
||||
#define UNUSED_PINS \
|
||||
{ B5, C7, D0, D1, D3, D5, D6, F1, F3, F5, F6, F7 }
|
1
keyboards/ploopyco/trackball_mini/rev1_002/readme.md
Normal file
1
keyboards/ploopyco/trackball_mini/rev1_002/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
See the main readme for more details. This is just here for when future revisions are released.
|
22
keyboards/ploopyco/trackball_mini/rev1_002/rev1_002.h
Normal file
22
keyboards/ploopyco/trackball_mini/rev1_002/rev1_002.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2021 Colin Lam (Ploopy Corporation)
|
||||
* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||
* Copyright 2019 Sunjun Kim
|
||||
* Copyright 2019 Hiroyuki Okada
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "trackball_mini.h"
|
0
keyboards/ploopyco/trackball_mini/rev1_002/rules.mk
Normal file
0
keyboards/ploopyco/trackball_mini/rev1_002/rules.mk
Normal file
@@ -18,6 +18,8 @@
|
||||
*/
|
||||
|
||||
#include "trackball_mini.h"
|
||||
#include "wait.h"
|
||||
#include "debug.h"
|
||||
|
||||
#ifndef OPT_DEBOUNCE
|
||||
# define OPT_DEBOUNCE 5 // (ms) Time between scroll events
|
||||
@@ -35,16 +37,8 @@
|
||||
# define OPT_SCALE 1 // Multiplier for wheel
|
||||
#endif
|
||||
|
||||
#ifndef PLOOPY_DPI_OPTIONS
|
||||
# define PLOOPY_DPI_OPTIONS { CPI375, CPI750, CPI1375 }
|
||||
# ifndef PLOOPY_DPI_DEFAULT
|
||||
# define PLOOPY_DPI_DEFAULT 2
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef PLOOPY_DPI_DEFAULT
|
||||
# define PLOOPY_DPI_DEFAULT 1
|
||||
#endif
|
||||
#define PLOOPY_DPI_OPTIONS { CPI375, CPI750, CPI1375 }
|
||||
#define PLOOPY_DPI_DEFAULT 2
|
||||
|
||||
// Transformation constants for delta-X and delta-Y
|
||||
const static float ADNS_X_TRANSFORM = -1.0;
|
||||
@@ -173,7 +167,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
void keyboard_pre_init_kb(void) {
|
||||
// debug_enable = true;
|
||||
// debug_matrix = true;
|
||||
debug_mouse = true;
|
||||
// debug_mouse = true;
|
||||
// debug_encoder = true;
|
||||
|
||||
setPinInput(OPT_ENC1);
|
||||
@@ -198,6 +192,22 @@ void keyboard_pre_init_kb(void) {
|
||||
void pointing_device_init(void) {
|
||||
adns_init();
|
||||
opt_encoder_init();
|
||||
|
||||
// reboot the adns.
|
||||
// if the adns hasn't initialized yet, this is harmless.
|
||||
adns_write_reg(REG_CHIP_RESET, 0x5a);
|
||||
|
||||
// wait maximum time before adns is ready.
|
||||
// this ensures that the adns is actuall ready after reset.
|
||||
wait_ms(55);
|
||||
|
||||
// read a burst from the adns and then discard it.
|
||||
// gets the adns ready for write commands
|
||||
// (for example, setting the dpi).
|
||||
adns_read_burst();
|
||||
|
||||
// set the DPI.
|
||||
adns_set_cpi(dpi_array[keyboard_config.dpi_config]);
|
||||
}
|
||||
|
||||
void pointing_device_task(void) {
|
||||
@@ -223,9 +233,3 @@ void matrix_init_kb(void) {
|
||||
}
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
adns_set_cpi(dpi_array[keyboard_config.dpi_config]);
|
||||
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
#include "trackball_nano.h"
|
||||
#include "wait.h"
|
||||
|
||||
#ifndef OPT_DEBOUNCE
|
||||
# define OPT_DEBOUNCE 5 // (ms) Time between scroll events
|
||||
@@ -43,7 +44,7 @@
|
||||
#endif
|
||||
|
||||
#ifndef PLOOPY_DPI_DEFAULT
|
||||
# define PLOOPY_DPI_DEFAULT 1
|
||||
# define PLOOPY_DPI_DEFAULT 2
|
||||
#endif
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { };
|
||||
@@ -139,7 +140,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||
void keyboard_pre_init_kb(void) {
|
||||
// debug_enable = true;
|
||||
// debug_matrix = true;
|
||||
debug_mouse = true;
|
||||
// debug_mouse = true;
|
||||
// debug_encoder = true;
|
||||
|
||||
setPinInput(OPT_ENC1);
|
||||
@@ -164,6 +165,22 @@ void keyboard_pre_init_kb(void) {
|
||||
void pointing_device_init(void) {
|
||||
adns_init();
|
||||
opt_encoder_init();
|
||||
|
||||
// reboot the adns.
|
||||
// if the adns hasn't initialized yet, this is harmless.
|
||||
adns_write_reg(REG_CHIP_RESET, 0x5a);
|
||||
|
||||
// wait maximum time before adns is ready.
|
||||
// this ensures that the adns is actuall ready after reset.
|
||||
wait_ms(55);
|
||||
|
||||
// read a burst from the adns and then discard it.
|
||||
// gets the adns ready for write commands
|
||||
// (for example, setting the dpi).
|
||||
adns_read_burst();
|
||||
|
||||
// set the DPI.
|
||||
adns_set_cpi(dpi_array[keyboard_config.dpi_config]);
|
||||
}
|
||||
|
||||
void pointing_device_task(void) {
|
||||
@@ -188,9 +205,3 @@ void matrix_init_kb(void) {
|
||||
}
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
adns_set_cpi(dpi_array[keyboard_config.dpi_config]);
|
||||
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
71
keyboards/technika/info.json
Normal file
71
keyboards/technika/info.json
Normal file
@@ -0,0 +1,71 @@
|
||||
{
|
||||
"keyboard_name": "Technika",
|
||||
"url": "",
|
||||
"maintainer": "Gondolindrim",
|
||||
"height": 4,
|
||||
"width": 14,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"K00", "x":0, "y":0},
|
||||
{"label":"K01", "x":1, "y":0},
|
||||
{"label":"K02", "x":2, "y":0},
|
||||
{"label":"K03", "x":3, "y":0},
|
||||
{"label":"K04", "x":4, "y":0},
|
||||
{"label":"K05", "x":5, "y":0},
|
||||
{"label":"K06", "x":6, "y":0},
|
||||
{"label":"K07", "x":7, "y":0},
|
||||
{"label":"K08", "x":8, "y":0},
|
||||
{"label":"K09", "x":9, "y":0},
|
||||
{"label":"K0A", "x":10, "y":0},
|
||||
{"label":"K0B", "x":11, "y":0},
|
||||
{"label":"K0C", "x":12, "y":0},
|
||||
{"label":"K0D", "x":13, "y":0},
|
||||
|
||||
{"label":"K10", "x":0, "y":1},
|
||||
{"label":"K11", "x":1, "y":1},
|
||||
{"label":"K12", "x":2, "y":1},
|
||||
{"label":"K13", "x":3, "y":1},
|
||||
{"label":"K14", "x":4, "y":1},
|
||||
{"label":"K15", "x":5, "y":1},
|
||||
{"label":"K16", "x":6, "y":1},
|
||||
{"label":"K17", "x":7, "y":1},
|
||||
{"label":"K18", "x":8, "y":1},
|
||||
{"label":"K19", "x":9, "y":1},
|
||||
{"label":"K1A", "x":10, "y":1},
|
||||
{"label":"K1B", "x":11, "y":1},
|
||||
{"label":"K1C", "x":12, "y":1},
|
||||
{"label":"K1D", "x":13, "y":1},
|
||||
|
||||
{"label":"K20", "x":0, "y":2},
|
||||
{"label":"K21", "x":1, "y":2},
|
||||
{"label":"K22", "x":2, "y":2},
|
||||
{"label":"K23", "x":3, "y":2},
|
||||
{"label":"K24", "x":4, "y":2},
|
||||
{"label":"K25", "x":5, "y":2},
|
||||
{"label":"K26", "x":6, "y":2},
|
||||
{"label":"K27", "x":7, "y":2},
|
||||
{"label":"K28", "x":8, "y":2},
|
||||
{"label":"K29", "x":9, "y":2},
|
||||
{"label":"K2A", "x":10, "y":2},
|
||||
{"label":"K2B", "x":11, "y":2},
|
||||
{"label":"K2C", "x":12, "y":2},
|
||||
{"label":"K2D", "x":13, "y":2},
|
||||
|
||||
{"label":"K30", "x":0, "y":3},
|
||||
{"label":"K31", "x":1, "y":3},
|
||||
{"label":"K32", "x":2, "y":3},
|
||||
{"label":"K33", "x":3, "y":3},
|
||||
{"label":"K35", "x":5, "y":3},
|
||||
{"label":"K36", "x":6, "y":3},
|
||||
{"label":"K37", "x":7, "y":3},
|
||||
{"label":"K38", "x":8, "y":3},
|
||||
{"label":"K39", "x":9, "y":3},
|
||||
{"label":"K3A", "x":10, "y":3},
|
||||
{"label":"K3B", "x":11, "y":3},
|
||||
{"label":"K3C", "x":12, "y":3},
|
||||
{"label":"K3D", "x":13, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,19 +1,19 @@
|
||||
# The Uni
|
||||
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
A compact unibody split ortholinear keyboard made specifically for stenography.
|
||||
|
||||
|
||||
- Keyboard Maintainer: [Peter C. Park](https://github.com/petercpark)
|
||||
- Link to Keyboard Files: [The_Uni](https://github.com/petercpark/The_Uni)
|
||||
- Hardware Supported: The Uni v1 and v2 (pro micro or equivalent)
|
||||
- Hardware Availability: [website](https://www.stenokeyboards.com)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
To enter the bootloader, short the rst and gnd pins with a conductive material such as a tweezer or a wire. Uni v2 will have reset pads next to the pro micro so you can short these pads to reset the pro micro.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make the_uni:default
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
To enter the bootloader, short the rst and gnd pins with a conductive material such as a tweezer or a wire. Uni v2 will have reset pads next to the pro micro so you can short these pads to reset the pro micro.
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
@@ -1,15 +1,15 @@
|
||||
# Tokyo60
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
Minimal hacker style mechanical keyboard designed in Tokyo. Full aluminum hi-pro construction with integrated top-plate. Cherry MX compatible. More Info at [Tokyo Keyboard](http://tokyokeyboard.com).
|
||||
|
||||
|
||||
* Keyboard Maintainer: [Tokyo Keyboard](http://tokyokeyboard.com)
|
||||
* Hardware Supported: Tokyo60 Rev.1
|
||||
* Hardware Availability: [Drop](https://drop.com/buy/massdrop-x-tokyo-keyboard-tokyo60-keyboard-kit?mode=guest_open)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
|
||||
make tokyo60:default
|
||||
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
@@ -1,17 +1,17 @@
|
||||
# alix40
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
Minimal hacker style mechanical keyboard designed in Tokyo. Cherry MX compatible. More Info at [Tokyo Keyboard](http://tokyokeyboard.com).
|
||||
|
||||
|
||||
* Keyboard Maintainer: [quadcube](https://github.com/quadcube)
|
||||
* Hardware Supported: alix40 rev1
|
||||
* Hardware Availability: [Tokyo Keyboard](http://tokyokeyboard.com)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
|
||||
make tokyokeyboard/alix40:default
|
||||
|
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
||||
|
||||
Note:
|
||||
|
@@ -23,15 +23,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_all( \
|
||||
@@ -53,15 +53,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_ansi( \
|
||||
@@ -83,16 +83,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_ansi_blocker( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
|
||||
@@ -113,16 +113,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_ansi_blocker_split_bs( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \
|
||||
@@ -143,15 +143,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_iso( \
|
||||
@@ -173,16 +173,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_iso_blocker( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k15, k16, \
|
||||
@@ -203,16 +203,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
* │ │ │ │ │ │ │ │ │ │ │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
|
||||
*/
|
||||
#define LAYOUT_65_iso_blocker_split_bs( \
|
||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k10, k11, k12, k13, k14, k15, k16, \
|
||||
|
@@ -1,14 +1,14 @@
|
||||
# ikki68
|
||||
|
||||

|
||||
|
||||
|
||||
Hope this kit is the same as ikki, every rebirth will be stronger
|
||||
More Info at [wuquestudio](https://shop.wuquestudio.com/).
|
||||
|
||||
|
||||
* Keyboard Maintainer: [wuquestudio](https://shop.wuquestudio.com)
|
||||
* Hardware Supported: ikki 68 Standard
|
||||
* Hardware Availability: [wuquestudio](https://shop.wuquestudio.com/products/ikki68)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make wuque/ikki68:default
|
||||
|
@@ -5,7 +5,7 @@ typedef HSV (*i_f)(HSV hsv, uint8_t i, uint8_t time);
|
||||
bool effect_runner_i(effect_params_t* params, i_f effect_func) {
|
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
|
||||
uint8_t time = scale16by8(g_rgb_timer, rgb_matrix_config.speed / 4);
|
||||
uint8_t time = scale16by8(g_rgb_timer, qadd8(rgb_matrix_config.speed / 4, 1));
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, i, time));
|
||||
|
@@ -7,7 +7,7 @@ typedef HSV (*reactive_f)(HSV hsv, uint16_t offset);
|
||||
bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
|
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
|
||||
uint16_t max_tick = 65535 / rgb_matrix_config.speed;
|
||||
uint16_t max_tick = 65535 / qadd8(rgb_matrix_config.speed, 1);
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
uint16_t tick = max_tick;
|
||||
@@ -19,7 +19,7 @@ bool effect_runner_reactive(effect_params_t* params, reactive_f effect_func) {
|
||||
}
|
||||
}
|
||||
|
||||
uint16_t offset = scale16by8(tick, rgb_matrix_config.speed);
|
||||
uint16_t offset = scale16by8(tick, qadd8(rgb_matrix_config.speed, 1));
|
||||
RGB rgb = rgb_matrix_hsv_to_rgb(effect_func(rgb_matrix_config.hsv, offset));
|
||||
rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b);
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ bool effect_runner_reactive_splash(uint8_t start, effect_params_t* params, react
|
||||
int16_t dx = g_led_config.point[i].x - g_last_hit_tracker.x[j];
|
||||
int16_t dy = g_led_config.point[i].y - g_last_hit_tracker.y[j];
|
||||
uint8_t dist = sqrt16(dx * dx + dy * dy);
|
||||
uint16_t tick = scale16by8(g_last_hit_tracker.tick[j], rgb_matrix_config.speed);
|
||||
uint16_t tick = scale16by8(g_last_hit_tracker.tick[j], qadd8(rgb_matrix_config.speed, 1));
|
||||
hsv = effect_func(hsv, dx, dy, dist, tick);
|
||||
}
|
||||
hsv.v = scale8(hsv.v, rgb_matrix_config.hsv.v);
|
||||
|
Reference in New Issue
Block a user