Я использую VNC для подключения к рабочей станции Linux на работе. На работе у меня есть 20-дюймовый монитор, который работает с разрешением 1600x1200, а дома я использую свой ноутбук с разрешением 1440x900. Если я установлю vncserver на 1440x900, я пропускаю много места на мониторе, тогда как если я установите его на 1600x1200, он не помещается на экране ноутбука, и мне приходится постоянно прокручивать его.
Есть ли хороший способ изменить размер сеанса VNC на лету?
Мой VNC-сервер - RealVNC E4.x (точную версию не помню), работающий на SuSE64.
Ответы:
Реальный VNC-сервер 4.4 включает поддержку Xrandr, которая позволяет изменять размеры VNC. Запустите сервер с:
Затем измените размер с помощью:
источник
.vnc/config
файл. Например, первая строка моего-randr 800x600,1024x768,1280x800,1280x960,1280x1024,1680x1050,1920x1080,3360x1050,1024x700,1200x740,1600x1000,3200x1000
tightvncserver
?Обнаружено, что vnc4server (4.1.1), поставляемый с Ubuntu (10.04), исправлен, чтобы также поддерживать изменение разрешения на лету через xrandr. К сожалению, эту функцию было трудно найти, потому что она недокументирована. Так что вот оно ...
Запустите сервер с несколькими экземплярами 'geometry', например:
Из терминала в vncviewer (с включенным: «разрешить изменение размера рабочего стола») используйте xrandr для просмотра доступных режимов:
чтобы изменить результат, например, используйте:
Это оно.
источник
Я использую TigerVNC на своем Linux-сервере, который имеет базовую поддержку randr . Я просто запускаю vncserver без опций -randr или multi-geometry.
Когда я запускаю xrandr в терминале, он отображает все доступные разрешения экрана:
Затем я могу легко переключиться на другое разрешение (например, на 1360x768):
Я использую TightVnc Viewer в качестве клиента, и он автоматически адаптируется к новому разрешению.
источник
Я думаю, что лучше всего запустить сервер VNC с другой геометрией на другом порту. Я хотел бы попробовать на основе страницы руководства
Затем вы можете подключиться с работы к одному порту и из дома на другой.
Изменить: Затем используйте xmove для перемещения окон между двумя x-серверами.
источник
Поскольку в Google этот вопрос стоит первым, я решил поделиться решением с использованием TigerVNC, которое в наши дни используется по умолчанию.
xrandr
позволяет выбирать режимы отображения (также называемые разрешениями), однако из-за жесткой кодировки моделинов в код необходимо будет добавить любую дополнительную модельную линию, такую как «2560x1600» или «1600x900» . Я думаю, что разработчики, написавшие код, намного умнее, и жестко закодированный список - это всего лишь образец значений. Это приводит к заключению, что должен быть способ добавить пользовательские модели, иman xrandr
подтверждает это.На этом фоне, если целью является совместное использование сеанса VNC между двумя компьютерами с указанными выше разрешениями и при условии, что VNC-сервер - это компьютер с разрешением «1600x900»:
Начните сеанс VNC с геометрией, соответствующей физическому отображению:
На компьютере "2560x1600" запустите программу просмотра VNC (я предпочитаю Remmina) и подключитесь к удаленному сеансу VNC:
Оказавшись внутри сеанса VNC, запустите окно терминала.
Убедитесь, что новая геометрия доступна в сеансе VNC:
и вы заметите, что экран довольно маленький.
Перечислите модельную линию (см. Статью xrandr в ArchLinux wiki) для разрешения «2560x1600»:
или, если монитор старый, получите время GTF:
Добавьте новую моделину в текущий сеанс VNC:
В приведенном выше
xrandr
выводе найдите отображаемое имя во второй строке:Свяжите новую модельную линию с текущим виртуальным монитором VNC:
Используй это:
источник
Интересно, что никто не ответил на это. В TigerVNC, когда вы вошли в сеанс. Перейдите
System > Preference > Display
из верхней строки меню (я использовал Cent OS в качестве удаленного Сервера). Нажмите на раскрывающееся разрешение, доступны различные настройки, включая 1080p. Выберите тот, который вам нравится. Это изменится на лету.Убедитесь, что вы применяете новый параметр при появлении диалогового окна. В противном случае он вернется к предыдущему значению, как в Windows
источник
Ребята, это действительно просто.
войти через
ssh
свой пивыполнять
Это создаст новый сеанс
:1
связаться с вашим клиентом VNC в
ipaddress:1
Это оно.
источник
Добавление к ответу Натана (принято):
Я хотел просмотреть список разрешений, но ничего для этого не увидел:
Он получает текущий индекс, переходит к следующему и возвращается к нулю в случае ошибки (т. Е. Завершается)
РЕДАКТИРОВАТЬ
Изменено в соответствии с более поздней версией xrandr («*» находится в конце строки и не содержит идентификатора ведущего разрешения).
источник
Решение от @omiday работало для меня в Xvnc TigerVNC 1.1.0, поэтому я собрал его в единую функцию bash vncsize xy . Используйте это так: vncsize 1400 1000 . Это работает для любого выходного имени VNC, «по умолчанию» или «VNC-0».
источник
Возможно, самый невежественный ответ, который я когда-либо писал, но здесь идет: Используйте клиент / просмотрщик TigerVNC и проверьте на
'Resize remote session to local window'
вкладке «Экран» параметров.Я не знаю, что клиент $% # @ TigerVNC сообщает удаленному vncserver, или xrandr, или Xvnc, или gnome, или ... но он изменяет размер, когда я изменяю окно клиента TigerVNC.
Моя настройка:
При этом разрешение изменяется в соответствии с размером окна клиента, независимо от того, какое оно есть, и это не так
zooming
, это фактическое изменение разрешения (я вижу новое разрешение в выводе xrandr).Я попробовал все, что мог, чтобы добавить новое разрешение в xrandr, но безрезультатно, всегда заканчивалось
'xrandr: Failed to get size of gamma for output default'
ошибкой.Версии, с которыми он работает у меня прямо сейчас (хотя у меня не было проблем с ЛЮБЫМИ версиями в прошлом, я просто установил последнюю версию с использованием
yum install gnome-* tigervnc-server
и отлично работает):источник
$HOME
каталога работает, как и ожидалось, github.com/TigerVNC/tigervnc/issues/155Я не уверен насчет linux, но в Windows, silentvnc обнаружит и адаптируется к изменениям разрешения на сервере.
Таким образом, вы должны иметь возможность подключать VNC к рабочей станции, делать то же самое, что щелкать правой кнопкой мыши по рабочему столу, свойствам, устанавливать разрешение на что угодно, и соответственно изменять размер окна VNC вашего клиента.
источник
Я думаю, что вы можете использовать xmove для перемещения окон между двумя отдельными x-серверами. Так что, если это работает, это должно, по крайней мере, дать вам возможность делать то, что вы хотите, хотя и не так легко, как изменение разрешения.
источник
Насколько я знаю, нет способа изменить разрешение клиента, просто используя VNC, так как это просто приложение для «зеркалирования монитора».
Однако TightVNC (который является клиентским и серверным приложением VNC) может изменить размер экрана на стороне клиента, то есть сделать все немного меньше (аналогично методам изменения размера изображения в графических программах). Это должно работать, если вы не используете слишком маленький размер шрифта. VNC должен теоретически быть совместимым между различными приложениями VNC.
источник
У меня есть простая идея, что-то вроде этого:
Что ж, мне нужно лучшее решение для всех устройств отображения в Linux и аналогичных ПО.
источник
Я думаю, что это зависит от вашего оконного менеджера.
Я пользователь Windows, так что это может быть ошибочным предположением, но: разве не существует что-то под названием X-Server, работающее на машинах Linux - по крайней мере на тех, которые могут быть интересными целями для VNC - с которыми вы можете соединиться? » X-клиенты "?
VNC просто берет все, что находится на экране, и «туннелирует это через вашу сеть». Если я не ошибаюсь, тогда протокол «X» должен дать вам возможность использовать разрешение рабочего стола вашего клиента.
Дает X-сервер на Википедии попробовать, что может дать вам общее представление.
источник