Я пытаюсь запустить приложение в Ubuntu (xfce или gnome) и через командную строку, и мне было интересно, есть ли общий способ установить размеры данного окна данного приложения, которое в данный момент запущено?
источник
Я пытаюсь запустить приложение в Ubuntu (xfce или gnome) и через командную строку, и мне было интересно, есть ли общий способ установить размеры данного окна данного приложения, которое в данный момент запущено?
Это легче сделать, если вы установите что-то вроде xdotool
. Тогда вы можете сделать:
xdotool search --name "window name" windowsize 300 400
замените «имя окна» именем или регистром, появляющимся в заголовке окна (вы также можете выполнить поиск по классу окна и множеству других вещей), и два числа, появляющиеся после размера окна, - это ширина и высота соответственно. (Вы также можете использовать проценты и т. Д.) Смотрите, как man xdotool
только он установлен.
Если вы используете Lucid или более раннюю версию, я рекомендую перейти на веб-сайт xdotool, чтобы получить более новую версию.
Чтобы изменить размер Firefox, например:
xdotool search --name "Mozilla Firefox" windowsize 1024 768
Если оконный менеджер поддерживает Xlib, то он есть. Это использует Python, чтобы установить размер окна 500x300:
Сложная часть - получить идентификатор окна; в приведенном выше коде он получил идентификатор активного окна. Если вам нужен другой идентификатор, вы можете использовать что-то вроде этого, чтобы получить заголовок и управляющий PID каждого окна, и выбрать правильный идентификатор на основе этих:
источник
print pid
получу<Xlib.protocol.request.GetProperty serial = 15, data = {'bytes_after': 0, 'property_type': 6, 'value': (32, array('I', [5810L])), 'sequence_number': 15}, error = None>
... любое предложение изолировать фактический PID?name
.get_full_property
и сделать.value[0]
(value
это массив )Специфично для XFCE есть pyxfce, который позволит вам делать это с использованием языка Python . Pyxfce - это API, который, помимо прочего, позволяет вам общаться с оконным менеджером . Чтобы использовать это из командной строки, вам потребуется сначала подготовить скрипт.
В зависимости от вашего использования, важность использования API на основе X с использованием идентификаторов X-окон (таких как python-xlib или xdotools, упомянутых в другом ответе) по сравнению с другими, которые используют строки, соответствующие заголовкам окон (например, wmctrl), заключается в том, что путаница между окнами, которые могут иметь одинаковые ключевые слова в соответствующем заголовке.
источник
источник
Я нашел wmctrl подходит мне лучше всего. Он доступен в виде небольшого пакета для Ubuntu и Raspbian, а также для других дистрибутивов.
источник