Comportamiento inconsistente de wmctrl al maximizar la terminal desde .bashrc

Comportamiento inconsistente de wmctrl al maximizar la terminal desde .bashrc

tengo esto

wmctrl -r :ACTIVE: -b add,maximized_vert,maximized_horz

dentro de mi .bashrc para maximizar mi terminal al abrir. Lo curioso es que parece funcionar sólo de forma aleatoria, dando como resultado a veces un terminal en pantalla completa y otras no, sin ningún patrón discernible. Ingresar el comando anterior en una terminal ya abierta siempre es exitoso.

Debo señalar que el comando xdotool windowsize $(xdotool getactivewindow) 100% 100%(deesterespuesta), que logra un efecto similar, también provoca el mismo comportamiento esporádico cuando se coloca en mi .bashrc. Nuevamente, siempre funciona cuando se ejecuta desde un mensaje ya abierto. Más,a vecesCuando este comando no funciona, recibiré el siguiente mensaje de error antes del primer mensaje:

XGetWindowProperty[_NET_ACTIVE_WINDOW] failed (code=1)
xdo_get_active_window reported an error
There are no windows in the stack
Invalid window '%1'
Invalid argument count, got 3, expected 2
Usage: windowsize [--sync] [--usehints] [window=%1] width height
If no window is given, %1 is used. See WINDOW STACK in xdotool(1)
--usehints  - Use window sizing hints (like font size in terminals)
--sync      - only exit once the window has resized

Esto me hace pensar que todo el error se centra en encontrar la ventana actualmente activa.

Estoy usando Mint 19.3 con XFCE4 y mi terminal es urxvt. ¿Qué podría estar causando este comportamiento inconsistente?

Respuesta1

Esto parece ser unproblema xy. Hay una carrera entre el terminal que se muestra y el script de inicio del shell que intenta encontrarlo y cambiar su tamaño. El OP descubrió que a sleep 0.1era suficiente para permitir que la ventana se encontrara como activa.

Sin embargo, lo correcto es abrir el terminal con el tamaño inicial correcto en lugar de abrirlo con el tamaño predeterminado y luego cambiar su tamaño. El tamaño inicial se puede especificar mediante los valores predeterminados cargados en el servidor X, normalmente con el xdbprograma o utilizando el -geometrycomando estándar en el emulador de terminal.

información relacionada