Как программно выключить/включить второй монитор в Linux

У меня два монитора — один большой в центре, и слева еще один в вертикальном режиме, удобно для терминала, документации, чата и т.д.

Иногда бывает нужно отключить второй монитор потому что некоторые программы/игры плохо воспринимают такое, неправильно распознают какой основной и т.п. + вроде разная частота обновления для каждого монитора не поддерживается в X11 (а Wayland пока не дружит с видеокартами Nvidia), то есть если на одном 60 Гц, а на втором 120 Гц, то оба на самом деле будут 60 Гц (хотя вроде говорят, что в GNOME это как-то исправили), и GSync/FreeSync так не работают.

В настройках Ubuntu/PopOS не нашел такой функциональности (UPD: точнее есть Single Display на скриншоте выше, но слишком много действий и настройки сбрасываются), а нажимать кнопку на самом мониторе неудобно (обходить стол, искать кнопку сзади).

Нагуглил, что можно отключить монитор через xrandr в терминале:

xrandr --output HDMI-0 --off

(список output’ов показывается при запуске xrandr без параметров)

А вот с включением оказалось сложнее.

Попробовал так

xrandr --output HDMI-0 --auto

но оно не восстановило настройки (ориентация, месторасположение).

Попробовал указать все нужные параметры, разрешение, --rotate left, стало лучше, но осталось неправильное месторасположение и курсор прыгал при переходе между мониторами.

image

Пока гуглил как задавать параметр --pos нашел приложение arandr (sudo apt install arandr), которое позволяет сохранить скрипт с параметрами xrandr для текущих настроек.

arandr save layout

В итоге получилось так:

xrandr --output HDMI-0 --mode 2560x1440 --pos 0x0 --rotate left --output DP-2 --primary --mode 3440x1440 --pos 1440x1120 --rotate normal --rate 120

Жесть какая-то. В винде второй моник при запуске игрушки автоматом тухнет и восстанавливается при выходе из игры.
Здесь похоже свой драйвер писать прийдеться…

P. S.
Но в этом есть свои плюсы, по отношению к Майкрософт.
Можно на втором монике оставить открытый текстовик с чит-кодами к игре…
Может это плюс а не минус?

Никогда такого не было у меня на винде. И настроек таких не помню.

У меня именно так и работает.
Из настроек все что указывал - второй монитор продолжение рабочего стола.
Все, больше ни каких манипуляций с настройками не делал.
Может от модификации видеокарты как-то зависит…

Судя по гуглу такое происходило раньше в старых играх и/или в старых версиях винды и/или со старыми драйверами видеокарты (+ зависит от ее производителя). Еще тут пишут, что изменение каких-то странных настроек в приложении настроек драйвера видеокарты влияет на это.

А сейчас, похоже, у всех как у меня. Сейчас многие игры запускаются в Borderless fullscreen (обычное окно на весь экран без рамок) вместо Exclusive fullscreen. И настоящий Exclusive fullscreen в вин10 похоже убрали по умолчанию.

With the release of Windows 10, we added Fullscreen Optimizations – which takes full screen exclusive games and runs them instead in a highly optimized borderless windowed format that takes up the entire screen. You get the visual experience and performance of running your game in FSE, but with the benefits of running in a windowed mode. These benefits include faster PC commands such as alt-tab, multiple monitor set ups and overlays. We have extensive performance data that indicates that almost all users who use Fullscreen Optimizations have equal performance to Full Screen Exclusive.

Так что сейчас все ищут как выключать мониторы )
В винде это вроде бы делается через Win+P и выбор режима про один монитор.

В линуксах, кстати, легко добавить глобальный хоткей с вызовом своего скрипта и т.п. :pikachu:
Без доп. ПО (на винде я AutoHotkey использовал для такого)

В GNOME (Ubuntu и т.п.) так: настройки —> Keyboard —> Customize Shortcuts —> Custom Shortcuts

И там же рядом можно менять системные типа Alt+Tab.