Установка размеров окна запущенного приложения

Выполните последнюю команду как корень:

sudo !!
29
18.01.2011, 01:18
5 ответов

Это легче сделать при установке чего-то как xdotool. Затем можно сделать:

xdotool search --name "window name" windowsize 300 400

замените "имя окна" именем или reg исключая появлением в заголовке окна (можно также искать классом окна и множеством других вещей), и эти два числа, появляющиеся после того, как windowsize являются шириной и высотой, соответственно. (Можно также использовать проценты, и т.д.) Посмотрите man xdotool после того как это установлено.

Если Вы находитесь на Lucid или ранее, я рекомендую собраться в xdotool веб-сайт получить более новую версию, как бы то ни было.

Изменить размер Firefox, например:

xdotool search --name "Mozilla Firefox" windowsize 1024 768
20
27.01.2020, 19:38
  • 1
    является там каким-либо путем, как изменить размер полноэкранного окна без художественных оформлений (строка заголовка)? И набор точная позиция по экрану (например, x=0, y=0)? Я пытаюсь установить это, чтобы максимизируемый mplayer перешел в 800x600 x=0 y=0 и затем после нескольких минут к тому же полноэкранному режиму. спасибо ошибка –  peter 27.03.2016, 13:28

Если менеджер окон поддерживает 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()

Твердая часть получает окно ID; в вышеупомянутом коде это получило идентификатор активного окна. Если Вы хотите другой идентификатор, можно использовать что-то вроде этого, чтобы получить заголовок и управление 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
15
27.01.2020, 19:38
  • 1
    Xlib, доступный здесь: sourceforge.net/projects/python-xlib/?source=typ_redirect –  khaverim 05.03.2017, 05:01
  • 2
    , когда я делаю 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? –  khaverim 05.03.2017, 05:33
  • 3
    Nvm. Кажется, не возможен, но я могу сделать обходное решение через name. А-ч –  khaverim 05.03.2017, 05:38
  • 4
    @khaverim Хм. Я думаю этот API, измененный, так как я в последний раз записал это, который раньше просто был PID. Я обновил ответ, Вы хотите принять значение, возвращенное get_full_property и сделайте .value[0] (value массив) –  Michael Mrozek♦ 05.03.2017, 11:59
#!/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-
3
27.01.2020, 19:38

Характерный для XFCE существует pyxfce, который позволит Вам делать тот язык Python использования. Pyxfce является API, который, среди прочего, позволяет Вам общаться с менеджером окон. Использовать это из командной строки потребовало бы, чтобы Вы подготовили сценарий сначала.

В зависимости от Вашего использования важность использования основанного на X API с помощью идентификаторов X-окна (таких как python-xlib или xdotools упомянул в другом ответе) по сравнению с другими, которые используют строки, соответствующие заголовкам окон (как wmctrl), состоит в том, что не может быть никакого беспорядка между окнами, которые могут иметь те же ключевые слова в их соответствующем заголовке.

4
27.01.2020, 19:38

Мне больше всего подходит wmctrl. Он доступен в виде небольшого пакета для Ubuntu и Raspbian, а также, вероятно, и для других дистрибутивов.

0
27.01.2020, 19:38

Теги

Похожие вопросы