web-dev-qa-db-ja.com

Androidタブレットを2番目のディスプレイとして使用するにはどうすればよいですか?

iDisplay というWindowsおよびMac用の製品を使用している人々に気づきました。これにより、AndroidまたはiPadをセカンダリディスプレイとして使用できます。これは素晴らしいアイデアのようであり、Ubuntuでできることです。残念ながら、私はどのように始めるのか分かりません。

Ubuntuでこのセットアップをどのように再作成できますか?

58
Mark B

Android用のVNCクライアントを取得し、コンピューターで新しいVNCサーバーセッションを起動し(現在のディスプレイを共有するだけでなく、x11vncではなくvnc4serverを使用します)、Android VNCクライアントから接続し、(巧妙なビット)シナジーを使用して2つのセッション間でPCのキーボードとマウスを共有します。

これを行うために必要なすべてのソフトウェアは、Ubuntu側の標準リポジトリで入手できます。また、市場のAndroidで利用できる無料のVNCクライアントがいくつかあります。

この方法を使用して、ウィンドウをディスプレイ全体にドラッグすることはできません。そのためには、Xdmxを使用して2つのセッションを結合する必要があると思います。これは非常に難しく、おそらく3Dアクセラレーションが失われます。

また、相乗効果とvncはデフォルトで暗号化を使用しないため、信頼できるネットワーク上にない場合は接続をトンネルする必要があることに注意してください。

27
Alistair Buxton

tl; dr:xrandr --fbx11vnc --clipが一緒になって素晴らしい組み合わせになります。

認識によってリンクされたスレッドは本当に面白いアイデアを持っています、彼が示した著者を見つけることができなかったので、彼がこれを意味したかどうかはわかりません:

  1. 最初に、プライマリマシンの画面解像度が1280x800で、デスクトップをVNCに拡張するセカンダリマシンの画面解像度が1280x1024であり、拡張画面をプライマリ画面の右側にしたいとします。仮想画面は1280x800 + 1280x1024 = 2560x1024である必要があります。 (水平方向に拡張し、垂直解像度を2つのうちの大きい方にします)xrandr --fb 2560x1024を実行します。

  2. 画面がプライマリモニターよりも大きいため、パンやその他の不要な「機能」がアクティブになっていないことと、プライマリモニターの左上隅の座標が0x0であることを確認する必要があります。

  3. x11vnc -clip 1280x1024+1281+0プラス、その他のx11vncオプションを好みに追加します:)

これであるはずです。

16
chx

this を除き、他の回答を機能させることはできませんでした。

Androidを2番目のモニターとして使用し、マウスを共有し、タブレットとコンピューターの間でウィンドウをドラッグできます。

これは、コメントでリクエストされた段階的なチュートリアルです。

A.チュートリアル

1.新しい仮想モニターを作成します

タブレットの解像度は1280x1024です。 (タブレットの解像度が異なる場合は、コマンドのどこでも12801024を変更できます。デフォルトのモニター名が異なる場合は、LVDS1も変更する必要があります)。

ターミナルで実行:

  1. $ gtf 1280 1024 60

出力にはModeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsyncに似た行があります。 Word Modeline(除外)の後のすべてを次のコマンドにコピーします。

  1. xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync

  2. xrandr --addmode VIRTUAL1 1280x1024_60.00

  3. xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

2. VNCを起動します

  1. x11vnc -clip 1280x1024+0+0

3. Android(LAN(Wi-Fi)またはUSB(ケーブル))で接続します

  1. ifconfigを使用してコンピューターのIPを検索します(LANから接続する場合)。

  2. VNCアプリをダウンロードし、アプリでそのIPを使用して(およびポート5900を選択して)コンピューターに接続します。

通知

  • クレジット: kjans 、コンテンツの編集。
  • 警告:データは暗号化されていません! (Wi-Fiおよび非LANの使用に関連)
  • 警告:ポート5900に到達できる接続しているネットワークは、モニターに接続できます! (USBを使用し、-listen <IP_ADDR>オプションをx11vncに追加するインターフェースを制限する場合は問題ありません(<IP_ADDR>は、排他的アクセスを許可するネットワーク内のコンピューターのアドレスです))
  • 1-4ステップのいずれかを2回実行すると、エラーが出力される場合があります。
  • 正常に使用した後、別の接続に対してステップを繰り返す必要があります。

B.スクリプト

スクリプトとして実装されたチュートリアル(USBケーブルORで使用するIPを変更して削除し、Wi-Fiで使用する行のコメントを解除します)。

#!/bin/bash
W=1280
H=800
O=VIRTUAL1
if [ "$1" == "create" ]; then
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | xargs xrandr --newmode
    # sed: get third line, delete 'Modeline', get first Word, remove first and last characters
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --addmode $O
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --output $O --left-of LVDS1 --mode
Elif [ "$1" == "on" ]; then
    x11vnc -listen 192.168.42.149 -clip ${W}x${H}+0+0
    # For use in Wi-Fi LAN.
    #x11vnc -clip ${W}x${H}+0+0 #**WARNING** Unencrypted stream. VNC accessible without password through port 5900 in all internet interfaces.
else
    echo "missing argument: [create | on]"
fi
14
Elijas
  1. vnc4serverおよびx2xをインストールします。
  2. 次に、.vnc/xstartup構成ファイルをセットアップします。私はこんな感じ

    #!/bin/sh
    # Uncomment the following two lines for normal desktop:
    unset SESSION_MANAGER
    unset DBUS_SESSION_BUS_ADDRESS
    # exec /etc/X11/xinit/xinitrc
    
    [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
    [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
    xsetroot -solid grey
    #vncconfig -iconic &
    #x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
    #x-window-manager &
    exec gnome-session
    

    Gnome-fallbackデスクトップを起動します(vncでgnome 3を起動する方法がわかりません)。

  3. Vncサーバーを起動するには、vnc4server -geometry 800x480コマンドを使用します。もちろん、800x480ではなく、タブレットの解像度を設定する必要があります。
  4. x2x -east -to :1を起動します。このコマンドは、ディスプレイ:1が画面の右側にあるかのように動作するようにコンピューターに指示します(左側に表示する場合は、-westオプションを使用します)。アプリをあるディスプレイから別のディスプレイに移動することはできませんが、1つのマウスと1つのキーボードを使用して両方を制御できます。
  5. タブレットからvnc4serverで作成されたディスプレイに接続します(ポート番号は5900 +ディスプレイ番号です(たとえば、ディスプレイ:1のポート番号は5901です)(ディスプレイ番号はvnc4serverの出力に表示されます)) 。
  6. x2xを終了するには、Ctrl-Cを押します。または、バックグラウンドで起動することもできます(x2x -east -to :1 &)。次に、最初にフォアグラウンド(fg)に移動するか、kill $!で強制終了する必要があります(注意してください、バックグラウンドで起動された最後のプロセスを強制終了します)。
  7. 作成されたディスプレイを削除するには、vnc4server -kill :1を呼び出します。:1の代わりに、新しいディスプレイの番号を設定できます。
12
passick

これは原則として、xdmx(分散マルチヘッドX)を使用して可能です。これにより、別々のマシンで実行されている2つのXサーバーを使用して単一のデスクトップを作成できます。

原則として3つのシナリオが考えられますが、少なくともXセッションを再起動する必要があるため、iDisplayほどシームレスではありません。どちらも完全に動作することはできませんでしたが、Ubuntu 10.10を実行しているため、さまざまな理由でアップグレードできません。 3つは次のとおりです。

1:AndroidでXサーバーを実行し(アプリストアで2つが利用可能になりました)、xdmxを使用してデスクトップまたはラップトップのディスプレイと組み合わせます。 -ポインターがデスクトップのタブレット部分に移動したときにxdmxがクラッシュしたため、私にとってはうまくいきませんでした。

2:コンピューターでvncバックエンドを使用して2番目のXサーバーを実行し、xdmxを使用してそれをコンピューター画面の1つのデスクトップに結合してから、タブレットのvncビューアーで仮想パーツを確認します-xdmxで動作しませんでしたすべてのxサーバーが同じ色のビジュアルを持つ必要がありますが、これはvncserverと実際のディスプレイには当てはまらず、vncserverに変更を説得することはできませんでした。

3:各画面に1つずつ、2つのvncserverを実行してから、それらをxdmxに接続し、各マシンのvncviewerで各パーツを確認します。 -これは私にとって最も近い仕事でしたが、残念なことにピンポイントが台無しになりました。また、Wi-Fi経由のトゥルーカラーでは非常に低速でした。このスクリプトを使用して、xdmxとvncを開始しました。

#!/bin/sh 
vncserver :2 -geometry 1024x768 -depth 24 && \
vncserver :3 -geometry 1920x1120 -depth 24 && \
startx -- \
/usr/bin/X11/Xdmx :1 \
-input :2 \
-display :2 \
-display :3 \
-ignorebadfontpaths \
-norender \
-noglxproxy \
+xinerama \
-nomulticursor
vncserver -kill :2 
vncserver -kill :3

YMMV

7
Felix

タブレットを2番目のディスプレイにする単純なbashスクリプトを作成しました。 ipad_monitor.sh(心配しないでください。Androidでも動作します)を ブログ投稿 にコピーします。

他の投稿と異なるのは、追加の引数を使用して2番目の画面の位置を非常に簡単に設定できることです。

編集:元のipad_monitor.shをここに含めました。このコマンドを次のように実行します:

  • ./ipad_monitor.sh --rightまたは./ipad_monitor.sh --left
  • ./ipad_monitor.sh --right --portrait
  • ./ipad_monitor.sh --right --portrait --hidpi

このスクリプトの基本的な考え方は他と同じで、xrandrx11vncを実行しますが、画面を接続する側などのオプションを含めました。

#!/bin/sh
# ----------------------------------------------------------------------------
# "THE BEER-WARE LICENSE" (Revision 42):
# <[email protected]> wrote this file. As long as you retain this notice you
# can do whatever you want with this stuff. If we meet some day, and you think
# this stuff is worth it, you can buy me a beer in return. - Bumsik Kim
# ----------------------------------------------------------------------------

# Configuration
WIDTH=1024  # 1368 for iPad Pro
HEIGHT=768  # 1024 for iPad Pro
MODE_NAME="mode_ipad"       # Set whatever name you like, you may need to change
                            # this when you change resolution, or just reboot.
DIS_NAME="VIRTUAL1"         # Don't change it unless you know what it is
RANDR_POS="--right-of"      # Default position setting for xrandr command

# Parse arguments
while [ "$#" -gt 0 ]; do
  case $1 in
    -l|--left)      RANDR_POS="--left-of"  ;;
    -r|--right)     RANDR_POS="--right-of" ;;
    -a|--above)     RANDR_POS="--above"    ;;
    -b|--below)     RANDR_POS="--below"    ;;
    -p|--portrait)  TMP=$WIDTH; WIDTH=$HEIGHT; HEIGHT=$TMP
                    MODE_NAME="$MODE_NAME""_port"  ;;
    -h|--hidpi)     WIDTH=$(($WIDTH * 2)); HEIGHT=$(($HEIGHT * 2))
                    MODE_NAME="$MODE_NAME""_hidpi" ;;
    *) echo "'$1' cannot be a monitor position"; exit 1 ;;
  esac
  shift
done

# Detect primary display
PRIMARY_DISPLAY=$(xrandr | Perl -ne 'print "$1" if /(\w*)\s*connected\s*primary/')

# Add display mode
RANDR_MODE=$(cvt "$WIDTH" "$HEIGHT" 60 | sed '2s/^.*Modeline\s*\".*\"//;2q;d')
xrandr --addmode $DIS_NAME $MODE_NAME 2>/dev/null
# If the mode doesn't exist then make mode and retry
if ! [ $? -eq 0 ]; then
  xrandr --newmode $MODE_NAME $RANDR_MODE
  xrandr --addmode $DIS_NAME $MODE_NAME
fi

# Show display first
xrandr --output $DIS_NAME --mode $MODE_NAME
# Then move display
sleep 5 # A short delay is needed. Otherwise sometimes the below command is ignored.
xrandr --output $DIS_NAME $RANDR_POS $PRIMARY_DISPLAY

# Cleanup before exit
function finish {
  xrandr --output $DIS_NAME --off 
  xrandr --delmode $DIS_NAME $MODE_NAME
  echo "Second monitor disabled."
}

trap finish EXIT

# Get the display's position
CLIP_POS=$(xrandr | Perl -ne 'print "$1" if /'$DIS_NAME'\s*connected\s*(\d*x\d*\+\d*\+\d*)/')
echo $CLIP_POS
# Share screen
x11vnc -multiptr -repeat -clip $CLIP_POS
# Possible alternative is x0vncserver but it does not show the mouse cursor.
#   x0vncserver -display :0 -geometry $DIS_NAME -overlaymode -passwordfile ~/.vnc/passwd
if ! [ $? -eq 0 ]; then
  echo x11vnc failed, did you \'apt-get install x11vnc\'?
fi
3
Bumsik Kim

Xorgダミードライバーとx11vnc -clipを使用します。マウスポイントがEdgeに固定されていません。

Sudo apt-get install xserver-xorg-video-dummy

2番目の画面には、ダミードライバー用の/etc/X11/xorg.confがあります。

セクション「デバイス」
識別子「構成済みビデオデバイス」
ドライバー「radeon」#CHANGE THIS 
 EndSection 
 
セクション "モニター」
識別子「構成されたモニター」
 EndSection 
 
セクション「画面」
識別子「デフォルト画面」
モニター「構成されたモニター」モニター「
デバイス「構成済みビデオデバイス」
 EndSection 
 
 
 ## Xdummy:## 
セクション「デバイス」
識別子「Videocard0」
ドライバー「ダミー」
 #VideoRam 4096000 
 VideoRam 256000 
 EndSection 
 
 ## Xdummy:## 
セクション「モニター」
識別子「モニター0」
#HorizSync 10.0-300.0 
#VertRefresh 10.0-200.0 
#DisplaySize 4335 1084 
 EndSection 
 
 ## Xdummy:## 
セクション「スクリーン」
識別子「スクリーン0」
デバイス「ビデオカード0」 
 Monitor "Monitor0" 
 EndSecti on 
 
 
 
セクション「ServerLayout」
識別子「dummy_layout」
画面0「デフォルト画面」
 「デフォルト画面」の右側の画面1「screen0」
オプション「Xinerama」「1」
 EndSection 

次に、Xセッションにログインして実行します。

x11vnc -clip 1024x768+1280+0
2
mirage

これらの指示は、VNCクライアントを介してタブレットまたは任意のコンピューターを使用して、Linuxマシン用の「追加」画面を作成することです。

これらの手順はMageia3 32Bitで行いました(64bitを試したことはありません)が、他のディストリビューション(Ubuntu)でも同様です。

次の端末コマンドを使用して、必要なパッケージがすべて揃っていることを確認してください。

Sudo apt-get install gcc autoconf automake x11-font-util libtool libxi-devel ibopenssl-devel libxfont1-devel libpam-devel x11-util-macros x11-xtrans-devel x11-server-xvfb x11-server-xdmx x11-server-devel x11-server-source

上記のパッケージがすべて揃ったら、次のコマンドを発行します。

cd /usr/share/x11-server-sources/
./autogen.sh
./configure --with-fontrootdir=/usr/share/fonts --with-xkb-path=/usr/share/X11/xkb --with-xkb-output=/usr/share/X11/xkb/compiled --enable-dmx
make

エラーが発生しない場合は、Xdmxにパッチを適用します(簡単に言うと、しばらくの間「壊れている」)。

/usr/share/x11-server-sources/hw/dmx/input/dmxevents.cを開き、730行目を変更します。これを変更します。

POINTER_ABSOLUTE | POINTER_SCREEN, &mask);

これに:

POINTER_RELATIVE | POINTER_DESKTOP, &mask);

行730が異なる場合、このセクションを使用して正しい行を見つけてください。

    case ButtonPress:
    case ButtonRelease:
        detail = dmxGetButtonMapping(dmxLocal, detail);
        valuator_mask_zero(&mask);
        QueuePointerEvents(p, type, detail,
 *                         POINTER_RELATIVE | POINTER_DESKTOP, &mask);
        return;

./configure --version/usr/share/x11-server-source/を実行してXdmxのバージョンを確認します。Xdmx 1.13以前の場合は、これらの変更を行う必要があります(1.14以降の場合はスキップできます)以下の「メイク」ステップ):

/usr/share/x11-server-sources/dix/getevents.cの1395行目を開きます:これを変更します:

if (flags & POINTER_SCREEN ) {    /* valuators are in screen coords */

これに:

if (flags & ( POINTER_SCREEN | POINTER_DESKTOP) ) {    /* valuators are in screen coords */

(元のセクション-変更する行には*マークが付いています)

    /* valuators are in driver-native format (rel or abs) */

    if (flags & POINTER_ABSOLUTE) {
*       if (flags & POINTER_SCREEN ) {    /* valuators are in screen coords */
            sx = valuator_mask_get(&mask, 0);
            sy = valuator_mask_get(&mask, 1);

/usr/share/x11-server-sources/Xext/xtest.cの311行目を開きます:これを変更します:

flags = POINTER_ABSOLUTE | POINTER_SCREEN;

これに:

flags = POINTER_ABSOLUTE | POINTER_DESKTOP;

(元のセクション-*のマークが付いた変更する行)

       case MotionNotify:
            dev = PickPointer(client);
            valuators[0] = ev->u.keyButtonPointer.rootX;
            valuators[1] = ev->u.keyButtonPointer.rootY;
            numValuators = 2;
            firstValuator = 0;
            if (ev->u.u.detail == xFalse)
*               flags = POINTER_ABSOLUTE | POINTER_DESKTOP;
            break;

/usr/share/x11-server-sources/include/input.h、73行目:#define POINTER_EMULATEDで始まる行の後にこの行を追加します。

#define POINTER_DESKTOP         (1 << 7)

上記の変更を行った後、(/usr/share/x11-server-sources/で)再実行します。

make

/usr/share/x11-server-sources/hw/dmx/に新しいXdmxファイルが必要です。簡単にグローバルにインストールする必要があるため、既存の名前を変更することをお勧めします。

Sudo mv /bin/Xdmx /bin/Xdmx-old

そして、代わりに新しいものをコピーします。

cp /usr/share/x11-server-sources/hw/dmx/Xdmx /bin

これで、最初のトライアルを行う準備ができました。次のコマンドを使用すると、メイン/既存のディスプレイ(:0)を実行したままにして、マルチモニターをサポートした新しいディスプレイを開くことができます。これらのコマンドでicewmを使用して、もう少し軽量にします(メインディスプレイ:0でKDEを使用し、新しいマルチヘッドディスプレイで大型マルチモニターアプリケーションを開きます)。これらのコマンドは、間違いなく使いやすいようにスクリプト化できます(私がやったことです)-これらのコマンドはいずれも、コンソールやディスプレイのターミナルウィンドウで実行できます。唯一の要件は、それらが順番に実行されることです。

このコマンドは、VNCディスプレイのフレームバッファーとして新しいディスプレイを作成します:2(必要に応じて画面サイズを調整します):

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &

これにより、物理ディスプレイで:1として新しい軽量のXセッションが開始されます(これを行うにはさまざまな方法があります)。

startx 'icewm' -- :1

このコマンドは、物理画面と仮想画面の間でマルチディスプレイを開始し、ウィンドウマネージャーのicewmを開始します。

Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm

ターミナルウィンドウを開き、vncサーバーを起動します(必要に応じてパスワードを変更します)。

x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe &

あとは、VNCクライアントを起動してVNCに接続するだけです-ファイアウォールを無効にするか、例外を追加する必要がある場合がありますポート5900に接続して、接続できるようにします。留意すべきもう1つの点は、一部のVNCクライアントはリモートカーソル位置を表示しないことです。iOS用の「Mocha VNC」は、オプション「ローカルマウス」をオフにするとうまく機能することを保証します。

メインモニターと新しい仮想セカンドモニターの間でウィンドウをドラッグしてお楽しみください(タブレットを使用して、セカンドモニターの項目をクリック/入力することもできます)。

Xdmxを閉じるには Ctrl+Alt+Backspace 二回。

オートメーション:

このbashスクリプトを使用して、プロセス全体を開始します(終了時にXvfbも強制終了します)。

Xvfb :2 +xinerama -screen 0 1024x1280x24 -ac &
xinit dual -- :1
ps | grep Xvfb | awk '{print $1}' | xargs kill

その後、私はこれでカスタム~/.xinitrcファイルを持っています:

#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

if [[ $1 == "" ]]
then
  exec startkde 
Elif [[ $1 == "xterm" ]]
then
  exec xterm
Elif [[ $1 == "dual" ]]
then
  exec Xdmx :3 +xinerama -display :1 -display :2 -norender -noglxproxy -ac & DISPLAY=:3 starticewm & x11vnc -display :3 -passwd test -clip xinerama1 -noshm -forever -nowireframe
else
  exec $1
fi

トラブルシューティング:

  • Xdmxの実行中にsh: /usr/local/bin/xkbcomp: No such file or directoryというエラーが表示された場合は、cd /usr/local/bin" and "ln -s /bin/xkbcompを実行する必要があるかもしれません。その後、Xdmxを再試行してください。

  • Ctrl+Alt+F1 を通して F7 Xdmxで他のコンソール/ xsessionに切り替えるために動作するはずですが、何らかの理由で動作しません、私は単にSudo chvt X(Xはコンソール/ xsession番号)を実行してメインディスプレイに切り替えますまた、Xdmxに切り替えると、開いているウィンドウで描画の問題が発生する場合があります。タスクバーをクリックして、ウィンドウを再度非表示/表示し、再描画を強制します。

1
LinuxNewb

ここにリストされている他の手法には多くの問題がありました。より良い解決策があればいいのに、ゆっくりとシンプルな解決策が出発点としてはいいです。

VNCサーバーの場合、vncserverパッケージを試してみましたが、画面が真っ暗になり、gdmを再起動して何かを機能させる必要があります。 tightvncserverに切り替えましたが、設定なしで初めて機能しました。

マウス/キーボードを画面間で共有するには、 x2vnc を使用しました。これは win2vnc とともに使用して、Linux PCの隣のWindows PCとマウス/キーボードを共有することもできます。

最終コマンド:

Sudo apt-get install tightvncserver
tightvncserver
Sudo apt-get install x2vnc
x2vnc -east localhost:1

この時点で、YOUR_IP_ADDRESS:1に接続することにより、VNCプログラムで2番目の画面を開くことができるはずです。 VNC画面でプログラムを開始するには、ターミナルを開き、DISPLAYを設定してからコマンドを実行します。たとえば、VNC「画面」でxtermを開くには、次を実行します。

export DISPLAY=:1
xterm

このアプローチを使用すると、2番目の画面はかなり遅くなります。それでも、私が試した他の多くのオプションは行き止まりに陥り、このオプションは設定なしで機能しました。

0
thirdender

チュートリアル担当者に感謝します。Ubuntu14.04で何が機能したかを共有します

AndroidVNC をタブレットで入手

以下を実行して、Ubuntu PC用のx11vncを入手します

Sudo apt-get install x11vnc

Xorgのダミードライバーメソッドを使用する必要がありました。 /etc/X11/xorg.confファイルは次のようになります。

Section "ServerLayout"
Identifier     "X.org Configured"
Screen      0  "Screen0" 0 0
**Screen        1  "Screen1" rightof "Screen0"**
InputDevice    "Mouse0" "CorePointer"
InputDevice    "Keyboard0" "CoreKeyboard"
**Option         "Xinerama" "1"**
EndSection

Section "Files"
ModulePath   "/usr/lib/xorg/modules"
FontPath     "/usr/share/fonts/X11/misc"
FontPath     "/usr/share/fonts/X11/cyrillic"
FontPath     "/usr/share/fonts/X11/100dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/75dpi/:unscaled"
FontPath     "/usr/share/fonts/X11/Type1"
FontPath     "/usr/share/fonts/X11/100dpi"
FontPath     "/usr/share/fonts/X11/75dpi"
FontPath     "built-ins"
EndSection

Section "Module"
Load  "glx"
EndSection

Section "InputDevice"
Identifier  "Keyboard0"
Driver      "kbd"
EndSection

Section "InputDevice"
Identifier  "Mouse0"
Driver      "mouse"
Option      "Protocol" "auto"
Option      "Device" "/dev/input/mice"
Option      "ZAxisMapping" "4 5 6 7"
EndSection

Section "Monitor"
Identifier   "Monitor0"
VendorName   "Monitor Vendor"
ModelName    "Monitor Model"
DisplaySize 1680 1050
EndSection

**Section "Monitor"
Identifier "Monitor1"
VendorName "Dummy"
ModelName "Dummy"
DisplaySize 2704 1050
EndSection**

Section "Device"
    ### Available Driver options are:-
    ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
    ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
    ### <percent>: "<f>%"
    ### [arg]: arg optional
    #Option     "NoAccel"               # [<bool>]
    #Option     "SWcursor"              # [<bool>]
    #Option     "EnablePageFlip"        # [<bool>]
    #Option     "ColorTiling"           # [<bool>]
    #Option     "ColorTiling2D"         # [<bool>]
    #Option     "RenderAccel"           # [<bool>]
    #Option     "SubPixelOrder"         # [<str>]
    #Option     "AccelMethod"           # <str>
    #Option     "EXAVSync"              # [<bool>]
    #Option     "EXAPixmaps"            # [<bool>]
    #Option     "ZaphodHeads"           # <str>
    #Option     "EnablePageFlip"        # [<bool>]
    #Option     "SwapbuffersWait"       # [<bool>]
Identifier  "Card0"
Driver      "radeon"
BusID       "PCI:1:0:0"
EndSection

**Section "Device"
  Identifier "Dummy"
  Driver "dummy"
EndSection**

Section "Screen"
Identifier "Screen0"
Device     "Card0"
Monitor    "Monitor0"
SubSection "Display"
    Viewport   0 0
    Depth     1
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     4
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     8
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     15
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     16
EndSubSection
SubSection "Display"
    Viewport   0 0
    Depth     24
EndSubSection
EndSection

**Section "Screen"
Identifier "Screen1"
Device "Dummy"
Monitor "Monitor1
EndSection**

あなたはおそらくそこにすべてを必要としないでしょう、ただX -configureを実行してシステムの自動設定を取得し、ダミーセクション(アスタリスクの間のもの)をファイルに追加してください。 xorg.confのダミー画面の解像度は、メインモニターの幅+タブレットの解像度の幅であり、私の場合は1680 + 1024 = 2704、メインモニターの高さ、私の場合は1050を維持します。Xサーバーの再起動/電源プラグの再起動よりあなたに合っています:)。

実行してx11vncを実行します

x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0

ここでの解像度は、タブレットの幅xタブレットの高さ+メインディスプレイの幅+ 0になります。

AndroidVNCクライアントを使用してPCに接続し、localmouseオプションを有効にしてください。これで、LinuxがAndroidで実行されるという奇妙さを感じます:)

0
Mathieu Grenier

vnc_virtual_display_linker を使用します

このツールは、以前の多くの回答で説明したように、VNCに接続するための2番目の仮想モニターをセットアップします。 USBケーブルを使用したAndroidデバイスからの接続もサポートします。

0
Falko Menge

TL; DR

    $ Sudo apt-get install x11vnc
    $ WINDOW_ID=$(xwininfo | awk '/Window.id/{print $4}') && x11vnc -viewonly -nopw -avahi -id $WINDOW_ID >/dev/null 2>&1 &

さあ、共有したいウィンドウをクリックしてください。


FULL

私はiPadとChromebookを持っていますが、いくつかの端末コマンドhtopiptstatenmonなどを使用するために、それらをモニターとして使用したいと思います。だから、私は怠け者で、それを使って作った:

  1. パッケージのインストール:Sudo apt-get install x11vnc
  2. ターミナルを開き、xwininfo | awk '/Window.id/{print $4}'を入力して、共有するウィンドウをクリックします。出力は次のようになります。

    $ xwininfo | awk '/Window.id/{print $4}'
    0x4402f34
    
  3. これで、x11vncセッションを開始できます。

    $ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
    
  4. ウィンドウのサイズを変更して(0x4402f34)、可能な限り最高の画像にします。

セッションの関連するポートに注意してください:5900 -> :05901 -:15902 -> :2...

さらに、X11アプリ(Firefox、OpenOfficeなど)で正常に動作します。

0
Antonio Feitosa

このトピックについてまだ疑問に思っている人のために:xrandrおよびx11vncクリップは機能します。マウスがそこを乗り越えられるようにするには、パン引数を使用してマウストラッキングエリアを設定する必要があります。

xrandr --fb 2560x1024 --output LVDS1 --panning 1280x1024+0+0/2560x1024+0+0

次に、xvncを実行するときに次を使用します。

x11vnc -clip 1280x1024+1281+0 -nocursorshape -nocursorpos

これにより、VNCが独自のカーソルトラッキングを使用しようとするのを停止し、カーソルを画面イメージの一部としてペイントします。

ここでメモしました http://mikescodeoddities.blogspot.ae/2015/04/Android-tablet-as-second-ubuntu-screen.html

0
Mike Dawson