Как я могу сделать настройку xrandr постоянной?

Я использовал для редактирования сценария запуска GDM (/ etc / gdm / Init / Default), чтобы навсегда изменить разрешение экрана.

Как я могу сделать это с LigthDM в Ubuntu Oneiric?

68
задан 11 December 2013 в 19:07

9 ответов

я думаю, что вы можете добавить режимы отображения в /etc/X11/xorg. conf.

Если у вас нет xorg.conf, то вы можете использовать в качестве основы следующее. Необходимо заменить записи с именами Modeline, Driver и Modes на правильные для вашей системы. В зависимости от аппаратного обеспечения, Вам могут понадобиться дополнительные записи, например, если Ваша система имеет более одного графического чипа.

Section "Monitor"
    Identifier    "Monitor0"
    Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    Modeline "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Card0"
    Monitor        "Monitor0"
    SubSection "Display"
        Modes       "1280x1024_60.00" "1024x768_60.00"
    EndSubSection
EndSection

Section "Device"
    Identifier    "Card0"
    Driver        "nvidia"
EndSection

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

lshw -class display | grep "driver"

Модальные линии могут быть сгенерированы с помощью cvt:

cvt <h-resolution> <v-resolution> [refresh]
24
ответ дан 11 December 2013 в 19:07

Изменение /etc/lightdm/lightdm.conf для добавления следующих опций:

display-setup-script > звонит вашему mycustomloginvideo.sh до того, как появится экран входа в систему. session-setup-script > вызывает Ваш mycustomdesktopvideo.sh до начала сессии рабочего стола пользователя

[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
display-setup-script=/usr/share/mycustomloginvideo.sh
# for your desktop session
session-setup-script=/usr/share/mycustomdesktopvideo.sh

Возможно, у Вас есть "arandr" GUI инструмент генерирует вышеприведенный sh скрипт, выбирая параметры из X конфигурации Вашей текущей сессии.

Убедитесь, что ваш скрипт оболочки исполняемый:

chmod a+x /usr/share/mycustom*video.sh

и вы можете проверить, что он работает (т.е. что у вас нет опечаток или ошибок конфигурации в команде xrandr), просто запустив его в терминале:

/usr/share/mycustomdesktopvideo.sh

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

64
ответ дан 11 December 2013 в 19:07

У меня была аналогичная проблема с моим ноутбуком, как указано выше, и я хотел добавить кое-что к разговору. Если вас не волнует разрешение входа в систему (я не знаю), но вы хотите, чтобы фактическое рабочее пространство имело правильное разрешение, вы можете добавить информацию о своем мониторе в LightDM, но не включать полное разрешение, пока не войдете в систему.

просто добавил следующий сценарий для моего монитора в файл: lighdmxrandr

xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00

, затем я вызываю его в /etc/lightdm/lightdm.conf

display-setup-script=/usr/bin/lightdmxrandr

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

5
ответ дан 11 December 2013 в 19:07

Я уже некоторое время пытаюсь решить похожую проблему и нашел решение, которое работает для меня, так что надеюсь, оно поможет ...

У меня есть старый Aspire AOA110, который Я разбивал экран слишком много раз, и после покупки нового ноутбука решил, что я попытаюсь превратить его в HTPC, но внешний дисплей, который у меня есть, не распознается X, поэтому мне пришлось несколько раз `` настраивать '' его, чтобы получить он работает с правильным разрешением.

Вот что я сделал:

После использования этого http://ubuntuforums.org/showthread.php?t=1112186 руководства до шага 5 я смог найти рабочий и приемлемый разрешение в xrandr, но это не работало на экране входа в LightDM.

Не выполняйте шаги, чтобы сделать его постоянным, как это может работать выше, но я думаю, что это правильный способ сделать это в 11.10. Я нашел этот пост в ArchWiki https://wiki.archlinux.org/index.php/Xorg , который я адаптировал под свои нужды.

Сначала создайте файл здесь: / etc / X11 / xorg.conf.d / 10-monitor.conf

Затем добавьте соответствующие данные X для вашего дисплея вот как выглядел мой:

Section "ServerLayout"
Identifier     "DualSreen"
Screen       0 "Screen0"
Screen       1 "Screen1" RightOf "Screen0" #Screen1 at the right of Screen0
#Option         "Xinerama" "1" #To move windows between screens
EndSection

Section "Monitor"
Identifier     "LVDS1"
Option         "ignore" "true"
EndSection

Section "Monitor"
Identifier     "VGA1"
Option         "Enable" "true"
Modeline "1440x900_60.00"  106.47  1440 1520 1672 1904  900 901 904 932  -HSync +Vsync
EndSection

Section "Device"
Identifier     "Device0"
Driver         "intel"
Screen         0
EndSection

Section "Device"
Identifier     "Device1"
Driver         "intel"
Screen         1
EndSection

Section "Screen"
Identifier     "Screen0"
Device         "Device0"
Monitor        "VGA1"
DefaultDepth    24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
    Modes          "1440x900_60.00"
EndSubSection
EndSection

Section "Screen"
Identifier     "Screen1"
Device         "Device1"
Monitor        "LVDS1"
DefaultDepth   24
Option         "TwinView" "0"
SubSection "Display"
    Depth          24
EndSubSection
EndSection

Важные биты, которые нужно добавить, находятся в соответствующем разделе «Монитор» включите соответствующую Modeline , которую вы нашли при использовании gtf 1440 900 60,00 , а затем в соответствующем разделе «Экран» , включая правильные режимы .

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

Извините за эпический пост, я уже некоторое время настраиваю файлы xorg.conf с помощью дисплея Hannspree, который я использовал, и старые настройки xorg.conf, которые я использовал до 11.10, просто больше не работают должным образом это единственное решение, которое я нашел, что работает.

Удачи!

6
ответ дан 11 December 2013 в 19:07

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

Создайте scriptinstallxrandrfixed.sh . Добавьте эти строки:

#Variables for lightdm script and xrandr script to set up fixed resolution for old displays: 
xrandrscript=/usr/local/bin/xrandrscript.sh
lightdmstartscript=/usr/share/lightdm/lightdm.conf.d/60-xrandrscript.conf

#Added old style configuration for lightdm: 
sudo  ln -s /usr/share/lightdm/lightdm.conf.d /ec/lightdm/lightdm.conf.d
#A fix to some old displays in high school at Fray Bentos, fix to 104x768
#Some useful information comes from: http://askubuntu.com/questions/63681/how-can-i-make-xrandr-customization-permanent
sudo sh -c "echo '[SeatDefaults]' > $lightdmstartscript"
# for your login screen, e.g. LightDM (Ubuntu 11.10) or GDM (11.04 or earlier)
sudo sh -c "echo 'display-setup-script=$xrandrscript' >> $lightdmstartscript"
# for your desktop session
sudo sh -c "echo 'session-setup-script=$xrandrscript' >> $lightdmstartscript"
sudo sh -c "echo 'xrandr --size 1024x768 --rate 60.0' > $xrandrscript"
sudo chmod +x $xrandrscript

он создаст сценарии и файлы для отображения и сеанса lightdm. Не забудьте дать ему разрешение на выполнение

chmod +x scriptinstallxrandrfixed.sh

и выполнение

./scriptinstallxrandrfixed.sh

(вы должны быть помещены в тот же каталог, где у вас есть файл.)

, если не в том же каталоге: / path / to / script / scriptinstallxrandrfixed.sh

Измените его в соответствии с вашими потребностями.

1
ответ дан 11 December 2013 в 19:07

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

отредактируйте файл / usr / sbin / lightdm-session

Вот это как теперь выглядит первая часть этого файла:

#!/bin/sh
#
# LightDM wrapper to run around X sessions.

echo "Running X session wrapper"

# Load profile
for file in "/etc/profile" "$HOME/.profile" "/etc/xprofile" "$HOME/.xprofile"; do
  if [ -f  "$file" ]; then
     echo "Loading profile from $file";
     . "$file"
  fi
done

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync
xrandr --addmode CRT1 1368x768_60.00
xrandr --output CRT1 --mode 1368x768_60.00

# Load resources

Обратите внимание, что настройки Xrandr должны быть изменены в соответствии с вашими.

11
ответ дан 11 December 2013 в 19:07

У меня возникла проблема с желанием расширить отображение на моем новом LXDE-боксе (не двойном клоне), я нашел правильную команду, но не смог сделать ее постоянной.

xrandr --output VGA-0 --right-of DVI-0

Все вышеперечисленные методы казались слишком сложными / нет как это сделать.

В конце концов я нашел вот что: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/

Это сработало, но вместо этого я использовал gedit:

gksu gedit /etc/xdg/lxsession/LXDE/autostart

Затем добавил строку в заканчиваться символом @ в начале:

@xrandr --output VGA-0 --right-of DVI-0

Надеюсь, что это поможет, и спасибо sudo-juice.

PS Обратите внимание на двойное - в команде xrandr - ( не слишком четко отображались на моем экране)

4
ответ дан 11 December 2013 в 19:07

Создайте новый документ и назовите его, например /home/yourusername/yourscriptname.sh Введите

#!/bin/bash
xrandr --newmode "1600x900_60.00"  118.25  1600 1696 1856 2112  900 903 908 934 -hsync +vsync
xrandr --addmode VGA1 1600x900_60.00
xrandr --output VGA1 --mode 1600x900_60.00
unity --replace

и сохраните его в своей домашней папке (при этом будет установлено разрешение 1600x900).

Откройте Startup Applications (или запустите gnome-session-properties ) и щелкните " ДОБАВИТЬ". Дайте имя и введите в командной строке:

bash /home/yourusername/yourscriptname.sh

Сохраните его, и теперь скрипт будет запускаться каждый раз при входе в систему, поэтому вам нужно сначала выйти из системы, чтобы он вступил в силу. Выполнение команды (например, bash /home/yourusername/yourscriptname.sh) в терминале также было бы хорошей идеей, чтобы проверить, работает ли сценарий.

2
ответ дан 11 December 2013 в 19:07

В качестве улучшения для ответа Джона Робертса позвольте мне указать, что arandr не включает в свою генерацию сценария sh все параметры, работающие в текущем сеансе. Например, основной монитор (если вы используете конфигурацию с двумя мониторами), частота обновления и настройки гаммы для каждого монитора не включены. Мой сценарий сеанса выглядит так:

#!/bin/sh
xrandr --output LVDS --mode 1366x768 --pos 1600x432 --rotate normal --output HDMI-0 --off --output DVI-0 --off --output VGA-1 --mode 1600x1200 --rate 85 --pos 0x0 --rotate normal --primary
xrandr --output VGA-1 --gamma 0.8:0.7:0.55 

Я вручную добавил параметры --rate и --primary в первую строку, а затем вручную добавил вторую строку с гамма-коррекцией, потому что, очевидно, настройки гаммы xrandr теряются при переключении монитор на первичный .

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

Более того, сценарий оболочки сеанса вызывается не lightdm, а как запускаемое приложение, потому что кажется, что lightdm вызывает скрипт до того, как все будет готово для xrandr, и произойдут странные вещи.

4
ответ дан 11 December 2013 в 19:07

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

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