Параметры Charm, настроенные при развертывании

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

4
задан 22 November 2011 в 05:36

1 ответ

Бруно, на данный момент есть действительно открытый запрос функции:

https://bugs.launchpad.net/juju/+bug/893184

Вы можете создайте файл yaml прямо сейчас, чтобы установить эти параметры, на этой странице это объясняется:

https://bugs.launchpad.net/juju/+bug/893184 [!d4 ]

В основном, чтобы сделать то, о чем говорит ваш пример, сохраните его как local.yaml:

service-name:
  key: "value"
  key2: "value2"

И затем сделайте

juju deploy charm-name service-name --config local.yaml

Вы также можете установить параметры сразу после развертывания (до того, как устройство будет работать) с

juju set service-name key=value key2=value2

4
ответ дан 25 May 2018 в 16:37

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

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