{"id":22656585,"url":"https://github.com/flug/my-sofle-v2","last_synced_at":"2026-04-27T07:01:12.037Z","repository":{"id":267120000,"uuid":"900305085","full_name":"flug/my-sofle-v2","owner":"flug","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-13T04:50:38.000Z","size":66,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-13T06:34:55.703Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/flug.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-12-08T12:47:22.000Z","updated_at":"2026-01-29T11:02:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"b1cbd5d8-6eb7-4e73-852e-7013d9799ac6","html_url":"https://github.com/flug/my-sofle-v2","commit_stats":null,"previous_names":["flug/my-sofle-v2"],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/flug/my-sofle-v2","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flug%2Fmy-sofle-v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flug%2Fmy-sofle-v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flug%2Fmy-sofle-v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flug%2Fmy-sofle-v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/flug","download_url":"https://codeload.github.com/flug/my-sofle-v2/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/flug%2Fmy-sofle-v2/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32326122,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-09T10:15:15.787Z","updated_at":"2026-04-27T07:01:12.018Z","avatar_url":"https://github.com/flug.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sofle v2 Custom Firmware\n\n[![Build QMK Firmware](https://github.com/flug/my-sofle-v2/actions/workflows/qmk.yml/badge.svg)](https://github.com/flug/my-sofle-v2/actions/workflows/qmk.yml)\n[![QMK](https://img.shields.io/badge/QMK-Firmware-blue)](https://qmk.fm/)\n[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)\n\nConfiguration de firmware QMK personnalisée pour le clavier **SplitKB Aurora Sofle v2** avec contrôleur **Liatris** (RP2040).\n\n## ✨ Fonctionnalités\n\n- 🎨 **RGB Matrix** avec effet \"goutte d'eau\" réactif aux touches\n- 🖥️ **Affichage OLED** avec icônes de couches personnalisées\n- 🎛️ **Encodeurs rotatifs** :\n  - Gauche : Défilement souris (scroll vertical)\n  - Droit : Navigation entre les couches\n- 🎹 **3 couches actives** + 1 couche de configuration RGB/média\n- 🎵 **Touches multimédia** sur la couche symboles\n- ⚡ **Optimisé** pour économiser l'espace firmware\n\n## 🗺️ Organisation des couches\n\n| Couche | Nom | Description |\n|--------|-----|-------------|\n| 0 | `_DEFAULT` | Layout QWERTY standard |\n| 1 | `_PERCENT` | Nombres, F-keys, symboles, touches multimédia (!@#$% → Play/Prev/Next/Mute/Vol-) |\n| 2 | `_CODE` | Navigation, clipboard (Ctrl+Z/X/C/V), édition de code |\n| 3 | Config | Contrôles RGB et média (accessible via MO(3)) |\n\n## 📥 Installation rapide\n\n### Télécharger le firmware pré-compilé\n\n1. Allez dans [Releases](https://github.com/flug/my-sofle-v2/releases)\n2. Téléchargez le fichier `firmware.uf2` de la dernière release\n3. Passez votre clavier en mode bootloader :\n   - Double-clic sur le bouton **RESET** du contrôleur Liatris\n   - Un lecteur USB nommé `RPI-RP2` devrait apparaître\n4. Copiez le fichier `firmware.uf2` sur ce lecteur\n5. Le clavier redémarre automatiquement avec le nouveau firmware\n\n## 🛠️ Compilation locale\n\n### Prérequis\n\n**Windows:**\n1. Téléchargez [QMK MSYS](https://msys.qmk.fm/)\n2. Installez dans `C:\\QMK_MSYS` (ou autre emplacement)\n3. Ouvrez **QMK MSYS** depuis le menu Démarrer\n\n**Linux/Mac:**\n```bash\n# Installer QMK CLI\npython3 -m pip install --user qmk\nqmk setup\n```\n\n### Compiler\n\n```bash\n# Se positionner dans le dossier du projet\ncd /chemin/vers/my-sofle-v2\n\n# Convertir le JSON en C (si modifié)\nmake convert\n\n# Compiler le firmware\nmake compile\n```\n\nLe fichier `.uf2` sera généré dans `~/qmk_firmware/.build/`\n\n### Script Windows (raccourci)\n\nDouble-cliquez sur `compile_qmk.bat` pour compiler automatiquement.\n\n## 🔧 Développement\n\n### Structure du projet\n\n```\nmy-sofle-v2/\n├── default/              # Fichiers source du firmware\n│   ├── keymap.h         # Logique principale (encodeurs, OLED, RGB)\n│   ├── layer_images.h   # Icônes OLED des couches (512 bytes chacune)\n│   ├── config.h         # Configuration QMK et RGB Matrix\n│   └── rules.mk         # Features QMK activées/désactivées\n├── map/\n│   └── keymap.json      # Layout des touches (format QMK Configurator)\n├── .github/workflows/\n│   └── qmk.yml          # CI/CD automatique\n├── Makefile             # Commandes de build simplifiées\n└── copy_to_qmk.bat      # Copie les fichiers vers QMK (Windows)\n```\n\n### Modifier le layout\n\n**Option 1 : QMK Configurator (GUI)**\n1. Allez sur [config.qmk.fm](https://config.qmk.fm)\n2. Chargez `map/keymap.json`\n3. Modifiez les touches\n4. Téléchargez le JSON\n5. Remplacez `map/keymap.json`\n6. Exécutez `make convert` pour générer le C\n\n**Option 2 : Édition directe**\nModifiez `default/keymap.h` pour changer la logique (encodeurs, OLED, RGB, etc.)\n\n### Tester les modifications\n\n```bash\n# Compiler\nmake compile\n\n# Flasher (le clavier doit être en mode bootloader)\n# Copiez manuellement le .uf2 ou utilisez:\nqmk flash -e CONVERT_TO=liatris -kb splitkb/aurora/sofle_v2/rev1 -km custom\n```\n\n## 🤖 CI/CD Automatique\n\nLe firmware est compilé automatiquement par GitHub Actions :\n\n- ✅ **À chaque push** sur `main` → Release standard\n- 📅 **Tous les lundis à 2h UTC** → Build automatique avec la dernière version de QMK\n- 🚀 **Déclenchement manuel** → Build à la demande\n\nLes builds automatiques/manuels sont marqués comme **pre-release** et incluent un fichier `build-info.txt` avec les détails de compilation.\n\n### Déclencher un build manuel\n\n1. Allez dans **Actions** → **Build QMK Firmware**\n2. Cliquez sur **Run workflow**\n3. (Optionnel) Spécifiez une branche QMK différente\n4. Récupérez le firmware dans les **Releases**\n\n## 🎮 Fonctionnalités spéciales\n\n### Encodeur gauche : Défilement souris\n- Rotation : Scroll vertical (haut/bas)\n- Debouncing de 50ms pour éviter les sauts\n\n### Encodeur droit : Sélection de couche\n- Rotation horaire : Couche suivante (0→1→2→0)\n- Rotation anti-horaire : Couche précédente (0→2→1→0)\n\n### Touches multimédia sur Layer 1\nQuand la couche `_PERCENT` est active, les symboles `!@#$%` deviennent :\n- `!` → Play/Pause\n- `@` → Piste précédente\n- `#` → Piste suivante\n- `$` → Mute\n- `%` → Volume -\n\n### RGB Matrix\n- **Couleur de base** : Blanc (HSV 0, 0, 255)\n- **Effet** : SOLID_REACTIVE_SIMPLE (goutte d'eau)\n- **Vitesse** : 128\n- **Sleep** : S'éteint automatiquement en cas d'inactivité\n\n## 📚 Ressources\n\n- [Documentation QMK](https://docs.qmk.fm/)\n- [SplitKB Aurora Sofle v2](https://splitkb.com/products/aurora-sofle-v2)\n- [Liatris Controller](https://splitkb.com/products/liatris)\n- [QMK Configurator](https://config.qmk.fm/)\n\n## 🤝 Contribution\n\nLes contributions sont les bienvenues ! N'hésitez pas à :\n- Ouvrir une **Issue** pour signaler un bug\n- Proposer une **Pull Request** pour améliorer le firmware\n- Partager vos idées de fonctionnalités\n\n## 📝 License\n\nCe projet est sous licence GPL v2, conformément à QMK Firmware.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflug%2Fmy-sofle-v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fflug%2Fmy-sofle-v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fflug%2Fmy-sofle-v2/lists"}