Неверный размер и перемещение wmctrl - зависит от приложения
При изменении размера и перемещении с wmctrl
результат неверен и зависит от приложения.
Пример: на момент написания статьи у меня были запущены emacs, chromium, spotify и gnome-терминал
ws=$(wmctrl -d | grep "*" | awk '{print $1}')
n=$(wmctrl -l | awk '{print $2 ";" $1}' | grep ^$ws | wc -l)
windows=$(wmctrl -l | awk '{print $2 ";" $1}' | grep ^$ws | cut -d ";" -f 2)
window1=$(echo $windows | cut -d " " -f 1)
window2=$(echo $windows | cut -d " " -f 2)
window3=$(echo $windows | cut -d " " -f 3)
window4=$(echo $windows | cut -d " " -f 4)
for i in ${windows[@]} ; do
wmctrl -ir $i -b remove,maximized_horz,maximized_vert
done
wmctrl -ir $window1 -e 1,0,0,960,540
wmctrl -ir $window2 -e 1,0,540,960,540
wmctrl -ir $window3 -e 1,960,0,960,540
wmctrl -ir $window4 -e 1,960,540,960,540
Сейчас, wmctrl -lG
приводит к следующему (ненужная информация удалена):
width height
952 540 emacs
960 540 chromium
954 529 gnome-terminal
960 540 Spotify
Запуск точно такого же кода для 4 окон терминала дает:
width height
954 529 gnome-terminal
954 529 gnome-terminal
954 529 gnome-terminal
954 529 gnome-terminal
Все размеры неверны, но также разные приложения имеют разные размеры, в то время как все окна одного и того же приложения имеют одинаковый размер.
Ожидаемое:
960 540 emacs
960 540 chromium
960 540 gnome-terminal
960 540 Spotify
Я не могу найти какие-либо сообщения, обсуждающие именно эту проблему.
Вся помощь очень ценится!
1 ответ
Каждое окно имеет украшения (т.е. границы). Окно вашего gnome-терминала имеет границу шириной 6 пикселей слева и высоту 11 пикселей сверху (возможно, заголовок). Когда вы перемещаете окно, оно перемещает положение окна, исключая размер границы, но wmctrl -G
Вывод показывает геометрию, включая размеры границ. Смотрите эту тему. Вы можете получить размер границы, используя магию xwininfo, как здесь.