Para los que somos torpes compartiendo pantallas y ventanas, en parte por torpeza natural y en parte por usar múltiples monitores, se me ocurrió una idea para facilitarnos la vida y las presentaciones en vivo.
Sé que existen herramientas como OBS pero me supera ponerme a aprender a usarla, parece que implica conectarse a streamers, es más para alguien que va a estar haciendo broadcasting, no utilizando una plataforma existente. Lo dejaré para cuando sea grande y famoso y tenga mi canal de YouTube.
Lo que he ideado, que probablemente no sea una idea original pero no pude hallar en menos de quince minutos algo equivalente, tiene la ventaja de ser independiente de la aplicación utilizada, sirve para cualquiera sistema que pueda compartir una ventana.
La idea es compartir una sola ventana y que esta muestre lo que tiene detras, una ventana al escritorio, podríamos decirle. Esto es en lugar de tener que estar eligiendo si compartir todo el desktop, ir eligiendo que ventana y si prender o no la cámara.
Parece que algunas aplicaciones tipo teamviewer o [por favor no usar] zoom permiten elegir full screen y luego ajustar a una región, con hangout no pude, pero quizás tenga que ver con tener múltiples monitores o con mi falta de destreza ya mencionada.
Como implementación pensé en tomar una terminal y definirle una transparencia total y usarla como ventana y anda bien localmente como es de esperar, pero evidentemente la transparencia se hace por fuera de la ventana, entonces en lo compartido se ve la ventana como si no fuera transparente.
Esto es lo que deseaba |
Pensé en desarrollar una aplicación en gtk o qt que lo haga, un marco que iría desplazando por el escritorio pero a contramano de mi práctica habitual me ganó lo poco que tengo de ingeniero no recibido y no rehice lo que ya existe.
Finalmente arribé a una implementación que anduvo como piña: usar una lupa sin magnificación.
Este es el procedimiento:
- apt install xzoom (una sola vez, pero si te lo tengo que aclarar, mmmh, estamos en distintas sintonías)
- xzoom -mag 1
- Ajustás tamaño.
- Determinás la región a mostrar.
- Ubicás en algún lado cómodo la ventana de zoom para ver lo que estás mostrando, no es indispensable.
- Le pedís a esa ventana que tenga "Always on top" y "Always on visible Workspace"
- Preparás todos los contenidos en distintos workspaces o como te guste.
- Abrís un vlc conectado a la cámara en lugar de darle la cámara al sistema de videoconferencia por si querés mostrar tu carita o lo que tengas detrás tuyo, una pizarra. Le ponés "minimal interface" para evitar los botones.
- Compartís la ventana, por ahora siempre se me llamó "xzoom x1"
- Ponés y sacás en la región observada lo que querés que se muestre y/o cambiás de workspace.
- Sobre la marcha podés cambiar el tamaño de la ventana y así variar la zona de captura, por si pasás de un contenido que requiera más o menos pantalla que otros.
- Al achicar de tamaño la ventana de xzoom funciona como lupa pues el sistema de videoconferencia maximiza el tamaño de la ventana,
- Si no querés que haga de lupa, mantené una de las dimensiones al redimensionar
Algunos ajustes
La elección de la región a mostrar me costó al comienzo, de hecho no sé como me funcionó la primera vez y me pareció un desperdicio explorar ese camino, asi que me arreglé con:
xzoom -mag 1 -source 640x480+200+1200
Ahí le estoy diciendo que haga 640 por 480 de captura, 200 pixel desde la izquierda y 1200 desde arriba, en mi caso que tengo un monitor encima del otro viene a ser arriba de el de abajo.
La medida inicial, 640 por 480 luego se puede ajustar simplemente cambiando el tamaño de la ventana de zoom.
Luego, al otro día, al ver que el cursor cambiaba estando sobre la ventana de xzoom pensé que por algo sería, hice click e hice click, primero en la ventana y luego en mi cabeza, es el modo de cambiar la región, tal como lo dice man xzoom, ¡qué cosa esta de no leer la documentación aunque sea media página!
Y luego, cuando miraba el código fuente para ver si le podía agregar que muestre el cursor, vi las opciones de linea de comando, es muy manejable:
$> xzoom --help
Usage: xzoom [ args ]
Command line args:
-display displayname
-mag magnification [ magnification ]
-geometry geometry
-source geometry
-x
-y
-xy
Window commands:
+: Zoom in
-: Zoom out
x: Flip right and left
y: Flip top and bottom
z: Rotate 90 degrees counter-clockwize
w: Next '+' or '-' only change width scaling
h: Next '+' or '-' only change height scaling
d: Change delay between frames
q: Quit
Arrow keys: Scroll in direction of arrow
Mouse button drag: Set top-left corner of viewed area
Te permite hacer el zoom in y out y mover la región observada con el teclado.
Otra optimización es pedirle a vlc que arranque sin decoraciones y abra la cámara:
vlc --qt-minimal-view v4l2:///dev/video0
Limitaciones
Un problemita que hay es que xzoom no muestra el cursor de la región ampliada en su ventana, otras herramientas de captura ofrecen hacerlo o no.
Me he arreglado con un hack, que es arrastrar una carpeta con el ícono cambiado:
FakeCursor en acción |
Hay que tener cuidado de no soltarla, si lo hacés sobre un navegador te va a abrir esa carpeta.
No he probado en windows ni mac herramientas equivalentes, pero el concepto es el mismo. En linux estoy con Mint Mate, no veo motivo para que no funcione en cualquier otro desktop o distribución.
Resultados
Lo he probado con hangout, meetup, dí una charla de una hora en el trabajo, lo usé en varios calls y gracias a esta actualización en la que modifiqué el programa para que me muestre el cursor puedo trabajar muy cómodo:
Este es un ejemplo con lo primero que encontré, material viejo. Arriba a la derecha la ventana de hangout o meet donde se vé lo que ve quien participa de la reunión. A la izquierda, el área de trabajo, donde se puede ver el navegador de páginas siendo este un pdf, pero podría ser el de una presentación. Abajo la ventana de xzoom que esta mirando a lo de arriba y si miro esta ventana, siempre estoy viendo lo publicado y no quedo en esa situación común de no estar mostrando lo que estás viendo.
Abajo a la derecha, ampliados los cursores.
No hay comentarios:
Publicar un comentario