Зміна роздільної здатності екрана / геометрії vncserver без randr в Linux


9

Я хочу змінити роздільну здатність / геометрію мого сеансу VNC, не впливаючи на програми, що працюють всередині нього.

Я посилався: Зміна роздільної здатності сеансу VNC в Linux . У мене немає дозволу root на оновлення нової версії vncserver, тому наступна команда не працює на даний момент:

vncserver -geometry 1280x1024 -randr 1280x1024,1280x800

Поки щоразу, коли я хочу змінити розмір екрана з одного монітора на інший, я забиваю сеанс і перезапускаю його з модифікованою -geometryопцією. Через це мені доводиться втрачати програми всередині нього.

Чи є спосіб зламати файл, який зберігає геометрію та змінює значення для зміни роздільної здатності? Я не зміг знайти такий файл. У своїй домашній папці я бачу нижче файли:

mgandhi@starbase:~/.vnc$ ll
total 12
-rwxr-xr-x 1 mgandhi bc  334 Jun 25 10:32 xstartup
-rw------- 1 mgandhi bc    8 Jun 25 10:32 passwd
-rw-r--r-- 1 mgandhi bc    6 Jun 25 11:08 starbase.radisys.com:23.pid
-rw-r--r-- 1 mgandhi bc 1664 Jun 25 11:08 starbase.radisys.com:23.log

Вміст xstartupфайлу не допомагає:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

... тут xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &рядок залишається постійним для будь-якої роздільної здатності.

[Примітка. Я бачу, що xrandrвстановлено в машині Linux.]

Відповіді:


4

Рішення "Hack": запустіть vncserver без заданої геометрії

vncserver :1

Тоді я підключуся до vnc, і у Fedora я просто зайду в Налаштування> Дисплеї> Невідомий 0 "і зміню роздільну здатність на льоту таким чином. Візьміть декілька клацань, а не введення (DX), але це легко.


1
Цей параметр призводить до "не може визначити версію xrandr" і нічого більше: - / (Debian 8), але виглядає цікаво.
м3нда

1

Встановіть параметр геометрії у файлі конфігурації systemd (або іншим чином застосований сценарій запуску) ~ цей приклад працює з Fedora 28 (при умові, що дескриптори файлів selinux виправлені).

Замініть USERNAME фактичним іменем користувача:

cat /etc/systemd/system/vncserver@\:1.service

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
User=USERNAME

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i -geometry 1280x1024
PIDFile=/home/USERNAME/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

1

Відповідь, подана вище для Fedora, не працювала для мене (RedHat Enterprise), я зміг виконати те, що вам потрібно в цих кроках:

1) увійдіть у свій сеанс VNC (існуючий)

2) відкрийте термінал і введіть: xrandr -s 1920x1080 (або інша підтримувана геометрія / дисплей *)

щоб побачити дисплеї / резолюції, що підтримуються randr, введіть:

xrandr (без аргументів)

Легко, і нічого фантазійного!


0

$HOME/.vnc/xstartupце файл, який ви шукаєте, і так, ви можете встановити там геометрію. Він повинен налаштуватись при повторному підключенні, не занурюючи сеанс (не на 100% впевнений, але досить впевнений).


1
Було б корисніше показати, ніж розповісти.
scottlittle
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.