Respuestas:
Esto es más fácil de hacer si instala algo como xdotool
. Entonces puedes hacer:
xdotool search --name "window name" windowsize 300 400
reemplace "nombre de ventana" con un nombre o registro que aparece en el título de la ventana (también puede buscar por clase de ventana y una variedad de otras cosas), y los dos números que aparecen después del tamaño de ventana son el ancho y el alto, respectivamente. (También puede usar porcentajes, etc.) Ver man xdotool
una vez que esté instalado.
Sin embargo, si estás en Lucid o antes, te recomiendo ir al sitio web de xdotool para obtener una versión más nueva.
Para cambiar el tamaño de Firefox, por ejemplo:
xdotool search --name "Mozilla Firefox" windowsize 1024 768
Si el administrador de ventanas es compatible con Xlib, existe. Esto usa Python para establecer el tamaño de la ventana en 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()
La parte difícil es obtener la ID de la ventana; en el código anterior obtuvo la ID de la ventana activa. Si desea otra ID, puede usar algo como esto para obtener el título y el PID de control de cada ventana, y elegir la ID correcta en función de eso:
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
obtengo <Xlib.protocol.request.GetProperty serial = 15, data = {'bytes_after': 0, 'property_type': 6, 'value': (32, array('I', [5810L])), 'sequence_number': 15}, error = None>
... alguna sugerencia para aislar el PID real?
name
.
get_full_property
y hacer .value[0]
( value
es una matriz )
Específico para XFCE hay pyxfce que le permitirá hacer eso usando el lenguaje python . Pyxfce es una API que, entre otras cosas, le permite comunicarse con el administrador de ventanas . Para usar esto desde la línea de comandos, primero deberá preparar un script.
Dependiendo de su uso, la importancia de usar una API basada en X usando ID de ventanas X (como python-xlib o xdotools mencionados en otra respuesta) frente a otros que usan cadenas que coinciden con títulos de ventanas (como wmctrl), es que no puede haber confusión entre ventanas, que pueden tener las mismas palabras clave en sus respectivos títulos.
#!/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-
Encontré que wmctrl me quedaba mejor. Está disponible como un paquete pequeño, para Ubuntu y para Raspbian, y probablemente también para otras distribuciones.