Skip to content

Instantly share code, notes, and snippets.

@MasayukiFukada
Created April 16, 2021 12:51
Show Gist options
  • Save MasayukiFukada/5124fcbc2542d33d01a7a28a9c293e83 to your computer and use it in GitHub Desktop.
Save MasayukiFukada/5124fcbc2542d33d01a7a28a9c293e83 to your computer and use it in GitHub Desktop.
余っている Android 端末をサブ画面として使う

余っている Android 端末をサブディスプレイとして使う

  • Linux
  • Android

こちらを参考

要約手順

  • Linux 側に x11vnc をインストールしておく
  • xrandr で現在使用しているビデオボードのポートと未使用のポートを確認する
  • Android 端末でここのサイトを見て有効な画面サイズを確認しておく
  • 上記で確認したサイズを元に gtf 幅 高さ <リフレッシュレート> を実行
    • モードラインが生成される
# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
  Modeline "1280x800_60.00"  83.46  1280 1344 1480 1680  800 801 804 828  -HSync +Vsync
  • 生成されたモードラインをコピペしてモードを追加する xrandr --newmode "1280x800_60.00" 83.46 1280 1344 1480 1680 800 801 804 828 -HSync +Vsync の様にする
  • 未使用のポートにモードを追加 xrandr --addmode <未使用のビデオボードのポート> 1280x800_60.00
  • 使用中のディスプレイポートの(例として)左側に画面を追加 xrandr --output <上記の未使用ポート> --mode 1280x800_60.00 --left-of <使用しているポート>
  • VNC を起動 x11vnc -clip 1280x800+0+0
  • Android をクライアントとして PC に対して VNC で接続する
    • 初期設定だと VNC は 5900 番ポートなので、 IP の指定と併せて指定する

これでマウスでウィンドウを Android 側に移動させたり出来るようになる。

画面の解除

  • VNC の接続を切って、 PC 側の VNC サーバーも終了させる
  • xrandr --output <追加していた画面のポート> --off

以下もやっておくと尚良い

  • xrandr --delmode HDMI-1-1 "1280x800_60.00"
  • xrandr --rmmode "1280x800_60.00"
@MasayukiFukada
Copy link
Author

画面のサイズを物理ディスプレイよりも広くしてはみ出た部分を VNC で見た時は速度が遅かった( 動画は見れたものじゃない )が、
上記の方法で仮想画面を空いてるポートに割り当てた(?)場合は VNC で見ていても動画を見ても大丈夫そうだった。
ただ、Nexus6 でディスプレイサイズを確認したら 412x732 だったので、有効に使える画面は思ったよりも小さいのかもしれない。

あと、画面のサイズを確認できるサイトは Android 端末でないと正しく表示されないので注意

@MasayukiFukada
Copy link
Author

--newmode には成功するが、画面の向きによっては --addmode で失敗することがあった。
416x732 は成功するが 736x412 になると失敗する等。
試して無理そうならスマホ or タブレットの向きを変えてみると良いかも。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment