Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
900
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6088
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4400
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Изменение разрешения VNC сессии в linux
Я использую VNC для подключения к рабочей станции Linux на работе. На работе у меня есть 20-дюймовый монитор, который работает в 1600x1200, а дома я использую свой ноутбук с разрешением 1440x900. Если я настрою vncserver на работу в 1440x900, я упущу много места на своем мониторе, тогда как если я настрою его на работу в 1600х1200, он не поместится на экране ноутбука, и мне придется прокручивать его все время.
Есть ли какой-нибудь хороший способ изменить размер сеанса VNC на лету?
Мой сервер VNC-это RealVNC E4.x (я не помню точную версию), работающий на SuSE64.
Оказалось, что vnc4server (4.1.1), поставляемый с Ubuntu (10.04), исправлен, чтобы также поддерживать изменение разрешения на лету через xrandr. К сожалению, эту функцию было трудно найти, потому что она не документирована. Так вот оно что...
Запустите сервер с несколькими экземплярами 'geometry', например:
vnc4server -geometry 1280x1024 -geometry 800x600
Из terminal в vncviewer (с включенным параметром "разрешить изменение размера рабочего стола dymanic") используйте xrandr для просмотра доступных режимов:
xrandr
чтобы изменить результат, Например, используйте:
xrandr -s 800x600
Вот и все.
Я запускаю TigerVNC на своем сервере Linux, который имеет базовую поддержку randr . Я просто запускаю vncserver без каких-либо параметров-randr или множественной геометрии.
Когда я запускаю xrandr в terminal, он отображает все доступные разрешения экрана:
bash> xrandr
SZ: Pixels Physical Refresh
0 1920 x 1200 ( 271mm x 203mm ) 60
1 1920 x 1080 ( 271mm x 203mm ) 60
2 1600 x 1200 ( 271mm x 203mm ) 60
3 1680 x 1050 ( 271mm x 203mm ) 60
4 1400 x 1050 ( 271mm x 203mm ) 60
5 1360 x 768 ( 271mm x 203mm ) 60
6 1280 x 1024 ( 271mm x 203mm ) 60
7 1280 x 960 ( 271mm x 203mm ) 60
8 1280 x 800 ( 271mm x 203mm ) 60
9 1280 x 720 ( 271mm x 203mm ) 60
*10 1024 x 768 ( 271mm x 203mm ) *60
11 800 x 600 ( 271mm x 203mm ) 60
12 640 x 480 ( 271mm x 203mm ) 60
Current rotation - normal
Current reflection - none
Rotations possible - normal
Reflections possible - none
Затем я могу легко переключиться на другое разрешение (f.e. переключиться на 1360x768):
bash> xrandr -s 5
Я использую TightVnc viewer в качестве клиента, и он автоматически адаптируется к новому разрешению.
Я думаю, что лучше всего запустить сервер VNC с другой геометрией на другом порту. Я бы попробовал на основе man page
$vncserver :0 -geometry 1600x1200 $vncserver :1 -geometry 1440x900
Затем вы можете подключиться с работы к одному порту и из дома к другому.
Редактировать: после использования xmove для перемещения windows между двумя Х-серверами.
Интересно, что на это никто не ответил. В TigerVNC, когда вы вошли в сеанс. Перейдите в System > Preference > Display из верхней строки меню (я использовал Cent OS в качестве своего удаленного сервера). Нажмите на выпадающее разрешение, там доступны различные настройки, включая 1080p. выберите тот, который вам нравится. Он будет меняться на лету.
Убедитесь,что вы применяете новую настройку при появлении диалогового окна. В противном случае он вернется к предыдущей настройке, как и в Windows
Поскольку этот вопрос возникает впервые в Google, я подумал, что поделюсь решением с помощью TigerVNC, которое в наши дни используется по умолчанию.
xrandr позволяет выбрать режимы отображения (a.k.a разрешений), однако
из-за того, что модельные линии были жесткими
кодирование
любой дополнительной модельной линии, такой как "2560x1600" или "1600x900", потребуется
быть добавлены в
код. Я
думайте, что разработчики, написавшие код, намного умнее и жестче
кодированный список - это просто образец значений. Это приводит к выводу, что
должен быть способ добавить пользовательские модельные линии и man xrandr подтверждает
оно.
С этим фоном, если цель состоит в том, чтобы разделить сеанс VNC между двумя компьютеры с вышеуказанными разрешениями и при условии, что сервер VNC компьютер с разрешением "1600x900":
Начните сеанс VNC с геометрией, соответствующей физическому отображению:
$ vncserver -geometry 1600x900 :1На компьютере "2560x1600" запустите средство просмотра VNC (я предпочитаю Remmina) и подключиться к удаленному VNC сессия:
host:5901Как только вы войдете в сеанс VNC, запустите окно terminal.
Убедитесь, что новая геометрия доступна в сеансе VNC:
$ xrandr Screen 0: minimum 32 x 32, current 1600 x 900, maximum 32768 x 32768 VNC-0 connected 1600x900+0+0 0mm x 0mm 1600x900 60.00 + 1920x1200 60.00 1920x1080 60.00 1600x1200 60.00 1680x1050 60.00 1400x1050 60.00 1360x768 60.00 1280x1024 60.00 1280x960 60.00 1280x800 60.00 1280x720 60.00 1024x768 60.00 800x600 60.00 640x480 60.00и вы заметите, что экран довольно маленький.
Перечислите модельный ряд (см. статью xrandr в ArchLinux wiki) для постановление "2560x1600" :
$ cvt 2560 1600 # 2560x1600 59.99 Hz (CVT 4.10MA) hsync: 99.46 kHz; pclk: 348.50 MHz Modeline "2560x1600_60.00" 348.50 2560 2760 3032 3504 1600 1603 1609 1658 -hsync +vsyncили если монитор старый получить тайминги GTF:
$ gtf 2560 1600 60 # 2560x1600 @ 60.00 Hz (GTF) hsync: 99.36 kHz; pclk: 348.16 MHz Modeline "2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +VsyncДобавьте новую модельную линию в текущий сеанс VNC:
$ xrandr --newmode "2560x1600_60.00" 348.16 2560 2752 3032 3504 1600 1601 1604 1656 -HSync +VsyncВ приведенном выше выводе
xrandrнайдите отображаемое имя на втором линия:VNC-0 connected 1600x900+0+0 0mm x 0mmСвяжите новую модельную линию с текущим виртуальным монитором VNC:
$ xrandr --addmode VNC-0 "2560x1600_60.00"Использовать его:
$ xrandr -s "2560x1600_60.00"
Добавление к ответу Натана (принято):
Я хотел пройтись по списку резолюций, но ничего для этого не увидел:
function vncNextRes()
{
xrandr -s $(($(xrandr | grep '^*'|sed 's@^\*\([0-9]*\).*$@\1@')+1)) > /dev/null 2>&1 || \
xrandr -s 0
}
Он получает текущий индекс, переходит к следующему и циклически возвращается к 0 при ошибке (т. е. конец)
EDIT
Изменено для соответствия более поздней версии xrandr ("*"находится в конце строки и не имеет ведущего идентификатора разрешения).
function vncNextRes()
{
xrandr -s $(($(xrandr 2>/dev/null | grep -n '\* *$'| sed 's@:.*@@')-2)) || \
xrandr -s 0
}
Я не уверен насчет linux, но под windows tightvnc будет обнаруживать и адаптироваться к изменениям разрешения на сервере.
Таким образом, вы должны быть в состоянии VNC в рабочую станцию, сделать эквивалент щелчка правой кнопкой мыши на рабочем столе, свойства, установить разрешение на что угодно, и иметь ваш клиент vnc окно изменить размер себя соответственно.
С другой стороны, если есть способ ...
перемещение существующего окна из одного окна в другое
X-сервер другому, что может решить проблему
проблема.
С другой стороны, если есть способ ... перемещение существующего окна из одного окна в другое X-сервер другому, что может решить проблему проблема.
Я думаю, что вы можете использовать xmove для перемещения windows между двумя отдельными x-серверами. Так что если это работает, это должно по крайней мере дать вам возможность делать то, что вы хотите, хотя и не так легко, как изменение разрешения.
Возможно, самый невежественный ответ, который я опубликовал, но вот он: используйте TigerVNC client/viewer и проверьте 'Resize remote session to local window' на вкладке Screen опций.
Я не знаю, что клиент $%#@ TigerVNC говорит удаленному vncserver или xrandr, или Xvnc, или gnome, или ... но он изменяется, когда я изменяю окно клиента TigerVNC.
Моя установка:
- Сервер Tiger VNC работает на CentOS 6. Хостинг GNOME desktop. (Работает и с RHEL 6.6)
- Windows некоторая версия с клиентом Tiger VNC.
При этом разрешение изменяется, чтобы соответствовать размеру окна клиента, независимо от того, что это такое , и это не zooming, это фактическое изменение разрешения (я вижу новое разрешение в выводе xrandr).
Я пробовал все, что мог, чтобы добавить новое разрешение к xrandr, но безрезультатно, всегда заканчивалось ошибкой 'xrandr: Failed to get size of gamma for output default' .
Версии, с которыми он работает для меня прямо сейчас (хотя у меня не было проблем с версиями ANY в прошлом, я просто устанавливаю последнюю версию с использованием yum install gnome-* tigervnc-server и отлично работает):
OS: RHEL 6.6 (Santiago)
VNC Server:
Name : tigervnc-server
Arch : x86_64
Version : 1.1.0
Release : 16.el6
# May be this is relevant..
$ xrandr --version
xrandr program version 1.4.0
Server reports RandR version 1.4
$
# I start the server using vncserver -geometry 800x600
# Xvnc is started by vncserver with following args:
/usr/bin/Xvnc :1 -desktop plabb13.sgdcelab.sabre.com:1 (sg219898) -auth /login/sg219898/.Xauthority
-geometry 800x600 -rfbwait 30000 -rfbauth /login/sg219898/.vnc/passwd -rfbport 5901 -fp catalogue:/e
tc/X11/fontpath.d -pn
# I'm running GNOME (installed using sudo yum install gnome-*)
Name : gnome-desktop
Arch : x86_64
Version : 2.28.2
Release : 11.el6
Name : gnome-session
Arch : x86_64
Version : 2.28.0
Release : 22.el6
Connect using Tiger 32-bit VNC Client v1.3.1 on Windows 7.
Решение по @omiday работало для меня в Xvnc TigerVNC 1.1.0, поэтому я сжал его в единую функцию bash vncsize x Y. Используйте его следующим образом: vncsize 1400 1000 . Предполагается, что расширения xrandr отчеты VNC наименование, выводимое по умолчанию .
function vncsize {
local x=$1 y=$2
local mode
if mode=$(cvt "$x" "$y" 2>/dev/null)
then
if [[ $mode =~ "Modeline (.*)$" ]]
then
local newMode=${BASH_REMATCH[1]//\"/}
local modeName=${newMode%% *}
local newSize=( ${modeName//[\"x_]/ } )
xrandr --newmode $newMode
xrandr --addmode default "$modeName"
xrandr --size "${newSize[0]}x${newSize[1]}" &&
return 0
else
echo "Unable to parse modeline for ($x $y) from $mode"
return 2
fi
else
echo "\`$x $y' is not a valid X Y pair"
return 1
fi
}
Насколько я знаю, нет никакого способа изменить разрешение клиента просто с помощью VNC, так как это всего лишь приложение "monitor mirroring".
Однако TightVNC (который является клиентским и серверным приложением VNC) может изменять размер экрана на стороне клиента, т. е. делать все немного меньше (подобно методам изменения размера изображения в графических программах). Это должно сработать, если вы не используете слишком маленькие размеры шрифта. VNC теоретически должен быть совместим между различными приложениями VNC.
У меня есть простая идея, что-то вроде этого:
#!/bin/sh
echo `xrandr --current | grep current | awk '{print $8}'` >> RES1
echo `xrandr --current | grep current | awk '{print $10}'` >> RES2
cat RES2 | sed -i 's/,//g' RES2
P1RES=$(cat RES1)
P2RES=$(cat RES2)
rm RES1 RES2
echo "$P1RES"'x'"$P2RES" >> RES
RES=$(cat RES)
# Play The Game
# Finish The Game with Lower Resolution
xrandr -s $RES
Ну, мне нужно лучшее решение для всех устройств отображения под Linux и подобными S.O
Я думаю, что это зависит от вашего менеджера окон.
Я являюсь пользователем windows, поэтому это может быть неправильным предположением, но: нет ли чего-то под названием X - Server , работающего на машинах linux - по крайней мере на тех, которые могут быть интересными целями для VNC,-к которым вы можете подключиться с помощью "X-клиентов"?
VNC просто берет все, что есть на экране и "tunnels it through your network". Если я не совсем ошибаюсь, то протокол "X" должен дать вам возможность использовать разрешение рабочего стола вашего клиента.
Дайте X-Server в Википедии попробовать, это может дать вам приблизительный обзор.