Использование ноутбука в качестве второго монитора для планшета Ubuntu [dубликат]

В соответствии с руководством по началу работы для Aptana Studio 3:

Предварительные требования: перед установкой Release вы должны установить и правильно работать следующие инструменты: Sun / Oracle Java 1.5.x или более поздней версии Mac и Linux. OpenJDK пока не поддерживается. ...

Так что использование OpenJDK для запуска Aptana официально не поддерживается.

Лично, когда я использовал OpenJDK в прошлом для запуска Aptana, у меня были различные проблемы с ним. Поэтому я не рекомендую его.

Я бы рекомендовал установить последнюю версию Java 6.x для запуска Aptana. Я не могу найти какую-либо информацию о том, насколько хорошо поддерживается 7.x, но я не думаю, что он был бы так же поддержан как 6.x на данный момент.

Проблема в том, что Sun / Oracle Java 1.6 больше не доступен в репозитории партнеров Ubuntu для Ubuntu 11.10, как это было в предыдущих версиях. Альтернативы, которые я видел, предлагаемые для установки Java 6.x:

Как установить Java?
54
задан 1 March 2011 в 21:58

104 ответа

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 25 July 2018 в 05:29
  • 1
    можете добавить пример, пожалуйста – rkmax 13 September 2014 в 22:13
  • 2
    было бы полезно иметь пошаговый пример, за которым мы можем следовать – OganM 23 December 2014 в 00:16
  • 3
    Как это сделает планшет a вторым экраном - как на большем экране? – NoBugs 16 September 2016 в 05:46
  • 4
    У меня были проблемы с vncserver и Gnome 3. Каждый раз, когда я пытался запускать vncserver, экран становился черным. Я закончил использование tightvncserver (также в репозиториях Ubuntu), и он работал с первой попыткой без настройки. – thirdender 25 November 2016 в 00:18

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 1 August 2018 в 07:42

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 3 August 2018 в 03:45

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 4 August 2018 в 05:32

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 5 August 2018 в 13:06

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 7 August 2018 в 06:37

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 9 August 2018 в 13:11

Получите клиент VNC для Android, запустите новый сеанс сервера VNC на своем компьютере (не просто обменивайтесь текущим дисплеем - используйте vnc4server, а не x11vnc), подключитесь к нему с клиентом Android VNC и (умный бит ) совместно используйте клавиатуру и мышь ПК между двумя сеансами, используя синергию.

Все необходимое программное обеспечение для этого доступно в стандартных репозиториях для Ubuntu, и есть несколько бесплатных VNC-клиентов, доступных для Android в рынок.

Вы не сможете перетаскивать окна через дисплеи с помощью этого метода. Для этого я думаю, вам нужно будет использовать Xdmx для соединения двух сеансов.

Также имейте в виду, что synergy и vnc не используют шифрование по умолчанию, поэтому вам нужно туннелировать соединения, если вы не пользуетесь надежным сеть.

28
ответ дан 15 August 2018 в 06:41
  • 1
    можете добавить пример, пожалуйста – rkmax 13 September 2014 в 22:13
  • 2
    было бы полезно иметь пошаговый пример, за которым мы можем следовать – OganM 23 December 2014 в 00:16
  • 3
    Как это сделает планшет a second экраном - как в большем пространстве экрана? – NoBugs 16 September 2016 в 05:46
  • 4
    У меня были проблемы с vncserver и Gnome 3. Каждый раз, когда я пытался запускать vncserver, экран становился черным. Я закончил использование tightvncserver (также в репозиториях Ubuntu), и он работал с первой попыткой без настройки. – thirdender 25 November 2016 в 00:18
  • 5

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
ответ дан 25 July 2018 в 05:29

Я сделал простой сценарий 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
ответ дан 25 July 2018 в 05:29
  • 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
[D0] TL; dr: xrandr --fb и x11vnc --clip вместе делают комбайн-убийцу.

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

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

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

14
ответ дан 25 July 2018 в 05:29
  • 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
ответ дан 25 July 2018 в 05:29

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

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

0
ответ дан 25 July 2018 в 05:29

Это в принципе возможно с помощью 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
ответ дан 25 July 2018 в 05:29

Я использую драйвер 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
ответ дан 25 July 2018 в 05:29
  • 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
ответ дан 25 July 2018 в 05:29

Спасибо за ребята, я расскажу, что сработало для меня на 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
ответ дан 25 July 2018 в 05:29
Установите 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
ответ дан 25 July 2018 в 05:29
  • 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
ответ дан 25 July 2018 в 05:29
  • 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
ответ дан 25 July 2018 в 05:29

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
ответ дан 1 August 2018 в 07:42

Я сделал простой сценарий 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
ответ дан 1 August 2018 в 07:42
  • 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
[D0] TL; dr: xrandr --fb и x11vnc --clip вместе делают комбайн-убийцу.

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

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

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

14
ответ дан 1 August 2018 в 07:42
  • 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
ответ дан 1 August 2018 в 07:42

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

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

0
ответ дан 1 August 2018 в 07:42

Это в принципе возможно с помощью 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
ответ дан 1 August 2018 в 07:42

Я использую драйвер 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
ответ дан 1 August 2018 в 07:42
  • 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
ответ дан 1 August 2018 в 07:42

Спасибо за ребята, я расскажу, что сработало для меня на 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
ответ дан 1 August 2018 в 07:42
Установите 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
ответ дан 1 August 2018 в 07:42
  • 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

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

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