Я использовал для редактирования сценария запуска для GDM (/ etc / gdm / Init / Default), чтобы навсегда изменить разрешение экрана.
Как я могу сделать это с LigthDM в Ubuntu Oneiric?
Я использовал для редактирования сценария запуска для GDM (/ etc / gdm / Init / Default), чтобы навсегда изменить разрешение экрана.
Как я могу сделать это с LigthDM в Ubuntu Oneiric?
Ответы:
Я думаю, что вы можете добавить режимы отображения /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]
cvt
команды, и драйвер из другой (и vesa
тоже попробовал ), но он просто завис без сообщений об ошибках. Решение Джона Робертса отлично сработало для меня и не зависит от таких вещей, как драйвер видеокарты, о котором вы здесь упомянули, что может легко пойти не так для новичков, поэтому я голосую за его ответ.
lshw
вывод i915
, однако правильный драйвер есть intel
.
Изменить, /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 не начнется.
display-setup-script
скрипт, так как Xfce уже установил его в настройках дисплея, так что я session-setup-script
просто выбросил меня на экран входа в систему.
Кто-то опубликовал другой обходной путь, хотя я должен сказать, что это не сработало для меня. Это может сработать для вас. В моем случае это нарушает единство, и я могу только перемещать курсор мыши. Верхняя панель индикатора приложения выглядит пустой, но после отключения моего ЖК-дисплея я смог удалить добавленные строки, и все вернулось в нормальное состояние.
редактировать файл /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, просто больше не работают должным образом, это Единственное решение, которое я нашел, работает.
Удачи!
xrandr -q
должно дать вам правильную информацию о том, какой дисплей используется и возможные режимы.
Xorg :1 -configure
, который создает новый X-сервер и генерирует из него файл конфигурации - его можно скопировать из /root/xorg.conf.new
в /etc/X11/xorg.conf
. Я нашел лучший способ был ответ выше
У меня была похожая проблема с моим ноутбуком, как и выше, и я хотел добавить что-то в разговор. Если вас не волнует разрешение входа в систему (я не интересуюсь), но вы хотите, чтобы фактическое рабочее пространство было правильным разрешением, вы можете добавить информацию о мониторе в 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
) в терминале также было бы хорошей идеей, чтобы проверить, работает ли скрипт.
/usr/bin
, не сработало, но добавление этого скрипта в мои приложения запуска gnome-session-properties
было успешным!
Основываясь на ответах выше, я провел некоторый тест и нашел полезный метод, который мне подходит, затем я создал простой скрипт для его автоматизации с помощью автоматической установки. Но это будет работать в любых других случаях.
Создайте скрипт. 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://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
Измените это, чтобы ноги ваши потребности. С уважением. Пабло.