Как я могу сделать настройку xrandr постоянной?
Я использовал для редактирования сценария запуска для GDM (/etc/gdm/Init/Default), чтобы навсегда изменить разрешение экрана.
Как я могу сделать это с LigthDM в Ubuntu Oneiric?
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]
Изменять /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" для генерации вышеуказанного скрипта sh, выбирая параметры из X-конфигурации вашего текущего сеанса.
Убедитесь, что ваш скрипт является исполняемым:
chmod a+x /usr/share/mycustom*video.sh
и вы можете проверить, что он работает (то есть, что в вашей команде xrandr нет опечаток или ошибок конфигурации), просто запустив его в терминале:
/usr/share/mycustomdesktopvideo.sh
Если сценарий входа по какой-либо причине не работает, ваш компьютер может не завершить процесс загрузки до экрана входа в систему. Если сценарий рабочего стола завершится неудачно, вы можете не получить рабочий стол после входа в систему. Если вы настраиваете внешний монитор, эти сценарии завершатся неудачно, когда вы отключите его, и сеанс X не начнется.
Кто-то опубликовал другой обходной путь, хотя я должен сказать, что это не сработало для меня. Это может сработать для вас. В моем случае это нарушает единство, и я могу только перемещать курсор мыши. Верхняя панель индикатора приложения выглядит пустой, но после отключения ЖК-дисплея я смог удалить добавленные строки, и все вернулось в нормальное состояние.
редактировать файл /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 должны быть изменены в соответствии с вашими.
Я пытался решить подобную проблему некоторое время и нашел решение, которое работает для меня, так что, надеюсь, оно поможет...
У меня есть старый 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
Важные биты для добавления находятся под соответствующими Section "Monitor"
включить соответствующий Modeline
что вы нашли при использовании gtf 1440 900 60.00
а затем под соответствующим Section "Screen"
в том числе правильный Modes
,
Вы заметите, что я пытался не только установить подходящее разрешение для подключения VGA1, но и запретить использовать выход LVDS1. Очевидно, что вам нужно будет настроить свои параметры соответствующим образом, чтобы соответствовать нужному количеству выходов и нужным разделам "Устройство", "Экран" и "Дисплей" для вашей настройки.
Извините за эпический пост, я уже некоторое время настраиваю файлы xorg.conf с использованием дисплея Hannspree, который я использовал, и старых настроек xorg.conf, которые я использовал до 11.10, просто больше не работают должным образом, это Единственное решение, которое я нашел, работает.
Удачи!
У меня была похожая проблема с моим ноутбуком, как и выше, и я хотел добавить что-то в разговор. Если вас не волнует разрешение входа в систему (я не интересуюсь), но вы хотите, чтобы фактическое рабочее пространство было правильным разрешением, вы можете добавить информацию о мониторе в 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
После входа в систему я могу настроить монитор в дисплеях, и он работает, даже после повторного входа в систему (раньше это приводило к большой ужасной ошибке).
В качестве дополнения к ответу Джона Робертса позвольте мне указать, что 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, и происходят странные вещи.
У меня была проблема с желанием иметь расширенное отображение на моем новом компьютере 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-соку.
PS Обратите внимание на двойной -
в команде xrandr --
(не показывался слишком четко на моем экране).
Создайте новый документ и назовите его, например, /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
) в терминале также было бы неплохо проверить, работает ли скрипт.
Основываясь на ответах выше, я провел некоторый тест и нашел полезный метод, который мне подходит, затем я создал простой скрипт для его автоматизации с помощью автоматической установки. Но это будет работать в любых других случаях.
Создать скрипт installxrandrfixed.sh Добавьте эти строки:
#Variables for lightdm script and xrandr script to setup 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 /etc/lightdm/lightdm.conf.d
#A fix to some old displays in high school at Fray Bentos, fix to 1024x768
#Some useful information comes from: http://Ask-ubuntu.ru/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
Измените это, чтобы ноги ваши потребности. С уважением. Пабло.