¿Sabes de alguna alternativa wmctrl? Un programa que permite manipular las ventanas y de la gestión de la línea de comandos.

Un inconveniente con wmctrl es que mientras que usted puede manipular la ventana actual, usted no puede conseguir wmctrl para mostrar información acerca de la ventana actual (ignora -r).

InformationsquelleAutor joeytwiddle | 2010-11-24

6 Comentarios

  1. 11

    Para encontrar el id de la ventana actualmente activa, uso:

    xprop -root -f _NET_ACTIVE_WINDOW 0x " \
    xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}"
    
    \n" _NET_ACTIVE_WINDOW | awk "{print \}"

    El uso de este documento de identificación, usted puede obtener una gran cantidad de información acerca de la ventana actualmente activa:

    xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \
    xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}")
    
    \n" _NET_ACTIVE_WINDOW | awk "{print \}")

    Partir de ahí, usted puede grep lo que usted necesita, o hacer es mostrar el campo deseado de la misma manera que he extraído _NET_ACTIVE_WINDOW arriba. Así, para encontrar el PID de la ventana actualmente activa, te gustaría añadir -f _NET_WM_PID 0c " \$0\\n" _NET_WM_PID para el comando de arriba, lo que es:

    xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \
    xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") -f _NET_WM_PID 0c " \$0\\n" _NET_WM_PID | awk "{print \$2}"
    
    \n" _NET_ACTIVE_WINDOW | awk "{print \}") -f _NET_WM_PID 0c " \
    xprop -id $(xprop -root -f _NET_ACTIVE_WINDOW 0x " \$0\\n" _NET_ACTIVE_WINDOW | awk "{print \$2}") -f _NET_WM_PID 0c " \$0\\n" _NET_WM_PID | awk "{print \$2}"
    
    \n" _NET_WM_PID | awk "{print \}"

    Nota que wmctrl también acepta el mismo tipo de identificación en combinación con el -i bandera.

  2. 9

    Se puede engañar a wmctrl en transmitir el número de IDENTIFICACIÓN de la ventana activa girando el modo detallado y diciéndole que se mueve la ventana activa con un parámetro no válido:

    wmctrl -v -r :ACTIVE: -e dummy
    

    Mientras este hace salir con un estado de error, también se genera el número de ID de la ventana activa:

    envir_utf8: 1
    Using window: 0x08400004
    The -e option expects a list of comma separated integers: "gravity,X,Y,width,height"
    

    Una vez que tenga el número de IDENTIFICACIÓN de la ventana activa, puedes ver la lista de todos los windows y busque el número de IDENTIFICACIÓN:

     wmctrl -l
    

    Es torpe para obtener información acerca de la ventana activa con wmctrl, pero es posible.

    • Gracias, buen truco!
    • wmctrl -a :ACTIVE: -v también trabaja y tiene la ligera ventaja de ofrecer un significativo código de salida.
  3. 1

    Mi experiencia con wmctrl versión 1.07 RH Linux 5.5 y 5.6 de 64 bits es que
    wmctrl consigue completamente perdido, a veces. Por ejemplo, cuando se busca una ventana de firefox
    el siguiente devuelve nada:

    % wmctrl -lpGx | grep -i 'Firefox'
    

    Mi sospecha es que wmcntl no se puede encontrar el firefox de windows debido a la naturaleza de la ventana de administrador, en este caso, metacity. Este director parece reparent de windows y tal vez esto hace que wmctrl no a la lista de ventanas de firefox. ‘xwininfo’ hace la lista de las ventanas de firefox.

    Si usted tiene acceso a xdotool (mi versión es 2.20110530.1), entonces usted puede probar:

    % mywin=`xwininfo -root -tree | awk '/- Mozilla Firefox/{ printf $1; exit}'`
    % xdotool windowactivate --sync $mywin mousemove --window $mywin 0 0
    

    Esto hace que firefox activa, hace que la parte superior de la ventana de la pila en su escritorio, y pone el ratón sobre ella (como es a veces necesaria cuando un entorno de usuario se establece el foco a una ventana con el ratón sin necesidad de un clic). Si usted no desea que el ratón para mover simplemente
    quitar «mousemove: ventana $mywin 0 0» de la anterior.

    Nota: tuve el mismo problema con la búsqueda de Konqueror windows en la misma de los sistemas Linux.

  4. 1

    de identificación de la ventana

    wmctrl -a :ACTIVE: -v 2>&1 | grep "Using window: " | awk "{print \}"
    

Dejar respuesta

Please enter your comment!
Please enter your name here