Androidタブレットをセカンドディスプレイとして使用する方法


63

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

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


2
現在、フォーラムでの議論の下で同様の質問:セカンドモニターとして使用VNC
ændrük

1
スーパーユーザーに同じ質問:使用VNC 2番目の画面を作成する
ændrük

1
さて、ここで紹介するソリューションはネットワークのものです。しかし、Duetのようにモニターと同じエクスペリエンスを得るために、USBを介してモニターを偽装するだけでこれを達成する機会はありますか?
オーガスティンリーディンガー14

したがって、Duetは(本質的に)ソフトウェアでDisplayLinkチップをエミュレートしている可能性があります-わかりませんが、それは私の推測です。私も試してみません。私が試してみる(そして難しくはない)のは、USBネットワークです。タブレットとネットワークをつなぐ(または逆につなぐ)ことです。
chx

回答:


28

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

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

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

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


9
例を追加してください
rkmax 14

18
私たちが従うことができるステップバイステップの例を持っていると便利でしょう
OganM 14

2
より多くの画面スペースのように、これはどのようにタブレットをセカンドスクリーンにしますか?
NoBugs

vncserverとGnome 3で問題が発生しました。vncserverを起動しようとするたびに画面が真っ暗になります。最終的にtightvncserver(Ubuntuリポジトリにもあります)を使用することになり、設定なしで最初の試行が機能しました。
サードパーティー

これは、2番目のディスプレイというよりも、KVMスイッチのような、またはリモートコントロールソリューションです。はい、別の入力セットを提供しますが、出力は両方のデバイスで同じです-メイン画面とは異なる仮想デスクトップにタブレットを切り替えることはできません。質問には答えません。質問は、入力についてではなく、追加の出力スペースにモバイルデバイスを使用することに関するものです。
cprn

17

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オプションを好みに追加します:)

これであるはずです。


2
これは、Synergyトリックよりもシームレスな方法のように思えます。しかし、余分な仮想空間がタイルウィンドウマネージャーとどのように相互作用するのか興味があります。しばらくしてこれを試して報告します。
イブラヒム

2
勝利の顎からひったくった敗北。マウスポインターは、プライマリ画面を離れることはできません。:(
グリンゴサーブ

1
興味深いようです。私は実際にそこに二重の画面を持っていますが、残念ながら、コマンドxrandr --fb 2560x1024は何の効果も持っていないようです。つまり、プライマリモニターサイズよりも大きな画面を表示することはできません... :(
オーガスティンリーディンガー

1
私はこれについてさらに読みます。手に入れたX Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 29 Current serial number in output stream: 30 エラーを。私の推測では、私のラップトップはネイティブよりも高い解像度をサポートしていません1600*900。このソリューションが機能しないことを意味します。代わりに、ダブルスクリーンソリューションを見つける必要があります。
オーガスティンリーディンガー16

3
この投稿のおかげで、ようやく機能しました:(オプションsudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0がありませんでした--panning
オーガスティンリーディンガー

16

完璧に接続されたこのを除いて、他の回答を機能させることはできませんでした。

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。単語の後のすべてをコピー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(LANから接続する場合)を使用してコンピューターのIPを検索します。

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

通知

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

B.スクリプト

スクリプトとして実装されたチュートリアル(USBケーブルで使用する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

@Prometheus、はx11vnc -clip 1280x1024+0+0に置き換えることができますx11vnc -clip xinerama1。また、--left-of LVDS1後者がMonitors設定アプリを使用して、必要な場所に追加のモニターを配置する場合、これは厳密には必要ありません。
LeoRochael

6
xrandr: cannot find output "VIRTUAL1"3を入力すると返されました。
dat tutbrus 16

3
xrandr: cannot find output "VIRTUAL1"帰国xrandr --addmode VIRTUAL1 1280x800_60.00
Tooniis

これは機能しますが、これを機能させるにはターゲットビデオモードに対応した未使用の出力が必要です。VIRTUAL1通常のシステムに存在するものではなく、そのような出力のプレースホルダーのようです。
ルスラン

1
@cprnはい、マウスカーソルを共有してウィンドウをドラッグできます。2番目のモニターが接続されているかのようです
18

13
  1. インストールvnc4serverx2xます。
  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 +ディスプレイ番号です(ディスプレイの場合、ポート番号は5901になります)(ディスプレイ番号はvnc4serverの出力に表示されます))。
  6. を終了するにはx2x、を押しCtrl-Cます。または、バックグラウンドで起動することもできます(x2x -east -to :1 &)。次に、まずそれをフォアグラウンドに移動する(fg)かkill $!、それを強制終了します(注意してください、バックグラウンドで起動された最後のプロセスを強制終了します)。
  7. 作成したディスプレイを削除するには、を呼び出しますvnc4server -kill :1。代わりに:1、新しいディスプレイの番号を設定できます。

1
x2xをありがとう...なぜインターネット上で誰もそれについて言及していないのですか?時間を節約できました。Synergyを使用するには、タブレットにcyanogenmodなどが必要です。また、誰もそれについて言及していません。
ステファノスカランツィス

1
私はすでに知っているx2xを検索することで、この記事を見つけ、X2Xアンドロイド Googleで...しかし、のために+1 .vnc/xstartupのためespecialy、unset DBUS_SESSION_BUS_ADDRESS!! 小さくても豊富で非常に便利な投稿、ありがとう!
F.ハウリ14年

7

これは原則として、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で各部分を確認します。-これは私にとって最も近い仕事でしたが、残念なことにピンポイントが台無しになりました。また、wifi経由のトゥルーカラーではかなり遅かったです。このスクリプトを使用して、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


3

タブレットを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):
# <k.bumsik@gmail.com> 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

1
スクリプト/アプリの名前、またはリンクの腐敗を防ぐために投稿できる代替リンクはありますか?ここでは、特に、その情報が実際に回答に入れられない回答に関連する情報の大部分がそれらのサイトに含まれている場合、他のサイトが立ち上がっていることに依存しないように、可能な限り自己完結するようにしています。
スベルジェロン

このリンクは質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供する方が良いでしょう。リンクされたページが変更されると、リンクのみの回答が無効になる可能性があります。- 口コミより
anonymous2

2
@sbergeronなるほど。ここに元のコードを含めます。
Bumsikキム

1
@ anonymous2そのとおりです。ここにbashコードを含めました。
Bumsikキム・

ああ、はるかに良い。これはこのように固執できるはずだと思います。
匿名2

2

xorgダミードライバーとx11vnc -clipを使用します。マウスポイントが端に引っかかっていない。

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

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

セクション「デバイス」
        識別子「構成されたビデオデバイス」
    ドライバー「radeon」#CHANGE THIS
EndSection

セクション「モニター」
        識別子「構成されたモニター」
EndSection

セクション「画面」
        識別子「デフォルト画面」
        モニター「構成されたモニター」
        デバイス「構成済みビデオデバイス」
EndSection


## Xdummy:##
セクション「デバイス」
  識別子「Videocard0」
  ドライバー「ダミー」
  #VideoRam 4096000
  VideoRam 256000
EndSection

## Xdummy:##
セクション「モニター」
  識別子「Monitor0」
#HorizSync 10.0-300.0
#VertRefresh 10.0-200.0
#DisplaySize 4335 1084
EndSection

## Xdummy:##
セクション「画面」
  識別子「Screen0」
  デバイス「Videocard0」
  モニター「Monitor0」
EndSection



セクション「ServerLayout」
  識別子「dummy_layout」
  画面0「デフォルト画面」
  「デフォルト画面」の右の画面1「screen0」
    オプション「Xinerama」「1」
EndSection

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

x11vnc -clip 1024x768+1280+0

xorg.confなしでこれを行う方法はありますか?コンピューターで作成すると、グラフィックが完全に台無しになります。
ダボロス

Xineramaはまだサポートされていますか?xrandrはどうですか?
グリンゴサーブ

1

これらの手順は、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;

実行してXdmxのバージョンを確認./configure --version/usr/share/x11-server-source/のため、Xdmx 1.13あなたはまた、これらの変更(1.14以降のためにあなたは、以下の「作る」の手順にスキップすることができます)を作成しなければなりませんし、古いです:

open /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);

open /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

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

sudo mv /bin/Xdmx /bin/Xdmx-old

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

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

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

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

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

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

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」は、オプション「local mouse」をオフにするとうまく機能することを保証します。

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

Xdmxを閉じるには、Ctrl+ Alt+をBackspace2回押します。

オートメーション:

この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、execute:を実行する必要がある可能性があるというエラーが表示された場合は、Xdmxを再試行してください。

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


0

チュートリアル担当者に感謝します。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

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

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

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

export DISPLAY=:1
xterm

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


0

このトピックについてまだ疑問に思っている人のために: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

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 &

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


フル

私はiPadとのChromebookを持っていると私は、私のモニターとして使用するだけで、いくつかのターミナルコマンドをUSOしたい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

vnc_virtual_display_linkerを使用

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.