Alt linux два монитора

X11/DualScreen

В этойстатье описано, как создать одно рабочее место с двумя независимыми экранами.

  • Описание двух полностью независимых рабочих мест — X11/DualSeat
  • Несколько экранов, которые воспринимаются, как один большой дисплей, поддерживаются Xorg «из коробки» (xinerama)

Я привык в Xorg использовать два монитора, на одном из которых — мой рабочий стол с моим Window Manager-ом (у меня CTWM, но это дела не меняет), а на другом — несколько FullScreen окон, переключаться между которыми можно, например, с помощью функции «scale» композитного менеджера Compiz или паре утилит skippy-xd / brightside . Конкретные названия не имеют значения, суть одна:

  • Одно рабочее место с одной клавиатурой и мышью
  • Два независимых монитора, каждый управляется по-своему
    • Минус — нельзя перетаскивать окна с монитора на монитор
    • А вот копировать, как через clipboard (Ctrl+C/Ctrl+V), так и через cutbuffer (средняя кнопка мыши) можно

    Для этого Xorg-у надо объяснить, что у него есть два т. н. SCREEN — экрана, к каждому из которых приписано по монитору.

    Вот содержимое файла /etc/X11/xorg.conf.d/20-monitor.conf , который эту конфигурацию задаёт:

    Section "ServerLayout" Identifier "Layout0" Screen 0 "Screen0" Screen 1 "Screen1" LeftOf "Screen0" EndSection
    Section "Monitor" Identifier "Monitor0" EndSection
    Section "Monitor" Identifier "Monitor1" EndSection
    Section "Device" Identifier "Card0" Driver "modesetting" Screen 0 EndSection
    Section "Device" Identifier "Card1" Driver "modesetting" Screen 1 EndSection
    Section "Screen" Identifier "Screen0" Device "Card0" Monitor "Monitor0" EndSection
    Section "Screen" Identifier "Screen1" Device "Card1" Monitor "Monitor1" EndSection

    Одна и та же карта (у меня Intel) здесь объявлена дважды — это особый трюк, который и позвляет добиться двух независимых экранов. Если карт несколько (например, дискрентая и интегрированная на ноутбуке), указываются все по разу.

    После запуска Xorg получится два различных валидных значения переменной DISPLAY :

    • :0.0 — для нулевого монитора/экрана; команда вида DISPLAY=:0.0 xterm запустит xterm на правом экране
    • :0.1 — для первого монитора/экрана; команда вида DISPLAY=:0.1 firefox запустит firefox на правом экране

    Primary Display

    В принципе, этого уже достаточно, за одним исключением.

    В Qt есть такой метод — QGuiApplication::primaryScreen(). Этот метод возвращает первый попавшийся монитор, помеченный протоколом XRandr как первичный. Если у вас все мониторы объединены в один DISPLAY=:0 , то среди них только один должен быть первичный — именно на нём, например, появится панель запуска вашего Window Manager/DE.

    В нашем случае задано два экрана — и значит, два первичных монитора по умолчанию. По какой-то неведомой мне причине Xorg отказывается воспринимать параметр Options «Primary» «off» в случае, когда монитор на экране один, и пишет в логах, что она «not used». может, я что-то делаю не так.

    При этом у меня при старте Qt-приложений (например, последнего Telegram) они запускаются на этом самом primaryScreen независимо от значение переменной DISPLAY (если она валидна)!

    Поэтому перед запуском таких приложений я делаю

    DISPLAY=:0.1 xrandr --noprimary

    Это снимает флаг primary с левого монитора, и Qt-приложения начинают запускаться на правом.

    Источник

    Как настроить дублирование и расширение экрана в Astra Linux через графический интерфейс

    При подключении к Astra Linux второго монитора или проектора, можно выбрать произвольный режим отображения изображения. В зависимости от ситуации, это может быть: дублирование экранов или расширение рабочего стола.

    Дублирование экранов

    Настроить дублирование изображения на двух и более экранах, нужно нажать на рабочем столе правой кнопкой мыши и выбрать «Настройки монитора»:

    Далее мы просто переносим один экран на другой, таким способом мы включим дублирование экранов:

    В конце не забываем нажать на кнопку «Применить».

    Расширение рабочего стола

    Расширение рабочего стола настраивается аналогично дублированию, для этого необходимо разместить второй монитор с нужной стороны от первого:

    И также не забываем нажать на кнопку «Применить».

    Корректное отображение на всех мониторах

    В заключение хочется еще добавить, что в отличии от Windows при дублировании или расширении экрана, если разрешение экранов разное у нас будут черные (или цвет обоев) полосы по краям. Для того чтобы экраны смотрелись одинаково, нужно устанавливать одно расширение (или примерно похожее, если нет одинакового варианта):

    Например, если у вас главный экран выдает разрешение 16:9, а на втором экране вы ставите 4:3, то часть изображения на втором мониторе будет выходить за пределы экрана.

    Возможно вам так же будет интересно:

    Если я Вам помог — оставьте свой отзыв или поделитесь сайтом с друзьями в социальных сетях!

    Источник

    Настройка дисплеев xrandr’ом

    Для ноутбуков, иметь внешний видеовыход — привычное дело. И большинство видеокарт для настольных систем тоже имеют как минимум два. Для эффективного использования более одного монитора можно изменить параметры для каждого по отдельности.

    Мой случай

    Есть ноутбук с VGA-выходом. Дома стоит монитор, который может 1680х1050@60Hz, а на работе 1280х1024@72Hz. По умолчанию, xorg запускался, стараясь вывести сигнал на все возможные выходы. При этом драйвер radeon искал компромисс между разными разрешениями мониторов и экрана ноутбука. И если один из них работал только в режиме 1024х768, то остальные получали такую же картинку. Поиск в Интернет подсказал использовать xrandr для настройки.

    Начальные условия

    • 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS690M [Radeon X1200 Series] [1002:791f]
    • xorg-server-1.5.1-alt2
    • xorg-drv-radeon-6.9.0-alt3
    • графический режим запускается хотя бы на одном мониторе

    Реализация

    Заставить xorg скриптом переключать к нужному видеовыходу картинку максимального разрешения. При этом приходится отключать другой видеовыход, чтоб драйвер не пробовал искать компромисс.

    Для начала я определил, как называются видеовыходы (обозначены полужирным шрифтом):

    #xrandr Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1680 x 1600 VGA-0 connected (normal left inverted right x axis y axis) 1680x1050 60.0 + 60.0 <. cut . >720x400 70.1 LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x800 60.0*+ <. cut . >640x480 59.9 HDMI-0 disconnected (normal left inverted right x axis y axis)

    Затем был создан первый скрипт, который:

    #!/bin/bash xrandr --output LVDS --off xrandr --output VGA-0 --auto

    Второй скрипт, позволял переключаться обратно на экран ноутбука:

    #!/bin/bash xrandr --output VGA-0 --off xrandr --output LVDS --auto

    Третий, включал оба выхода ( VGA-0 и LVDS ) в режиме дублирования, при этом использовалось «минимальное общее» разрешение

    #!/bin/bash xrandr --output LVDS --off xrandr --output VGA-0 --off xrandr --output LVDS --mode 1024x768 xrandr --output VGA-0 --mode 1024x768

    TODO: Найти устройство с HDMI и попробовать выводить сигнал на него.

    Использование «горячей» клавиши

    Для переключения видеовыходов (на ноутбуках), есть комбинация Fn+[соответствующая кнопка]. ACPId видит её как:

    acpid: received event "video VGA 00000080 00000000"

    Потому, создаём описание события в /etc/acpi/events/[произвольное название] :

    event=video VGA 00000080 00000000 action=/etc/acpi/switchVga.sh

    И добавляем соответствующий сценарий, который реализует циклическое переключение между LVDS->VGA->LVDS+VGA:

    #!/bin/bash VGASTAT=$( cat /tmp/vgastatus 2>/dev/null ) case $VGASTAT in "LVDS" ) # It was LVDS, switching on VGA xrandr --output LVDS --off; xrandr --output VGA-0 --auto; echo "VGA-0" > /tmp/vgastatus ; ;; "VGA-0" ) # It was VGA, switching on ALL (HDMI was not tested xrandr --output LVDS --off; xrandr --output VGA-0 --off; xrandr --output LVDS --mode 1024x768; xrandr --output VGA-0 --mode 1024x768; echo "ALL" > /tmp/vgastatus; ;; "ALL" ) # It was ALL , switching on LVDS xrandr --output VGA-0 --off; xrandr --output LVDS --auto; echo "LVDS" > /tmp/vgastatus; ;; "" ) # If we've rebooted comp, switching on LVDS xrandr --output VGA-0 --off; xrandr --output LVDS --auto; echo "LVDS" > /tmp/vgastatus; ;; esac

    Источник

    Настройка дисплеев xrandr’ом

    Для ноутбуков, иметь внешний видеовыход — привычное дело. И большинство видеокарт для настольных систем тоже имеют как минимум два. Для эффективного использования более одного монитора можно изменить параметры для каждого по отдельности.

    Мой случай

    Есть ноутбук с VGA-выходом. Дома стоит монитор, который может 1680х1050@60Hz, а на работе 1280х1024@72Hz. По умолчанию, xorg запускался, стараясь вывести сигнал на все возможные выходы. При этом драйвер radeon искал компромисс между разными разрешениями мониторов и экрана ноутбука. И если один из них работал только в режиме 1024х768, то остальные получали такую же картинку. Поиск в Интернет подсказал использовать xrandr для настройки.

    Начальные условия

    • 01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RS690M [Radeon X1200 Series] [1002:791f]
    • xorg-server-1.5.1-alt2
    • xorg-drv-radeon-6.9.0-alt3
    • графический режим запускается хотя бы на одном мониторе

    Реализация

    Заставить xorg скриптом переключать к нужному видеовыходу картинку максимального разрешения. При этом приходится отключать другой видеовыход, чтоб драйвер не пробовал искать компромисс.

    Для начала я определил, как называются видеовыходы (обозначены полужирным шрифтом):

    #xrandr Screen 0: minimum 320 x 200, current 1280 x 800, maximum 1680 x 1600 VGA-0 connected (normal left inverted right x axis y axis) 1680x1050 60.0 + 60.0 <. cut . >720x400 70.1 LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 0mm x 0mm 1280x800 60.0*+ <. cut . >640x480 59.9 HDMI-0 disconnected (normal left inverted right x axis y axis)

    Затем был создан первый скрипт, который:

    #!/bin/bash xrandr --output LVDS --off xrandr --output VGA-0 --auto

    Второй скрипт, позволял переключаться обратно на экран ноутбука:

    #!/bin/bash xrandr --output VGA-0 --off xrandr --output LVDS --auto

    Третий, включал оба выхода ( VGA-0 и LVDS ) в режиме дублирования, при этом использовалось «минимальное общее» разрешение

    #!/bin/bash xrandr --output LVDS --off xrandr --output VGA-0 --off xrandr --output LVDS --mode 1024x768 xrandr --output VGA-0 --mode 1024x768

    TODO: Найти устройство с HDMI и попробовать выводить сигнал на него.

    Использование «горячей» клавиши

    Для переключения видеовыходов (на ноутбуках), есть комбинация Fn+[соответствующая кнопка]. ACPId видит её как:

    acpid: received event "video VGA 00000080 00000000"

    Потому, создаём описание события в /etc/acpi/events/[произвольное название] :

    event=video VGA 00000080 00000000 action=/etc/acpi/switchVga.sh

    И добавляем соответствующий сценарий, который реализует циклическое переключение между LVDS->VGA->LVDS+VGA:

    #!/bin/bash VGASTAT=$( cat /tmp/vgastatus 2>/dev/null ) case $VGASTAT in "LVDS" ) # It was LVDS, switching on VGA xrandr --output LVDS --off; xrandr --output VGA-0 --auto; echo "VGA-0" > /tmp/vgastatus ; ;; "VGA-0" ) # It was VGA, switching on ALL (HDMI was not tested xrandr --output LVDS --off; xrandr --output VGA-0 --off; xrandr --output LVDS --mode 1024x768; xrandr --output VGA-0 --mode 1024x768; echo "ALL" > /tmp/vgastatus; ;; "ALL" ) # It was ALL , switching on LVDS xrandr --output VGA-0 --off; xrandr --output LVDS --auto; echo "LVDS" > /tmp/vgastatus; ;; "" ) # If we've rebooted comp, switching on LVDS xrandr --output VGA-0 --off; xrandr --output LVDS --auto; echo "LVDS" > /tmp/vgastatus; ;; esac

    Источник

    Читайте также:  Драйвера nvidia для линукс
Оцените статью
Adblock
detector