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

11

ТЛ; др

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

Детали

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

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

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

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или что-то? Прошло много лет с тех пор, как я много сделал с X. Кто-нибудь может мне здесь помочь?


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

Kazark
источник
1
Какую видеокарту вы используете? А если это ATI / AMD или Nvidia, используете ли вы проприетарный драйвер или драйвер с открытым исходным кодом? У вас есть /etc/X11/corg.confфайл или что-то еще /etc/X11/corg.conf.d? Пожалуйста, отредактируйте ваш вопрос и добавьте содержимое этих файлов.
Terdon
Пожалуйста, отредактируйте свой вопрос, чтобы добавить дополнительную информацию, это трудно прочитать и легко пропустить в комментариях. Тем не менее, да, xorg.conf больше не нужен, эти вещи теперь обрабатываются udev.
Terdon
Просто еще раз посмотрю на ваш вопрос, и то, что я пропустил, когда написал свой ответ, - у вас есть ноутбук. Возможно, вы захотите изучить udevправило вызова скрипта для выполнения xrandr каждый раз, когда монитор подключен или отключен, это будет намного лучше, если ваш компьютер не всегда подключен к монитору. В противном случае, если вы счастливы, если все время устанавливаете его в одном и том же месте, Xorg.confэто путь.
Graeme

Ответы:

5

Я уверен, что есть лучший способ, я думаю, что все это уже решено, 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

Сделайте его исполняемым, а затем добавьте его в загрузочные приложения вашей среды рабочего стола. Это, вероятно, лучший выбор, если ваш 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 ]Должен обеспечить это работать только в графическом интерфейсе и .profileдобыт с помощью менеджера входа в систему монетного как я помню.

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

Тердон
источник
Вам не нужно использовать cvt 1600 1200, так как мы уже использовали его вывод в следующих двух строках.
PraveenMax
4

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

sudo apt-get install nvidia-settings

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

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

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

Graeme
источник