Odpowiedzi:
Łatwiej to zrobić, jeśli zainstalujesz coś takiego xdotool
. Następnie możesz zrobić:
xdotool search --name "window name" windowsize 300 400
zamień „nazwa okna” na nazwę lub reg ex pojawiające się w tytule okna (możesz również wyszukiwać według klasy okna i różnych innych rzeczy), a dwie liczby pojawiające się po rozmiarze okna to odpowiednio szerokość i wysokość. (Możesz także użyć procentów itp.) Zobacz, man xdotool
kiedy zostanie zainstalowany.
Jeśli korzystasz z Lucid lub wcześniejszej wersji, zalecamy przejście na stronę xdotool, aby uzyskać nowszą wersję.
Aby zmienić rozmiar przeglądarki Firefox, na przykład:
xdotool search --name "Mozilla Firefox" windowsize 1024 768
Jeśli menedżer okien obsługuje Xlib, istnieje. To używa Pythona, aby ustawić rozmiar okna na 500 x 300:
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()
Trudność polega na uzyskaniu identyfikatora okna; w powyższym kodzie otrzymał identyfikator aktywnego okna. Jeśli chcesz mieć inny identyfikator, możesz użyć czegoś takiego, aby uzyskać tytuł i kontrolować PID każdego okna, i wybrać odpowiedni identyfikator na podstawie tych:
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
dostanę <Xlib.protocol.request.GetProperty serial = 15, data = {'bytes_after': 0, 'property_type': 6, 'value': (32, array('I', [5810L])), 'sequence_number': 15}, error = None>
... jakieś sugestie, aby wyodrębnić rzeczywisty PID?
name
.
get_full_property
i zrobić .value[0]
( value
to tablica )
Specyficzny dla XFCE jest pyxfce, który pozwoli ci to zrobić używając języka Python . Pyxfce to interfejs API, który między innymi umożliwia komunikację z menedżerem okien . Aby użyć tego z wiersza poleceń, najpierw musisz przygotować skrypt.
W zależności od zastosowania znaczenie używania interfejsu API opartego na X przy użyciu identyfikatorów X okien (takich jak Python-Xlib lub xdotools wspomnianych w innej odpowiedzi) w porównaniu z innymi, które używają ciągów pasujących do tytułów okien (takich jak wmctrl), polega na tym, że nie może być zamieszanie między oknami, które mogą mieć te same słowa kluczowe w odpowiednich tytułach.
#!/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-
Zauważyłem, że wmctrl najbardziej mi odpowiada. Jest dostępny jako niewielki pakiet dla Ubuntu i Raspbian, a także prawdopodobnie dla innych dystrybucji.