Как автоматически переключать мониторы с док-станции для ноутбука

Вы не можете использовать apt-get, потому что вы не подключены к Интернету. Пакет wvdial и его зависимости доступны на компакт-диске Ubuntu Live; скопируйте файлы оттуда в каталог и используйте sudo dpkg -i *.deb.

10
задан 14 May 2011 в 19:43

11 ответов

Dock / UnDock Scripts

Наконец-то я собрал полную настройку скрипта, которая обнаружит мой статус док-станции и автоматически переключит мониторы.

Первое, что я сделал, это избавиться от моего Xorg.conf, поскольку он вызвал больше проблем, которые он решил. Поскольку я использую карту nvdia, я в конце концов обнаружил, что использовать дисперс - лучший способ пойти. Я отказался от этого раньше, так как его стандартные команды не смогли выполнить мою настройку dualview, но потом я обнаружил, что могу создать собственный метамод для использования с диспером.

Чтобы создать настраиваемый метаданный, я использовал значения, хранящиеся в Xorg. conf вместе с предыдущим тестированием с помощью disper и disper в качестве руководства. Этот метамод и другие значения двойного просмотра были добавлены в файл, который может быть передан в 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 [ f2] Создайте сценарий сеанса экспорта 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
[ f18] Создайте сценарий отмены (измените 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

Затем открыть disper в средстве просмотра файлов журнала

Ресурсы

nVidia Readme: XCreateMouseV oid , X Параметры конфигурации question Disper PPA nv-control-dpy Ubuntu Forum - Un / Dock Scripts Thinkwiki udevadm

10
ответ дан 29 May 2018 в 09:14
  • 1
    Cas, мне было предложено прокомментировать ваше сообщение, чтобы спросить о проблеме, с которой я столкнулся: askubuntu.com/questions/68737/auto-switching-with-dock – Toby Joiner 17 May 2012 в 00:28
  • 2
    У вас есть сценарий dell-dock.sh? – Cas 15 June 2012 в 07:03
  • 3
    Да, кажется, что этого файла не существует: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory – Toby Joiner 20 June 2012 в 21:41

Вы можете использовать autorandr.

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper. Автоматически выбирайте конфигурацию дисплея на основе подключенных устройств

См. также :

Использование Autorandr для Undocking Goodness в Linux Инструмент для автоматического применения конфигурации RandR при подключении внешнего дисплея Как выполнить легкое переключение на внешний монитор
10
ответ дан 26 July 2018 в 17:49

Вы можете использовать autorandr.

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper. Автоматически выбирайте конфигурацию дисплея на основе подключенных устройств

См. также :

Использование Autorandr для Undocking Goodness в Linux Инструмент для автоматического применения конфигурации RandR при подключении внешнего дисплея Как выполнить легкое переключение на внешний монитор
10
ответ дан 2 August 2018 в 03:30

Вы можете использовать autorandr.

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper. Автоматически выбирайте конфигурацию дисплея на основе подключенных устройств

См. также :

Использование Autorandr для Undocking Goodness в Linux Инструмент для автоматического применения конфигурации RandR при подключении внешнего дисплея Как выполнить легкое переключение на внешний монитор
10
ответ дан 4 August 2018 в 19:27

Вы можете использовать autorandr .

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper

Автоматически выберите конфигурацию дисплея на основе подключенных устройств

См. также:

10
ответ дан 6 August 2018 в 03:38

Вы можете использовать autorandr .

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper

Автоматически выберите конфигурацию дисплея на основе подключенных устройств

См. также:

10
ответ дан 7 August 2018 в 21:28

Вы можете использовать autorandr .

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper

Автоматически выберите конфигурацию дисплея на основе подключенных устройств

См. также:

10
ответ дан 10 August 2018 в 09:45

Вы можете использовать autorandr .

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper

Автоматически выберите конфигурацию дисплея на основе подключенных устройств

См. также:

10
ответ дан 13 August 2018 в 15:59
  • 1
    Cas, мне было предложено прокомментировать ваше сообщение, чтобы спросить о проблеме, с которой я столкнулся: askubuntu.com/questions/68737/auto-switching-with-dock – Toby Joiner 17 May 2012 в 00:28
  • 2
    У вас есть сценарий dell-dock.sh? – Cas 15 June 2012 в 07:03
  • 3
    Да, кажется, что этого файла не существует: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: Нет такого файла или каталога – Toby Joiner 20 June 2012 в 21:41

Dock / UnDock Scripts

Я, наконец, собрал полную настройку скрипта, которая обнаружит мой статус док-станции и автоматически переключит мониторы.

Первое, что я сделал, это избавиться от моего Xorg.conf, поскольку он вызвал больше проблем, которые он решил. Поскольку я использую карту nvdia, я в конце концов обнаружил, что использовать disper было наилучшим способом. Я отказался от этого раньше, так как его стандартные команды не смогли выполнить мою настройку dualview, но затем я обнаружил, что могу создать собственный метамод для использования с диспером.

Чтобы создать пользовательский метадамод, я использовал значения, хранящиеся в Xorg. conf вместе с предыдущим тестированием с помощью nv-control-dpy и xrandr в качестве руководства. Этот метамод и другие значения двойного просмотра были добавлены в файл, который может быть передан в систему stdin .

Из-за наличия мониторов разного размера с Twinview мне нужно использовать XCreateMouseVoid , как описано в этом вопросе .

Ниже полная разбивка скриптов и файлов с их содержимым.


Сценарии

  1. Создайте скрипт XCreateMouseVoid: Имя скрипта: ~ / .mousevoid #! / bin / bash echo " Мышь Void "/ opt / XCreateMouseVoid / XCreateMouseVoid 0 1112 1280 88 & amp; / opt / XCreateMouseVoid / XCreateMouseVoid 0 0 1280 88 & amp; chmod + x ~ / .mousevoid
  2. Создать файл настроек Disper: Имя файла: ~ / .disperDocked backend: nvidia ассоциированные дисплеи: метаданные CRT-0, DFP-0, DFP-1: CRT-0: 1280x1024_60 @ 1280x1024 + 0 + 88, DFP-1: 1920x1200 @ 1920x1200 + 1280 + 0 масштабирование: по умолчанию, по умолчанию, растянутый информационный заказ xinerama: DFP-1, CRT-0, DFP-0
  3. Создайте сценарий сеанса экспорта dbus: Имя скрипта: ~ / .export_x_info #! / Bin / bash # Экспортировать адрес сеанса dbus при запуске, чтобы он мог использоваться любой другой средой. sleep 5 touch $ HOME / .Xdbus chmod 600 $ HOME / .Xdbus env | grep DBUS_SESSION_BUS_ADDRESS & gt; $ HOME / .Xdbus echo 'export DBUS_SESSION_BUS_ADDRESS' & gt; & gt; $ HOME / .Xdbus # Экспортировать значение XAUTHORITY при запуске, чтобы его можно было использовать cron env | grep XAUTHORITY & gt; & gt; $ HOME / .Xdbus echo 'export XAUTHORITY' & gt; & gt; & gt; $ HOME / .Xdbus Установите только пользовательский исполняемый файл: chmod 700 ~ / .export_x_info Затем поместите его в приложения для запуска: Имя: X Переменные окружения Команда: / home / your_user / .export_x_info Если вы не перезапустите, вам нужно запустить файл ~ / .export_x_info, чтобы создать файл .Xdbus
  4. Создайте правило 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
  5. Создайте скрипт, который связано с правилом udev: Имя скрипта: / usr / local / sbin / dell-dock #! / bin / sh # ждать, пока состояние док-станции изменится на сон 0.5 DOCKED = $ ( cat /sys/devices/platform/dock.0/docked) case «$ DOCKED» в «0») echo «Run UnDocking Script ...» / usr / local / sbin / unlock ;; «1») echo «Run Docking Script ...» / usr / local / sbin / dock ;; esac exit 0 chmod + x / usr / local / sbin / dell-dock
  6. Создайте сценарий отмены (измените your_user в соответствии с вашим именем пользователя): Имя скрипта : / usr / local / sbin / unock #! / bin / bash USER = ваш_user export HOME = / home / $ USER source $ HOME / .Xdbus export DISPLAY =: 0 echo "UnDocking Скрипт «echo» Переключить первичный монитор «sudo -u $ USER disper -s echo« Killall XCreateMouseVoid »pkill XCreate echo« Перезапустить conky »pkill conky sudo -u $ USER conky & amp; chmod + x / usr / local / sbin / unlock
  7. Создайте сценарий док-станции (измените your_user в соответствии с вашим именем пользователя): Имя скрипта: / usr / local / sbin / dock #! / bin / bash USER = ваш_user export HOME = / home / $ USER source $ HOME / .Xdbus export DISPLAY =: 0 echo "Docking Script" echo "Switch to Dualview "sudo -u $ USER disper -i & lt; $ HOME / .disperDocked echo «Запустить XCreateMouseVoid» pkill XCreate sudo -u $ USER $ HOME / .mousevoid echo «Перезапустить conky» pkill conky sudo -u $ USER conky & amp; chmod + x / usr / local / sbin / dock

Отладка

Чтобы отладить док-скрипты, вы необходимо включить udev debug logging:

  udevadm control --log-priority = debug  

Затем откройте syslog в файле журнала Viewer


Ресурсы

nVidia Readme: Конфигурация Twinview , Параметры конфигурации X Autorandr Disper PPA nv-control-dpy Ubuntu Forum - Un / Dock Scripts Thinkwiki udevadm

10
ответ дан 15 August 2018 в 22:48
  • 1
    Cas, мне было предложено прокомментировать ваше сообщение, чтобы спросить о проблеме, с которой я столкнулся: askubuntu.com/questions/68737/auto-switching-with-dock – Toby Joiner 17 May 2012 в 00:28
  • 2
    У вас есть сценарий dell-dock.sh? – Cas 15 June 2012 в 07:03
  • 3
    Да, кажется, что этого файла не существует: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: Нет такого файла или каталога – Toby Joiner 20 June 2012 в 21:41

Вы можете использовать autorandr.

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper. Автоматически выбирайте конфигурацию дисплея на основе подключенных устройств

См. также :

Использование Autorandr для Undocking Goodness в Linux Инструмент для автоматического применения конфигурации RandR при подключении внешнего дисплея Как выполнить легкое переключение на внешний монитор
2
ответ дан 29 May 2018 в 09:14

Вы можете использовать autorandr.

Автоматическое определение аппаратного обеспечения подключения и загрузка подходящей установки X11 с помощью xrandr или disper. Автоматически выбирайте конфигурацию дисплея на основе подключенных устройств

См. также :

Использование Autorandr для Undocking Goodness в Linux Инструмент для автоматического применения конфигурации RandR при подключении внешнего дисплея Как выполнить легкое переключение на внешний монитор
2
ответ дан 25 July 2018 в 21:55
  • 1
    Cas, мне было предложено прокомментировать ваше сообщение, чтобы спросить о проблеме, с которой я столкнулся: askubuntu.com/questions/68737/auto-switching-with-dock – Toby Joiner 17 May 2012 в 00:28
  • 2
    У вас есть сценарий dell-dock.sh? – Cas 15 June 2012 в 07:03
  • 3
    Да, кажется, что этого файла не существует: $ cat /sys/devices/platform/dock.0/docked cat: /sys/devices/platform/dock.0/docked: No such file or directory – Toby Joiner 20 June 2012 в 21:41

Другие вопросы по тегам:

Похожие вопросы: