Неверное разрешение экрана входа в систему

ОК, больше нет необходимости в скрипте или обходном пути. По состоянию на 3 ноября 2011 года версия 9.0.61 x64 от Vuescan устранила проблему между Unity, Compiz, Vuescan и оформлением окон, по крайней мере, на Ubuntu 11.10. Все работает нормально сейчас (слава богу!).

1
задан 12 July 2017 в 20:42

14 ответов

Я нашел очень простой обходной путь, который отлично работает для меня с 13.04. (обновление: теперь 13.10) на ноутбуке с 24-дюймовым внешним экраном, который не подключен постоянно.

Я просто скопирую здесь

. Используйте вход в систему xrandr или элемент управления Displays утилита для настройки ваших мониторов, как вы хотите, чтобы они были настроены в копии экрана входа ~ / .config / monitors.xml в /var/lib/lightdm/.config

Поскольку у меня уже были мои мониторы правильно настроен, мне просто нужно было сделать шаг 3.

Некоторые другие ответы, приведенные здесь, работали на меня, но только в конкретном сценарии, при этом в случае возникновения проблем с непригодной системой в других сценариях (LOW GRAPHICS MODE ERROR). с постоянным подключением внешнего монитора (принятый ответ by @captain_G) или всегда с тем же устройством, подключенным к выходу, используемому для внешнего монитора (скрипт by @Axlrod). Похоже, что ответ @ MarcoV является самым общим решением, все еще содержат правила написания сценариев.

36
ответ дан 25 May 2018 в 17:25
  • 1
    Гораздо проще, чем другие ответы ... Интересно, почему у него больше нет голосов. Ну, у меня есть мой. – aap 27 October 2013 в 20:28
  • 2
    Опять же, хотя это помогает экрану входа в систему, было бы неплохо, если бы другим пользователям не приходилось снова настраивать разрешение экрана. – aap 28 October 2013 в 00:41
  • 3
    Как ни странно, я не работал для меня (на Debian). Какой компонент будет читать файл monitors.xml? Какой-то демон настроек? – Joachim Breitner 28 October 2013 в 16:13
  • 4
    Вместо копирования файла создайте для него ссылку, чтобы он автоматически обновлялся при каждом изменении настроек экрана: $ sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml (Нет, символические ссылки НЕ работают). – Nathan J. Brauer 27 January 2015 в 00:32
  • 5
    Какое приложение пишет / обновляет monitors.xml? Я использую XFCE, и этот файл 2 года и полностью устарел. Я не могу найти похожий файл. – scai 15 October 2015 в 17:24

Вы можете вместо создания скрипта просто добавить в файл /etc/lightdm/lightdm.conf строку, подобную этой:

display-setup-script=xrandr --output default --mode 1280x720

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

16
ответ дан 25 May 2018 в 17:25
  • 1
    Привет, ваши команды xrand говорят: warning: output default not found; ignoring – SebMa 27 April 2018 в 16:29

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

run:

xrandr

Получить устройства, на которых вы используете ноутбук обычно это LVDS1, и для меня у меня есть DP2 (displayport 2), это может быть HDMI1 или что-то еще, просто найдите те, у которых есть разрешения, перечисленные рядом с ними.

Создайте этот маленький файл bash: [!d3 ]

#!/bin/bash

mode="$(xrandr -q|grep -A1 "DP2 connected"| tail -1 |awk '{ print $1 }')"
if [ -n "$mode" ]; then
  xrandr --output LVDS1 --off
  xrandr --output DP2 --primary --mode 2540x1440
fi

Замените LVDS1 подключением к монитору вашего ноутбука.

Замените DP2 подключением внешнего монитора.

Поместите скрипт bash в / usr / bin / local /

chmod + x скрипт

изменить /etc/lightdm/lightdm.conf

Добавить

display-setup-script=/path/to/my/script

Перезагрузка.

Изменение разрешения произойдет только тогда, когда вы на самом деле находитесь на этом дисплее.

Если у вас есть несколько мест с различными мониторами / разрешениями на одном и том же коннекторе, вам придется добавить больше интеллекта в свой сценарий bash.

2
ответ дан 25 May 2018 в 17:25

Немного улучшил приведенный выше сценарий Axlrod.

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

#!/bin/bash LVDS="LVDS-0" PRIMARY="VGA-0" function get_displays() { xrandr -q | grep connected | awk '{print $1}' } function get_resolution() { [[ -z "$1" ]] && return 0 || xrandr -q | grep -A1 $1 | tail -1 | awk '{print $1}' | grep -e "^[0-9]" } for display in $(get_displays); do resolution=`get_resolution $display` [[ $display == $PRIMARY ]] && arg="--primary"; [[ -n $resolution ]] && mode="--mode $resolution"; if [[ $display == $LVDS ]]; then xrandr --output $display --off elif [[ -n $mode ]]; then xrandr --output $display $arg $mode fi unset mode arg resolution; done
2
ответ дан 25 May 2018 в 17:25

Не отчаивайтесь со сценариями или файлами конфигурации, у которых есть возможность сделать ваш экран входа непригодным!

Вместо этого войдите в систему и установите предпочтительные настройки экрана *, затем запустите эту команду:

sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml

Ваше разрешение для входа теперь будет всегда соответствовать настройкам пользователя, с которым вы в настоящее время вошли.

* Не забудьте нажать «Применить»

1
ответ дан 25 May 2018 в 17:25
  • 1
    Это работает, но это вторично. Он выполняет обычную нагрузку в максимальном разрешении и затем переключается на ваши настройки. Как вы можете заставить загрузить правильное разрешение? – Goddard 4 December 2015 в 07:58
sudo gedit /usr/share/X11/xorg.conf.d/52-myres.conf

, затем в файле:

Section "Monitor"
    Identifier "VGA1"
    Option "PreferredMode" "1152x864"
EndSection

Сохранить и выйти. Значения были получены из команды xrandr -q. VGA1 - это имя моего соединителя, а 1152x864 - имя разрешения.

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

Изменено из ответов здесь

1
ответ дан 25 May 2018 в 17:25
  • 1
    После установки open-vm-tools и open-vm-tools-desktop копирование monitors.xml в /var/lib/lightdm/.config больше не работало для меня. Указание предпочтительного разрешения, как это, фиксировало это для меня. – jropella 30 July 2017 в 09:32

То, что я нашел полезным, было опубликовано на веб-сайте руководства Ubuntu. Я пробовал так много вещей в Ubuntu 11.10 и даже пытался использовать просто GNOME Classic. Разрешение всегда было 1024x768, и когда я вручную установил его на 1440x900, он был «виртуальным», я имею в виду, что мне пришлось прокручивать с помощью мыши, чтобы исследовать весь рабочий стол, который был выше реальных размеров экрана.

В Терминал Я выполнил эту команду:

sudo gedit /etc/default/grub

Текстовый редактор может потребоваться некоторое время для загрузки. После его загрузки я отредактировал строку

GRUB_GFXMODE=1024x768

и изменил ее на:

GRUB_GFXMODE=1440x900

Не забудьте запустить update-grub, чтобы применить изменения.

[d6 ] После этого я попытался переустановить драйверы VESA (на этом компьютере у меня есть GeForce 260 GTX). Я знаю, что лучший способ - использовать официальные драйверы Nvidia, но с их помощью проблема всегда была такой же ... Конечно, я думаю, что теперь производительность будет хуже.

Итак, проверьте настройки Nvidia X Server Я подтвердил, что мое решение было добавлено, и, переключившись на него, он сделал экран в правильном образе. На самом деле я использую Ubuntu 11.10, но в GNOME Classic.

Я новичок в Linux, поэтому надеюсь, что написал приличные вещи.

1
ответ дан 25 May 2018 в 17:25

Скрипт Axelrod несколько неисправен, так как grep для 'connected' также захватывает все «отключенные» отображения ... не то, что мы хотим ...

Кроме того, используя grep с awk и tail, и т. д., является расточительно обходным, и я бы предложил следующее ниже. Кроме того, в get_resolution мы меняем код возврата на 1, так как код возврата нуля обычно указывает на отсутствие ошибок, поэтому мы используем 1, если первый параметр отсутствует.

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

[ f1]
0
ответ дан 25 May 2018 в 17:25

Вот как я работал в Xubuntu 16.04.

Вам нужно получить строку для желаемого разрешения. Это находится в результате команды:

xrandr --verbose

Теперь выберите деталь с требуемым разрешением. Он будет выглядеть примерно так:

1152x864 (0xa6) 108.000MHz +HSync +VSync
    h: width  1152 start 1216 end 1344 total 1600 skew    0 clock  67.50KHz
    v: height  864 start  865 end  868 total  900           clock  75.00Hz

Из приведенных выше данных вы должны получить строку 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync.

Чтобы найти имя вашего вывода, найдите также строку:

VGA1 connected 1152x864+0+0 (0xa4) normal (normal left inverted right x axis y axis) 306mm x 230mm

Здесь мой результат называется VGA1.

Теперь создайте скрипт:

sudo gedit /usr/share/lightdmxrandr.sh

Затем в файле напишите следующее:

#!/bin/sh
xrandr --newmode "1152x864_75.00"  108.000  1152 1216 1344 1600  864 865 868 900 +HSync +VSync
xrandr --addmode VGA1 "1152x864_75.00"
xrandr --output VGA1 --mode 1152x864_75.00 --pos 0x0 --rotate normal

Сохранить и закрыть файл. Сделать скрипт исполняемым:

sudo chmod a+rx /usr/share/lightdmxrandr.sh

Создать файл конфигурации для вызова только что созданного скрипта.

sudo gedit /etc/lightdm/lightdm.conf.d/00-myres.conf

внутри этого файла:

[Seat:*]
display-setup-script=/usr/share/lightdmxrandr.sh

Сохраните и закройте файл.

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

[d13 ] Ответ изменен из этого вопроса.

note

Альтернативным способом получения длинной строки разрешения является программа cvt. Чтобы получить строку для разрешения 1152x864, частота обновления 75.00:

cvt 1152 864 75

Это дало мне несколько иное разрешение, чем разрешение на рабочем столе, и именно поэтому я не включил метод в основной ответ. [ ! d19]

0
ответ дан 25 May 2018 в 17:25

Если вы используете GTK greeter LightDM, вы можете запустить xrandr -q, чтобы найти имена ваших мониторов, а затем отредактировать /etc/lightdm/lightdm-gtk-greeter и установить свойство active-monitor, как описано в комментариях внутри этого файла. Это свойство может принимать несколько упорядоченных значений, включая #cursor для монитора, который в настоящее время отображает курсор мыши.

0
ответ дан 25 May 2018 в 17:25

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

0
ответ дан 25 May 2018 в 17:25

«Предпочтительные режимы экрана» может быть проблемой

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

У меня была противоположная проблема: у меня всегда было меньшее разрешение экрана (1280x1024), чем у меня (1600x1200). Исправление, которое я нашел (и описано в связанном ответе), мы надеемся, что применим аналогично вашей проблеме.

-1
ответ дан 25 May 2018 в 17:25
  • 1
    Кто бы ни проголосовал за мой ответ, не могли бы вы добавить примечание о том, почему вы считаете, что этот ответ не полезен? – Chriki 4 October 2016 в 13:43

Я создал этот скрипт, чтобы сделать его более динамичным (несколько рабочих пространств / разных мониторов).

Только раздражение: когда вы входите в систему с помощью lightdm, экран по-прежнему мигает, как будто он хочет изменить разрешение: s

-2
ответ дан 25 May 2018 в 17:25
  • 1
    Паста не найдена. – Tobold 13 August 2013 в 13:13
  • 2
    В самом деле; если у вас все еще есть локальная копия скрипта, подумайте о повторной загрузке. – wchargin 25 September 2013 в 18:18
  • 3
    Я загрузил сценарий в github. Я не знаю, почему paste.ubuntu.com удалил его :( – Leon 9 December 2013 в 02:24

У меня была та же проблема на моем MacBook Pro в середине 2014 года (11,1), запущенной Xenial. Я пробовал все вышеупомянутые решения в различных формах, но неизменно получал бы X в безопасном режиме с низкой графикой (но отображался в самом разрешении, которое я хотел бы установить по умолчанию не менее.

После долгих споров на форумах и в googling выясняется, что я забыл простейшее и по умолчанию потенциальное решение: nomodeset. Это исправило проблему.

TL; DR: Не забудьте попробовать nomodeset! Esp. на MacbookPro 11,1.

-2
ответ дан 25 May 2018 в 17:25

Другие вопросы по тегам:

Похожие вопросы: