Pergunta

Estou desenvolvendo um aplicativo que será executado no Linux para executar tela cheia o tempo todo (sem menus ou bandejas ou qualquer coisa será visível).

O aplicativo será desenvolvido no Python, não que isso seja importante até o gerenciador de janelas, mas com o que estou tendo dificuldade em escolher um gerente de janela.

Preciso de algo com a menor pegada possível, que me permitirá executar um aplicativo gráfico Python e ter uma janela MPLAYER ao mesmo tempo, nas resoluções widescreen (Widescreen, 16: 10,16: 9, etc). Fora isso, ele não precisa de muitos recursos, mas o tamanho da pegada final é a coisa mais importante que vou olhar.

Qual gerente de janela você recomendaria?

EDIT: Não haverá nenhuma interação com o aplicativo necessário.

Foi útil?

Solução

Na verdade, você não precisa de nenhum gerenciador de janelas ou gerenciador de exibição. Tudo o que você precisa fazer é abrir sua janela inicial com a mesma geometria que a janela raiz. Suponho que você possa até desenhar diretamente para a janela da raiz, se quisesse.

Se você estiver usando alguma biblioteca de exibição, provavelmente tem uma maneira fácil de abrir uma janela de tela cheia. Por exemplo, usando uma versão recente de SDL por pygame que você pode fazer

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

Para obter uma janela que preencha a tela inteira. Isso funcionará mesmo se não houver gerenciador de janelas em execução.

Quanto ao mplayer, aceita o -geometry bandeira, para que você possa usar algo como mplayer -geometry 640x480+20+20 Para exibir a janela do Mplayer, 20 pixels dos 20 pixels superiores da esquerda e com um tamanho de 640x480 pixels.

Outras dicas

Você provavelmente quis dizer gerente de janela. Os gerentes da tela são KDM, GDM e similares. Os gerentes de Windoe, para nomear, Gnome, XFCE, KDE, RatPoison, FVWM, TWM, Blackbox são alguns. O RatPoison fornece tela cheia ao aplicativo que está em primeiro plano, mas exige interação pesada do teclado (daí o nome RatPoison) e nenhuma interação do mouse.

Suponho que você estará executando sua GUI Python e MPlayer em algum tipo de combinação de geometrias que mostra tanto ao mesmo tempo, preenchendo a tela.

Como comentado, você não deve precisar de um gerente de janela para conseguir isso. Você pode fazer com que seu aplicativo Python GUI obtenha parâmetros da linha de comando para definir sua geometria de janela e também chamar MPLayer de tela cheia com o parâmetro -geometry. Isso deve preencher a tela como esperado, sem decorações de janelas.

Agora você poderia ter o script StartX chamado para o usuário executar tudo e ter um script personalizado ~/.xinitrc fazendo algo como:

#!/bin/sh

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

Se o YouT Pyhon App lançar o MPlayer, basta deixar a primeira chamada 'Exex' (remover o '&') e faça com que o Mlayer de chamada, conforme desejado com as dimensões esperadas no modo '-fs'.

Observe que você pode precisar usar algo como o programa 'XSET' para desativar o monitor devido à economia de energia, ocultar o cursor (embora seja algo que isso seja algo que o Mplayer faz por sua própria janela) e coisas assim.

Além disso, às vezes em execução, por exemplo, os aplicativos GTK em uma tela X BAR X podem acabar usando um tema "feio", para que você precise ter a configuração do estilo de ferramenta cuidados de alguma maneira.

Estou fazendo algo semelhante na minha "caixa de decoração" e não uso nenhum gerenciador de janelas.

Ele inicializa o Debian, e de Inittab I-Login o usuário que executa a tela. O .PROFILE desse usuário inicia x, que é executado .xinitrc, que inicia meu aplicativo Python que é executado como um servidor de rede na frente do Mplayer (executando o Mplayer no modo -Slave Mode).

Meu aplicativo Python não possui um elemento GUI - apenas o Mplayer é executado na tela X. Mas, no seu caso, não deve ser diferente. Como mencionei em um comentário para outra resposta, convém examinar como pode reparar a janela do Mplayer para fornecer maior controle sobre sua colocação e/ou movimento/tamanho.

Fazer dessa maneira evitou um gerenciador de tela e um gerenciador de janelas. Isso simplifica a solução, botas mais rapidamente e usa uma pegada menor (ela é executada de um cartão SD, com montes de espaço de sobra).

Sei que essa é uma pergunta antiga, mas uso o OpenBox no meu sistema, criei um arquivo de configuração personalizado que desativa todos os atalhos do teclado do mouse e remove as fronteiras etc. nos aplicativos. Na configuração OpenBox, até criei alguns atalhos secretos que podem executar o FX. Um Xterm para depurar ao vivo na caixa.

A documentação do OpenBox foi muito útil para descobrir tudo, eu fiz a configuração em cerca de 30 minutos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top