Настройка размеров окна запущенного приложения
Я пытаюсь запустить приложение в Ubuntu (xfce или gnome) и через и задалось вопросом, существует ли общий способ установки размеров данное окно данного приложения, которое в настоящее время работает?
4 ответа
Это проще сделать, если вы установите что-то вроде xdotool
. Затем вы можете сделать:
xdotool search --name "window name" windowsize 300 400
заменить «имя окна» именем или регистром ex, появляющимся в заголовке окна (вы также можете выполнить поиск по классу окна и множеству других вещей), а два числа, появляющиеся после windowsize, - это ширина и высота соответственно. (Вы также можете использовать проценты и т. Д.) См. man xdotool
после его установки.
Если вы на Lucid или ранее, я рекомендую перейти на сайт xdotool , чтобы получить более новую версию, однако.
Чтобы изменить размер Firefox, например:
xdotool search --name "Mozilla Firefox" windowsize 1024 768
Если диспетчер окон поддерживает Xlib, есть. Это использует Python, чтобы установить размер окна 500x300:
WIDTH, HEIGHT = 500, 300
import Xlib
import Xlib.display
display = Xlib.display.Display()
root = display.screen().root
windowID = root.get_full_property(display.intern_atom('_NET_ACTIVE_WINDOW'), Xlib.X.AnyPropertyType).value[0]
window = display.create_resource_object('window', windowID)
window.configure(width = WIDTH, height = HEIGHT)
display.sync()
Жесткая часть получает идентификатор окна; в приведенном выше коде он получил идентификатор активного окна. Если вам нужен другой идентификатор, вы можете использовать что-то вроде этого, чтобы получить заголовок и управлять PID каждого окна, и выбрать правильный идентификатор на основе следующих:
windowIDs = root.get_full_property(display.intern_atom('_NET_CLIENT_LIST'), Xlib.X.AnyPropertyType).value
for windowID in windowIDs:
window = display.create_resource_object('window', windowID)
name = window.get_wm_name() # Title
prop = window.get_full_property(display.intern_atom('_NET_WM_PID'), Xlib.X.AnyPropertyType)
pid = prop.value[0] # PID
#!/bin/bash
#get window pid under mouse
xprop -id $(xwit -current -print | cut -d ":" -f 1) | grep _NET_WM_PID | cut -d "=" -f2 | cut -c 2-
Конкретно для XFCE существует pyxfce , который позволит вам сделать это с помощью python язык. Pyxfce - это API, который, помимо прочего, позволяет общаться с оконный менеджер . Для использования этого из командной строки вам потребуется сначала подготовить сценарий.
В зависимости от вашего использования важность использования X-based API с использованием X-идентификаторов окон (таких как python-xlib или xdotools, упомянутых в другом ответе) по сравнению с другими, использующими строки, соответствующие названиям окон (например, wmctrl), заключается в том, что там не может быть путаницы между окнами, которые могут иметь одинаковые ключевые слова в соответствующем заголовке.