¿Qué Administrador de visualización para una aplicación interactiva de Python no y MPlayer?

StackOverflow https://stackoverflow.com/questions/3009634

Pregunta

Estoy desarrollando una aplicación que se ejecutará en Linux para ejecutar a pantalla completa todo el tiempo (no hay menús o bandejas o nada serán visibles).

La aplicación va a ser desarrollado en Python, no es que lo que importa por lo que el gestor de ventanas, pero lo que yo estoy teniendo un tiempo duro con es la elección de un gestor de ventanas.

necesito algo con el menor espacio posible, que me permita ejecutar una aplicación gráfica de Python y tener una ventana de MPlayer, al mismo tiempo, en formato panorámico (resoluciones de pantalla ancha, 16: 10,16: 9, etc.). Aparte de eso, no se necesita una gran cantidad de características, pero el tamaño de la huella final es lo más importante que voy a estar mirando.

¿Qué gestor de ventanas recomendaría usted?

EDIT:. No habrá ningún tipo de interacción con la aplicación necesaria

¿Fue útil?

Solución

En realidad no necesita ningún gestor de ventanas o gestor de ventanas. Todo lo que necesita hacer es abrir la ventana inicial con la misma geometría que la ventana raíz. Supongo que se podría incluso dibujar directamente en la ventana raíz si querías.

Si está utilizando algún banco de presentación es probable que tenga una forma fácil de abrir una ventana de pantalla completa. Por ejemplo, usando una versión bastante reciente de SDL través de pygame que puede hacer

pygame.display.init()
surface = pygame.display.set_mode((0,0),pygame.FULLSCREEN,0)

para obtener una ventana que ocupa toda la pantalla. Esto funciona incluso si no hay un gestor de ventanas en ejecución.

Como para MPlayer, acepta la bandera -geometry, por lo que puede usar algo como mplayer -geometry 640x480+20+20 para mostrar la ventana mplayer 20 píxeles desde la parte superior 20 píxeles desde la izquierda y con un tamaño de 640x480 píxeles.

Otros consejos

gestor de ventanas

Es probable que decir. Visualización administra son KDM, GDM y similares. gerentes windoe, a nombre, GNOME, Xfce, KDE, ratpoison, fvwm, TWM, caja negra son unos pocos. ratpoison da pantalla completa a la aplicación que está en primer plano pero exige interacción con el teclado pesada (de ahí el nombre ratpoison) y no hay interacción con el ratón en absoluto.

Asumo se le ejecuta tanto en su interfaz gráfica de usuario de pitón y mplayer en algún tipo de combinación de geometrías que muestra dos cosas al mismo tiempo, llenando la pantalla.

Como se ha comentado, no debe necesitar un gestor de ventanas para lograr eso. Usted podría tener sus parámetros de aplicación get de línea de comandos Python GUI para configurar su geometría ventana y también llamar mplayer pantalla completa con el parámetro -geometry. Eso debería llenar la pantalla como se esperaba, sin ningún tipo de decoración de las ventanas.

Ahora usted puede tener la secuencia de comandos startx llamada para el usuario que ejecuta todo y tienen una costumbre ~ / .xinitrc script de hacer algo como:

#!/bin/sh

exec python my_gui_app --whatever-sets-geom &
exec mplayer -fs video.avi

Si yout aplicación Phyton lugar será el lanzamiento de mplayer continuación, acaba de salir de la primera llamada 'ExEx' (quitar el '&') y tienen que llamar mplayer como se desee con las dimensiones esperadas en el modo '' fs.

Tenga en cuenta que puede que tenga que usar algo como el programa 'xset' para desactivar el monitor de supresión debido al ahorro de energía, no el cursor (aunque eso es algo IIRC mplayer hace por su propia ventana), y cosas por el estilo.

Además, somethimes correr, por ejemplo, aplicaciones GTK en una pantalla X desnudo puede terminar con un tema de "feo", por lo que puede que tenga que tener el cuidado de configuración de estilo caja de herramientas de alguna manera.

Estoy haciendo algo similar en mi "set-top box" y no utiliza ningún gestor de ventanas.

botas de Debian, y desde inittab que el acceso automático al usuario que ejecuta la pantalla. .profile de ese usuario inicia X, que se extiende .xinitrc, que comienza mi aplicación Python que se ejecuta como un servidor de red delante de mplayer (mplayer en el modo de funcionamiento -slave).

Mi aplicación Python no tiene un elemento de interfaz gráfica de usuario - sólo funciona MPlayer en la pantalla X. Pero en su caso, no debería ser diferente. Como ya he mencionado en un comentario de otra respuesta, es posible que desee ver en cómo se puede Reparent ventana de MPlayer para darle un mayor control sobre su colocación y / o movimiento / tamaño.

Hacerlo de esta manera se evita un gestor de visualización y un gestor de ventanas. Esto simplifica la solución, arranca más rápido y usa una huella más pequeña (se ejecuta de una tarjeta SD, con un montón de espacio de sobra).

Me di cuenta que es una vieja pregunta, pero yo uso el openbox en mi sistema, he creado un archivo de configuración personalizado que desactiva todas las atajos de teclado del ratón, y elimina las fronteras, etc en las aplicaciones. En la configuración del openbox i incluso creó algunos atajos secretos que se pueden ejecutar FX. una xterm para depurar vivo en la caja.

La documentación del openbox fue muy útil para averiguar todo lo que fuera, lo hice la configuración en unos 30 minutos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top