lunes, 26 de junio de 2017

Colocar una aplicación en determinado lugar en la pantalla con wmctrl

RESUMEN: 
El programa de linea de comandos wmctrl puede colocar en un determinado lugar de la pantalla a alguna aplicación que uno quiera y también ponerle el tamaño que uno quiera. Esto para mi es importante al momento de enviar una aplicación a otro espacio de trabajo (workspace) en iceWM como explico en el anterior manual que hice:

Mover aplicaciones a otro espacio de trabajo automáticamente en linux

https://facilitarelsoftwarelibre.blogspot.com/2017/06/como-mover-aplicaciones-otro-espacio-de.html

COMANDO -e:
Es importante primero entender qué es este comando, aquí un ejemplo:

wmctrl -r Terminal -e 0,00,00,800,600

Donde:
(0,) gravity, no se para que sirve
(0,0) son los ejes X,Y en este ejemplo wmctrl moverá la ventana de la aplicación arriba a la izquierda de la pantalla, porque la esquina de la pantalla izquierda es 0,0 en los ejes X,Y
(800,600) en este ejemplo es el ancho y el alto que redimensionará la ventana a 800×600 pixeles

EL VALOR DE X, Y
Yo quiero que quede la ventana de la terminal no tan arriba ni tan a la izquierda sino más separada, le pondré 90:

wmctrl -r Terminal -e 0,90,90,800,600



Donde para las coordenadas debes poner en una terminal (en el tutorial anterior está el comando para instalar xdotool sino lo tiene instalado)

xdotool getmouselocation
y hubicar el mouse donde quieras (pero debes de saber que desde ese punto hacia la derecha y abajo es que empieza la aplicación) y dar enter y aparecerá en la terminal los valores, ejemplo


pero como son cercanos 85 y 92 yo mejor los redondeo a x:90 y:90

Nota: Vea bien donde está hubicado el mouse.

EL VALOR DEL ANCHO Y ALTO
Para saber esto debes tener instalado el programa

Regla en pantalla (Screen Ruler)

sudo apt-get install screenruler

usted lo puede encontar con ese nombre



El programa está en inglés, lo uso para saber el tamaño en pixeles



al programa se lo puede poner horizontal o vertical, en cm, pixeles, etc



SCRIPT 
Ahora bien, para el scrip, quiero para este ejemplo enviar al espacio de trabajo 2 a los programas alarm-clock-applet y xfce4-terminal, y luego ponerlos en el lugar de la pantalla que yo he elegido, así que serán dos comandos en cada línea (se usa punto y coma para separarlos), así:

#!/bin/bash
sleep 15
wmctrl -r Alarmas -t 1; wmctrl -r Alarmas -e 0,600,400,450,300
wmctrl -r Terminal -t 1; wmctrl -r Terminal -e 0,90,90,800,600

Nota 1: para entender bien esto debes haber visto el tutorial anterior

Nota 2: El programa wmctrl sólo detecta a una ventana, si tienes dos instancias de la misma aplicación en dos diferentes espacios de trabajo el programa no funcionará 

Nota 3: Te darás cuenta que este segundo tutorial tiene más comandos, es que no podía explicar todo esto en uno solo, mejor era así parte por parte. Ahora si usted lo podrá entender mejor y usarlo según su necesidad. Recuerde que estos son ejemplos que usted los puede adaptar


Consulta:
https://www.freedesktop.org/wiki/Software/wmctrl/

No hay comentarios.:

Publicar un comentario