Jak uzyskać rozdzielczość monitora zewnętrznego ustawioną przez xrandr, aby zachować

11

tl; dr

Mój laptop wciąż zapomina o prawidłowej rozdzielczości podłączonego do niego monitora zewnętrznego. Jak mogę sprawić, by konfiguracja „pozostała”?

Detale

Mam laptopa z systemem Linux Mint podłączonym do zewnętrznego monitora ViewSonic. Skonfigurowałem go tak, aby używał zewnętrznego monitora jako drugiego ekranu (tj. Nie dublowanego). To działało dobrze przez kilka tygodni.

Nagle laptop przestał rozpoznawać go jako ViewSonic, w którym to momencie nie znał swojej optymalnej rozdzielczości ( 1600 x 1200), pozwalając jedynie na maksymalnie 1028 x 768. 1 To nie działało dobrze z moim laptopem, który ma 1920 x 1200rozdzielczość.

Po wielu frustracjach znalazłem tę odpowiedź . Pomogło mi to rozwiązać problem w następujący sposób (wynikiem cvtpolecenia jest modeline, który został użyty w następnym poleceniu):

cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

To jest dokładnie to, co zostało chcąc mogłem zrobić, ale nie może zrobić za pośrednictwem GUI. (Są powody, dla których nadal uwielbiam wiersz poleceń ...)

To po raz kolejny działało dobrze przez pewien czas. Jednak gdy dzisiaj uruchomiłem komputer i zalogowałem się, pojawiło się okienko powiadomień z ciągiem błędów dotyczących różnych niedziałających trybów, a monitor zewnętrzny został wyłączony. Powtórzyłem powyższe polecenia i znów działa.

Mam kartę nVidia. Próbowałem zainstalować zastrzeżony sterownik, gdy wszystko zaczęło się źle układać, ale w tym momencie monitor zewnętrzny nie był już w ogóle rozpoznawany, więc wróciłem do sterownika open source. Nie mam Xorg.confani Xorg.conf.d, tylko xorg.conf.failsafe.

Nie chcę powtarzać tych poleceń za każdym razem, gdy uruchamiam komputer. Czy jest jakiś sposób, aby zapisać to w moim Xorg.conflub coś? Minęło wiele lat, odkąd wiele zrobiłem z X. Czy ktoś może mi tutaj pomóc?


1 Nie byłem w stanie ustalić, dlaczego tak się stało. Domyślam się, że problematyczna aktualizacja sterownika.

Kazark
źródło
1
Jakiej karty graficznej używasz? A jeśli jest to ATI / AMD lub Nvidia, czy używasz zastrzeżonego sterownika czy open source? Czy masz obecnie /etc/X11/corg.confplik lub coś w nim jest /etc/X11/corg.conf.d? Tak, proszę edytować swoje pytanie i dodać zawartość tych plików.
terdon
Proszę edytować swoje pytanie, aby dodać dodatkowe informacje, to jest trudne do odczytania i łatwo przegapić w komentarzach. To powiedziawszy, tak, xorg.conf nie jest już potrzebny, te rzeczy są teraz obsługiwane przez udev.
terdon
Jeszcze raz patrzę na twoje pytanie i to, czego mi brakowało, kiedy napisałem odpowiedź, to to, że masz laptopa. Warto zajrzeć do napisania udevreguły wywoływania skryptu w celu wykonania polecenia xrandr za każdym razem, gdy monitor jest podłączony lub odłączony, będzie to znacznie lepsze, jeśli komputer nie zawsze jest podłączony do monitora. W przeciwnym razie, jeśli jesteś zadowolony z ustawiania go w tym samym miejscu przez cały czas, Xorg.confjest to droga.
Graeme

Odpowiedzi:

5

Jestem pewien, że jest lepszy sposób, myślę, że to już wszystko załatwione, udevale jeśli wiesz, że te polecenia to rozwiążą, zawsze możesz po prostu przekształcić je w skrypt:

#!/usr/bin/env bash
cvt 1600 1200
xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
xrandr --addmode VGA-1 1600x1200_60.00

Spraw, by był wykonywalny, a następnie dodaj go do aplikacji startowych środowiska Desktop. Jest to prawdopodobnie najlepszy wybór, jeśli DE oferuje taką opcję.


Jeśli nie możesz zrobić powyższego, jako brudny hack możesz dodać je do ~/.profile:

if [ ! -t 0 ] 
then
    cvt 1600 1200
    xrandr --newmode "1600x1200_60.00"  161.00  1600 1712 1880 2160  1200 1203 1207 1245 -hsync +vsync
    xrandr --addmode VGA-1 1600x1200_60.00
fi

if [ ! -t 0 ]Powinny zapewnić ten prowadzony jest tylko w GUI i .profilejest wchłaniany przez menedżera logowania mennicy jak pamiętam.

Teraz powinieneś także móc korzystać, ~/.xsessionale miałem problemy z ignorowaniem tego. Wiele starszych metod jest zastępowanych i nie jestem pewien, jaki jest obecny stan techniki.

terdon
źródło
Nie musisz używać CVT 1600 1200, ponieważ wykorzystaliśmy już jego wynik w dwóch kolejnych wierszach.
PraveenMax
4

Jeśli używasz zastrzeżonego sterownika Nvidia, nvdia-settingspowinno to być narzędzie GUI do konfiguracji Xorg.confpliku. Powinien mieć swój własny pakiet w Linux Mint, więc instalacja byłaby tak prosta jak:

sudo apt-get install nvidia-settings

Powinno to gdzieś umieścić ikonę w twoim menu, możesz uruchomić ją stamtąd (choć nie jestem pewien, jak uzyskać uprawnienia roota). Wierzę, że z linii poleceń możesz:

sudo /usr/lib/nvidia/current/nvidia-settings

Jeśli chcesz zrobić wiersz poleceń, to nvidia-xconfigwydaje się być narzędziem do użycia ( nvidia-xconfigpakiet dla mnie). Tak czy inaczej, zwykle uzyskasz lepsze wyniki dzięki prawnie zastrzeżonemu sterownikowi, jeśli jest poprawnie skonfigurowany. Narzędzia te wygenerują co najmniej rozsądny Xorg.confplik, który można następnie dostosować bezpośrednio lub za pomocą jednego z tych programów.

Graeme
źródło