У меня есть Ubuntu 11.04 (да, я знаю, что это - старые новости) на моей Lenovo W520. Дома, у меня есть прикрепление с парными мониторами. У меня есть довольно достойная установка - вещи работают почти отлично (следовательно причина, я отказываюсь обновить... это, и я не 100%, проданных на Единице).
Так или иначе единственное раздражение, которое я имею, - то, что, когда я нахожусь на перемещении, я использую экран ноутбука. Когда я расстыковываю ноутбук, я должен вручную войти в настройки X-сервера Nvidia и изменить разрешение от 'Автоматического' до 1920x1200, или это будет думать, что у меня есть два экрана, и мой указатель мыши сможет пойти путем от левой стороны экрана. Это не грандиозное предприятие, но я должен сделать это каждый раз, когда я перезапускаю X-сервер (поэтому, если я перезагружаю или должен уничтожить его, и т.д....),
То, что было бы действительно хорошо, - то, если был путь к нему, чтобы автоматически обнаружить, существуют ли внешние мониторы (который это, кажется уже, делает), и переключатель в режим, который я выбираю, в зависимости от которого подключены мониторы. Там какой-либо путь состоит в том, чтобы выполнить это? Я отправил свой xorg.conf файл для ссылки.
# 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 (buildmeister@swio-display-x86-rhel47-07.nvidia.com) 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
Существуют некоторые инструменты для автоматизации переключения между мониторами. можно использовать это инструменты, для автоматизации его RandR, disper, displex или этот http://gnomefiles.org/content/show.php/Laptop+external+display+hotplugging?content=138742
Установите hwinfo
, если у вас его еще нет.
Теперь запустите $hwinfo --monitor
или просто $hwinfo
НЕ подключайте его к док-станции. Перезагрузитесь, выберите ваше любимое разрешение и запустите
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.undock
ЗАКРЫТЬ систему сейчас и перезагрузите компьютер. Выберите новое любимое разрешение и запустите
$ sudo cp /etc/X11/xorg.conf /etc/X11/xorg.dock
Создайте файл сценария и добавьте его в автозапуск:
# 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