Как вы используете планшет Android в качестве второго дисплея?

Вы также можете настроить локальный исходный сервер на nginx и reprepro:

Установить пакеты debian
sudo 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;

Ссылка на ссылку для установки Ссылка

54
задан 1 March 2011 в 21:58

129 ответов

[D0] TL; dr: xrandr --fb и x11vnc --clip вместе делают комбайн-убийцу.

Нить, связанная с распознаванием, имеет действительно интересную идею, не уверен, имел ли он в виду это, потому что я не мог найти автора, которого он указал а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:

Во-первых, предположим, что основная машина имеет разрешение экрана 1280x800 и вторичную машину, которую вы хотите расширить свой рабочий стол до более VNC, имеет разрешение экрана 1280x1024 и вы хотите, чтобы расширенный экран был прав вашего основного экрана. Виртуальный экран должен быть 1280x800 + 1280x1024 = 2560x1024. (растяните его горизонтально и сделайте вертикальное разрешение больше из двух). Запустите xrandr --fb 2560x1024. Теперь, когда экран больше, чем ваш основной монитор, вы должны убедиться, что нет панорамирования или какой-либо другой нежелательной «функции», а также, что координаты верхнего левого угла вашего основного монитора равны 0x0. x11vnc -clip 1280x1024+1281+0 плюс добавить любые другие опции x11vnc по вкусу :)

Это должно быть так.

14
ответ дан 2 August 2018 в 03:51
  • 1
    Это похоже на путь более простой способ сделать это, чем трюк Synergy, хорошо! Мне любопытно, как дополнительное виртуальное пространство будет взаимодействовать с моим менеджером оконных панелей. Немножко даст этот снимок и отчитается. – Ibrahim 24 January 2013 в 05:49
  • 2
    Побег вырвался из челюстей победы. Указателю мыши не разрешается покидать основной экран. :( – Gringo Suave 25 October 2013 в 11:18
  • 3
    Кажется интересным. На самом деле у меня есть двойной экран, но, к сожалению, команда xrandr --fb 2560x1024, похоже, не имеет никакого эффекта. Это означает, что у меня не может быть больше экрана, чем у моего основного размера монитора ... :( – Augustin Riedinger 10 February 2016 в 19:02
  • 4
    Я читал об этом . Получена ошибка 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 . Я предполагаю, что мой ноутбук не поддерживает более высокое разрешение, чем native 1600*900. Это решение не может работать. Вместо этого я должен найти решение с двойным экраном. – Augustin Riedinger 10 February 2016 в 19:38
  • 5
    Я, наконец, сделал это благодаря этому сообщению , выполнив: sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0 (мне не хватало опции --panning) – Augustin Riedinger 10 February 2016 в 23:39

Для тех, кто все еще интересуется этой темой: клип 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

0
ответ дан 2 August 2018 в 03:51

Использовать vnc_virtual_display_linker

Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.

0
ответ дан 2 August 2018 в 03:51

Это в принципе возможно с помощью 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

7
ответ дан 2 August 2018 в 03:51

Я использую драйвер 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
2
ответ дан 2 August 2018 в 03:51
  • 1
    Любой способ сделать это без xorg.conf? Если я создам один на своем компьютере, тогда мои графики полностью перепутаются. – daboross 28 May 2013 в 20:33
  • 2
    Поддерживается ли Xinerama? Как насчет xrandr? – Gringo Suave 25 October 2013 в 11:26

Эти инструкции предназначены для создания «дополнительного» экрана для вашей 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, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.
1
ответ дан 2 August 2018 в 03:51

Спасибо за ребята, я расскажу, что сработало для меня на 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:)

0
ответ дан 2 August 2018 в 03:51
Установите vnc4server и x2x. Затем настройте файл конфигурации .vnc/xstartup. Mine выглядит так #!/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 вы можете установить номер своего нового дисплея.
12
ответ дан 2 August 2018 в 03:51
  • 1
    Спасибо за x2x ... Почему никто не упоминает об этом во всем Интернете ??? Сэкономил мне много времени. Синергия требует цианогенмода или подобного на планшете. Также об этом никто не упоминает. – Stefanos Kalantzis 17 September 2013 в 14:05
  • 2
    Я уже знаю x2x, найдите это сообщение, ища x2x android в google ... Но +1 для .vnc/xstartup, особенно для unset DBUS_SESSION_BUS_ADDRESS !! Маленький, но богатый и очень полезный пост, спасибо! – F. Hauri 20 June 2014 в 11:56

Не удалось заставить другие ответы работать, кроме этого, которые работали безупречно. Вот пошаговое руководство, запрошенное комментариями.

A. Учебник

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 LVDS1

2. Начать VNC

xrandr --addmode VIRTUAL1 1280x1024_60.00

3.

xrandr --addmode VIRTUAL1 1280x1024_60.00

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

Замечания

Кредиты: kjans, содержимое редактируется. ПРЕДУПРЕЖДЕНИЕ: данные не зашифрованы! (Соответствует использованию Wi-Fi и не LAN). ПРЕДУПРЕЖДЕНИЕ. Любая подключенная к сети сеть, к которой вы можете подключиться к порту 5900, может подключаться к вашему монитору! (Не проблема при использовании USB и ограничение интерфейса, добавив опцию -listen <IP_ADDR> к x11vnc (где <IP_ADDR> - это адрес компьютера в сети, который вы хотите предоставить эксклюзивный доступ)). Выполнение любого из 1 - 4 шагов в два раза может привести к выходу ошибки. После успешного использования, 5. шаг должен быть повторен для другого соединения.

B. Сценарий

Найдите 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
10
ответ дан 2 August 2018 в 03:51
  • 1
    @Prometheus, x11vnc -clip 1280x1024+0+0 можно заменить на x11vnc -clip xinerama1. Кроме того, --left-of LVDS1 не является абсолютно необходимым, если вы собираетесь использовать приложение настроек Monitors, чтобы расположить дополнительный монитор там, где вы хотите. – LeoRochael 28 July 2016 в 20:09
  • 2
    xrandr: cannot find output "VIRTUAL1" был возвращен, когда я печатаю число 3. Любые идеи? – dat tutbrus 15 December 2016 в 16:51
  • 3
    xrandr: cannot find output "VIRTUAL1" вернулся из xrandr --addmode VIRTUAL1 1280x800_60.00 – Tooniis 1 August 2017 в 18:57
  • 4
    Это работает, за исключением того, что у вас должен быть неиспользуемый выход, способный к целевому видеорежиму для этого. VIRTUAL1 кажется заполнитель для такого вывода, а не в типичной системе. – Ruslan 16 May 2018 в 17:59
  • 5
    +1 Для идеи создания виртуального монитора – user3751385 18 July 2018 в 22:06

У меня было много проблем с другими методами, перечисленными здесь. Мне хотелось бы, чтобы у меня было лучшее решение, но мое медленное и простое решение - хорошее стартовое место.

Для сервера 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

Используя этот подход, второй экран довольно медленный. Тем не менее, многие другие варианты, которые я пробовал, оказались в тупиках, и эта работа вообще не имела конфигурации.

0
ответ дан 2 August 2018 в 03:51
[D0] TL; dr: xrandr --fb и x11vnc --clip вместе делают комбайн-убийцу.

Нить, связанная с распознаванием, имеет действительно интересную идею, не уверен, имел ли он в виду это, потому что я не мог найти автора, которого он указал а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:

Во-первых, предположим, что основная машина имеет разрешение экрана 1280x800 и вторичную машину, которую вы хотите расширить свой рабочий стол до более VNC, имеет разрешение экрана 1280x1024 и вы хотите, чтобы расширенный экран был прав вашего основного экрана. Виртуальный экран должен быть 1280x800 + 1280x1024 = 2560x1024. (растяните его горизонтально и сделайте вертикальное разрешение больше из двух). Запустите xrandr --fb 2560x1024. Теперь, когда экран больше, чем ваш основной монитор, вы должны убедиться, что нет панорамирования или какой-либо другой нежелательной «функции», а также, что координаты верхнего левого угла вашего основного монитора равны 0x0. x11vnc -clip 1280x1024+1281+0 плюс добавить любые другие опции x11vnc по вкусу :)

Это должно быть так.

14
ответ дан 4 August 2018 в 19:55
  • 1
    Это похоже на путь более простой способ сделать это, чем трюк Synergy, хорошо! Мне любопытно, как дополнительное виртуальное пространство будет взаимодействовать с моим менеджером оконных панелей. Немножко даст этот снимок и отчитается. – Ibrahim 24 January 2013 в 05:49
  • 2
    Побег вырвался из челюстей победы. Указателю мыши не разрешается покидать основной экран. :( – Gringo Suave 25 October 2013 в 11:18
  • 3
    Кажется интересным. На самом деле у меня есть двойной экран, но, к сожалению, команда xrandr --fb 2560x1024, похоже, не имеет никакого эффекта. Это означает, что у меня не может быть больше экрана, чем у моего основного размера монитора ... :( – Augustin Riedinger 10 February 2016 в 19:02
  • 4
    Я читал об этом . Получена ошибка 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 . Я предполагаю, что мой ноутбук не поддерживает более высокое разрешение, чем native 1600*900. Это решение не может работать. Вместо этого я должен найти решение с двойным экраном. – Augustin Riedinger 10 February 2016 в 19:38
  • 5
    Я, наконец, сделал это благодаря этому сообщению , выполнив: sudo xrandr --fb 2732x768 --output LVDS1 --panning 2732x768+0+0/2732x768+0+0 (мне не хватало опции --panning) – Augustin Riedinger 10 February 2016 в 23:39
Установите vnc4server и x2x. Затем настройте файл конфигурации .vnc/xstartup. Mine выглядит так #!/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 вы можете установить номер своего нового дисплея.
12
ответ дан 4 August 2018 в 19:55
  • 1
    Спасибо за x2x ... Почему никто не упоминает об этом во всем Интернете ??? Сэкономил мне много времени. Синергия требует цианогенмода или подобного на планшете. Также об этом никто не упоминает. – Stefanos Kalantzis 17 September 2013 в 14:05
  • 2
    Я уже знаю x2x, найдите это сообщение, ища x2x android в google ... Но +1 для .vnc/xstartup, особенно для unset DBUS_SESSION_BUS_ADDRESS !! Маленький, но богатый и очень полезный пост, спасибо! – F. Hauri 20 June 2014 в 11:56

Не удалось заставить другие ответы работать, кроме этого, которые работали безупречно. Вот пошаговое руководство, запрошенное комментариями.

A. Учебник

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 LVDS1

2. Начать VNC

xrandr --addmode VIRTUAL1 1280x1024_60.00

3.

xrandr --addmode VIRTUAL1 1280x1024_60.00

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

Замечания

Кредиты: kjans, содержимое редактируется. ПРЕДУПРЕЖДЕНИЕ: данные не зашифрованы! (Соответствует использованию Wi-Fi и не LAN). ПРЕДУПРЕЖДЕНИЕ. Любая подключенная к сети сеть, к которой вы можете подключиться к порту 5900, может подключаться к вашему монитору! (Не проблема при использовании USB и ограничение интерфейса, добавив опцию -listen <IP_ADDR> к x11vnc (где <IP_ADDR> - это адрес компьютера в сети, который вы хотите предоставить эксклюзивный доступ)). Выполнение любого из 1 - 4 шагов в два раза может привести к выходу ошибки. После успешного использования, 5. шаг должен быть повторен для другого соединения.

B. Сценарий

Найдите 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
10
ответ дан 4 August 2018 в 19:55
  • 1
    @Prometheus, x11vnc -clip 1280x1024+0+0 можно заменить на x11vnc -clip xinerama1. Кроме того, --left-of LVDS1 не является абсолютно необходимым, если вы собираетесь использовать приложение настроек Monitors, чтобы расположить дополнительный монитор там, где вы хотите. – LeoRochael 28 July 2016 в 20:09
  • 2
    xrandr: cannot find output "VIRTUAL1" был возвращен, когда я печатаю число 3. Любые идеи? – dat tutbrus 15 December 2016 в 16:51
  • 3
    xrandr: cannot find output "VIRTUAL1" вернулся из xrandr --addmode VIRTUAL1 1280x800_60.00 – Tooniis 1 August 2017 в 18:57
  • 4
    Это работает, за исключением того, что у вас должен быть неиспользуемый выход, способный к целевому видеорежиму для этого. VIRTUAL1 кажется заполнитель для такого вывода, а не в типичной системе. – Ruslan 16 May 2018 в 17:59
  • 5
    +1 Для идеи создания виртуального монитора – user3751385 18 July 2018 в 22:06

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 и т. д.

0
ответ дан 4 August 2018 в 19:55

Я сделал простой сценарий 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
2
ответ дан 4 August 2018 в 19:55
  • 1
    У вас есть имя для скрипта / приложения или любой альтернативной ссылки, которую вы можете опубликовать, чтобы избежать ссылки на гниль? Здесь мы обычно стараемся быть максимально самоуверенными, чтобы не полагаться на другие сайты, которые не спаслись, особенно если эти сайты содержат большую часть информации, которая будет иметь отношение к ответу, когда эта информация фактически не помещается в ответ , – sbergeron 17 April 2018 в 20:30
  • 2
    Хотя эта ссылка может ответить на вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - Из обзора – anonymous2 17 April 2018 в 21:36
  • 3
    @sbergeron, я вижу. Здесь я включаю исходный код. – Bumsik Kim 17 April 2018 в 22:42
  • 4
    @ anonymous2 Ты прав. Я включил здесь код bash. – Bumsik Kim 17 April 2018 в 22:43
  • 5
    Ах, намного лучше. Я думаю, что это должно быть в состоянии придерживаться так. – anonymous2 17 April 2018 в 22:44

Для тех, кто все еще интересуется этой темой: клип 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

0
ответ дан 4 August 2018 в 19:55

Использовать vnc_virtual_display_linker

Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.

0
ответ дан 4 August 2018 в 19:55

Это в принципе возможно с помощью 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

7
ответ дан 4 August 2018 в 19:55

Я использую драйвер 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
2
ответ дан 4 August 2018 в 19:55
  • 1
    Любой способ сделать это без xorg.conf? Если я создам один на своем компьютере, тогда мои графики полностью перепутаются. – daboross 28 May 2013 в 20:33
  • 2
    Поддерживается ли Xinerama? Как насчет xrandr? – Gringo Suave 25 October 2013 в 11:26

Эти инструкции предназначены для создания «дополнительного» экрана для вашей 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, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.
1
ответ дан 4 August 2018 в 19:55

Спасибо за ребята, я расскажу, что сработало для меня на 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:)

0
ответ дан 4 August 2018 в 19:55

У меня было много проблем с другими методами, перечисленными здесь. Мне хотелось бы, чтобы у меня было лучшее решение, но мое медленное и простое решение - хорошее стартовое место.

Для сервера 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

Используя этот подход, второй экран довольно медленный. Тем не менее, многие другие варианты, которые я пробовал, оказались в тупиках, и эта работа вообще не имела конфигурации.

0
ответ дан 4 August 2018 в 19:55

Эти инструкции предназначены для создания «дополнительного» экрана для вашей 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

Устранение неполадок:

  • При запуске 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, вы можете получить некоторые проблемы с рисунком в любых открытых окнах, я просто нажимаю на панель задач, чтобы скрыть / показать окно, снова заставляя перерисовать.
1
ответ дан 6 August 2018 в 03:58

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 и т. д. Итак, я ленивый парень и сделал это с помощью:

  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 & gt; / dev / null 2 ​​& amp; 1 & amp;
  4. Измените размер окна (0x4402f34), чтобы получить наилучшее изображение.

Обратите внимание на соответствующий порт вашей сессии: 5900 - & gt; ; : 0 , 5901 -: 1 , 5902 - & gt; : 2 ...

Кроме того, отлично работает с приложениями X11: Firefox, OpenOffice и т. Д.

0
ответ дан 6 August 2018 в 03:58

Я сделал простой сценарий 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  
2
ответ дан 6 August 2018 в 03:58
[D9] TL; dr: xrandr --fb и x11vnc --clip вместе создают комбо-убийцу.

В потоке, связанном с распознаванием, есть действительно интересная идея, а не уверен, имел ли он это значение, потому что я не мог найти автора, которого он указал, а также потому, что я следил за ним на форуме, я опубликую его отдельно, а не как редактирование:

  1. , предположим, что основная машина имеет разрешение экрана 1280x800, а вторичная машина, на которую вы хотите расширить рабочий стол до более VNC, имеет разрешение экрана 1280x1024 и вы хотите, чтобы расширенный экран был прав вашего основного экрана. Виртуальный экран должен быть 1280x800 + 1280x1024 = 2560x1024 . (растяните его горизонтально и сделайте вертикальное разрешение большим из двух). Итак, запустите xrandr -fb 2560x1024 .
  2. Теперь, когда экран больше вашего основного монитора, вы необходимо убедиться, что нет панорамирования или какой-либо другой нежелательной «функции», а также, что координаты верхнего левого угла вашего основного монитора равны 0x0.
  3. x11vnc -clip 1280x1024 + 1281 + 0 [ ! d4] плюс добавить любые другие варианты x11vnc по вкусу:)

Это должно быть так.

14
ответ дан 6 August 2018 в 03:58

Для тех, кто все еще интересуется этой темой: клип 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

0
ответ дан 6 August 2018 в 03:58

Используйте vnc_virtual_display_linker

Инструмент настраивает второй виртуальный монитор для подключения к VNC, как описано во многих предыдущих ответах. Он даже поддерживает соединения с Android-устройствами с помощью USB-кабеля.

0
ответ дан 6 August 2018 в 03:58

Это возможно в принципе, используя 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

7
ответ дан 6 August 2018 в 03:58

Я использую драйвер 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  
2
ответ дан 6 August 2018 в 03:58

Другие вопросы по тегам:

Похожие вопросы: