Выполните последнюю команду как корень:
sudo !!
Это легче сделать при установке чего-то как xdotool
. Затем можно сделать:
xdotool search --name "window name" windowsize 300 400
замените "имя окна" именем или reg исключая появлением в заголовке окна (можно также искать классом окна и множеством других вещей), и эти два числа, появляющиеся после того, как 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()
Твердая часть получает окно 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
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
name
. А-ч
– khaverim
05.03.2017, 05:38
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-
Характерный для XFCE существует pyxfce, который позволит Вам делать тот язык Python использования. Pyxfce является API, который, среди прочего, позволяет Вам общаться с менеджером окон. Использовать это из командной строки потребовало бы, чтобы Вы подготовили сценарий сначала.
В зависимости от Вашего использования важность использования основанного на X API с помощью идентификаторов X-окна (таких как python-xlib или xdotools упомянул в другом ответе) по сравнению с другими, которые используют строки, соответствующие заголовкам окон (как wmctrl), состоит в том, что не может быть никакого беспорядка между окнами, которые могут иметь те же ключевые слова в их соответствующем заголовке.
Мне больше всего подходит wmctrl. Он доступен в виде небольшого пакета для Ubuntu и Raspbian, а также, вероятно, и для других дистрибутивов.