Show HN: 古いタブレットを追加モニターとして使う
(github.com/alex028502)- 古いタブレットをピクセルベースの補助ディスプレイではなく SSHターミナル画面 として使うためのMVP/POCで、AndroidのSSHクライアントからコンピューターに接続した後、
screenセッションにキー入力を注入する方式 - グラフィックカードがすでに限界に達している、あるいは仮想ディスプレイアダプターが見つからず、ログのtailのようにテキストだけを見る状況で、タブレットへピクセルを送る回避策を避けたいユースケースに合わせた構成
- 基本の流れは、コンピューターでSSHサーバーを開き、タブレットのターミナル/SSHクライアントで接続した後、
DISPLAY=:0 screen -R auxでセッションを作成し、別の入力プログラムがscreen -S aux -X stuff xのような形で文字をセッションに入れる構造 DISPLAY=:0の設定により、ターミナルでxdg-open .,emacs &,git gui &のようなコマンドを実行したとき、その結果をメインのGUIセッションで見ることができる- セキュリティと使い勝手の制約が明記されたMVP/POC段階
- モバイルアプリにコンピューター全体へのアクセス権を与える必要がある
- コンピューターでSSHサーバーを開く必要があり、信頼できるネットワークでのみ起動し、それ以外では停止する運用が提案されている
C-SPC入力処理の問題、キーごとにscreenを実行する方式、古い機器ではターミナルクライアントを見つけにくい問題がある- どちらの方式もLANに依存する
- Kindle Fireのオフィス環境ではターミナルとしてうまく動作したが、自宅のiPad環境ではEmacs画面として使うには遅すぎた、という使用結果が示されている
- 貼り付けは
Ctrl+Shift+Vでクリップボード全体をscreenセッションに注入する方式で、コピーはまだ未解決 - より良いアプローチの候補として、hyper の構成要素や xterm.js、ブラウザー表示、WebSocket経由のキー入力送信、PTYベースのサーバー構成が提案されている
1件のコメント
Hacker News のコメント
Linux の GNOME デスクトップ環境では、タブレットをターミナル用だけでなくサブモニターとしても使える: https://www.omgubuntu.co.uk/2022/06/use-ipad-as-second-monit...
こうした2台目のタブレット「モニター」へゲームまでストリーミングできる、より良い解決策をまだ待っているところ
結局、古い iPad ではこの方法を実用的に使うのは難しそうで、動作する別の RDP クライアントを探すことはできるかもしれない
カーソルが不要ならかなりうまく動作する
Weylusを使ってみた: https://github.com/H-M-H/Weylus
LAN 経由で動作し、タブレットからマウスを操作できる
ときどき遅延はあるが、解像度を調整して帯域幅の使用を減らすことができ、安定しているかはよく分からない
定期的には使っていなかった
Windows で余っているノートPCやデバイスがあるなら、SpaceDesk は良い無料アプリだ。オープンソースではない: https://www.spacedesk.net/
Windows の開発マシンで WSL2 と一緒に使い、古いノートPCを外部ディスプレイとして活用しているが、Wi-Fi でもうまく動作する
旅行時のサブモニターとしてかなり良さそうで、60fps と高めの設定でも遅延はほとんど感じない
まだサポートされている iPad では macOS 内蔵の iPad サブ画面機能をたまに使っているが、かなりうまく動作する
こうしたデバイスの LVDS リボンケーブルコネクタ がもっと標準化されていればよかったと思う
HDMI/DisplayPort アダプタを買うだけですぐ使えるはずだが、実際そういうアダプタはあるものの、知る限り LVDS リボンケーブルの標準は一つに統一されているわけでも、それに近い状態でもない
systemctlは入力しにくいと感じるサービスを頻繁に開始/停止するなら、
alias sc='sudo systemctl'のようなエイリアスをすすめるWindows NT 後期バージョンの “service control” ユーティリティである
scとも相性がよく、bash/fish で動作するはずサービス開発時には、
sce、sci、scsのような関数でstop、status、startをラップすると、st*サブコマンドと2番目の引数を毎回変える手間を減らせるjournalctlはさらに入力しづらいと感じる同様に、古いスマートフォンを Stream Deck の代替として使うなら TouchPortal が使える: https://www.touch-portal.com/
無料ではないが高くはなく、驚くほどうまく動作する
今聞いている動画によると、現時点でクライアントは Linux のみで、ホストは Windows と Linux をサポートしている
Linux を実行する Surface Pro をクライアント、Windows をホストとして少し使ってみたが、現状の足かせになっているのは プラグイン不足だ
Stream Deck はゲームセッション管理に使っているが、Steam、Discord、Voicemod のサウンドボードと音声、ときどき OBS、ゲーム起動などを扱うには、今の状態では OBS とショートカットキーが設定されたもの程度しか管理できない
タブレットには HDMI/DisplayPort 入力があり、そのままディスプレイとして使えるべきだ
ディスプレイもバイトを読み書きできるもう一つのデバイスとして現れ、すべてのデバイスが問い合わせ可能な HTTP/HATEOAS ベースの自己記述インターフェースを持つ、という形だ
HDMI/DisplayPort や USB A/B/C/.../Z もギガビット Ethernet や Thunderbolt のようなプロトコルを使い、帯域幅が任意の解像度での最大フレームレートを決めればよかった
デバイスインターフェースのメタデータを問い合わせて、ディスプレイ、プリンタ、ストレージデバイスとバイト配列をやり取りし、ヘッダーの先頭部分だけが異なる構造にできたはずだ
カメラやスキャナでも、メーカー製ドライバなしに Web サーバーのドキュメントフォルダのように画像や動画ファイルを直接ダウンロードできたはずで、技術的に不可能だった理由はなく、Microsoft と Apple がこうした一般化をずっと妨げてきたのだと思う
Web 標準も委員会式の設計に流れてしまい、こうしたものを統合する希望は消え、スマートフォンとタブレットは商品化された独占的消費主義的発想の極端な例に見える
どんなウェブカメラビューアでもたいてい見られるはずで、iPad には https://orion.tube/ のような専用アプリもある
Android にも選択肢があるのは知っているが、テストできる最近の Android タブレットは持っていない
以前は Duet でこの用途を解決していた
iPad の画面にノートPCの画面を拡張できるので、うまく動作する: https://www.duetdisplay.com/
良いアイデアだ
別プログラムではなく、bash、awk、xev、xdotoolで似たものを実装した
screen内ではscreenのカット/ペーストを使い、それ以外はscreenのコピーバッファとxclipboardを使えばよい