Show HN : utiliser une vieille tablette comme moniteur supplémentaire
(github.com/alex028502)- Il s’agit d’un MVP/POC visant à utiliser une vieille tablette non pas comme écran secondaire basé sur des pixels, mais comme écran de terminal SSH : on se connecte à l’ordinateur depuis un client SSH Android, puis on injecte les frappes dans une session
screen - La configuration est pensée pour des cas d’usage où la carte graphique a déjà atteint ses limites ou lorsqu’il est impossible de trouver un adaptateur d’affichage virtuel, et où l’on veut éviter le contournement consistant à envoyer des pixels vers une tablette pour simplement consulter du texte, comme un tail de logs
- Le flux de base consiste à ouvrir un serveur SSH sur l’ordinateur, s’y connecter depuis le client terminal/SSH de la tablette, créer une session avec
DISPLAY=:0 screen -R aux, puis utiliser un programme d’entrée séparé qui injecte des caractères dans la session avec une commande commescreen -S aux -X stuff x - Avec le réglage
DISPLAY=:0, lorsqu’on exécute depuis le terminal des commandes commexdg-open .,emacs &,git gui &, le résultat peut être affiché dans la session GUI principale - Il s’agit encore d’un MVP/POC, avec des limites explicites en matière de sécurité et d’ergonomie
- Il faut accorder à l’application mobile un accès complet à l’ordinateur
- Il faut ouvrir un serveur SSH sur l’ordinateur, avec l’idée de ne le démarrer que sur un réseau de confiance et de l’arrêter dans les autres cas
- Il existe des problèmes de gestion de l’entrée
C-SPC, le fait d’exécuterscreenpour chaque touche, ainsi que la difficulté à trouver un client terminal sur d’anciens appareils - Les deux approches dépendent du LAN
- Dans un environnement de bureau avec Kindle Fire, cela fonctionnait bien comme terminal ; dans l’environnement domestique avec un iPad, c’était trop lent pour servir d’écran Emacs
- Le collage se fait via
Ctrl+Shift+V, qui injecte l’intégralité du presse-papiers dans la sessionscreen, tandis que la copie n’est pas encore résolue - Parmi les pistes pour une meilleure approche figurent des composants de hyper, xterm.js, un affichage dans le navigateur, l’envoi des frappes via WebSocket et une architecture serveur basée sur PTY
1 commentaires
Commentaires sur Hacker News
Sous l’environnement de bureau GNOME de Linux, on peut utiliser une tablette non seulement pour un terminal, mais aussi comme moniteur secondaire : https://www.omgubuntu.co.uk/2022/06/use-ipad-as-second-monit...
J’attends encore une meilleure solution pour streamer même des jeux vers ce second « moniteur » sur tablette
Au final, un vieil iPad semble difficilement utilisable en pratique avec cette méthode, même si on peut chercher un autre client RDP qui fonctionne
Si vous n’avez pas besoin du curseur, ça marche plutôt bien
J’ai essayé Weylus : https://github.com/H-M-H/Weylus
Ça fonctionne sur le LAN et permet de contrôler la souris depuis la tablette
Il y a parfois de la latence, mais on peut réduire la résolution pour consommer moins de bande passante ; je ne sais pas trop si c’est stable
Je ne l’ai pas utilisé régulièrement
Si vous avez un vieux portable ou un appareil en trop sous Windows, SpaceDesk est une bonne application gratuite. Elle n’est pas open source : https://www.spacedesk.net/
Je l’utilise avec WSL2 sur une machine de développement Windows, en transformant un vieux portable en écran externe, et ça marche bien même en Wi‑Fi
Ça devrait être plutôt pratique comme moniteur secondaire en voyage, et même à 60 fps avec des réglages élevés, la latence est à peine perceptible
Sur les iPad encore pris en charge, j’utilise parfois la fonction intégrée de macOS qui permet d’en faire un écran secondaire, et elle marche plutôt bien
Ce serait mieux si les connecteurs de nappes LVDS de ces appareils étaient plus standardisés
Il suffirait alors d’acheter un adaptateur HDMI/DisplayPort et de l’utiliser directement ; de tels adaptateurs existent bien, mais à ma connaissance il n’existe pas vraiment de standard unique, ni même presque unifié, pour les nappes LVDS
systemctlme semble pénible à taperSi vous démarrez/arrêtez souvent des services, je recommande un alias du genre
alias sc='sudo systemctl'Ça colle aussi bien avec
sc, l’utilitaire « service control » des dernières versions de Windows NT, et ça devrait fonctionner dans bash/fishLors du développement de services, envelopper
stop,statusetstartdans des fonctions commesce,sci,scsévite d’avoir à changer à chaque fois la sous-commandest*et le deuxième argumentjournalctlest encore pire à taperDe façon similaire, pour utiliser un vieux téléphone comme alternative au Stream Deck, on peut utiliser TouchPortal : https://www.touch-portal.com/
Ce n’est pas gratuit, mais ce n’est pas cher, et ça fonctionne étonnamment bien
D’après la vidéo que j’écoute en ce moment, le client n’existe actuellement que pour Linux, et l’hôte prend en charge Windows et Linux
Je l’ai un peu utilisé avec une Surface Pro sous Linux comme client et Windows comme hôte, mais ce qui le limite pour l’instant, c’est le manque de plugins
J’utilise le Stream Deck pour gérer mes sessions de jeu, et pour gérer Steam, Discord, le soundboard et la voix de Voicemod, parfois OBS, le lancement de jeux, etc., en l’état il ne permet guère de gérer qu’OBS et les éléments configurés avec des raccourcis clavier
Les tablettes devraient avoir une entrée HDMI/DisplayPort pour pouvoir servir directement d’écran
L’écran apparaîtrait comme un appareil de plus capable de lire et d’écrire des octets, et chaque appareil disposerait d’une interface autodocumentée, interrogeable, basée sur HTTP/HATEOAS
HDMI/DisplayPort ou USB A/B/C/.../Z utiliseraient aussi des protocoles comme l’Ethernet gigabit ou Thunderbolt, et la bande passante déterminerait simplement le framerate maximal à une résolution arbitraire
On aurait pu interroger les métadonnées d’interface d’un périphérique pour échanger des tableaux d’octets avec des écrans, des imprimantes ou du stockage, avec seulement le début de l’en-tête qui change
Avec les appareils photo et les scanners, on aurait aussi pu télécharger directement images et vidéos comme depuis le dossier de documents d’un serveur web, sans pilote constructeur ; il n’y avait aucune raison technique que ce soit impossible, et je pense que Microsoft et Apple ont constamment empêché ce type de généralisation
Les standards du web ont eux aussi dérivé vers une conception par comité, faisant disparaître l’espoir d’unifier ces choses, et les smartphones et tablettes me semblent être l’extrême de la pensée consumériste propriétaire marchandisée
N’importe quel visualiseur de webcam devrait généralement permettre de l’afficher, et sur iPad il existe aussi des apps dédiées comme https://orion.tube/
Je sais qu’il y a aussi des options sur Android, mais je n’ai pas de tablette Android moderne pour tester
À l’époque, j’avais résolu ce besoin avec Duet
Ça permet d’étendre l’écran d’un portable vers l’écran de l’iPad, et ça marche bien : https://www.duetdisplay.com/
Bonne idée
J’avais implémenté quelque chose de similaire avec bash, awk, xev, xdotool, plutôt qu’un programme séparé
Dans
screen, on utilise le couper/coller descreen, et pour le reste on peut utiliser le tampon de copie descreenetxclipboard