Resolusi Layar Login Salah


44

Pada kesempatan aneh, biasanya setelah salah me-restart komputer saya, resolusi layar login saya bukan 1440x900 default, tapi saya pikir 1600x900. Sekarang, saya memiliki monitor ini yang benar-benar buruk dalam menangani resolusi yang tidak dirancang untuk ditangani, dan akan menampilkan kotak "resolusi salah" konyol yang melompat-lompat di layar.

Apakah ada cara untuk membuat layar masuk memuat resolusi 1440x900 tidak peduli apa? Saya menjalankan Ubuntu 11.10 dengan Unity dan LightDM.


Bagi saya, dari semua solusi, hanya yang ini yang bekerja di 18,04 menjalankan lightdm: askubuntu.com/questions/507726/…
Takkat

Jawaban:


40

Anda dapat membuat skrip untuk ini (sumber Resolusi LightDM ).

  1. Pertama, kita perlu mencari tahu apa pengidentifikasi monitor Anda. Buka terminal, mulai mengetik terminaldalam kesatuan dasbor Anda untuk melihat opsi atau tekan Ctrl+ Alt+T
  2. Ketik / salin perintah ini untuk menampilkan detail tampilan Anda:

    xrandr -q
    

    Jika Anda hanya memiliki satu monitor, Anda akan melihat garis di output seperti berikut (mungkin dengan beberapa nilai yang berbeda, ini adalah pengenal di awal yang kita cari):

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

    Pengidentifikasi layar adalah DVI-0 dalam hal ini

  3. Buka editor teks favorit Anda, mari gunakan gedit untuk contoh ini, tekan Alt+ F2dan ketikgedit

  4. Ketik / salin ini di:

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

    Simpan ini di desktop Anda sebagai lightdmxrandr.sh

  5. Anda mungkin ingin menguji skrip sebelum kami mempraktikkannya. Kembali di terminal navigasikan ke tempat kami menyimpannya:

    cd ~/Desktop
    

    Sekarang kita perlu membuatnya bisa dieksekusi:

    chmod a+rx lightdmxrandr.sh
    

    Sekarang jalankan:

    ./lightdmxrandr.sh
    

    (Jika layar Anda secara otomatis mengoreksi setelah masuk, Anda mungkin tidak akan melihat perbedaan sehingga Anda mungkin ingin menggunakan resolusi tes yang berbeda tetapi Anda tahu berfungsi saat pengujian)

  6. Sekarang mari kita pindahkan skrip kecil yang kami buat:

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

    Jika Anda tidak menggunakan sudoAnda mungkin mendapatkan kesalahan izin (saya menggunakan folder ini karena preferensi pribadi)

  7. Kita sekarang perlu menjalankan ini di lightdm, arahkan ke folder yang benar:

    cd /etc/lightdm
    
  8. Buka file conf lightdm:

    sudo gedit lightdm.conf
    
  9. Sekarang tambahkan instruksi untuk menjalankan skrip Anda setelah baris terakhir dan simpan:

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

Sekarang reboot dan itu harus mengatur resolusi yang benar pada layar login lightdm Anda.

(instruksi ini mungkin terlihat panjang tetapi tidak butuh waktu lama)


1
Terima kasih! Saya menggunakan skrip Leon yang disebutkan di bawah ini. askubuntu.com/a/88882/28071
beanaroo

Itu skrip yang bagus, pikir saya akan menyimpannya untuk digunakan di masa depan!
captain_G

Sayangnya ini hanya memecah hal-hal di Ubuntu 13.04. Mungkin karena mereka telah membuat beberapa perubahan besar pada OS.
Patrick

Juga tidak berfungsi dengan Ubuntu 13.10 + driver NVIDIA 319: Script dieksekusi tetapi resolusinya tidak berubah - mungkin karena driver NVIDIA menimpanya.
Speakr

Saya pikir itu chown root:rootjuga harus ?
Aquarius Power

38

Saya menemukan solusi yang sangat sederhana yang bekerja sempurna untuk saya menjalankan 13,04. ( perbarui : sekarang 13.10) pada laptop dengan layar eksternal 24 "yang tidak terhubung secara permanen.

Saya hanya akan menyalin dari sini

  1. Gabung
  2. gunakan xrandr atau utilitas kontrol Layar untuk mengonfigurasi monitor Anda bagaimana Anda ingin mereka dikonfigurasikan di layar masuk
  3. salin ~ / .config / monitor.xml ke /var/lib/lightdm/.config

Karena monitor saya sudah terkonfigurasi dengan benar, saya hanya perlu melakukan langkah 3.

Beberapa jawaban lain yang diberikan di sini berfungsi untuk saya tetapi hanya dalam skenario tertentu saat menjalankan risiko sistem yang tidak dapat digunakan dalam skenario lain (LOW GRAPHICS MODE ERROR). Misalnya dengan monitor eksternal terhubung secara permanen (jawaban diterima oleh @captain_G) atau dengan selalu perangkat yang sama terhubung ke output yang digunakan untuk monitor eksternal (skrip oleh @Axlrod). Tampaknya jawaban @ MarcoV adalah solusi yang paling umum, namun itu masih melibatkan aturan skrip.


4
Jauh lebih sederhana daripada jawaban lain ... Saya ingin tahu mengapa tidak memiliki lebih banyak suara. Yah, itu punya milikku.
aap

Kemudian lagi, meskipun memang membantu layar login, alangkah baiknya jika pengguna lain tidak perlu mengatur resolusi tampilan lagi.
aap

3
Alih-alih menyalin file, buat tautan ke sana agar diperbarui secara otomatis setiap kali Anda mengubah pengaturan layar Anda: $ sudo ln ~/.config/monitors.xml /var/lib/lightdm/.config/monitors.xml(Tidak, tautan simbolis JANGAN bekerja.)
Nathan JB

3
Aplikasi mana yang menulis / memperbarui monitors.xml? Saya menggunakan XFCE dan file ini berumur 2 tahun dan sepenuhnya ketinggalan jaman. Saya tidak dapat menemukan file yang serupa.
scai

1
Ini adalah pendekatan yang benar sebagai lawan membuat skrip untuk mengubah resolusi. .config / monitor.xml dapat mendukung beberapa konfigurasi monitor (mis. pengaturan Anda bekerja dengan dock dan 2 monitor vs pengaturan Anda di rumah tanpa dock dan 1 monitor eksternal). Membuat skrip manual untuk mengatur resolusi akan relatif lebih rumit untuk dilakukan
Iyad K

20

Anda dapat alih-alih membuat skrip, cukup tambahkan ke file /etc/lightdm/lightdm.confbaris seperti ini:

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

Sebelum memasukkan pastikan perintah itu berfungsi, karena dengan perintah yang salah, lightdm tidak akan memulai.


Hai, xrandperintah Anda mengatakan:warning: output default not found; ignoring
SebMa

@SebMa Anda harus menggunakan nama keluaran yang benar!
Ken Sharp

2

Untuk pengaturan multi monitor di mana Anda dapat melepas laptop Anda dan menggunakannya tanpa, berikut adalah solusi sederhana:

Lari:

xrandr

Dapatkan perangkat yang Anda gunakan laptop biasanya LVDS1, dan bagi saya saya memiliki DP2 (displayport 2) itu bisa HDMI1 atau apa pun, hanya menemukan yang dengan resolusi tercantum di sebelahnya.

Buat file bash kecil ini:

#!/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

Ganti LVDS1 dengan koneksi monitor laptop Anda.

Ganti DP2 dengan koneksi monitor eksternal Anda.

Tempatkan skrip bash di / usr / bin / local /

chmod + x skrip

edit /etc/lightdm/lightdm.conf

Menambahkan

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

Mulai ulang.

Perubahan resolusi hanya akan terjadi ketika Anda benar-benar berada di tampilan itu sekarang.

Jika Anda memiliki banyak tempat dengan monitor / resolusi berbeda pada konektor yang sama, Anda harus menambahkan lebih banyak kecerdasan dalam skrip bash Anda.


2

Hanya sedikit memperbaiki skrip Axlrod di atas .

Yang perlu Anda lakukan adalah menentukan monitor mana yang akan digunakan utama, dan yang merupakan tampilan laptop Anda (LVDS).

#! / bin / bash
LVDS = "LVDS-0"
PRIMARY = "VGA-0"

fungsi get_displays ()
{
        xrandr -q | grep terhubung | awk '{print $ 1}'
}

fungsi get_resolution ()
{
        [[-z "$ 1"]] && mengembalikan 0 || xrandr -q | grep -A1 $ 1 | ekor -1 | awk '{print $ 1}' | grep -e "^ [0-9]"
}

untuk tampilan dalam $ (get_displays); melakukan
        resolusi = `get_resolution $ display`

        [[$ display == $ PRIMARY]] && arg = "- primer";
        [[-n $ resolution]] && mode = "- mode $ resolution";

        if [[$ display == $ LVDS]]; kemudian
                xrandr --output $ display --off
        elif [[-n $ mode]]; kemudian
                xrandr --output $ display $ arg $ mode
        fi
        resolusi arg mode tidak disetel;
Selesai

1
sudo gedit /usr/share/X11/xorg.conf.d/52-myres.conf

lalu di file:

Section "Monitor"
    Identifier "VGA1"
    Option "PreferredMode" "1152x864"
EndSection

Simpan dan keluar. Nilai diperoleh dari perintah xrandr -q. VGA1adalah nama konektor saya dan 1152x864merupakan nama resolusi.

Ini berfungsi untuk Xubuntu 16.04. Ini menetapkan resolusi yang lebih disukai dan bagi saya itu membiarkan saya mengatur resolusi layar login, daripada memilikinya default ke resolusi tertinggi yang didukung.

Dimodifikasi dari jawaban di sini


1
Setelah menginstal open-vm-tools dan open-vm-tools-desktop, menyalin monitor.xml ke /var/lib/lightdm/.config tidak lagi berfungsi untuk saya. Menentukan resolusi yang disukai seperti ini memperbaikinya untuk saya.
jropella

1

Apa yang menurut saya bermanfaat adalah sebuah posting di situs web panduan Ubuntu . Saya mencoba banyak hal di Ubuntu 11.10 dan bahkan mencoba menggunakan GNOME Classic. Resolusi selalu 1024x768 dan ketika saya mengaturnya secara manual ke 1440x900 itu adalah "virtual", maksud saya saya harus gulir dengan mouse untuk menjelajahi seluruh desktop yang berada di luar dimensi layar nyata.

Di Terminal saya menjalankan perintah ini:

sudo gedit /etc/default/grub

Editor teks dapat memakan waktu cukup lama untuk memuat. Setelah dimuat, saya mengedit baris

GRUB_GFXMODE=1024x768

dan mengubahnya menjadi:

GRUB_GFXMODE=1440x900

Ingatlah untuk menjalankan update-grubuntuk menerapkan perubahan.

Setelah itu saya mencoba menginstal ulang driver VESA (di komputer ini saya punya GeForce 260 GTX). Saya tahu bahwa cara yang lebih baik adalah menggunakan driver resmi Nvidia, tetapi menggunakan mereka masalahnya selalu sama ... Tentu, saya pikir, sekarang kinerjanya akan lebih buruk.

Jadi, memeriksa panel Pengaturan Server Nvidia X saya memverifikasi bahwa resolusi saya telah ditambahkan dan, beralih ke sana, itu membuat layar di tampilan yang benar. Sebenarnya saya menggunakan Ubuntu 11.10 tetapi dalam GNOME Classic.

Saya seorang pemula Linux jadi saya harap saya telah menulis hal-hal yang layak.


0

Jangan main-main dengan skrip atau file konfigurasi yang memiliki kemungkinan membuat layar login Anda tidak dapat digunakan!

Alih-alih, masuk dan atur pengaturan layar pilihan Anda *, lalu jalankan perintah ini:

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

Resolusi login Anda sekarang akan selalu mencerminkan pengaturan pengguna yang saat ini Anda masuki.

* Jangan lupa klik "Terapkan"


Ini berfungsi tetapi ini sekunder. Itu memuat normal dalam resolusi maks dan kemudian beralih ke pengaturan Anda. Bagaimana Anda membuatnya memuat resolusi yang benar untuk memulai?
Goddard

0

Skrip Axelrod agak rusak, karena grep untuk 'terhubung' juga mengambil semua tampilan 'terputus' ... bukan yang kita inginkan ...

Selain itu, menggunakan grep dengan awk dan tail, dll ... adalah pemborosan, dan saya sarankan sebagai berikut di sini. Selain itu, dalam get_resolution kami mengubah kode kembali ke 1, karena kode kembali nol biasanya menunjukkan kurangnya kesalahan, jadi kami menggunakan 1 jika parameter pertama tidak ada.

Sebagai kesimpulan, dengan membuat bagian utama dari skrip fungsi, itu dapat bersumber dan dieksekusi pada waktu lebih jauh jika perlu di perpustakaan fungsi serta mendapatkan penggunaan variabel lokal, yang tidak perlu disetel.

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

Ini adalah bagaimana saya membuatnya bekerja di Xubuntu 16.04.

Anda perlu mendapatkan string untuk resolusi yang diinginkan. Ini dalam hasil perintah:

xrandr --verbose

Sekarang pilih bagian dengan resolusi yang Anda inginkan. Ini akan terlihat seperti:

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

Dari data di atas Anda harus mendapatkan string 108.000 1152 1216 1344 1600 864 865 868 900 +HSync +VSync.

Untuk menemukan nama output Anda, temukan garis yang serupa juga:

VGA1 connected 1152x864+0+0 (0xa4) normal (normal left inverted right x axis y axis) 306mm x 230mm

Di sini output saya dinamai VGA1.

Sekarang buat skrip:

sudo gedit /usr/share/lightdmxrandr.sh

Kemudian di file tulis yang berikut ini:

#!/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

Simpan dan tutup file. Jadikan skrip dapat dieksekusi:

sudo chmod a+rx /usr/share/lightdmxrandr.sh

Buat file config untuk memanggil skrip yang baru saja dibuat.

sudo gedit /etc/lightdm/lightdm.conf.d/00-myres.conf

di dalam file ini masukkan:

[Seat:*]
display-setup-script=/usr/share/lightdmxrandr.sh

Simpan dan tutup file. Mulai ulang dan mudah-mudahan resolusi yang Anda pilih akan ada di login Anda.

Dalam istilah praktis, ini adalah satu-satunya cara yang berhasil bagi saya, meskipun menciptakan kembali resolusi yang ada tidak logis.

Jawaban diubah dari pertanyaan ini .

catatan

Cara alternatif untuk mendapatkan string resolusi panjang adalah program cvt. Untuk mendapatkan string untuk resolusi 1152x864, refresh rate 75.00:

cvt 1152 864 75

Ini memberi saya resolusi yang sedikit berbeda dari resolusi desktop saya, dan itulah alasan saya tidak memasukkan metode dalam jawaban utama.


0

Jika Anda menggunakan penyambut GTDM LightDM maka Anda dapat menjalankan xrandr -quntuk menemukan nama-nama monitor Anda kemudian mengedit /etc/lightdm/lightdm-gtk-greeterdan mengatur properti active-monitorseperti yang dijelaskan dalam komentar di dalam file itu. Properti ini dapat mengambil banyak, nilai yang diurutkan termasuk #cursoruntuk monitor yang saat ini menunjukkan kursor mouse.


0

saya ingin melampirkan skrip saya yang mengonfigurasi monitor ke salah satu tombol multimedia di keyboard saya yang tidak saya gunakan. Saat ini saya memiliki tombol berlabel 'windows media center' memaksa tampilan saya ke dalam konfigurasi pilihan mereka. dengan cara ini jika Anda terbang buta dan monitor Anda tidak disinkronkan ke resolusi yang diinginkan, cukup tumbuk tombol pintas dan semuanya sudah diperbaiki.


-1

"Mode Layar Pilihan" mungkin Masalahnya

Saya berasumsi bahwa monitor Anda melaporkan resolusi layar tinggi sebagai yang lebih disukai. Sekarang Anda ingin mengganti preferensi default ini . Lihat jawaban saya untuk pertanyaan yang sangat mirip untuk perincian tentang bagaimana hal ini dapat dilakukan.

Saya memiliki masalah sebaliknya: Saya selalu mendapatkan resolusi layar yang lebih rendah (1280x1024) daripada yang saya inginkan (1600x1200). Perbaikan yang saya temukan (dan dijelaskan dalam jawaban yang ditautkan) diharapkan akan berlaku secara analog dengan masalah Anda.


Siapa pun yang memilih jawaban saya, dapatkah Anda menambahkan catatan mengapa menurut Anda jawaban ini tidak berguna?
Chriki

-2

Saya memiliki masalah yang sama pada MacBook Pro saya pertengahan 2014 (11,1) menjalankan Xenial. Saya telah mencoba semua solusi yang disebutkan di atas dalam berbagai bentuk, tetapi selalu akan membuat X masuk ke mode grafis rendah yang gagal (tetapi ditampilkan dalam resolusi yang saya inginkan untuk diset sebagai standar tidak kurang.

Setelah banyak bertengkar tentang forum dan googling, ternyata saya telah melupakan solusi potensial paling sederhana dan standar: nomodeset. Itu memperbaiki masalah.

TL; DR: Jangan lupa untuk mencoba nomodeset! Esp. pada MacbookPro 11,1.


-3

Saya telah membuat skrip ini untuk membuatnya lebih dinamis (beberapa ruang kerja / monitor berbeda).

Hanya gangguan: ketika Anda masuk dari lightdm, layar masih berkedip seperti ingin mengubah resolusi: s


1
Tempel tidak ditemukan.
Tobold

Memang; jika Anda masih memiliki salinan skrip lokal, harap pertimbangkan untuk mengunggahnya kembali.
wchargin

1
Saya telah mengunggah skrip ke github. Saya tidak tahu mengapa paste.ubuntu.com menghapusnya :(
Leon
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.