GNU/Linux >> Znalost Linux >  >> Ubuntu

Proč úpravy Lightdm.conf neovlivňují rozlišení obrazovky plochy?

Chtěl jsem změnit rozlišení obrazovky na ploše na 1366x768 . Ale moje VESA drivers(AMD REDWOOD) nezjistil toto rozlišení. Vytvořil jsem tedy skript shellu následovně:-

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  
xrandr --output DisplayPort-0 --off --output DVI-0 --mode 1368x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off

Uložil jsem to jako lightdmxrandr.sh v /usr/bin a udělal z něj spustitelný. Potom jsem přidal následující řádky do /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf (což je ekvivalent dobře známého /etc/lightdm/lightdm.conf . Používám výše uvedený soubor, protože jsem 14.04, kde není žádný /etc/lightdm/lightdm.conf .) :-

greeter-session=unity-greeter  
display-setup-script=/usr/bin/lightdmxrandr.sh  
session-setup-script=/usr/bin/lightdmxrandr.sh

a uložil to. Teoreticky by to mělo změnit rozlišení přihlašovací obrazovky i obrazovky plochy na 1366x768 . To ale překvapivě změnilo pouze rozlišení přihlašovací obrazovky. Rozlišení pracovní plochy se nezměnilo. Později jsem skript přidal do Startup apps a to změnilo rozlišení mé plochy.

Takže chci vědět, proč jsem provedl úpravy v lightdm.conf soubor (nebo spíše 50-ubuntu.conf soubor) neovlivnilo rozlišení mé pracovní plochy. Je to nějaký druh chyby, která musí být nahlášena na launchpadu, nebo je špatné říkat, že úpravy v lightdm ovlivní plochu?

PS:- Podle mého názoru to není specifické pouze pro Ubuntu 14.04.

Přijatá odpověď:

Zkoušel jsem podobnou věc a po nějakém ladění si myslím, že jsem přišel na to, co se děje. Váš skript pravděpodobně je spustit a pravděpodobně nastaví rozlišení správně. Protože jej však spouští správce přihlášení, spustí se dříve, než Unity dokončí nastavení vašeho desktopového prostředí a Unity načte svá vlastní nastavení a obnoví rozlišení na to, co jste měli. Takže si myslím, že to, co se stane, je:

  1. lightdm správně spustí váš skript
  2. Tím nastavíte požadované rozlišení
  3. Unity se spustí, načte svá nastavení a vrátí se do výchozího rozlišení, které tam máte
  4. Vaše rozlišení se vrátí k tomu, co bylo předtím

Nyní se to stane, protože ovladač VESA automaticky nezjistí požadované rozlišení. To znamená, že když změníte rozlišení v nastavení Unity v části Displeje, dáváte mu rozlišení, které není dostupné, pokud nespustíte xrandr příkazy. Proto je toto při příštím restartu ignorováno a Unity se vrátí k výchozímu rozlišení.

Související:Jak odstranit boční lištu nautilus v některých případech?

Takže, co musíte udělat, je zpřístupnit rozlišení Unity, poté jej nastavit jako výchozí a nechat jej, aby si s ním poradilo. Chcete-li tak učinit, musíte nejprve přidat tento řádek do /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf :

session-setup-script=/usr/bin/lightdmxrandr.sh

Poté se ujistěte, že /usr/bin/lightdmxrandr.sh vypadá takto:

xrandr --newmode "1368x768_60.00"   85.25  1368 1440 1576 1784  768 771 781 798 -hsync +vsync  
xrandr --addmode DVI-0 1368x768_60.00  

Všimněte si, že ve skutečnosti nenastavuji rozlišení, pouze jej zpřístupníte. Jakmile provedete tento restart, přihlaste se. Nové rozlišení by nyní mělo být dostupné v Nastavení => Displeje. Pokud ano, vyberte jej tam, odhlaste se a znovu přihlaste a rozlišení by mělo být nastaveno správně. Nyní by mělo přetrvávat i po restartu.

Alternativní přístupy:

  1. Vytvořte /etc/X11/xorg.conf soubor, který uvádí požadované rozlišení. Něco jako toto:

    Section "Monitor"
        Identifier    "Monitor0"
        Modeline "1368x768_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
    EndSection
    
    Section "Screen"
        Identifier     "Screen0"
        Device         "Card0"
        Monitor        "Monitor0"
        SubSection "Display"
            Modes       "1368x768_60.00"
        EndSubSection
    EndSection
    
    Section "Device"
        Identifier    "Card0"
        Driver        "vesa"
    EndSection
    
  2. Přidejte skript, který spouští xrandr příkazy ke spouštěcím aplikacím vaší relace.


Ubuntu
  1. Jak rozšířit plochu na druhou připojenou obrazovku?

  2. Lubuntu vynucuje zámek obrazovky?

  3. Upravit rozlišení na serveru Ubuntu 10.04?

  1. Proč se v příkazu Service nevyplní karta Vlastní názvy úloh pro začínající uživatele?

  2. Proč se nativní rozlišení monitoru nezobrazuje jako možnost?

  3. Jak zamknout obrazovku?

  1. Změna rozlišení obrazovky? (rozbitá obrazovka notebooku)?

  2. Nainstalujte plochu Pantheon na Ubuntu

  3. Zabránit konzoli v vyčištění obrazovky?