У меня Dell Precision M4300 с Dell Dock PRO1X под управлением Ubuntu Natty.
Когда ноутбук установлен в док-станцию, ЖК-дисплей выключен, и я использую два внешних монитора, однако, когда я отсоединяю ноутбук, он не переключается на экран ноутбука. То же самое происходит, когда я подключаю ноутбук, он не переключается на внешние мониторы.
Если я перезагружу ноутбук, он выберет правильную настройку, но не будет автоматически менять мониторы при работающей Ubuntu.
Мой Xorg.conf
Я наконец соединил полную установку сценария, которая обнаружит мое состояние прикрепления и переключит мониторы автоматически.
Первая вещь, которую я сделал, состояла в том, чтобы избавиться от моего Xorg.conf, поскольку это вызвало больше проблем, которые это решило. Так как я использую nvdia карту, я в конечном счете нашел, что использование disper было лучшим способом пойти. Я обесценил его прежде, поскольку его стандартные команды не могли достигнуть моей установки dualview, но затем я нашел, что мог создать пользовательский метарежим для использования с disper.
Для создания пользовательского метарежима, я использовал значения, сохраненные в Xorg.conf наряду с предыдущим тестированием с nv-control-dpy и xrandr как руководство. Этот метарежим и другие значения twinview были добавлены к файлу, который может быть передан disper через stdin.
Из-за наличия разного размера контролирует с Twinview, я должен использовать XCreateMouseVoid, как описано в этом вопросе.
Ниже полное нарушение обычного порядка сценариев и файлов с их содержанием.
Создайте сценарий XCreateMouseVoid:
Название сценария: ~/.mousevoid
#!/bin/bash
echo "Mouse Void"
/opt/XCreateMouseVoid/XCreateMouseVoid 0 1112 1280 88 &
/opt/XCreateMouseVoid/XCreateMouseVoid 0 0 1280 88 &
chmod +x ~/.mousevoid
Создайте файл настроек Disper:
Имя файла: ~/.disperDocked
backend: nvidia
associated displays: CRT-0, DFP-0, DFP-1
metamode: CRT-0: 1280x1024_60 @1280x1024 +0+88, DFP-1: 1920x1200 @1920x1200 +1280+0
scaling: default, default, stretched
xinerama info order: DFP-1, CRT-0, DFP-0
Создайте экспорт dbus сценарий сессии:
Название сценария: ~/.export_x_info
#!/bin/bash
# Export the dbus session address on startup so it can be used by any other environment
sleep 5
touch $HOME/.Xdbus
chmod 600 $HOME/.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.Xdbus
# Export XAUTHORITY value on startup so it can be used by cron
env | grep XAUTHORITY >> $HOME/.Xdbus
echo 'export XAUTHORITY' >> $HOME/.Xdbus
Набор к пользовательскому исполняемому файлу только: chmod 700 ~/.export_x_info
Затем поместите его в Приложения Запуска:
Name: X Environment Variables
Command: /home/your_user/.export_x_info
Если Вы не перезапускаете Вас, должен выполнить ~/.export_x_info для создания.Xdbus файла
Создайте правило udev, которое будет работать с на событие прикрепления:
Название сценария: /etc/udev/rules.d/81-dell-dock.rules
KERNEL=="dock.0", ACTION=="change", RUN+="/usr/local/sbin/dell-dock"
chmod +x /etc/udev/rules.d/81-dell-dock.rules
Создайте сценарий, который связан с правилом udev:
Название сценария: /usr/local/sbin/dell-dock
#!/bin/sh
# wait for the dock state to change
sleep 0.5
DOCKED=$(cat /sys/devices/platform/dock.0/docked)
case "$DOCKED" in
"0")
echo "Run UnDocking Script..."
/usr/local/sbin/undock
;;
"1")
echo "Run Docking Script..."
/usr/local/sbin/dock
;;
esac
exit 0
chmod +x /usr/local/sbin/dell-dock
Создайте расстыковывать сценарий (измените your_user для соответствия имени пользователя):
Название сценария: /usr/local/sbin/undock
#!/bin/bash
USER=your_user
export HOME=/home/$USER
source $HOME/.Xdbus
export DISPLAY=:0
echo "UnDocking Script"
echo "Switch primary monitor"
sudo -u $USER disper -s
echo "Killall XCreateMouseVoid"
pkill XCreate
echo "Restart conky"
pkill conky
sudo -u $USER conky &
chmod +x /usr/local/sbin/undock
Создайте сценарий прикрепления (измените your_user для соответствия имени пользователя):
Название сценария: /usr/local/sbin/dock
#!/bin/bash
USER=your_user
export HOME=/home/$USER
source $HOME/.Xdbus
export DISPLAY=:0
echo "Docking Script"
echo "Switch to Dualview"
sudo -u $USER disper -i < $HOME/.disperDocked
echo "Start XCreateMouseVoid"
pkill XCreate
sudo -u $USER $HOME/.mousevoid
echo "Restart conky"
pkill conky
sudo -u $USER conky &
chmod +x /usr/local/sbin/dock
Для отладки сценариев прикрепления, необходимо включить вход отладки udev:
udevadm control --log-priority=debug
Затем откройте системный журнал в Средстве просмотра Файла журнала
Nvidia Readme: Конфигурация Twinview, X опций конфигурации
Autorandr
Disper PPA
nv-control-dpy
Форум Ubuntu - Сценарии ООН/прикрепления
Thinkwiki
udevadm
Можно использовать autorandr.
Автоматически обнаружьте подключение, отображают аппаратные средства и загружают установку appropiate X11 с помощью xrandr или disper
Автоматически выберите конфигурацию дисплея на основе подключенных устройств
См. также: