Разрешение монитора в Linux
Когда я поставил себе Ubuntu, то первой серьезной проблемой было разрешение моего монитора: ubuntu никик не хотела понимать, что мой моник (Acer AL1916W) крут и его рабочее разрешение — это 1440×900, а не 1024×768.
Да, такое бывает часто. Слава Богу, Что эту проблему достаточно просто решить. В данной статье мы рассмотрим
Изменение разрешения монитора в Linux
Для того чтобы посмотреть, на что вообще способны по мнению Linux ваши мониторы (или монитор, если он один), нужно выполнить команду xrandr из консоли (Ctrl+Alt+T):
В результате вы получите что-то типа такого (у меня 2 монитора):
Вы можеет увидеть здесь два видеовыхода: DVI-0 и VGA-0, а ниже доступные разрешения для каждого из мониторов на этих видеовыходах. У вас выходы могут называться по разному: LVDS1 — экран ноутбука, VGA1 — экран, подключаемый через VGA, DVI1 — экран, подключаемый через DVI, HDMI — экран, подключенный через HDMI.
итак, если нужное вам разрешение присутствует в списке разрешений для вашего монитора, то применить его можно очень просто: xrandr —output Название_выхода —mode Режим. В моем случае команда будет выглядеть так:
xrandr --output DVI-0 --mode 1280x1024
Вуаля, на вашем мониторе уже должно смениться разрешение 🙂
Добавление нового разрешения монитора в Linux
А что же делать, если нужного нам разрешения нет в предлагаемых? А вот что: можно просто добавить необходимое разрешение вручную. Для этого найдите характеристики вашего монитора и посмотрите, какое разрешение он поддерживает и на какой частоте. ВНИМАНИЕ! Если вы укажите частоту, на которой монитор работать не может, то потеряете графический интерфейс вашего Linux’а.
Ну к примеру, мы выяснили, что монитор Acer AL1916W отлично работает с разрешением 1440×900 на частоте в 60Гц. Давайте сгенерим для него так называемый конфиг командой cvt:
Вывод команды будет таким:
Отсюда нам нужна вторая строчка, а именно все, что находится после «Modeline»:
«1440x900_60.00» 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Далее мы создаем принципиально новый режим:
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
Осталось только привязать только что созданный режим к нужному монитору. Помните, в начале статьи мы смотрели, на каком выходе какой из мониторов? Привязка режима к конкретному монитору (выходу) делается так:
xrandr --addmode VGA-0 1440x900_60.00 xrandr --output VGA-0 --mode 1440x900_60.00
Ну вот, ваш монитор погас, включился и вы уже довольны 🙂
Добавление новой конфигурации монитора в автозагрузку
Да да да, вы спросите, и что, делать это каждый раз, когда запускается компьютер?
Нет, каждый раз делать этого не надо: просто не выключайте свой комп 🙂 Шучу. Можно просто добавить эту конфигурацию в автозагрузку, и Linux сам будет все это прекрасно делать при запуске. Как? Давайте по шагам:
Ну на будущее лучше создать в домашнем каталоге папку «.bin», в которой будут храниться все исполняемые скрипты (поверьте, пригодится). Ну и сразу перейдем в эту папку:
В папке создадим файл, назовем его, к примеру, load_screen.sh:
Открываем файл и добавляем в него все наши команды по созданию и добавлению режима монитора. Открыть файл:
Содержимое файла (для монитора, о котором идет речь в этой статье):
#!/bin/bash xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync xrandr --addmode VGA-0 1440x900_60.00 xrandr --output VGA-0 --mode 1440x900_60.00
Закрываем (Ctrl+X) и сохраняем. Теперь нам надо на файл выставить права, чтоб его можно было выполнять, как команду:
Ну и осталось добавить его в так называемый автозапуск.
Для Ubuntu c 12.04 до 13.10 надо править следующий файл: /etc/lightdm/lightdm.conf, для Ubuntu 14.04 и выше — /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf. Итак, открываем файл:
sudo nano /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf
И в конец файла дописываем путь к нашему исполняемому скрипту. В итоге, файл 50-unity-greeter.conf у меня выглядит так (не забудьте, что имя пользователя у вас точно другое):
[SeatDefaults] greeter-session=unity-greeter display-setup-script=/home/krut1/.bin/load_screen.sh
Всё! После перезагрузки разрешение монитора у вас уже должно сразу примениться. Ставьте лайки, друзья, если этот матриал был для вас полезен 😉
Понравилась или помогла статья? Самое лучшее, что ты можешь сделать — это поделиться ею в любой из своих соцсетей (даже если ты поделишься в твиттере или google+, которыми ты не пользуешься — это очень поможет развитию моего блога). Спасибо! А если ты еще и оставишь любой комментарий снизу в обсуждениях, то это будет двойное СПАСИБО!
Ссылка на статью на всякий случай:
Крутов Герман © 2009-2023 krutovgerman2007@ya.ru Я ВКонтате
Как сохранить новую настройку разрешения с помощью xrandr?
Я нашел где-то на форуме решение проблемы, где единственными доступными разрешениями были 800×600 и 1024×768. Мне удалось получить 1440×900, который работает очень хорошо. Каждый раз при перезагрузке он пропадает. Я вынужден перепечатывать команды, так как я могу сохранить это? Я предполагаю, что это простая команда, но я самый крупный из нубов, когда дело доходит до Ubuntu. Команды:
- xrandr —newmode «1440x900_60.00» 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
- xrandr —addmode VGA1 1440x900_60.00
- xrandr —output VGA1 —mode 1440x900_60.00
3 ответа
У вас есть несколько вариантов, но, возможно, самый простой — это разместить команду точно так, как вы указали в $HOME/.xprofile файл. Отсюда он будет выполняться каждый раз, когда вы входите в систему.
По умолчанию этот файл не существует в Ubuntu, поэтому может потребоваться создать его вручную, а затем сделать исполняемым. Следующие команды сделают это:
touch $HOME/.xprofile chmod +x $HOME/.xprofile
Обратите внимание на 2 небольших недостатка этого метода:
- .xprofile Доступ происходит довольно поздно в процессе запуска, поэтому вы можете увидеть некоторые изменения размера исходного разрешения
- Это настройка для каждого пользователя, и, возможно, ее придется повторить для других пользователей вашей системы.
Если вы хотите углубиться в подробности, есть несколько других вариантов, доступных в справочной ссылке ниже, но это по-прежнему самый безопасный и простой способ.
Рекомендации:
Принятый ответ применяется одна и та же конфигурация независимо от состояния подключенных дисплеев. Это не сработало для меня, так как я подключен к различным дисплеям на работе и дома. autorandr позволяет автоматически настраивать xrandr для различных настроек дисплея. Чтобы использовать autorandr,
- Установить с sudo apt install autorandr (проверено на Ubuntu 18.04)
- Настройте свой монитор по своему вкусу с помощью xrandr
- Сохраните свою конфигурацию с autorandr —save work (Я храню свою рабочую конфигурацию, выберите подходящее имя)
- Возобновить конфиг с autorandr —change work выбрать конфиг или просто autorandr —change чтобы он выводил ваш конфиг с ваших подключенных мониторов.
Автозапуск XDG.desktop также предоставляется и устанавливается в /etc/xdg/autostart/autorandr.desktop по умолчанию.
Следующая простая конфигурация работает для меня, и при подключении мой монитор автоматически использует правильное разрешение без какого-либо ручного вмешательства.
Обратите внимание, что этот файл может существовать или не существовать. Добавьте следующее:
Section "Monitor" Identifier "VGA1" Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync EndSection
Затем перезагрузите компьютер. Если все идет хорошо, то все должно работать.
Фон
У меня ноутбук UX32VD, и я хотел иметь 4K по HDMI, хотя в настройках дисплея нет опции 3840×2160.
Моей первой задачей было вычислить моделин. Пропустите этот шаг, если вы уже знаете моделин. ( Модельный ряд ниже может работать для вас.) Я скачал umc-0.2.tar.gz, распаковал и запустил ./configure а также make , Чтобы получить режим синхронизации с обратным гашением 25 Гц, я запустил
umc-0.2/src/umc 3840 2160 25 --rbt
# 3840x2160x24.99 @ 54.625kHz Modeline "3840x2160x24.99" 218.500000 3840 3888 3920 4000 2160 2163 2167 2186 +HSync -VSync
Далее я хотел проверить эту моделину. Бег xrandr без аргументов, я увидел, что мое устройство HDMI называется HDMI-1 , Я проверил этот режим, выполнив команды, аналогичные командам Джейкоба:
xrandr --newmode "3840x2160x24.99" 218.500000 3840 3888 3920 4000 2160 2163 2167 2186 +HSync -VSync xrandr --addmode HDMI-1 "3840x2160x24.99" xrandr --output HDMI-1 --mode "3840x2160x24.99" --preferred
Наконец, чтобы сделать разрешение постоянным, я создал /etc/X11/xorg.conf со следующим содержанием:
Section "Monitor" Identifier "HDMI-1" Modeline "3840x2160x24.99" 218.500000 3840 3888 3920 4000 2160 2163 2167 2186 +HSync -VSync EndSection
Чтобы проверить, перезагрузите компьютер.
Я должен отметить, что я бегу nvidia-driver-390 на Ubuntu 18.04. Надеюсь, моя техника хорошо обобщает другие конфигурации. (Пожалуйста, дайте мне знать в комментариях.)
Ни один из ответов здесь не помог мне. Я использую Ubuntu 20.04 и gdm3 в качестве диспетчера дисплея. Вот как я сохранял конфигурацию при перезагрузках и пользовательских сеансах. Я сохранил xrandr команда в файл ‘~/.config/autostart/setup_monitor_display.desktop’ , сделал его исполняемым с помощью chmod +x .
# Wait until GUI is ready X-GNOME-Autostart-Delay=1 xrandr --output DP-0 --rotate left
Затем я добавил выполнение скрипта в список запускаемых приложений.
- Открыть настройки запускаемого приложения
- Нажмите Добавить
- Введите имя и комментарий
- Для команды сделайте что-нибудь вроде sh -c ‘~/.config/autostart/setup_monitor_display.desktop’
Вы можете использовать каталог автозапуска, чтобы применить правильные xrandr настройки при запуске графической среды:
- Обозначить xrandr команда для использования. Например, при использовании инструмента GUI arandr , вы можете выполнить «Макет → Сохранить как…», а затем открыть этот файл, чтобы найти команду.
- Используйте графический интерфейс конфигурации среды рабочего стола, чтобы настроить пользовательское приложение автозапуска с xrandr команда, которую вы нашли.
- Перезагрузите компьютер, чтобы увидеть эффект.
В качестве альтернативы нет. 2, вы можете сделать то же самое вручную, создав файл ~/.config/autostart/xrandr-settings.desktop со следующим содержанием:
[Desktop Entry] Type=Application Version=1.0 Name=custom xrandr settings # Replace with your own xrandr command: Exec=xrandr --output LVDS-1 --pos 0x1024 --output VGA-1 --pos 0x0
Преимущества, подробности
Мне этот механизм нравится больше, чем помещать команду в $HOME/.xprofile как предлагается в другом ответе. Потому что наверняка каталог автозапуска уже будет содержать записи, предоставленные или даже требуемые средой рабочего стола, и таким образом у меня есть все автозапускаемые материалы, включая. xrandr вместе в одном месте, вместо того, чтобы выяснять, где что-то запускается автоматически, если я когда-нибудь захочу это изменить.
Каталог автозапуска — это механизм FreeDesktop, поэтому он должен работать во всех основных средах рабочего стола Linux. Из другого ответа (от villapx, под лицензией CC-BY-SA 4.0):
В autostart Каталог является частью спецификации автозапуска настольных приложений freedesktop.org/XDG. Согласно этой спецификации, совместимая среда рабочего стола будет искать $XDG_CONFIG_HOME/autostart для любой .desktop файлы и запускать их при запуске.