
При поиске в Интернете информации о том, как настроить разрешение по умолчанию и глубину цвета для сеансов RealVNC, я всегда натыкаюсь на материалы, в которых говорится о передаче параметров командной строки в vncserver
, например, vncserver -geometry 1024x768
или что-то в этом роде. Однако моя система настроена на запуск сервера RealVNC при загрузке (для уровней запуска 2-5; я использую Debian) через /etc/init.d/vncserver-x11-serviced
скрипт, который устанавливает RealVNC; я не использую vncserver
команду. Как мне настроить его на определенное разрешение по умолчанию и глубину цвета? Есть ли где-нибудь файл конфигурации, который я могу использовать?
решение1
ПРИМЕЧАНИЕ: Я знаю, что этот ответ относится к виртуальному режиму RealVNC, а не к сервисному режиму ( vncserver-x11-serviced
), но я думаю, что виртуальный режим в любом случае более полезен, и это единственный режим, разрешение которого можно изменить.динамически. Вероятно, это довольно похожий метод изменения разрешения для RealVNC, когда он работает в режиме службы.
После установки RealVNC (на момент написания статьи это была версия 5.2.1), применения к нему бесплатной лицензии с помощью vnclicense -add ...
и запуска сервера VNC в его «виртуальном режиме» (есть также режимы Service и User, в которые я не буду вдаваться, поскольку они и так достаточно сложны), я обнаружил, насколько глубока эта кроличья нора. :-) Документация по этому вопросу далека от исчерпывающей или очевидной, и единственные статьи базы знаний на сайте RealVNC — этонесколько устаревший(речь идет о vncserver
команде, а не оочевидная текущая рекомендация, vncserver-virtual
), или одинамическое изменение разрешенияс РэндРв течениесеанс, не выбирая, какое разрешение следует использовать при запуске VNC-сервера.
Во-первых, в контексте X Window System чаще используется слово «геометрия» вместо слова «разрешение». Разрешение по умолчанию, предоставляемое вам сервером VNC (или, может быть, самой X?), похоже, составляет 800x600.
Теперь вы можете передавать параметры непосредственно на X-сервер при запуске сервера RealVNC вручную из командной строки (или, очевидно, автоматически при загрузке с чего-то вроде rc.local
), а параметр для передачи для установки разрешения — geometry
. Итак, это запустит виртуальный экземпляр сервера RealVNC с разрешением 1280x1024:
> vncserver-virtual -geometry 1280x1024
Обычно, когда я тестирую что-то подобное, я работаю как пользователь root, поэтому переключаюсь на пользователя, к рабочему столу которого я хочу подключиться по VNC в первую очередь:
> sudo -u [someuser] vncserver-virtual -geometry 1280x1024
geometry
Конечно, это требует передачи параметра в командной строке. RealVNC также поддерживает настройку службы VNC через различные файлы конфигурации. Однако, как ни странно, конфигурация для "Xvnc" (базовый сервер RealVNC, используемый в системах UNIX, который взаимодействует с X и которому необходимо принимать geometry
параметр конфигурации) должна идти вдругое местоположениеиз "нормальных" файлов конфигурации RealVNC; либо /etc/vnc/config.custom
для общесерверных настроек, либо ~/.vnc/config
для пользовательских настроек. Они полностью отделены от других файлов конфигурации RealVNC, и выяснить это было довольно сложно. Как я уже сказал, документация по этому вопросу ужасна. Поэтому, чтобы не указывать разрешение в командной строке, создайте файл /etc/vnc/config.custom
и придайте ему следующее содержимое:
-geometry 1280x1024
Затемкогда вы бежите:
> sudo -u [someuser] vncserver-virtual
... разрешение для этого экземпляра сервера VNC по умолчанию будет равно 1280x1024.
Я предполагаю, что этот файл конфигурации также будет использоваться демоном.vncserver-virtuald
также, для каждого изvncserver-virtual
экземпляров, которые он порождает (на самом деле, это может быть единственный способ установить разрешение по умолчанию для демона), но поскольку для использования демона требуется корпоративная лицензия, а я использую только бесплатную лицензию, я не смог это протестировать.
Ух ты!
Кстати, я уже упоминал RandR. Это еще один способ получить другое разрешение/геометрию при подключении к серверу RealVNC в системах UNIX. Он работает только когда сервер RealVNC работает в "виртуальном режиме". Он также позволяет динамически менять разрешение во время сеанса VNC и в некоторой степенилучше документированочем те -geometry
параметры, о которых я упоминал выше. :-) Когда эта настройка конфигурации установлена (иэтоидет в «обычном» наборе файлов конфигурации RealVNC, а не в тех отдельных файлах для Xvnc... вот так), вы должны иметь возможность использовать команду xrandr
из сеанса VNC, чтобы динамически изменять разрешение на одно из разрешений, указанных в RandR
настройке.