Какой диспетчер отображения для не интерактивного приложения Python и MPlayer?

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

Вопрос

Я разрабатываю приложение, которое будет работать на Linux, чтобы запустить полноэкранные экраны все время (никаких меню или лотков или ничего не будет видно).

Приложение будет разработано в Python, а не то, что это имеет значение, насколько этому, как оконный менеджер, но то, что мне трудно с помощью оконного менеджера.

Мне нужно что-то с наименьшим возможным следом, который позволит мне запустить графическое приложение Python и иметь окно Mplayer одновременно, при широкоэкранных резолюциях (широкоформатные, 16: 10,16: 9 и т. Д.). Кроме того, ему не нужно много функций, но размер конечного следа - самое важное, что я буду смотреть на.

Какой оконный менеджер вы бы порекомендовали?

Редактировать: не будет никакого взаимодействия с необходимым приложением.

Это было полезно?

Решение

На самом деле вам не нужен какой-либо диспетчер окон или диспетчера дисплея. Все, что вам нужно сделать, это откройте ваше начальное окно с той же геометрией, что и корневое окно. Я полагаю, вы даже можете рисовать прямо в корневое окно, если хотите.

Если вы используете некоторую библиотеку дисплей, она, вероятно, имеет простой способ открыть полноэкранное окно. Например, используя достаточно недавнюю версию SDL через Pygame, вы можете сделать

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

Чтобы получить окно, которое заполняет весь экран. Это будет работать, даже если не работает оконный менеджер.

Что касается Mplayer, он принимает -geometry флаг, чтобы вы могли использовать что-то вроде mplayer -geometry 640x480+20+20 Для отображения окна MPlayer 20 пикселей от топ-20 пикселей слева и размером 640x480 пикселей.

Другие советы

Вы, вероятно, имели ввиду оконный менеджер. Дисплей удается KDM, GDM и тому подобное. Менеджеры ветроэ, имя, гном, xfce, kde, ratpoison, fvwm, twm, blackbox - это несколько. RatPoison дает полный экран к приложению, которое находится на переднем плане, но требует тяжелого взаимодействия на клавиатуре (отсюда и название ratpoison) и отсутствие взаимодействия мыши вообще.

Я предполагаю, что вы будете работать как вашим Python GUI, так и MPlayer в какой-то комбинации геометрии, которые показывают оба одновременно, заполняя экран.

Как прокомментировал, вам не нужно нужен оконный менеджер для достижения этого. Вы можете получить приложение Python GUI получить параметры командной строки для настройки его окна геометрии, а также вызовите полноэкранный MPlayer с параметром -гре -грефометрией. Это должно заполнить экран, как ожидалось, без каких-либо украшений окон.

Теперь вы можете выбрать скрипт StartX, который пользователь, выполняющий все это и имеет пользовательский скрипт ~ / .xinitrc, который делает что-то вроде:

#!/bin/sh

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

Если приложение YouT Pyhon вместо этого будет запустить MPlayer, просто оставьте первый «Exex» (удалите «и») и вызовите его MPLayer по желанию с ожидаемыми размерами в режиме «-FS».

Обратите внимание, что вам может потребоваться использовать что-то вроде программы «XSet», чтобы отключить галантерею отключения монитора из-за экономии энергии, скрыть курсор (хотя IIRC это что-то Mplayer делает для своего собственного окна), и вещи такие вещи.

Кроме того, Womethimes работает, например, приложения GTK на горе HTK-дисплея HTK могут в конечном итоге использовать «уродливую» тему, поэтому вам может потребоваться позаботиться о конфигурации стилей инструментария.

Я делаю что-то подобное на моем «настроек), и я не использую какой-либо оконный менеджер.

Он сапоги Debian, а из Inittab I Auto-введите пользователя, который запускает дисплей. Этот пользователь .profile запускает x, который запускается .xinitrc, который запускает мое приложение Python, которое работает как сетевой сервер перед MPLayer (работает MPLayer в-SSLAVE).

Мое приложение Python не имеет элемента GUI - только MPlayer работает на дисплее X. Но в вашем случае это должно быть ничем не отличаться. Как я уже упоминал в комментарии к другому ответу, вы можете захотеть посмотреть, как вы можете восстановить окно Mplayer, чтобы дать вам большее управление своим размещением и / или движением / размером.

Делать это таким образом, чтобы избежать диспетчера дисплея и оконного менеджера. Это упрощает решение, сапоги быстрее и использует меньший след (он работает с SD-картой, с кучей комнаты для запасных).

Я понимаю, что это старый вопрос, но я использую OpenBox в мою систему, я создал пользовательский файл конфигурации, который отключает все ярлыки клавиатуры мыши и удаляет границы и т. Д. В приложениях. На конфиге OpenBox я даже создал несколько секретных ярлыков, которые могут работать FX. xterm для отладки вживую в поле.

Документация OpenBox была очень полезна в том, чтобы выяснить все, я сделал конфин примерно за 30 минут.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top