iDisplayと呼ばれるWindowsおよびMac用の製品を使用している人がいることに気づきました。これにより、AndroidまたはiPadをセカンダリディスプレイとして使用できます。これは素晴らしいアイデアのようであり、Ubuntuでできることです。残念ながら、私はどのように始めるのか分かりません。
Ubuntuでこのセットアップをどのように再作成できますか?
iDisplayと呼ばれるWindowsおよびMac用の製品を使用している人がいることに気づきました。これにより、AndroidまたはiPadをセカンダリディスプレイとして使用できます。これは素晴らしいアイデアのようであり、Ubuntuでできることです。残念ながら、私はどのように始めるのか分かりません。
Ubuntuでこのセットアップをどのように再作成できますか?
回答:
Android用のVNCクライアントを取得し、コンピューターで新しいVNCサーバーセッションを起動し(現在のディスプレイを共有するだけでなく、x11vncではなくvnc4serverを使用します)、Android VNCクライアントから接続し、(巧妙なビット)を共有しますシナジーを使用した2つのセッション間のPCキーボードとマウス。
これを行うために必要なすべてのソフトウェアは、Ubuntu側の標準リポジトリで入手できます。また、Androidで利用できる無料のVNCクライアントが市場にいくつかあります。
この方法を使用して、ウィンドウをディスプレイ全体にドラッグすることはできません。そのためには、Xdmxを使用して2つのセッションを結合する必要があると思います。これは非常に難しく、おそらく3Dアクセラレーションが失われます。
また、相乗効果とvncはデフォルトで暗号化を使用しないため、信頼できるネットワーク上にない場合は接続をトンネルする必要があることに注意してください。
tl; DR:xrandr --fbとx11vnc --clip一緒にはキラーコンボを作ります。
認識によってリンクされたスレッドは本当に興味深いアイデアを持っています、彼が示した著者を見つけることができなかったので、彼がこれを意味したかどうかはわかりません:
最初に、プライマリマシンの画面解像度が1280x800で、デスクトップをVNCに拡張するセカンダリマシンの画面解像度が1280x1024であり、拡張画面をプライマリ画面の右側にしたいと仮定します。仮想画面はである必要があります1280x800 + 1280x1024 = 2560x1024。(水平方向に拡張し、垂直解像度を2つのうちの大きい方にします)を実行しxrandr --fb 2560x1024ます。
画面がプライマリモニターよりも大きいため、パンやその他の不要な「機能」がアクティブになっていないことと、プライマリモニターの左上隅の座標が0x0であることを確認する必要があります。
x11vnc -clip 1280x1024+1281+0 さらに、他のx11vncオプションを好みに追加します:)
これであるはずです。
xrandr --fb 2560x1024は何の効果も持っていないようです。つまり、プライマリモニターサイズよりも大きな画面を表示することはできません... :(
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。このソリューションが機能しないことを意味します。代わりに、ダブルスクリーンソリューションを見つける必要があります。
sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0がありませんでした--panning)
完璧に接続されたこのを除いて、他の回答を機能させることはできませんでした。
Androidを2番目のモニターとして使用し、マウスを共有し、タブレットとコンピューターの間でウィンドウをドラッグできます。
これは、コメントでリクエストされた段階的なチュートリアルです。
タブレットの解像度は1280x1024です。(あなたが変更される可能性1280や1024タブレットが異なる解像度である場合、コマンドでどこにでも。また、変更が必要になることがありLVDS1、デフォルトのモニターの名前が異なる場合)。
ターミナルで実行:
gtf 1280 1024 60。出力には、と同様の行がありますModeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync。単語の後のすべてをコピーModeline(除外)して、次のコマンドにコピーします。
xrandr --newmode "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync
xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1
x11vnc -clip 1280x1024+0+0ifconfig(LANから接続する場合)を使用してコンピューターのIPを検索します。
VNCアプリをダウンロードし、アプリでそのIP(およびポートを選択5900)を使用してコンピューターに接続します。
-listen <IP_ADDR>オプションを制限する場合は問題ありませんx11vnc(ここ<IP_ADDR>で、排他的アクセスを許可するネットワーク内のコンピューターのアドレス))スクリプトとして実装されたチュートリアル(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
x11vnc -clip 1280x1024+0+0に置き換えることができますx11vnc -clip xinerama1。また、--left-of LVDS1後者がMonitors設定アプリを使用して、必要な場所に追加のモニターを配置する場合、これは厳密には必要ありません。
xrandr: cannot find output "VIRTUAL1"3を入力すると返されました。
xrandr: cannot find output "VIRTUAL1"帰国xrandr --addmode VIRTUAL1 1280x800_60.00
VIRTUAL1通常のシステムに存在するものではなく、そのような出力のプレースホルダーのようです。
vnc4serverしx2xます。次に、構成.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を起動する方法がわかりません)。
vnc4server -geometry 800x480コマンドを使用します。もちろん、800x480ではなく、タブレットの解像度を設定する必要があります。x2x -east -to :1ます。このコマンドは、ディスプレイ:1が画面の右側にあるかのように動作するようにコンピューターに指示します(左側に表示する-west場合はオプションを使用します)。アプリをあるディスプレイから別のディスプレイに移動することはできませんが、1つのマウスと1つのキーボードを使用して両方を制御できます。vnc4serverタブレットから作成されたディスプレイに接続します(ポート番号は5900 +ディスプレイ番号です(ディスプレイの場合、ポート番号は5901になります)(ディスプレイ番号はvnc4serverの出力に表示されます))。x2x、を押しCtrl-Cます。または、バックグラウンドで起動することもできます(x2x -east -to :1 &)。次に、まずそれをフォアグラウンドに移動する(fg)かkill $!、それを強制終了します(注意してください、バックグラウンドで起動された最後のプロセスを強制終了します)。vnc4server -kill :1。代わりに:1、新しいディスプレイの番号を設定できます。x2xを検索することで、この記事を見つけ、X2Xアンドロイド Googleで...しかし、のために+1 .vnc/xstartupのためespecialy、unset DBUS_SESSION_BUS_ADDRESS!! 小さくても豊富で非常に便利な投稿、ありがとう!
これは原則として、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
タブレットを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このスクリプトの基本的な考え方は、他の人と同じで実行しているxrandrとx11vnc私はあなたが画面を添付したいどちら側のようなオプションが含まれています。
#!/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
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
これらの手順は、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に切り替えると、開いているウィンドウで描画の問題が発生する場合があります。タスクバーをクリックして、ウィンドウを再度非表示/表示し、再描画を強制します。
チュートリアル担当者に感謝します。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上で走らせることの奇妙さを感じてください:)
ここに挙げた他の手法には多くの問題がありました。より良い解決策があればいいのですが、ゆっくりとシンプルな解決策が良い出発点です。
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番目の画面はかなり遅くなります。それでも、私が試した他の多くのオプションは行き止まりに陥り、このオプションは設定なしで機能しました。
このトピックについてまだ疑問に思っている人のために: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
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したいhtop、iptstate、nmon、など。だから、私は怠け者で、それを使って作った:
sudo apt-get install x11vncターミナルを開いてxwininfo | awk '/Window.id/{print $4}'、共有したいウィンドウに置いてクリックします。出力は次のようになります。
$ xwininfo | awk '/Window.id/{print $4}'
0x4402f34
これでx11vncセッションを開始できます:
$ x11vnc -viewonly -nopw -avahi -id 0x4402f34 >/dev/null 2>&1 &
ウィンドウのサイズを変更して(0x4402f34)、可能な限り最適な画像にします。
関連するマインドポートあなたのセッションを:5900 -> :0、5901 -:1、5902 -> :2...
さらに、X11アプリ(Firefox、OpenOfficeなど)で正常に動作します。
このツールは、以前の回答の多くで説明されているように、VNCに接続するための2番目の仮想モニターをセットアップします。USBケーブルを使用したAndroidデバイスからの接続もサポートします。