
В моей корпоративной среде мне необходимо запустить машину Windows, которая получает сеанс VNC на машине в ферме серверов. Моя машина Windows имеет два монитора с разным разрешением (1600x1080 слева и 1920x1200 справа). Если я создаю сеанс VNC, который охватывает мониторы, то максимизация окна в сеансе VNC приводит к его растягиванию на оба моих монитора.
Вместо этого я хочу, чтобы событие «максимизации» вело себя так же, как на моем компьютере с Windows — я хочу развернуть окно только на том дисплее, на котором оно находится.
Как я могу определить, что я буду называть "максимизированными областями"? Области в графической плоскости VNC, где при нажатии "максимизировать" окно расширяется только до той области, в которой оно в данный момент (и в основном) находится.
Могу ли я сделать это в gnome, X, xrandr или каком-то другом волшебном интерфейсе?
решение1
Я предполагаю, что xrandr и xdpyinfo отображают ваш дисплей как один экран с размером, равным сумме обоих дисплеев, например, 3520x1200.
Итак, вам нужно попытаться каким-то образом разделить экран на два логических рабочих стола.
Самый простой известный мне способ — использовать так называемый «мозаичный оконный менеджер». Два примера — xmonad и dwm.
Другой вариант — использовать оконный менеджер, который позволяет только вертикальное развертывание, например Openbox, Blackbox или Sawfish. Часто у них есть сочетания клавиш для этого, например, щелчок средней кнопкой мыши по кнопке развертывания в строке заголовка.
Еще один вариант — использовать что-то вроде Devilspie, которое устанавливает свойства окна на основе правил, например, поместить Firefox в положение 0x0 с размером 1600x1080 и т. д.
решение2
Вам нужно отключить Xinerama. Это делается в файле /etc/xorg.conf. Это также может убить вашу возможность использовать dual head. Если вы работаете на NVIDIA, настройте правильный xorg.conf с помощью программы 'nvidia-settings', и вам не понадобится Xinerama.