Решение для воспроизведения HTML5 в Chrome
Обзор
Следующий сценарий отключает экранную заставку, если он находит активный полноэкранный сеанс Chrome. По умолчанию он будет проверять каждые 5 минут. Сценарий автоматически возобновит скринсейвер, если выполнено одно из следующих трех условий:
окно не полноэкранное окно не в фокусе окно больше не существуетОбзор
#!/bin/bash
## Variables ##
ChromeWmClass="Google-chrome"
FullScreenProperty="_NET_WM_STATE_FULLSCREEN"
CheckInterval="300" # check every 5 minutes
## Main ##
while true; do
sleep "$CheckInterval"
ActiveWinID=$(xdotool getactivewindow)
if [[ -z "$ActiveWinID" ]]; then
continue
fi
ActiveWinProp=$(xprop -id "$ActiveWinID")
if echo "$ActiveWinProp" | grep "$FullScreenProperty" > /dev/null 2>&1 \
&& echo "$ActiveWinProp" | grep "WM_CLASS" | grep "$ChromeWmClass" > /dev/null 2>&1
then
if [[ -z "$SuspendingID" ]]; then
echo "Suspending screensaver for $ActiveWinID"
xdg-screensaver suspend "$ActiveWinID"
SuspendingID="$ActiveWinID"
elif [[ "$ActiveWinID" = "$SuspendingID" ]]; then
echo "$ActiveWinID is already suspending screensaver."
elif [[ -n "$SuspendingID" ]]; then
echo "Resuming screensaver for $SuspendingID"
xdg-screensaver resume "$SuspendingID"
echo "Suspending screensaver for $ActiveWinID"
xdg-screensaver suspend "$ActiveWinID"
SuspendingID="$ActiveWinID"
fi
else
if [[ -n "$SuspendingID" ]] \
&& xprop -id "$SuspendingID" > /dev/null 2>&1
then
echo "Resuming screensaver for $SuspendingID"
xdg-screensaver resume "$SuspendingID"
SuspendingID=""
else
echo "No change."
fi
fi
done
Проблема заключается в том, что многие программные пакеты имеют зависимость от lbgl1-mesa-glx, которая несовместима с xserver-xorg-lts-quantal. См. Те, которые перечислены waterloo2005: 0ad (game), blender ... Это приложения, требующие OpenGL.
Я являюсь членом команды разработчиков freecad на Launchpad, и наши точные пакеты FreeCAD несовместимы с из-за этого. Когда кто-то хочет установить его на новую установку Ubuntu 12.04.2, менеджер пакетов хочет удалить весь стек lts-quantal!
(...)
Edit: Upon в некоторых исследованиях я думаю, что это вызвано ошибкой зависимости сборки от разработчиков пакетов. Наш пакет freecad имеет встроенную версию libgl1-mesa-dev, которая, возможно, должна быть изменена на libglew-dev. Я проведу это завтра. Если я прав, это должно быть сообщено как ошибка для каждого пакета, который «хочет быть удаленным» ...