Как получить разрешение внешнего монитора, установленное xrandr, для сохранения

ТЛ; др

Мой ноутбук продолжает забывать о правильном разрешении внешнего монитора, подключенного к нему. Как я могу настроить конфигурацию «stick»?

Детали

У меня есть ноутбук под управлением Linux Mint, прикрепленный к внешнему монитору ViewSonic. Я установил его для использования внешнего монитора в качестве второго экрана (т. Е. Не отраженного). Это работало отлично в течение нескольких недель.

Внезапно ноутбук больше не распознал его как ViewSonic, и в этот момент он не знал своего оптимального разрешения ( 1600 x 1200 ), позволяя максимум 1028 x 768 . 1 Это совсем не сработало с моим ноутбуком, который имеет разрешение 1920 x 1200 .

После многих разочарований я нашел этот ответ . Это помогло мне устранить проблему следующим образом (вывод команды cvt являющийся cvt , которая использовалась в следующей команде):

 cvt 1600 1200 xrandr --newmode "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync xrandr --addmode VGA-1 1600x1200_60.00 

Именно это я и желал сделать, но не смог сделать это через графический интерфейс. (Есть причины, по которым мне все еще нравится командная строка …)

Это снова хорошо работало какое-то время. Однако, когда я загрузил компьютер сегодня и зашел в систему, у меня появилось всплывающее окно области уведомлений со строкой ошибок о разных попытках, которые не работали, а внешний монитор был отключен. Я повторил приведенные выше команды, и он снова работает.

У меня карта nVidia. Я попытался установить проприетарный драйвер, когда все началось с ошибкой, но в этот момент внешний монитор больше не распознавался, поэтому я вернулся к драйверу с открытым исходным кодом. У меня нет Xorg.conf или Xorg.conf.d , только xorg.conf.failsafe .

Я не хочу повторять эти команды каждый раз, когда я загружаю машину. Есть ли способ, чтобы я мог сохранить это в моем Xorg.conf или что-то в этом роде? Прошло много лет с тех пор, как я много сделал с Х. Может ли кто-нибудь помочь мне здесь?


1 Я не смог определить, почему это произошло. Мое лучшее предположение – это проблемное обновление драйверов.

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

 #!/usr/bin/env bash cvt 1600 1200 xrandr --newmode "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync xrandr --addmode VGA-1 1600x1200_60.00 

Сделайте его исполняемым, а затем добавьте его в приложения для запуска Desktop Environment. Это, вероятно, лучший выбор, если ваш DE предоставит вам вариант.


Если вы не можете сделать это, как грязный хак, вы можете добавить их в свой файл ~/.profile :

 if [ ! -t 0 ] then cvt 1600 1200 xrandr --newmode "1600x1200_60.00" 161.00 1600 1712 1880 2160 1200 1203 1207 1245 -hsync +vsync xrandr --addmode VGA-1 1600x1200_60.00 fi 

if [ ! -t 0 ] if [ ! -t 0 ] должен убедиться, что это выполняется только в графическом интерфейсе, а .profile выдается менеджером входа в mint, как я помню.

Теперь вы также можете использовать ~/.xsession но у меня были проблемы с игнорированием. Многие старые подходы заменяются, и я не уверен, что такое современный способ.

Если вы используете проприетарный драйвер Nvidia, то nvdia-settings должен быть инструментом GUI для настройки файла Xorg.conf . Он должен иметь свой собственный пакет в Linux Mint, поэтому установка будет такой же простой, как:

 sudo apt-get install nvidia-settings 

Это должно помещать значок в ваше меню где-нибудь, вы можете запустить его оттуда (хотя я не уверен, как вы получите его с правами root). Из командной строки я считаю, что вы можете сделать:

 sudo /usr/lib/nvidia/current/nvidia-settings 

Если вы хотите выполнить командную строку, то nvidia-xconfig , по-видимому, является инструментом для использования (пакет nvidia-xconfig для меня). В любом случае вы обычно получаете лучшие результаты с проприетарным драйвером, если он настроен правильно. Эти инструменты, по крайней мере, Xorg.conf разумный файл Xorg.conf который вы затем можете настроить либо напрямую, либо через одну из этих программ.