YubiSwitch
Basculez votre YubiKey entre Windows et WSL2 en un clic.
YubiSwitch est un petit utilitaire de bureau développé avec Tauri 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.
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 :
winget install usbipd
WSL2 avec Ubuntu — environnement Linux sous Windows :
wsl --install
Côté WSL2, installez les outils YubiKey :
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 :
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 :
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
- Branchez votre YubiKey sur votre PC
- Ouvrez YubiSwitch depuis le tray
- Cliquez sur le toggle pour basculer entre Windows et WSL2
- 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, 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 :
- Forkez le repo
- Créez une branche :
git checkout -b feature/ma-feature - Committez vos changements :
git commit -m 'feat: ma feature' - Pushez :
git push origin feature/ma-feature - Ouvrez une Pull Request
Développement local
# 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 1.70+
- Node.js 18+
- usbipd-win
Licence
MIT © 2026 Enuxia