Question

Je développe une application qui fonctionnera sur Linux pour exécuter en plein écran tout le temps (pas de menus ou des plateaux ou quoi que ce soit seront visibles).

L'application va être développé en Python, pas ce qui compte autant que le gestionnaire de fenêtres, mais ce que je vais avoir du mal avec le choix est un gestionnaire de fenêtre.

Je besoin de quelque chose avec le plus faible encombrement possible, qui me permettra de courir une application Python graphique et offre une fenêtre de mplayer en même temps, à des résolutions grand écran (écran géant, 16: 10,16: 9, etc.). A part cela, il n'a pas besoin de beaucoup de fonctionnalités, mais la taille de l'empreinte final est la chose la plus importante que je vais examiner.

Qu'est-ce que le gestionnaire de fenêtres recommanderiez-vous?

EDIT:. Il n'y aura pas d'interaction avec l'application nécessaire

Était-ce utile?

La solution

Vous ne fait pas besoin de gestionnaire de fenêtres ou gestionnaire d'affichage. Tout ce que vous devez faire est d'ouvrir votre fenêtre initiale avec la même géométrie que la fenêtre racine. Je suppose que vous pouvez même dessiner directement dans la fenêtre racine si vous voulez.

Si vous utilisez une bibliothèque d'affichage, il a probablement un moyen facile d'ouvrir une fenêtre plein écran. Par exemple en utilisant une version assez récente de SDL par pygame vous pouvez faire

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

pour obtenir une fenêtre qui remplit tout l'écran. Cela fonctionnera même s'il n'y a pas gestionnaire de fenêtres en marche.

En ce qui concerne mplayer, il accepte le drapeau de -geometry, de sorte que vous pouvez utiliser quelque chose comme mplayer -geometry 640x480+20+20 pour afficher la fenêtre de mplayer 20 pixels à partir des 20 premiers pixels de la gauche et avec une taille de 640x480 pixels.

Autres conseils

Vous avez probablement voulu dire gestionnaire de fenêtres. Affichage gère sont KDM, GDM et autres. gestionnaires windoe, au nom, GNOME, Xfce, KDE, ratpoison, fvwm, TWM, Blackbox sont quelques-uns. ratpoison donne plein écran à l'application qui est au premier plan, mais exige l'interaction du clavier lourd (d'où le nom de ratpoison) et aucune interaction de la souris tout.

Je suppose que vous courrez à la fois votre GUI python et mplayer dans une sorte de géométries combinaison qui montre à la fois en même temps, remplir l'écran.

Comme commenté, vous ne devriez pas avoir besoin d'un gestionnaire de fenêtres pour y parvenir. Vous pourriez avoir votre application GUI python obtenir des paramètres de ligne de commande pour définir la géométrie de la fenêtre et appeler aussi plein écran mplayer avec le paramètre -geometry. Cela devrait remplir l'écran comme prévu, sans aucune décoration de fenêtre.

Maintenant, vous pourriez avoir le script startx appelé à l'utilisateur qui exécute tout et faire une coutume ~ / .xinitrc de script quelque chose comme:

#!/bin/sh

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

Si l'application de yout pyhon va plutôt lancer mplayer puis il suffit de laisser le premier appel « exex » (retirer le « & ») et l'ont appelé mplayer comme on le souhaite avec les dimensions attendues en mode 'fs de.

S'il vous plaît noter que vous devrez peut-être utiliser quelque chose comme le programme «xset pour désactiver le moniteur de suppression en raison des économies d'énergie, cacher le curseur (bien IIRC qui est mplayer quelque chose fait pour sa propre fenêtre), et des choses comme ça.

En outre, Somethimes en cours d'exécution, par exemple, des applications GTK sur un écran nu X peut finir par utiliser un thème « laid », de sorte que vous devrez peut-être avoir la configuration de style boîte à outils de soin apporté someway.

Je suis en train de faire quelque chose de similaire sur ma « set-top box » et je n'utilise pas gestionnaire de fenêtres.

Il démarre debian, et de inittab connexion automatique à l'utilisateur qui exécute l'affichage. Le .profile de l'utilisateur démarre X, qui court .xinitrc, qui commence mon application python qui fonctionne comme un serveur de réseau devant mplayer (en cours d'exécution en mode mplayer -slave).

Mon application python ne dispose pas d'un élément d'interface - ne fonctionne que mplayer sur l'écran X. Mais dans votre cas, il ne devrait pas être différent. Comme je l'ai mentionné dans un commentaire à une autre réponse, vous voudrez peut-être se pencher sur la façon dont vous pouvez reparenter la fenêtre de mplayer pour vous donner un meilleur contrôle sur son placement et / ou mouvement / taille.

En procédant ainsi, éviter un gestionnaire d'affichage et un gestionnaire de fenêtres. Cela simplifie la solution, des bottes plus rapide et utilise une plus petite empreinte (il court d'une carte SD, avec des tas de pièce de rechange).

Je sais que c'est une vieille question, mais j'utilise openbox sur mon système, je l'ai créé un fichier de configuration personnalisé qui désactive tous les raccourcis clavier de la souris, et supprime les frontières, etc sur les applications. Dans la configuration openbox i même créé des raccourcis secrets qui peuvent exécuter fx. un xterm pour le débogage en direct sur la boîte.

La documentation openbox a été très utile dans tout comprendre, je l'ai fait la config en 30 minutes environ.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top