Я хотел бы получить размер текущего окна из сценария оболочки ...
На самом деле сказать особо нечего ... Я бы предпочел использовать wmctrl.
источник
Я хотел бы получить размер текущего окна из сценария оболочки ...
На самом деле сказать особо нечего ... Я бы предпочел использовать wmctrl.
wmctrl -lG
Даст вам что-то вроде:
oli@bert:~$ wmctrl -lG
0x0384c0d5 -1 1590 1030 330 170 bert N/A
0x01200023 -1 0 0 3840 1200 bert x-nautilus-desktop
0x01000003 -1 3840 2352 1920 24 bert Bottom Expanded Edge Panel
0x01000028 -1 0 2352 1920 24 bert Bottom Expanded Edge Panel
0x0500003e 0 676 252 1404 1015 bert Chromium
0x02e00021 0 3860 160 1361 1084 bert Liferea
0x02000047 0 6650 940 506 683 bert Social broadcast messages
0x04600004 0 4546 460 1263 833 bert oli@bert: ~
С этим вы можете grep
и cut
вниз на них, так что вы останетесь со значениями геометрии (столбцы 3-6).
Чтобы процитировать man-страницу, вы точно понимаете, что это за столбцы:
-l
Список окон, управляемых менеджером окон. Для каждого окна выводится одна строка, причем строка разбивается на колонки, разделенные пробелами. Первый столбец всегда содержит идентификатор окна в виде шестнадцатеричного целого числа, а второй столбец всегда содержит номер рабочего стола (-1 используется для обозначения прикрепленного окна). Если указана опция -p, следующий столбец будет содержать PID для окна в виде десятичного целого числа. Если указана опция -G, то будут следовать четыре целочисленных столбца: x-offset, y-offset, width и height. Следующий столбец всегда содержит имя клиентского компьютера. Остальная часть строки содержит заголовок окна (возможно, с несколькими пробелами в заголовке).
Я полагаю, что wmctrl не имеет возможности напрямую найти идентификатор активного окна.
Если кто-то знает, как это сделать, мне интересно знать ...
Тем не менее, вот пара сценариев, которые распечатывают размер активного окна.
Это: wmctrl + xdotool ... (без использования sed).
Это: xwininfo + xdotool + sed
xwininfo
это частьx11-utils
источник
Используйте
xprop
илиxwininfo
. Оба приходят по умолчанию, установка не требуетсяПримеры использования:
Обе команды превращают курсор в квадрат / крест, чтобы позволить выбрать конкретное окно.
В качестве альтернативы можно указать окно в командной строке в форме XID
Другие посты, где они были использованы
В частности
xwininfo
, я активно использовал его для скриптов, например, в следующих вопросах AskUbuntu:источник
Сценарии оболочки не знают или не заботятся об окнах. В лучшем случае они запускаются в терминале (который может отображаться или не отображаться в окне). Если вы хотите получить ширину и высоту терминала в символах, используйте утилиту stty.
источник
Я нашел
tput cols
работать довольно хорошо!источник
wmctrl
, мы говорим не о консоли, а о графических окнах среды.Получил 3 экрана, это выводит 3 строки с размерами:
источник