Kiedyś edytowałem skrypt startowy dla GDM (/ etc / gdm / Init / Default), aby trwale zmienić rozdzielczość ekranu.
Jak mogę to zrobić za pomocą LigthDM w Ubuntu Oneiric?
Kiedyś edytowałem skrypt startowy dla GDM (/ etc / gdm / Init / Default), aby trwale zmienić rozdzielczość ekranu.
Jak mogę to zrobić za pomocą LigthDM w Ubuntu Oneiric?
Odpowiedzi:
Myślę, że możesz dodać tryby wyświetlania do /etc/X11/xorg.conf
.
Jeśli nie masz xorg.conf
, możesz użyć następujących podstaw. Trzeba wymienić wpisy z nazwiskami Modeline
, Driver
oraz Modes
z odpowiednimi wpisami w systemie. W zależności od sprzętu mogą być potrzebne dodatkowe wpisy, na przykład jeśli twój system ma więcej niż jeden układ graficzny.
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
Jeśli nie znasz nazwy sterownika wideo, którego używa twój system, możesz uzyskać nazwę w następujący sposób (jeśli masz układ graficzny Intel, nazwa sterownika to po prostu „intel”):
lshw -class display | grep "driver"
Modelki można generować za pomocą cvt
:
cvt <h-resolution> <v-resolution> [refresh]
cvt
polecenia i sterownika z drugiej (i vesa
też próbowałem ), ale po prostu zawiesił się bez komunikatów o błędach. Rozwiązanie Jona Robertsa działało dla mnie idealnie i jest niezależne od takich rzeczy, jak wspomniany tutaj sterownik karty graficznej, który może łatwo pójść nie tak dla początkujących, dlatego głosuję za jego odpowiedzią.
lshw
wyjście i915
, jednak prawidłowy sterownik to intel
.
Zmodyfikuj, /etc/lightdm/lightdm.conf
aby dodać następujące opcje:
display-setup-script> wywołuje plik mycustomloginvideo.sh, zanim pojawi się ekran logowania
session-setup-script> wywołuje plik mycustomdesktopvideo.sh przed rozpoczęciem sesji pulpitu użytkownika
[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
Być może narzędzie GUI „arandr” generuje powyższy skrypt sh, wybierając parametry z konfiguracji X bieżącej sesji.
Upewnij się, że skrypt powłoki jest wykonywalny:
chmod a+x /usr/share/mycustom*video.sh
i możesz przetestować, czy to działa (tj. czy nie ma literówek ani błędów konfiguracji w poleceniu xrandr), po prostu uruchamiając go w terminalu:
/usr/share/mycustomdesktopvideo.sh
Jeśli skrypt logowania nie działa z jakiegokolwiek powodu, komputer może nie ukończyć procesu rozruchu na ekranie logowania. Jeśli skrypt na pulpicie się nie powiedzie, możesz nie uzyskać pulpitu po zalogowaniu. Jeśli ustawiasz monitor zewnętrzny, skrypty te zakończą się niepowodzeniem po jego odłączeniu, a sesja X nie rozpocznie się.
display-setup-script
skryptu, ponieważ Xfce miał go już ustawiony w ustawieniach wyświetlania, więc po session-setup-script
prostu zrzuciłem mnie na ekranie logowania.
Ktoś opublikował inne obejście, chociaż muszę powiedzieć, że to nie działało dla mnie. Prawdopodobnie może to działać dla Ciebie. W moim przypadku łamie jedność i mogę jedynie przesuwać kursor myszy. Górny panel wskaźnika aplikacji wygląda na pusty, ale po odłączeniu wyświetlacza LCD udało mi się usunąć dodane linie i wszystko wróciło do normy.
edytować plik /usr/sbin/lightdm-session
Oto jak wygląda teraz pierwsza część tego pliku:
#!/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
Pamiętaj, że ustawienia Xrandr powinny zostać dostosowane do twoich.
Od jakiegoś czasu próbuję rozwiązać podobny problem i znalazłem rozwiązanie, które działa dla mnie, więc mam nadzieję, że pomoże ...
Mam starą aspirującą wersję AOA110, na której zbyt wiele razy zepsułem ekran i po zakupie nowego laptopa zdecydowałem, że spróbuję go przekształcić w HTPC, ale X nie rozpoznaje zewnętrznego wyświetlacza, więc musiałem „poprawiaj” go wiele razy, aby działał we właściwej rozdzielczości.
Oto co zrobiłem:
Po skorzystaniu z tego http://ubuntuforums.org/showthread.php?t=1112186 tutoriala do kroku 5 udało mi się znaleźć działającą i akceptowalną rozdzielczość w xrandr, ale to nie działało na ekranie logowania LightDM.
Nie postępuj zgodnie z instrukcjami, aby utrwalić powyższe wskazówki, jak to może działać, ale myślę, że jest to właściwy sposób, aby to zrobić w 11.10. Znalazłem ten post na ArchWiki https://wiki.archlinux.org/index.php/Xorg, który dostosowałem do moich potrzeb.
Najpierw utwórz plik tutaj: /etc/X11/xorg.conf.d/10-monitor.conf
Dodaj tutaj odpowiednie szczegóły X dla swojego wyświetlacza, jak wyglądał mój:
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
Ważne bity, które należy dodać, znajdują się pod odpowiednimi, Section "Monitor"
obejmującymi odpowiednie Modeline
znalezione podczas używania, gtf 1440 900 60.00
a następnie pod odpowiednimi, w Section "Screen"
tym poprawnymi Modes
.
Zauważysz, że próbowałem nie tylko ustawić połączenie VGA1 na odpowiednią rozdzielczość, ale także powiedzieć, aby nie korzystało z mojego wyjścia LVDS1. Oczywiście będziesz musiał odpowiednio dostosować swój, aby dopasować odpowiednią liczbę wyjść i odpowiednie sekcje Urządzenie, Ekran i Wyświetlacz do konfiguracji.
Przepraszam za epicki post, od jakiegoś czasu poprawiam pliki xorg.conf za pomocą wyświetlanego przeze mnie Hannspree, a stare ustawienia xorg.conf, których użyłem przed 11.10, po prostu nie działają poprawnie, to jest jedyne rozwiązanie, które znalazłem, które działa.
Powodzenia!
xrandr -q
powinno dać ci właściwe informacje o tym, który wyświetlacz jest używany i możliwe tryby.
Xorg :1 -configure
, co czyni nowy serwer X i generuje plik konfiguracyjny od niego - może to be skopiowany z /root/xorg.conf.new
do /etc/X11/xorg.conf
. Znalazłem lepszy sposób na powyższą odpowiedź
Miałem podobny problem z laptopem jak powyżej i chciałem coś dodać do rozmowy. Jeśli nie zależy Ci na rozdzielczości logowania (ja nie), ale chcesz, aby rzeczywisty obszar roboczy był odpowiedniej rozdzielczości, możesz dodać informacje o monitorze do LightDM, ale nie włączać pełnej rozdzielczości, dopóki się nie zalogujesz.
Właśnie dodałem następujący skrypt dla mojego monitora w pliku: lighdmxrandr
xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync
xrandr --addmode VGA1 1440x900_60.00
potem dzwonię /etc/lightdm/lightdm.conf
display-setup-script=/usr/bin/lightdmxrandr
Po zalogowaniu mogę skonfigurować monitor w Monitory i działa, nawet po ponownym zalogowaniu (używany, aby dać mi duży brzydki błąd).
Jako rozszerzenie odpowiedzi Jona Robertsa, pozwól mi zaznaczyć, że arandr nie uwzględnia w swoim generowaniu skryptu sh wszystkich parametrów działających w bieżącej sesji. Główny monitor (w przypadku korzystania z konfiguracji z dwoma monitorami), na przykład nie są uwzględnione ustawienia częstotliwości odświeżania i gamma dla każdego monitora. Mój skrypt sesji wygląda następująco:
#!/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
Ręcznie dodałem --rate i --primary opcje w pierwszej linii, a następnie ręcznie dodałem drugą linię z korekcją gamma, ponieważ najwyraźniej ustawienia gamma xrandr są tracone za każdym razem, gdy przełączysz monitor na główny .
Nie wiem, czy to konkretne zachowanie z ustawieniami gamma podczas ustawiania monitora jako pierwotnego jest zamierzone czy jest błędem.
Co więcej, skrypt powłoki sesji nie jest wywoływany przez lightdm, ale jako aplikacja startowa, ponieważ wydaje się, że lightdm wywołuje skrypt, zanim wszystko będzie gotowe na xrandr i zdarzają się dziwne rzeczy.
Miałem problem z tym, że chciałem rozszerzyć wyświetlanie na moim nowym oknie LXDE (nie podwójnym klonie), znalazłem poprawne polecenie, ale nie mogłem uczynić go trwałym.
xrandr --output VGA-0 --right-of DVI-0
Wszystkie powyższe metody wydawały się zbyt trudne / niewłaściwe.
W końcu znalazłem to: http://www.sudo-juice.com/change-lxde-screen-resolution-ubuntu-lubuntu/
To działało, ale zamiast tego użyłem gedit:
gksu gedit /etc/xdg/lxsession/LXDE/autostart
Następnie dodano linię na końcu z symbolem @ na początku:
@xrandr --output VGA-0 --right-of DVI-0
Mam nadzieję, że to pomaga i dziękuję sokowi sudo.
PS Zwróć uwagę na podwójne -
polecenie xrandr --
(nie wyświetlało się zbyt wyraźnie na moim ekranie).
Utwórz nowy dokument i nazwij go, np. /home/yourusername/yourscriptname.sh
Wpisz
#!/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
i zapisz go w folderze domowym (ustawia to rozdzielczość na 1600 x 900)
Otwórz aplikacje startowe (lub uruchom gnome-session-properties
) i kliknij „DODAJ”. Podaj nazwę i wpisz w wierszu polecenia:
bash /home/yourusername/yourscriptname.sh
Zapisz go, a teraz skrypt będzie uruchamiany przy każdym logowaniu, więc musisz się najpierw wylogować, aby zadziałał. Uruchomienie polecenia (np. bash /home/yourusername/yourscriptname.sh
) W terminalu byłoby również dobrym pomysłem, aby sprawdzić, czy skrypt działa.
/usr/bin
nie działało, ale dodanie tego skryptu do moich aplikacji startowych gnome-session-properties
zakończyło się powodzeniem!
W oparciu o odpowiedzi górne, przeprowadziłem test i znalazłem przydatną metodę, która mi odpowiada, a następnie stworzyłem prosty skrypt, aby zautomatyzować go za pomocą moich automatycznych instalacji. Ale zadziała w innych przypadkach.
Utwórz scriptinstallxrandrfixed.sh Dodaj następujące wiersze:
#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
stworzy skrypty i pliki do wyświetlania i sesji lightdm. nie zapomnij wyrazić zgody na wykonanie
chmod + x scriptinstallxrandrfixed.sh
I wykonaj
./scriptinstallxrandrfixed.sh (musisz znajdować się w tym samym katalogu, w którym znajduje się plik).
jeśli nie znajduje się w tym samym katalogu: /path/to/script/scriptinstallxrandrfixed.sh
Zmodyfikuj go do swoich potrzeb. Z poważaniem. Pablo.