У меня возникла проблема с некоторыми версиями драйвера Intel GM965 / GL960. Я предлагаю вам попробовать обновить видеодрайверы. Вы не указали, используете ли fglrx или нет.
Я верю, что wmctrl не имеет возможности самостоятельно найти идентификатор активного окна. Если кто-то знает, как это сделать, мне интересно узнать. Вот, вот несколько сценариев, которые распечатывают размер активного окна.
Это: wmctrl + xdotool ... (не используя sed).
id=$(xdotool getactivewindow)
wmctrl -lpG | while read -a a; do w=${a[0]}; if (($((16#${w:2}))==id)) ; then echo -n "${a[5]} ${a[6]}"; break; fi; done
Это: xwininfo + xdotool + sed
xwininfo является частью x11-utils
set $(xwininfo -id $(xdotool getactivewindow) \
|sed -n -e "s/^ \+Width: \([0-9]\+\).*/\1/p" \
-e "s/^ \+Height: \([0-9]\+\).*/\1/p")
echo -n "$1 $2"
Используйте xprop или xwininfo.
Примеры использования:
Обе команды поворачивают курсор в квадрат / крест, чтобы выбрать конкретное окно.
$ xprop _NET_WM_OPAQUE_REGION
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 984, 377
$ xwininfo | awk -F ':' '/Width/ || /Height/{print $2}'
984
377
В качестве альтернативы можно указать окно в командной строке в форме XID
$ xprop _NET_WM_OPAQUE_REGION -id 83886090
_NET_WM_OPAQUE_REGION(CARDINAL) = 0, 0, 984, 377
$ xwininfo -id 83886090 | awk -F ':' '/Width/ || /Height/{print $2}'
984
377
В частности, xwininfo, активно использовался мной для скриптов , например, по этим вопросам AskUbuntu:
Всегда скрывать окно приложения. Как я могу свести к минимуму окна только на конкретном мониторе?Сценарии оболочки не знают и не заботятся о Windows. В лучшем случае они запускаются на терминале (который может отображаться или не отображаться в окне). Если вы хотите получить ширину и высоту терминала в символах, используйте утилиту stty.
Я использую в своих сценариях это решение:
$ stty size