В gnome w / xmonad, как я могу вызвать скрипт, когда монитор подключен ИЛИ при подключении моего ноутбука? - PullRequest
3 голосов
/ 24 января 2012

Проблема:

У меня есть дополнительный набор верхней и нижней панелей гномов для второго монитора.Когда я отсоединяю свой Lenovo Thinkpad (T510), остаются лишняя верхняя и нижняя панели, поэтому у меня две сверху и две снизу.В настоящее время я использую экземпляр RHEL6 / Fedora (x86_64) gnome (2.28.2) с xmonad (0.9.1-6.1.el6), установленным в качестве оконного менеджера, с использованием расширений xmonad для работы в gnome.

Пробовал:

Я использовал acpi и нашел код для стыковки и расстыковки, но когда я пытаюсь использовать скрипт, который я нашел в этом сообщении в блоге , онполучает ноль за вызов к xrandr.Скрипт работает при вызове самостоятельно из терминала.Я пытался вызвать отдельный цикл цикла в своем собственном потоке, и он продолжает получать ноль для значения, долгое время после обновления экрана (ов).

Я выяснил, как сделать цикл сценариякаждые X секунд и проверять наличие файла, в котором сценарий получает ноль, а затем выполняет необходимые изменения, но такой подход мне не нравится.

Вопрос:

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

Спасибо!

Обновление: я добавил награду 50 (максимум, что я могу сделать) за ответ.

Бен

1 Ответ

1 голос
/ 27 января 2012

Полагаю, одна из проблем, перечисленных ниже, возникает (или обе):

1) похоже, что ваш фрагмент кода xrandr не возвращает правильные значения, поскольку переменная окружения $ DISPLAY установлена ​​неправильно. Сценарий обработчика Acpi обычно запускается как пользователь, который не является пользователем, выполняющим текущий сеанс X. Таким образом, xrandr просто не знает, к какому $DISPLAY получить доступ.

2) если $DISPLAY установлен правильно, пользователь acpid, возможно, все еще не сможет получить доступ к запущенной xsession. Вы можете проверить, будет ли скрипт работать над обработчиком acpi, если вы выполните xhost + как пользователь, который в данный момент выполняет текущую xsession с $ DISPLAY, указанным в вашем скрипте. Это отключит контроль доступа для X. Вы можете снова включить его с помощью xhost -.

Проверьте это, я надеюсь, это поможет или, по крайней мере, укажет вам, в каком направлении копать.

...