Неправильное разрешение экрана входа

В некоторых случаях, как правило, после неправильной перезагрузки компьютера разрешение экрана входа в систему не по умолчанию 1440x900, но я думаю, 1600x900. Теперь у меня есть этот монитор, который действительно плохо справляется с разрешениями, на которые он не рассчитан, и будет показывать глупое окно «неправильного разрешения», прыгающее по экрану.

Есть ли способ заставить экран входа в систему загружать разрешение 1440x900, несмотря ни на что? Я использую Ubuntu 11.10 с Unity и LightDM.

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

16 ответов

Можно сделать сценарий для этого (источник Разрешение LightDM).

  1. Во-первых мы должны узнать, каков Ваш идентификатор мониторов. Откройте терминал, начните вводить terminal в Вашей единице подчеркивают штриховой линией, чтобы видеть опцию или нажать Ctrl+Alt+T
  2. Вводите/копируйте эту команду для показа деталей дисплея:

    xrandr -q
    

    Если у Вас только будет один монитор, то Вы будете видеть строку в выводе как следующее (вероятно, с некоторыми различными значениями, это - идентификатор в запуске, который мы после):

    DVI-0 connected 1680x1050+0+0 (normal left inverted right x axis y axis) 473mm x 296mm
    

    Экранным идентификатором является DVI 0 в этом случае

  3. Откройте свой любимый текстовый редактор, позволяет использованию gedit для этого примера, нажмите Alt+F2 и тип gedit

  4. Вводите/копируйте это в:

    #!/bin/sh
    xrandr --output DVI-0 --primary --mode 1440x900
    

    Сохраните это на своем рабочем столе как lightdmxrandr.sh

  5. Можно хотеть протестировать сценарий, прежде чем мы проведем в жизнь его. Назад в терминале перешли туда, где мы просто сохранили его:

    cd ~/Desktop
    

    Теперь мы должны сделать это исполняемым файлом:

    chmod a+rx lightdmxrandr.sh
    

    Теперь выполнение это:

    ./lightdmxrandr.sh
    

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

  6. Теперь позволяет, перемещают небольшой сценарий, который мы сделали:

    sudo mv ~/Desktop/lightdmxrandr.sh /usr/share/.
    

    Если Вы не используете sudo можно получить ошибку разрешения (я использую эту папку из персонального предпочтения),

  7. Мы должны теперь выполнить это в lightdm, перейти к корректной папке:

    cd /etc/lightdm
    
  8. Откройте lightdm conf файл:

    sudo gedit lightdm.conf
    
  9. Теперь добавьте инструкцию запустить Ваш скрипт после последней строки и сохранить:

    display-setup-script=/usr/share/lightdmxrandr.sh
    

Теперь перезагрузка и это должны установить корректное разрешение на Вашем lightdm, входят в систему экран.

(эти инструкции могли бы выглядеть длинными, но они не занимают много времени вообще),

40
ответ дан 12 July 2017 в 20:42

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

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

0
ответ дан 12 July 2017 в 20:42

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

0
ответ дан 12 July 2017 в 20:42

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

0
ответ дан 12 July 2017 в 20:42

Это - то, как я получил его работающий в 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

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

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

Ответ, измененный от этого вопрос .

примечание

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

cvt 1152 864 75

Это дало мне немного отличающееся разрешение, чем мое настольное разрешение и является причиной, я не включал метод в основной ответ.

0
ответ дан 12 July 2017 в 20:42

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

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

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

function get_displays()
{
    xrandr -q | awk '($2 == "connected") {print $1;}'
};

# the "\" and c/r were added for readability on this website
# I do not have them in my code variant that I use.
function get_resolution()
{
    [[ -z "$1" ]] && return 1;
    xrandr -q | \
    awk -v display="$1" '($1 == display && $2 == "connected") {getline; print $1;}';
};

function setup_displays()
{
    local   primary=${2:-"VGA-0"};
    local   lvds=${3:-"LVDS-0"};

    for display in $(get_displays);
    do
            local   resolution=${1:-"$(get_resolution $display)"};

            [[ $display == $primary ]] && local arg="--primary";
            [[ -n $resolution ]] && local mode="--mode $resolution";

            if [[ $display == $lvds ]];
            then
                    xrandr --output $display --off;
            elif [[ -n $mode ]];
            then
                    xrandr --output $display $arg $mode;
            fi;
    done;
};

setup_displays;
0
ответ дан 12 July 2017 в 20:42

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

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

sudo gedit /etc/default/grub

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

GRUB_GFXMODE=1024x768

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

GRUB_GFXMODE=1440x900

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

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

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

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

0
ответ дан 12 July 2017 в 20:42

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

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

0
ответ дан 12 July 2017 в 20:42

Просто немного улучшил вышеописанный сценарий Экслрода .

Все, что вам нужно сделать, это указать, какой монитор использовать в качестве основного, а какой - дисплей вашего ноутбука (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
0
ответ дан 12 July 2017 в 20:42
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. Он устанавливает предпочтительное разрешение, и для меня он позволяет мне устанавливать разрешение экрана входа в систему вместо того, чтобы по умолчанию использовать самое высокое поддерживаемое разрешение.

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

0
ответ дан 12 July 2017 в 20:42

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

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

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

0
ответ дан 12 July 2017 в 20:42

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

запустить:

xrandr

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

Создайте этот небольшой bash-файл:

#!/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 скрипт

edit /etc/lightdm/lightdm.conf

Добавить

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

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

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

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

0
ответ дан 12 July 2017 в 20:42

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

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

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

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

*Не забывайте нажимать "Apply"

0
ответ дан 12 July 2017 в 20:42

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

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

< blockquote>
  1. войдите в систему
  2. , используйте xrandr или утилиту управления дисплеями, чтобы настроить мониторы так, как вы хотите, чтобы они были настроены на экране входа в систему
  3. copy ~ /. config / monitors.xml в /var/lib/lightdm/.config

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

Некоторые другие ответы, приведенные здесь, работали для меня, но только в определенном сценарии, когда существует риск неработоспособности системы в других сценариях (ОШИБКА РЕЖИМА НИЗКОЙ ГРАФИКИ). Например, с постоянно подключенным внешним монитором (принятый ответ @captain_G) или всегда с то же устройство, подключенное к выходу, используемому для внешнего монитора (сценарий @Axlrod). Кажется, что ответ @ MarcoV является наиболее общим решением, однако он все еще включает правила сценариев.

0
ответ дан 12 July 2017 в 20:42

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

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

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

0
ответ дан 12 July 2017 в 20:42

Принятый ответ капитана работает, если в вашей системе есть lightdm.conf, и по какой-то причине в моем Xubuntu 20.04 его не было.

Чтобы обойти это, создайте файл /etc/lightdm/lightdm.conf со следующим содержимым:

[SeatDefaults]
display-setup-script=/home/owner/xrandr_for_lightdm.sh

Я бы предпочел решение на основе копирования, как у Tobold, но оно у меня не работает 20.04.

0
ответ дан 12 July 2020 в 21:44

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

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