Altera automaticamente a resolução quando não está no dock

2

Eu tenho Ubuntu 11.04 (sim, eu sei que é notícia antiga) no meu Lenovo W520. Em casa, tenho um dock com dois monitores. Eu tenho uma configuração bastante decente - as coisas funcionam quase perfeitamente (daí a razão que eu estou relutante em atualizar ... isso e eu não estou 100% vendido no Unity).

De qualquer forma, o único aborrecimento que tenho é que, quando estou viajando, uso a tela do laptop. Quando desplodino o laptop, preciso ir manualmente para as configurações do nvidia x-server e alterar a resolução de 'Auto' para 1920x1200, ou acho que tenho duas telas, e o ponteiro do meu mouse poderá sair o lado esquerdo da tela. Isso não é grande coisa, mas eu preciso fazer isso a cada vez que eu reiniciar o x-server (então se eu reiniciar, ou tiver que matá-lo, etc ...)

O que seria realmente bom seria se houvesse uma maneira de detectar automaticamente se há ou não monitores externos (o que parece já fazer) e mudar para o modo que eu seleciono, dependendo de quais monitores estão conectados. Existe alguma maneira de conseguir isso? Eu postei meu arquivo xorg.conf para referência.

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 270.29  (buildd@allspice)  Fri Feb 25 14:42:07 UTC 2011

# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 275.19  ([email protected])  Tue Jul 12 18:35:38 PDT 2011
#Section "Monitor"
#    Identifier     "Monitor1"
#    VendorName     "Lenovo"
#    ModelName      "ThinkpadLCD"
#    #HorizSync       28.0 - 33.0
#    #VertRefresh     43.0 - 72.0
#    #Option         "DPMS"
#EndSection

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"

        # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
                   VendorName     "Unknown"
    ModelName      "DELL U2410"
    HorizSync       30.0 - 81.0
    VertRefresh     56.0 - 76.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Quadro 1000M"
    Option         "RegistryDwords" "EnableBrightnessControl=1"
EndSection

Section "Screen"

# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+120, DFP-6: nvidia-auto-select +1920+0"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+120, DFP-5: nvidia-auto-select +1920+0"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +1920+419, DFP-5: nvidia-auto-select +3840+0, DFP-6: nvidia-auto-select +0+0"
# Removed Option "metamodes" "DFP-5: nvidia-auto-select +0+0, DFP-6: 1920x1200 +1920+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo" "True"
    Option         "TwinViewXineramaInfoOrder" "DFP-0"
    Option         "TwinView" "1"
    Option         "metamodes" "DFP-5: nvidia-auto-select +1920+0, DFP-6: 1920x1200 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
    
por jwir3 09.10.2012 / 23:12

2 respostas

1

Instale o hwinfo , se ainda não o tiver.

Agora, execute $hwinfo --monitor ou apenas $hwinfo

NÃO conecte-o ao encaixe agora. Reinicie, escolha sua resolução favorita e corra

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.undock

DOQUE o sistema agora e reinicie. Escolha sua nova resolução favorita e corra

$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.dock

Crie um arquivo de script e adicione-o à execução automática:

    # Check if system is docked or undocked and use correct xorg.conf file.
    # <lm_name> is name of laptop monitor
    DOCKED="'hwinfo --monitor | grep "<lm_name>" | wc -l'" 
    # Next line is for debugging
    # echo $DOCKED > /root/docked-state.txt 
    if [[ $DOCKED = "0" ]] 
    then 
    cp /etc/X11/xorg.dock /etc/X11/xorg.conf 
    else 
    cp /etc/X11/xorg.undock /etc/X11/xorg.conf 
    fi 
    # End of dock-undock script 
    
por TomKat 23.10.2012 / 11:26
0

Existem algumas ferramentas para automatizar a troca entre monitores. você pode usar essas ferramentas, para automatizá-lo RandR, disper, displex ou este link

    
por fecub 23.10.2012 / 10:30