Вы также можете настроить локальный исходный сервер на nginx и reprepro:
Установить пакеты debiansudo apt-get install reprepro nginx
сделать каталоги для reprepro и отредактировать его sudo mkdir -p /srv/reprepro/ubuntu/{conf,dists,incoming,indices,logs,pool,project,tmp}
$ cd /srv/reprepro/ubuntu/
$ sudo chown -R `whoami` . # changes the repository owner to the current user
/ srv / reprepro / ubuntu / conf / distribution / srv / reprepro / ubuntu / conf / options ask-passphrase
basedir .
Включить его в reprepro, создать его $ reprepro includedeb karmic /path/to/my-package_0.1-1.deb \
# change /path/to/my-package_0.1-1.deb to the path to your package
Config nginx: /etc/nginx/sites-available/vhost-packages.conf server {
listen 80;
server_name packages.internal;
access_log /var/log/nginx/packages-access.log;
error_log /var/log/nginx/packages-error.log;
location / {
root /srv/reprepro;
index index.html;
}
location ~ /(.*)/conf {
deny all;
}
location ~ /(.*)/db {
deny all;
}
}
Оптимизировать размер ковша: / etc /nginx/conf.d/server_names_hash_bucket_size.conf server_names_hash_bucket_size 64;
Ссылка на ссылку для установки Ссылка
Нить, связанная с распознаванием, имеет действительно интересную идею, не уверен, имел ли он в виду это, потому что я не мог найти автора, которого он указал а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:
Во-первых, предположим, что основная машина имеет разрешение экрана 1280x800 и вторичную машину, которую вы хотите расширить свой рабочий стол до более VNC, имеет разрешение экрана 1280x1024 и вы хотите, чтобы расширенный экран был прав вашего основного экрана. Виртуальный экран должен быть 1280x800 + 1280x1024 = 2560x1024. (растяните его горизонтально и сделайте вертикальное разрешение больше из двух). Запустите xrandr --fb 2560x1024. Теперь, когда экран больше, чем ваш основной монитор, вы должны убедиться, что нет панорамирования или какой-либо другой нежелательной «функции», а также, что координаты верхнего левого угла вашего основного монитора равны 0x0. x11vnc -clip 1280x1024+1281+0 плюс добавить любые другие опции x11vnc по вкусу :)Это должно быть так.
Для тех, кто все еще интересуется этой темой: клип 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 -Втора-убунт-screen.html
Использовать vnc_virtual_display_linker
Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.
Это в принципе возможно с помощью xdmx (распределенного multihead X), который позволяет вам создать один рабочий стол с использованием двух X-серверов, работающих на разных машинах.
в принципе возможны три сценария, но ни один из них не является так же как iDisplay, потому что все они требуют перезапуска X-сессии по крайней мере. Мне не удалось нормально работать, но я запускаю Ubuntu 10.10 и не могу обновляться по разным причинам. Три из них:
1: запустите X-сервер на Android (теперь есть два доступных в магазине приложений) и используйте xdmx для объединения с дисплеем вашего рабочего стола или ноутбука. - не работал для меня, потому что xdmx разбился, когда указатель переместился на планшетную часть рабочего стола.
2: запустите второй X-сервер с vnc-файлом на вашем компьютере, используйте xdmx, чтобы объединить это в один рабочий стол с экраном вашего компьютера, а затем посмотрите на виртуальную часть с помощью vnc viewer на планшете - не работал для меня, потому что xdmx требует, чтобы все x-серверы имели одинаковые цветные изображения, что не относится к vncserver и реальный дисплей, и мне не удалось убедить vncserver изменить.
3: запустите два vncservers, по одному для каждого экрана, затем подключите их к xdmx и посмотрите на каждую часть с помощью vncviewer на соответствующем машина. - Это было ближе всего к работе для меня, к сожалению inpout был испорчен. он также был довольно медленным в истинном цвете по Wi-Fi. Я использовал этот скрипт для запуска xdmx и vncs:
#!/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
Я использую драйвер xorg dummy и x11vnc -clip.
sudo apt-get install xserver-xorg-video-dummy
На втором экране есть /etc/X11/xorg.conf для фиктивного драйвера:
Section "Device" Identifier "Configured Video Device" Driver "radeon" #CHANGE THIS EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection ##Xdummy:## Section "Device" Identifier "Videocard0" Driver "dummy" #VideoRam 4096000 VideoRam 256000 EndSection ##Xdummy:## Section "Monitor" Identifier "Monitor0" # HorizSync 10.0 - 300.0 # VertRefresh 10.0 - 200.0 # DisplaySize 4335 1084 EndSection ##Xdummy:## Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" EndSection Section "ServerLayout" Identifier "dummy_layout" Screen 0 "Default Screen" Screen 1 "screen0" rightof "Default Screen" Option "Xinerama" "1" EndSectionЗатем войдите в X сеанс и запустите :
x11vnc -clip 1024x768+1280+0
Эти инструкции предназначены для создания «дополнительного» экрана для вашей Linux-машины с помощью планшета или любого компьютера через клиент VNC.
Я сделал эти шаги в Mageia3 32Bit (не пробовал 64-битную), но должен Аналогично для других дистрибутивов (например, 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 (просто положите, он был «сломан» в течение некоторого времени):
open /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c и изменить строку 730: измените это:
POINTER_ABSOLUTE | POINTER_SCREEN, &mask);
на следующее:
POINTER_RELATIVE | POINTER_DESKTOP, &mask);
IF линия 730 отличается от этого раздела, чтобы найти правильную строку: Orginal section - строка для изменения, отмеченная *
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 и новее вы можете перейдите к шагу «make» ниже):
откройте /usr/share/x11-server-sources/dix/getevents.c, строка 1395: измените это:
if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */
К этому: [!d 11] 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 с этими командами, чтобы сделать его немного более легким (я использую 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 - Xdmx 1.13 к порту 5900, чтобы вы могли подключиться к нему. Другое дело иметь в виду, что некоторые клиенты VNC не отображают позицию удаленного курсора, я подтверждаю, что «Mocha VNC» для iOS отлично работает, если вы отключите опцию «локальная мышь».
Enjoy перетаскивая окна между вашим основным монитором и вашим новым виртуальным вторым монитором (в то же время имея возможность использовать планшет, чтобы щелкнуть / набрать что-то на втором мониторе).
Чтобы закрыть 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 для переключения на другие консоли / xsessions, но по какой-то причине он не работает, то, что я делаю, просто выполняется sudo chvt X (где X - это номер консоли / xsession), чтобы переключитесь на мой основной дисплей. Также, когда вы переключаетесь обратно на Xdmx, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.Спасибо за ребята, я расскажу, что сработало для меня на Ubuntu 14.04
Получите AndroidVNC для вашего планшета
Получите x11vnc для своего компьютера Ubuntu, запустив
sudo apt-get install x11vnc
Мне пришлось использовать метод драйвера Dummy 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, чтобы получить системный autoconfig и добавьте фиктивные разделы (материал между звездочками) в файл. Разрешение для фиктивного экрана в xorg.conf должно быть вашей основной шириной монитора + шириной разрешения вашего планшета, в моем случае 1680 + 1024 = 2704 сохранить основную высоту монитора, 1050 в моем случае. Перезапустить X-сервер / перезагрузить / вытащить вилку питания, что угодно вам нужно больше:).
Запустить x11vnc, выполнив
x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0
Здесь разрешение должно быть вашей ширины планшета x высота планшета + ширина основного экрана + 0
] Подключитесь к своему ПК с помощью клиента androidVNC, убедитесь, что включена опция localmouse. Это должно быть, теперь чувствуйте странность того, что Linux запускается через android:)
#!/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 desktop (я не знаю, как сделать запуск gnome 3 в vnc). Чтобы запустить vnc-сервер, используйте команду vnc4server -geometry 800x480. Конечно, вместо 800x480 вам нужно установить разрешение планшета. Запуск x2x -east -to :1. Эта команда говорит, что ваш компьютер действует как дисплей: 1 был справа от экрана (используйте параметр -west, если хотите, чтобы он находился слева). Вы не сможете перемещать приложения с одного дисплея на другой, но вы можете использовать одну мышь и одну клавиатуру для управления ими обоими. Подключитесь к дисплею, созданному с помощью vnc4server с вашего планшета (номер порта - 5900 + номер дисплея (например, для отображения: 1 номер порта будет 5901) (номер дисплея отображается на выходе vnc4server)). Для выхода из x2x нажмите Ctrl-C. Кроме того, вы можете запустить его в фоновом режиме (x2x -east -to :1 &). Затем вам сначала нужно перенести его на передний план (fg) или убить его с помощью kill $! (будьте осторожны, он убивает последний процесс, запущенный в фоновом режиме). Чтобы удалить созданный экран, вызовите vnc4server -kill :1, где вместо :1 вы можете установить номер своего нового дисплея. Не удалось заставить другие ответы работать, кроме этого, которые работали безупречно. Вот пошаговое руководство, запрошенное комментариями.
(Обратите внимание: измените настройку разрешения по умолчанию 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 (исключить его) в следующую команду.
$ gtf 1280 1024 60. xrandr --addmode VIRTUAL1 1280x1024_60.00 xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1Найдите IP-адрес вашего компьютера с помощью ifconfig (при подключении к локальной сети).
#!/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
У меня было много проблем с другими методами, перечисленными здесь. Мне хотелось бы, чтобы у меня было лучшее решение, но мое медленное и простое решение - хорошее стартовое место.
Для сервера VNC я попробовал пакет vncserver, но экран стал черным, и у меня было бы для перезапуска gdm, чтобы все снова работало. Я переключился на tightvncserver, и он работал в первый раз без конфигурации.
Чтобы поделиться мышью / клавиатурой между экранами, я использовал x2vnc. Это можно также использовать с win2vnc для совместного использования мыши / клавиатуры с ПК с ОС Windows рядом с вашим Linux-ПК.
Конечные команды:
sudo apt-get install tightvncserver
tightvncserver
sudo apt-get install x2vnc
x2vnc -east localhost:1
На этом этапе вы должны быть способны чтобы открыть второй экран в программе VNC, подключившись к YOUR_IP_ADDRESS:1. Чтобы запустить программу на экране VNC, откройте терминал, установите DISPLAY, а затем запустите команду. Например, чтобы открыть xterm на экране VNC, запустите:
export DISPLAY=:1
xterm
Используя этот подход, второй экран довольно медленный. Тем не менее, многие другие варианты, которые я пробовал, оказались в тупиках, и эта работа вообще не имела конфигурации.
Нить, связанная с распознаванием, имеет действительно интересную идею, не уверен, имел ли он в виду это, потому что я не мог найти автора, которого он указал а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:
Во-первых, предположим, что основная машина имеет разрешение экрана 1280x800 и вторичную машину, которую вы хотите расширить свой рабочий стол до более VNC, имеет разрешение экрана 1280x1024 и вы хотите, чтобы расширенный экран был прав вашего основного экрана. Виртуальный экран должен быть 1280x800 + 1280x1024 = 2560x1024. (растяните его горизонтально и сделайте вертикальное разрешение больше из двух). Запустите xrandr --fb 2560x1024. Теперь, когда экран больше, чем ваш основной монитор, вы должны убедиться, что нет панорамирования или какой-либо другой нежелательной «функции», а также, что координаты верхнего левого угла вашего основного монитора равны 0x0. x11vnc -clip 1280x1024+1281+0 плюс добавить любые другие опции x11vnc по вкусу :)Это должно быть так.
#!/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 desktop (я не знаю, как сделать запуск gnome 3 в vnc). Чтобы запустить vnc-сервер, используйте команду vnc4server -geometry 800x480. Конечно, вместо 800x480 вам нужно установить разрешение планшета. Запуск x2x -east -to :1. Эта команда говорит, что ваш компьютер действует как дисплей: 1 был справа от экрана (используйте параметр -west, если хотите, чтобы он находился слева). Вы не сможете перемещать приложения с одного дисплея на другой, но вы можете использовать одну мышь и одну клавиатуру для управления ими обоими. Подключитесь к дисплею, созданному с помощью vnc4server с вашего планшета (номер порта - 5900 + номер дисплея (например, для отображения: 1 номер порта будет 5901) (номер дисплея отображается на выходе vnc4server)). Для выхода из x2x нажмите Ctrl-C. Кроме того, вы можете запустить его в фоновом режиме (x2x -east -to :1 &). Затем вам сначала нужно перенести его на передний план (fg) или убить его с помощью kill $! (будьте осторожны, он убивает последний процесс, запущенный в фоновом режиме). Чтобы удалить созданный экран, вызовите vnc4server -kill :1, где вместо :1 вы можете установить номер своего нового дисплея. Не удалось заставить другие ответы работать, кроме этого, которые работали безупречно. Вот пошаговое руководство, запрошенное комментариями.
(Обратите внимание: измените настройку разрешения по умолчанию 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 (исключить его) в следующую команду.
$ gtf 1280 1024 60. xrandr --addmode VIRTUAL1 1280x1024_60.00 xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1xrandr --addmode VIRTUAL1 1280x1024_60.00
xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1Найдите IP-адрес вашего компьютера с помощью ifconfig (при подключении к локальной сети).
#!/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
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 &
Теперь просто щелкните в окне, которое вы хотите разделить.
TL; DR [ ! d1]:
У меня есть iPad и Chromebook, и я бы хотел использовать их в качестве своих мониторов, просто для некоторых команд терминала 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 и т. д.
Я сделал простой сценарий bash, чтобы сделать планшет вторым. Копировать ipad_monitor.sh (не волнуйтесь, он также работает с Android) в моем сообщении в блоге.
Чем отличается от другого сообщения, вы можете легко установить положение второго экрана с дополнительным аргументом.
Изменить: здесь был включен оригинальный 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
Для тех, кто все еще интересуется этой темой: клип 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 -Втора-убунт-screen.html
Использовать vnc_virtual_display_linker
Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.
Это в принципе возможно с помощью xdmx (распределенного multihead X), который позволяет вам создать один рабочий стол с использованием двух X-серверов, работающих на разных машинах.
в принципе возможны три сценария, но ни один из них не является так же как iDisplay, потому что все они требуют перезапуска X-сессии по крайней мере. Мне не удалось нормально работать, но я запускаю Ubuntu 10.10 и не могу обновляться по разным причинам. Три из них:
1: запустите X-сервер на Android (теперь есть два доступных в магазине приложений) и используйте xdmx для объединения с дисплеем вашего рабочего стола или ноутбука. - не работал для меня, потому что xdmx разбился, когда указатель переместился на планшетную часть рабочего стола.
2: запустите второй X-сервер с vnc-файлом на вашем компьютере, используйте xdmx, чтобы объединить это в один рабочий стол с экраном вашего компьютера, а затем посмотрите на виртуальную часть с помощью vnc viewer на планшете - не работал для меня, потому что xdmx требует, чтобы все x-серверы имели одинаковые цветные изображения, что не относится к vncserver и реальный дисплей, и мне не удалось убедить vncserver изменить.
3: запустите два vncservers, по одному для каждого экрана, затем подключите их к xdmx и посмотрите на каждую часть с помощью vncviewer на соответствующем машина. - Это было ближе всего к работе для меня, к сожалению inpout был испорчен. он также был довольно медленным в истинном цвете по Wi-Fi. Я использовал этот скрипт для запуска xdmx и vncs:
#!/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
Я использую драйвер xorg dummy и x11vnc -clip.
sudo apt-get install xserver-xorg-video-dummy
На втором экране есть /etc/X11/xorg.conf для фиктивного драйвера:
Section "Device" Identifier "Configured Video Device" Driver "radeon" #CHANGE THIS EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection ##Xdummy:## Section "Device" Identifier "Videocard0" Driver "dummy" #VideoRam 4096000 VideoRam 256000 EndSection ##Xdummy:## Section "Monitor" Identifier "Monitor0" # HorizSync 10.0 - 300.0 # VertRefresh 10.0 - 200.0 # DisplaySize 4335 1084 EndSection ##Xdummy:## Section "Screen" Identifier "Screen0" Device "Videocard0" Monitor "Monitor0" EndSection Section "ServerLayout" Identifier "dummy_layout" Screen 0 "Default Screen" Screen 1 "screen0" rightof "Default Screen" Option "Xinerama" "1" EndSectionЗатем войдите в X сеанс и запустите :
x11vnc -clip 1024x768+1280+0
Эти инструкции предназначены для создания «дополнительного» экрана для вашей Linux-машины с помощью планшета или любого компьютера через клиент VNC.
Я сделал эти шаги в Mageia3 32Bit (не пробовал 64-битную), но должен Аналогично для других дистрибутивов (например, 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 (просто положите, он был «сломан» в течение некоторого времени):
open /usr/share/x11-server-sources/hw/dmx/input/dmxevents.c и изменить строку 730: измените это:
POINTER_ABSOLUTE | POINTER_SCREEN, &mask);
на следующее:
POINTER_RELATIVE | POINTER_DESKTOP, &mask);
IF линия 730 отличается от этого раздела, чтобы найти правильную строку: Orginal section - строка для изменения, отмеченная *
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 и новее вы можете перейдите к шагу «make» ниже):
откройте /usr/share/x11-server-sources/dix/getevents.c, строка 1395: измените это:
if (flags & POINTER_SCREEN ) { /* valuators are in screen coords */
К этому: [!d 11] 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 с этими командами, чтобы сделать его немного более легким (я использую 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 - Xdmx 1.13 к порту 5900, чтобы вы могли подключиться к нему. Другое дело иметь в виду, что некоторые клиенты VNC не отображают позицию удаленного курсора, я подтверждаю, что «Mocha VNC» для iOS отлично работает, если вы отключите опцию «локальная мышь».
Enjoy перетаскивая окна между вашим основным монитором и вашим новым виртуальным вторым монитором (в то же время имея возможность использовать планшет, чтобы щелкнуть / набрать что-то на втором мониторе).
Чтобы закрыть 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 для переключения на другие консоли / xsessions, но по какой-то причине он не работает, то, что я делаю, просто выполняется sudo chvt X (где X - это номер консоли / xsession), чтобы переключитесь на мой основной дисплей. Также, когда вы переключаетесь обратно на Xdmx, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.Спасибо за ребята, я расскажу, что сработало для меня на Ubuntu 14.04
Получите AndroidVNC для вашего планшета
Получите x11vnc для своего компьютера Ubuntu, запустив
sudo apt-get install x11vnc
Мне пришлось использовать метод драйвера Dummy 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, чтобы получить системный autoconfig и добавьте фиктивные разделы (материал между звездочками) в файл. Разрешение для фиктивного экрана в xorg.conf должно быть вашей основной шириной монитора + шириной разрешения вашего планшета, в моем случае 1680 + 1024 = 2704 сохранить основную высоту монитора, 1050 в моем случае. Перезапустить X-сервер / перезагрузить / вытащить вилку питания, что угодно вам нужно больше:).
Запустить x11vnc, выполнив
x11vnc -rfbauth ~/.vnc/passwd -clip 1024x550+1680+0
Здесь разрешение должно быть вашей ширины планшета x высота планшета + ширина основного экрана + 0
] Подключитесь к своему ПК с помощью клиента androidVNC, убедитесь, что включена опция localmouse. Это должно быть, теперь чувствуйте странность того, что Linux запускается через android:)
У меня было много проблем с другими методами, перечисленными здесь. Мне хотелось бы, чтобы у меня было лучшее решение, но мое медленное и простое решение - хорошее стартовое место.
Для сервера VNC я попробовал пакет vncserver, но экран стал черным, и у меня было бы для перезапуска gdm, чтобы все снова работало. Я переключился на tightvncserver, и он работал в первый раз без конфигурации.
Чтобы поделиться мышью / клавиатурой между экранами, я использовал x2vnc. Это можно также использовать с win2vnc для совместного использования мыши / клавиатуры с ПК с ОС Windows рядом с вашим Linux-ПК.
Конечные команды:
sudo apt-get install tightvncserver
tightvncserver
sudo apt-get install x2vnc
x2vnc -east localhost:1
На этом этапе вы должны быть способны чтобы открыть второй экран в программе VNC, подключившись к YOUR_IP_ADDRESS:1. Чтобы запустить программу на экране VNC, откройте терминал, установите DISPLAY, а затем запустите команду. Например, чтобы открыть xterm на экране VNC, запустите:
export DISPLAY=:1
xterm
Используя этот подход, второй экран довольно медленный. Тем не менее, многие другие варианты, которые я пробовал, оказались в тупиках, и эта работа вообще не имела конфигурации.
Эти инструкции предназначены для создания «дополнительного» экрана для вашей Linux-машины с помощью планшета или любого компьютера через клиента VNC.
Я сделал эти шаги в Mageia3 32Bit (не пробовал 64-разрядный), но должен (например, 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);
IF линия 730 различна, используйте этот раздел, чтобы найти правильную строку: Orginal section - строка для изменения, отмеченная *
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 и новее вы можете перейдите к шагу «сделать» ниже):
открыть /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
У вас должен быть новый 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 на вашем физическом /usr/share/x11-server-source/
startx 'icewm' -- :1
Эта команда запускает мультидисплей между вашим физическим экраном и виртуальным экраном и запускает icewm для оконного менеджера:
startx 'icewm' -- :1
g24]
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, чтобы вы могли подключиться к нему. Другое дело иметь в виду, что некоторые клиенты VNC не отображают позицию удаленного курсора, я подтверждаю, что «Mocha VNC» для iOS отлично работает, если вы отключите опцию «локальная мышь».
Наслаждайтесь перетаскивая окна между вашим основным монитором и вашим новым виртуальным вторым монитором (в то же время имея возможность использовать планшет, чтобы щелкнуть / набрать что-то на втором мониторе).
Чтобы закрыть 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
Устранение неполадок:
sh: /usr/local/bin/xkbcomp: No such file or directory
, вам может потребоваться выполнить: cd /usr/local/bin" and "ln -s /bin/xkbcomp
], затем снова попробуйте Xdmx. sudo chvt X
(где X - номер консоли / xsession), чтобы переключиться на мой основной экран. Также, когда вы переключаетесь обратно на Xdmx, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать. TL; DR:
$ sudo apt-get install x11vnc $ WINDOW_ID = $ (xwininfo | awk '/Window.id/{print $ 4}') & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; & amp; x11vnc -viewonly -nopw -avahi -id $ WINDOW_ID & gt; / dev / null 2 & amp; 1 & amp;
Теперь просто щелкните в окне, которое вы хотите разделить.
FULL:
У меня есть iPad и Chromebook, а я хотели бы использовать их в качестве моих мониторов, просто для некоторых команд терминала 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 & gt; / dev / null 2 & amp; 1 & amp;
Обратите внимание на соответствующий порт вашей сессии: 5900 - & gt; ; : 0
, 5901 -: 1
, 5902 - & gt; : 2
...
Кроме того, отлично работает с приложениями X11: Firefox, OpenOffice и т. Д.
Я сделал простой сценарий bash, чтобы сделать планшет вторым дисплеем. Копировать ipad_monitor.sh
(не волнуйтесь, он также работает с Android) в моем сообщении в блоге .
Что отличается от другого сообщения, так это то, что вы можете легко установить положение второго экрана с дополнительным аргументом.
Изменить: здесь был включен оригинальный ipad_monitor.sh
. выполните следующую команду:
./ ipad_monitor.sh --right
или ./ ipad_monitor.sh --left
./ ipad_monitor.sh -right --portrait
./ ipad_monitor.sh -right --portrait --hidpi
[ ! d12] Основная идея этого скрипта такая же, как и у других, запустив xrandr
и x11vnc
, но я включил варианты, как то, для прикрепления экрана.
#! / bin / sh # ---------------------------- ------------------------------------------------ # " ЛИЦЕНЗИЯ ПИВОЗАВОДА "(Редакция 42): # & lt; k.bumsik@gmail.com> написал этот файл. Пока вы сохраняете это уведомление, вы можете делать все, что захотите, с помощью этого материала. Если мы когда-нибудь встретимся, и вы думаете, что это стоит того, вы можете купить мне пиво взамен. - Bumsik Kim # ---------------------------------------------- ------------------------------ # Конфигурация WIDTH = 1024 # 1368 для iPad Pro HEIGHT = 768 # 1024 для iPad Pro MODE_NAME = «mode_ipad» # Установите любое имя, которое вам нравится, вам может потребоваться изменить # это при изменении разрешения или просто перезагрузить компьютер. DIS_NAME = "VIRTUAL1" # Не меняйте его, если вы не знаете, что такое RANDR_POS = "- справа от" # Установка позиции по умолчанию для команды xrandr # Аргументы анализа, когда ["$ #" -gt 0]; сделать случай $ 1 в -l | --left) RANDR_POS = "- left-of" ;; -r | --right) RANDR_POS = "- right-of" ;; -a | --выше) RANDR_POS = "- above" ;; -b | - ниже) RANDR_POS = "- ниже" ;; -p | --portrait) TMP = $ WIDTH; WIDTH = $ ВЫСОТА; HEIGHT = $ TMP MODE_NAME = "$ MODE_NAME" "_ port" ;; -h | --hidpi) WIDTH = $ (($ WIDTH * 2)); HEIGHT = $ (($ HEIGHT * 2)) MODE_NAME = "$ MODE_NAME" "_ hidpi" ;; *) echo "'$ 1' не может быть позицией монитора"; выход 1 ;; esac shift # Определить первичный дисплей PRIMARY_DISPLAY = $ (xrandr | perl -ne 'print "$ 1" if / (\ w *) \ s * connected \ s * primary /') # Добавить режим отображения RANDR_MODE = $ (cvt "$ WIDTH "" $ HEIGHT "60 | sed '2s /^.* Modeline \ s * \". * \ "//; 2q; d') xrandr --addmode $ DIS_NAME $ MODE_NAME 2 & gt; / dev / null # Если режим не существует, тогда выполните режим и повторите попытку, если! [$? -eq 0]; затем xrandr --newmode $ MODE_NAME $ RANDR_MODE xrandr --addmode $ DIS_NAME $ MODE_NAME fi # Показать отображение первого xrandr --output $ DIS_NAME --mode $ MODE_NAME # Затем переместить отображение сна 5 # Требуется короткая задержка. В противном случае команда ниже игнорируется. xrandr --output $ DIS_NAME $ RANDR_POS $ PRIMARY_DISPLAY # Очистка перед завершением функции завершения {xrandr --output $ DIS_NAME --off xrandr --delmode $ DIS_NAME $ MODE_NAME эхо "Второй монитор отключен". } ловушка EXIT # Получить позицию отображения CLIP_POS = $ (xrandr | perl -ne 'print "$ 1", если /' $ DIS_NAME '\ s * connected \ s * (\ d * x \ d * \ + \ d * \ + \ d *) / ') echo $ CLIP_POS # Общий экран x11vnc -multiptr -repeat -clip $ CLIP_POS # Возможной альтернативой является x0vncserver, но он не отображает курсор мыши. # x0vncserver -display: 0 -geometry $ DIS_NAME -overlaymode -passwordfile ~ / .vnc / passwd if! [$? -eq 0]; то echo x11vnc потерпел неудачу, не удалось ли вам установить x11vnc? fi
xrandr --fb
и x11vnc --clip
вместе создают комбо-убийцу. В потоке, связанном с распознаванием, есть действительно интересная идея, а не уверен, имел ли он это значение, потому что я не мог найти автора, которого он указал, а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:
1280x800 + 1280x1024 = 2560x1024
. (растяните его горизонтально и сделайте вертикальное разрешение большим из двух). Итак, запустите xrandr -fb 2560x1024
. x11vnc -clip 1280x1024 + 1281 + 0 [ ! d4] плюс добавить любые другие варианты x11vnc по вкусу:)
Это должно быть так.
Для тех, кто все еще интересуется этой темой: клип xrandr и x11vnc работает; чтобы позволить мыши перемещаться там, вам нужно использовать аргумент панорамирования для установки области отслеживания мыши:
xrandr --fb 2560x1024 - выход 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
Используйте vnc_virtual_display_linker
Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.
Это возможно в принципе, используя xdmx (распределенный multihead X), который позволяет вам создать один рабочий стол, используя два X-сервера, работающих на разных машинах.
в принципе возможны три сценария, но ни один из них не является так же как iDisplay, потому что все они требуют перезапуска X-сессии по крайней мере. Мне не удалось нормально работать, но я запускаю Ubuntu 10.10 и не могу обновляться по разным причинам. Три из них:
1: запустите X-сервер на Android (теперь есть два доступных в магазине приложений) и используйте xdmx для объединения с дисплеем вашего рабочего стола или ноутбука. - не работал для меня, потому что xdmx разбился, когда указатель переместился на планшетную часть рабочего стола.
2: запустите второй X-сервер с vnc-файлом на вашем компьютере, используйте xdmx, чтобы объединить это в один рабочий стол с экраном вашего компьютера, а затем посмотрите на виртуальную часть с помощью vnc viewer на планшете - не работал для меня, потому что xdmx требует, чтобы все x-серверы имели одинаковые цветные изображения, что не относится к vncserver и реальный дисплей, и я не смог убедить vncserver измениться.
3: запустите два vncservers, по одному для каждого экрана, затем подключите их к xdmx и посмотрите на каждую часть с помощью vncviewer на соответствующем машина. - Это было ближе всего к работе для меня, к сожалению inpout был испорчен. он также был довольно медленным в истинном цвете по Wi-Fi. Я использовал этот скрипт для запуска xdmx и vncs:
#! / Bin / sh vncserver: 2 -geometry 1024x768 -depth 24 & amp; & amp; & amp; \ vncserver: 3 -geometry 1920x1120 -depth 24 & amp; & amp; \ startx - \ / usr / bin / X11 / Xdmx: 1 \ -вход: 2 \ -display: 2 \ -display: 3 \ -ignorebadfontpaths \ -norender \ -noglxproxy \ + xinerama \ -nomulticursor vncserver -kill: 2 vncserver -kill: 3
YMMV
Я использую драйвер xorg dummy и x11vnc -clip.
sudo apt-get install xserver-xorg-video-dummy
Существует / etc / X11 / xorg.conf
для фиктивного драйвера на втором экране:
Раздел «Устройство» Идентификатор «Настроенное видеоустройство» Драйвер «radeon» #CHANGE ЭТОТ Раздел 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