みんな、こんにちは\!

Lubuntuを使い始めて約6〜7ヶ月になる。職業はフルスタックエンジニアで、主にTypeScriptを使ってる。暇なときはLinuxやVimScript、bashで遊んでる。いつも同じ古いJavaScriptやTypeScriptのコードを書いてデバッグしてると飽きちゃうからね。

サムスンのタブレットを持ってて、それを外部モニターとして使うことにしたんだ。そうすれば、コードを見たり製品をテストしたりしながら、バックエンドサーバーのログを別の画面で表示できるからね。Windowsのときは拡張画面が簡単だったけど、Linuxでも同じようなオプションを探してみた。DeskscreenやVirtscreen、Weyelusなんかを試したけど、ほとんどが制限があって、ちゃんとした拡張ディスプレイとして使うには設定がめっちゃ大変だった。一度、xrandrを設定しようとしてブートをクラッシュさせちゃったこともある(GRUBメニューからスクリプトを削除して直した)。

いろいろ試行錯誤した結果(もちろんAIも使ったけど)、やっと自分が望んでいた通りに動くセットアップを見つけた。これで、マウスやアプリケーションウィンドウ、キーボードショートカットをタブレットにドラッグできて、遅延もなく、ワイヤレスで、ただVNCビューワーアプリを使うだけで済んだ(俺はRealVNC Viewerを使ってる [Play Store Link](https://play.google.com/store/apps/details?id=com.realvnc.viewer.android&pcampaignid=web_share))。

で、さらに磨きをかけて、どんなLinuxシステム(今のところほとんどのディストロ、全部じゃないけど)がAndroidデバイスに接続して、セカンダリ/拡張ディスプレイとして使えるオープンソースプロジェクトを作った:

[GITHUB REPO](https://github.com/USKhokhar/linux-display-extend))

**動作原理:**

* `xrandr`を使って仮想ディスプレイを作成 * 拡張エリアのみをストリーミングするためにVNCを使用 * AndroidのどんなVNCビューワーアプリでも動作 * カスタム解像度と位置設定(左/右/上/下)をサポート * Ubuntu、Debian、Fedora、ほとんどの主要ディストロと互換性あり

これは個人的なツールプロジェクトとして始まったけど、Linuxコミュニティ全体に利益をもたらすと思う。俺はbashやLinuxエコシステム向けの開発にはまだまだ不慣れだから、コミュニティに出してみたかった。誰かの役に立つかもしれないし、誰かがこのプロジェクトを手伝って次のステップに進めてくれるかもしれない。

いくつかの質問があって、次のステップを計画してるんだけど、エコシステムに詳しい人たちの意見を聞きたい:

助けを求めてるのは:

**パッケージング & 配布:**

* Arch Linux AURパッケージ * openSUSE RPMパッケージ * Snap/Flatpakパッケージ * Ubuntu PPA設定

**機能:**

* GUI設定ツール(多分QtかGTK) * iOSサポート(VNCの制限から難しいかも) * マルチタブレットサポート * ネットワーク上のタブレットの自動検出 * パフォーマンス最適化

**テスト:**

* 異なるデスクトップ環境(KDE、GNOME、XFCEなど) * 様々なハードウェア構成 * 異なるAndroidデバイス/VNCクライアント

**ドキュメンテーション:**

* スクリーンショット付きのより良いセットアップガイド * ビデオチュートリアル * トラブルシューティングWiki

これらの可能性について完全に(または正しく)把握してるわけじゃないけど、みんなが試してくれて貢献してくれたら嬉しい。

コメント (23)

_________________________________________________

xrandrを使って仮想ディスプレイを作成

Waylandはサポートされてないよね?


うん、だからFedoraのKDEやすぐにGnomeのサポートはないね。


それ以上に言えるよ。多くの人がWaylandを使ってるし、デフォルトじゃないから、新しいユーザーもそうだと思う。ArchのKDEでもね。新しいコンポジタのNiri、Sway、Hyprlandもあるし。


特にFedoraを指摘したのは、サポートされてると言ってるけど、デフォルトではサポートされてない(そして最終的には全くサポートされなくなる)から。

残念ながら、最近このツールを探してたんだけど、Waylandサポートがないのと同じ問題がある。

_________________________________________________

素晴らしいプロジェクトだね - Androidタブレットをワイヤレス外部ディスプレイとして使いたい、特にタッチスクリーンがあるから。

でも、15年以上VNCを使ってないから、遅延と効率が気になる。追加のバックエンドを提供する可能性はある?moonlight/sunshineみたいなものは成熟してて、低遅延でほぼ完全にGPUアクセラレーションされてる。Androidのscrcpyみたいなものでも1〜2フレームの遅延がある。

Waylandのサポートも心配だ。UbuntuはすぐにX11を廃止するし、他のディストロも続くだろう。


ありがとう、俺はLinuxにまだ不慣れで、いろいろ試行錯誤してるところ。VNCの遅延制限については少しは知ってたけど、「普遍的にサポートされてる」から選んだんだ。もっと現代的で堅牢なアプローチについて読んでるし、間違いなくそれに取り組むつもり。

今のところ、Moonlight/Sunshineをオプションのバックエンドとして追加することを考えてる。セットアップスクリプトがSunshineがインストールされてるかどうかを検出して、VNCの代わりに拡張ディスプレイモードに設定する提案をするかも。


それはソフトウェアにとって素晴らしい追加になるね、頑張って。

_________________________________________________

会議中にmoonlight/sunshineを使ってタブレットをセカンドスクリーンとして使ってるけど、解決策は満足できるものだよ。moonlight/sunshineを使ってるときにどんな問題に直面した?


moonlight/sunshineを使ってセカンドモニターとして機能させてるの?それとも既存のモニターをミラーリングしてるの?


セカンドモニターとして機能させてる。


それはすごいね、そんなことができるとは知らなかった。タッチスクリーンも使えるの?

Waydroidをゲーミングリグで動かして、タブレットに送ってタッチスクリーンを使うのも面白そうだな。


簡単じゃないよ。俺の現在のセットアップ(Linux、X11ディスプレイサーバー)で、メインの下にセカンドスクリーンを設定するには:

Sunshineアプリに行って:

設定 > 音声/映像

ディスプレイ番号:1

アプリケーション > 新規追加

コマンドを追加:

実行コマンド:xrandr --addmode HDMI-1 1920x1080

元に戻すコマンド:xrandr --output HDMI-1 --off

実行コマンド:

xrandr --output HDMI-1 --mode 1920x1080 --below eDP-1

タッチスクリーンの感度を調整するための3つ目の実行コマンドもある:

xinput set-prop "Mouse passthrough" "Coordinate Transformation Matrix" 3.5 0 0 0 3.5 0 0 0 1

HDMI-1(タブレットの出力)、1920x1080(解像度)、–below(出力位置)、eDP-1(メイン出力)を変更する必要があるかも。

xrandrで出力を確認してね。


Waylandで動かすのは難しいって聞いたし、WaydroidはNvidiaと一緒だと厄介だね。全部を動かすのは楽しくないだろうけど、ありがとう!

_________________________________________________

君の解決策はもっと柔軟だけど、GUDって聞いたことある?USB経由で接続されたLinuxデバイスをディスプレイとして使えるプロトコルだよ。ホスト側のカーネルにドライバーがあって、どこかにユーザー空間(GoかRust?)のアプリがある。


実は、このプロジェクトを始めたときにはGUDのことは知らなかった。まだLinuxエコシステム全体には不慣れだから。教えてくれてありがとう、もっと調べてみるよ。


GUDのユーザー空間アプリは見つけたことがないけど、USBガジェットサブシステム用のGUDカーネルモジュールがある。ただ、それはGUDプロトコルの設計者からの概念実証のようなもので、少なくともメジャーバージョンが古い。

編集:間違ってた、そしてそれを知って嬉しい。


Rust:

GitHub - samcday/gud-gadget

GitHub - samcday/gud-gadget

Contribute to samcday/gud-gadget development by creating an account on GitHub.

PostmarketOSで簡単に動かすことができたよ:

imgur.com

imgur.com

Discover the magic of the internet at Imgur, a community powered entertainment destination. Lift your spirits with funny jokes, trending memes, entertaining gifs, inspiring stories, viral videos, and so much more from users.


おお、すごいね。これは完全に見逃してた。ありがとう ^^


うん、再び見つけるのに10分くらいの必死の検索が必要だったよ!

_________________________________________________

openSUSEのサポートがあれば最高だね。Fedoraで動くならopenSUSEでも動くはずじゃない?


その通りだね、Fedoraで動くならopenSUSEでも動くはずだよ、両方ともRPMベースだから。インストーラーにはすでにopenSUSEサポートが含まれてて、zypper install -y x11vnc xf86-video-dummy curlでインストールできるけど、個人的にはopenSUSEでテストできてない。

openSUSEを使ってて試してみたいなら、どうだったか教えてほしいな!

_________________________________________________

タイミングがいいね、今ヘッドレスSBCを使ってて、マイクロHDMIが手元にないんだ、ハハ。

_________________________________________________

Jai Hind Sir