DeskHop – fonctionnalité de bascule rapide entre bureaux
(github.com/hrvach)DeskHop - bascule rapide entre bureaux
- Gratuit et open source
- Presque aucune latence lors du basculement
- Possibilité de basculer en faisant glisser le pointeur de la souris d’un ordinateur à l’autre
- Aucune installation logicielle nécessaire
- Utilise des composants bon marché et faciles à trouver (moins de 15 euros)
- Boîtier à clips imprimable en 3D
- Isolation galvanique complète entre les sorties
- Fonctionne sur Linux, macOS et Windows
Principe de fonctionnement
- L’appareil sert d’intermédiaire entre le clavier/la souris et les ordinateurs, tout en maintenant simultanément la connexion avec les deux machines
- Il décide vers quel ordinateur transmettre la souris et les frappes au clavier selon le choix de l’utilisateur
- Lorsque la souris est glissée vers un autre bureau, le clavier bascule automatiquement lui aussi
Souris
- Modifie le descripteur de rapport HID de la souris pour utiliser des coordonnées absolues, et accumule en interne les rapports de souris (déplacements relatifs) afin de conserver une position précise
- Lorsqu’on tente de sortir de la zone de l’écran dans la direction d’un autre moniteur, il conserve la coordonnée Y, remplace le X maximal par le X minimal, puis bascule la sortie
- Le curseur apparaît à la même hauteur sur l’autre moniteur, ce qui rend la transition fluide et intuitive
Clavier
- En tant qu’hôte USB, il interroge périodiquement le clavier et recherche des raccourcis prédéfinis (comme Caps Lock) afin d’envoyer les caractères vers l’autre sortie
- Il réutilise les LED du clavier pour fournir un retour visuel indiquant quelle sortie est active
- Il mémorise l’état des LED de chaque ordinateur afin de reprendre le travail exactement dans l’état précédent
Utilisation d’images précompilées
- Des images précompilées sont disponibles
- Branchez la carte Pico dans l’emplacement A du PCB et maintenez le bouton de la carte enfoncé pendant le branchement du câble : elle apparaîtra alors comme un lecteur USB sur le système
- Copiez le fichier
board_A.uf2correspondant, puis répétez l’opération pour B
Mise à niveau du firmware
- Option 1 : ouvrez le boîtier, maintenez le bouton de chaque Pico enfoncé pendant son branchement, puis copiez le bon fichier
uf2 - Option 2 : utilisez une combinaison de touches spécifique (
Right Shift, P, H, X, Left Shift) pour passer en mode BOOTSEL et faire basculer les Pico en mode de mise à niveau du bootloader
Autres fonctionnalités
- Quand un ajustement très fin de la souris est nécessaire, déplacer la souris en maintenant
Right ALTralentit fortement sa vitesse, ce qui permet un travail de précision
Matériel
- Le circuit est peu coûteux (4,10 euros par unité), peut être soudé à la main et repose sur deux cartes Raspberry Pi Pico, généralement en stock chez la plupart des fournisseurs
- Les Pico sont reliés en UART à l’aide d’un isolateur numérique double canal Analog Devices ADuM1201 (~3 euros)
- Grâce à un projet remarquable qui implémente l’USB en utilisant la magie des programmable I/O du RP2040, l’appareil peut fonctionner à la fois comme hôte USB et comme périphérique USB
PCB
- Pour garder le montage DIY aussi simple que possible, les pistes sont placées sur une seule face et le nombre de composants est réduit au minimum
- Les lignes différentielles USB D+/D- doivent avoir la même longueur, mais elles sont volontairement légèrement asymétriques afin de compenser sur le PCB du PICO lui-même la différence de longueur des pistes GPIO correspondantes et d’obtenir une longueur totale identique
Boîtier
- N’étant pas expert en modélisation 3D, le boîtier reste simple et basique, mais il remplit son rôle
- Il est facile à imprimer, utilise environ 33 g de filament et peut être terminé en quelques heures
- Le mouvement horizontal du PCB est bloqué par des broches traversant les trous, et le mouvement vertical par des ergots à clips sur les côtés, ce qui évite d’avoir besoin de vis
- Le connecteur micro USB dépasse sur le côté du boîtier, donc un trou légèrement plus grand permet d’y faire passer le câble
- Le couvercle adopte un design à clips, avec une fente pour tournevis permettant de l’ouvrir
- Les marquages sur le dessus sont en creux, ce qui permet d’améliorer le contraste avec un crayon cire ou autre finition similaire (ou de les laisser tels quels)
Liste du matériel
- 2 Raspberry Pi Pico, 1 ADuM1201BRZ, 2 condensateurs SMD 1206 100nF, 2 connecteurs USB-A pour PCB, 2 headers 2.54 1x03
- Prix total : 11,53 euros
- Pour les connecteurs USB-A, vous pouvez utiliser le Molex MX-67643-0910 ou une alternative moins chère partageant les mêmes dimensions
- Étapes supplémentaires : fabrication du PCB (Gerber fourni, JLC peut le produire pour quelques dollars, choisir une épaisseur de 1,6 mm), impression 3D du boîtier (fichiers stl fournis, environ 33 g de filament nécessaires)
FAQ
- Est-ce que ça fonctionne avec seulement deux Pico, sans PCB ni isolateur ?
- L’isolateur est recommandé, mais cela peut fonctionner sans.
- Que se passe-t-il si les moniteurs ont des résolutions différentes ?
- Le déplacement de la souris s’effectue dans un espace de coordonnées abstrait, et c’est l’ordinateur qui calcule la correspondance avec l’écran physique, donc cela devrait fonctionner sans problème.
- Où peut-on acheter ce produit ?
- Il n’est pas commercialisé ; c’est un projet personnel non commercial réalisé comme loisir.
- Quand l’écran actif change avec la souris, le clavier suit-il aussi (et inversement) ?
- Oui, il a été conçu pour fonctionner comme s’il s’agissait d’un seul ordinateur.
- Est-ce que cela fonctionne avec un dongle combo clavier/souris comme le récepteur Logitech Unifying ?
- Dans la version actuelle, non, car elle suppose que la souris est branchée sur un port différent. Il faudrait étudier le fonctionnement du récepteur Logitech Unifying et implémenter une prise en charge.
- Est-ce que cela fonctionne avec une souris et un clavier sans fil disposant chacun de leur propre récepteur ?
- Ce cas n’a pas été testé, donc des problèmes inattendus peuvent survenir, mais en théorie cela devrait fonctionner directement.
Inconvénients
- Attention : pour utiliser cette fonctionnalité, les deux ordinateurs doivent être connectés et allumés (chaque carte est alimentée par l’ordinateur auquel elle est connectée).
- Le code a besoin de nettoyage, de refactorisation, etc.
- Des bugs et comportements étranges surviennent parfois.
- Le projet n’a pas été testé avec une grande variété de périphériques, donc il est difficile de savoir comment il se comportera avec votre matériel.
- Pico-PIO-USB a été patché pour prendre en charge le contrôle des LED du clavier, alors que cela est normalement géré par TinyUSB en mode hôte.
Clause de non-responsabilité
- Toute personne qui tente ce projet doit comprendre et reconnaître qu’elle est seule responsable de toute blessure, tout dommage ou toute autre conséquence.
- La sécurité est importante ; il est donc essentiel de prendre les précautions nécessaires et d’assumer la responsabilité de son propre bien-être tout au long du projet.
- Évitez les décharges électriques, les brûlures, le stress ou la colère, et prenez plaisir à fabriquer et à utiliser ce projet.
Avis de GN⁺ :
- Cet article peut être très utile pour les personnes qui utilisent deux ordinateurs. Il est particulièrement attractif pour ceux qui veulent partager un seul clavier et une seule souris tout en améliorant leur efficacité de travail.
- Le fait que ce soit open source et basé sur une approche DIY en fait un projet intéressant pour les personnes attirées par la technique. Les utilisateurs peuvent adapter et améliorer le système selon leurs besoins.
- Ce projet illustre l’esprit d’innovation d’une communauté qui cherche à résoudre des problèmes techniques. En partageant leur solution et leur démarche, les utilisateurs permettent aussi à d’autres d’en bénéficier.
1 commentaires
Avis Hacker News
Il est remarquable que la détection des bords fonctionne sans logiciel client.
J’utilise la solution logicielle Synergy depuis plus d’une dizaine d’années. Le basculement est instantané via le Wi‑Fi, et cela fonctionne aussi entre Windows/Mac/Linux.
Il m’arrive d’essayer de déplacer précisément le curseur à un endroit donné sur YouTube, mais la souris est tellement sensible que je dois bouger la main avec énormément de précaution.
,) et point (.).Sous Windows, on peut utiliser un outil appelé Mouse Without Borders, développé par Microsoft Garage et désormais intégré à Windows PowerToys.
Inspiré par d’autres projets similaires, quelqu’un a créé sa propre version.
J’ai acheté 4 hubs USB pour basculer le clavier et la souris, mais la plupart des appareils étaient tellement mauvais que je devais physiquement débrancher le hub plusieurs fois par jour.
L’un des gros inconvénients de l’utilisation d’un switch USB 3.0 pour basculer les entrées souris et clavier entre deux PC.
J’utilise actuellement un switch KVM, et comme le basculement prend 2 à 3 secondes, je me connecte le plus souvent à l’autre ordinateur en SSH pour utiliser une session tmux.
C’est une avancée impressionnante.
Synergy résout bien ce problème par logiciel seul. Ce n’est ni gratuit ni open source, mais c’est relativement abordable.