# YubiSwitch > Basculez votre YubiKey entre Windows et WSL2 en un clic. YubiSwitch est un petit utilitaire de bureau développé avec [Tauri](https://tauri.app) et Rust, conçu pour les développeurs qui utilisent WSL2 et ont besoin de partager leur YubiKey entre Windows et leur environnement Linux sans passer par la ligne de commande. YubiSwitch --- ## Prérequis Avant d'installer YubiSwitch, assurez-vous d'avoir les éléments suivants sur votre machine Windows : **usbipd-win** — permet de partager des périphériques USB avec WSL2 : ```powershell winget install usbipd ``` **WSL2 avec Ubuntu** — environnement Linux sous Windows : ```powershell wsl --install ``` **Côté WSL2**, installez les outils YubiKey : ```bash sudo apt update && sudo apt install -y yubikey-manager fido2-tools libfido2-dev ``` Ajoutez la règle udev pour accéder à la YubiKey sans sudo : ```bash echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="1050", MODE="0666", GROUP="plugdev"' | sudo tee /etc/udev/rules.d/70-yubikey.rules sudo udevadm control --reload-rules sudo usermod -aG plugdev $USER ``` --- ## Installation Téléchargez la dernière version depuis la page [Releases](../../releases) : ``` YubiSwitch_x.x.x_x64-setup.exe ``` Double-cliquez sur le fichier `.exe` et suivez l'installateur. YubiSwitch s'installe pour l'utilisateur courant et crée un raccourci bureau. --- ## Utilisation ### Démarrage YubiSwitch se lance automatiquement dans la barre des tâches (system tray). Cliquez sur l'icône pour ouvrir la fenêtre principale. ### Basculer la YubiKey 1. Branchez votre YubiKey sur votre PC 2. Ouvrez YubiSwitch depuis le tray 3. Cliquez sur le **toggle** pour basculer entre Windows et WSL2 4. L'état se met à jour automatiquement toutes les 3 secondes ### Démarrage automatique Activez le toggle **Démarrage auto** en bas de la fenêtre pour que YubiSwitch se lance à chaque démarrage de Windows. ### Fermer l'application Cliquer sur la croix réduit l'app dans le tray. Pour quitter complètement, faites un clic droit sur l'icône du tray → **Quitter**. --- ## Architecture technique YubiSwitch est construit avec [Tauri 2](https://tauri.app), qui combine un backend Rust et un frontend web léger. ``` yubiswitch/ ├── src/ # Frontend (TypeScript + HTML/CSS) │ ├── main.ts # Logique UI, polling état YubiKey │ ├── index.html # Interface principale │ └── styles.css # Styles aux couleurs Enuxia └── src-tauri/ # Backend (Rust) └── src/ ├── main.rs # Point d'entrée Tauri ├── lib.rs # Commandes Tauri, system tray, autostart └── usbipd.rs # Intégration usbipd (list, attach, detach) ``` ### Fonctionnement Le backend Rust appelle `usbipd` en mode silencieux (`CREATE_NO_WINDOW`) pour lister et contrôler les périphériques USB. La YubiKey est identifiée par son VID Yubico (`1050`). Le frontend interroge le backend toutes les 3 secondes pour mettre à jour l'état affiché. ### Stack | Composant | Technologie | |---|---| | Framework desktop | Tauri 2 | | Backend | Rust | | Frontend | TypeScript + HTML/CSS vanilla | | USB sharing | usbipd-win | | Autostart | tauri-plugin-autostart | --- ## Contribuer Les contributions sont les bienvenues ! Pour contribuer : 1. Forkez le repo 2. Créez une branche : `git checkout -b feature/ma-feature` 3. Committez vos changements : `git commit -m 'feat: ma feature'` 4. Pushez : `git push origin feature/ma-feature` 5. Ouvrez une Pull Request ### Développement local ```powershell # Cloner le repo git clone https://gitea.enuxia.fr/enuxia/yubiswitch cd yubiswitch # Installer les dépendances npm install # Lancer en mode dev npm run tauri dev # Builder npm run tauri build ``` **Prérequis développement :** - [Rust](https://rustup.rs/) 1.70+ - [Node.js](https://nodejs.org/) 18+ - [usbipd-win](https://github.com/dorssel/usbipd-win) --- ## Licence MIT © 2026 [Enuxia](https://enuxia.com)