pyosd trabalha com intérprete, mas não com um script

2

Estou trabalhando em um script que exibe informações arbitrárias do sistema na tela. Para esse propósito, tenho tentado usar o módulo pyosd .

Considere as seguintes três linhas:

import pyosd
p = pyosd.osd()
p.display("ASKUBUNTU")

Isso funciona bem com o interpretador python 2.7, no entanto, falha quando executado a partir de um script - nenhuma exceção é lançada, mas nada é exibido. Como posso resolver isso?

Estou aberto a sugestões alternativas, mas pynotify também não funciona para mim, pois as notificações que ele gera não podem ser colocadas na posição arbitrária da tela. Observe também que gnome-osd-client também é uma ferramenta útil, mas eu preciso de um script autônomo em vez de usar um aplicativo externo. O script seria destinado a outros usuários, e eu não quero que eles baixem pacotes extras que eles não precisarão

    
por Sergiy Kolodyazhnyy 08.05.2016 / 08:28

1 resposta

0

Como afirmado no link

  

FAQs

     

Por que eu posso exibir o texto de forma interativa, mas não em um script?

     

O texto é exibido em um segmento diferente, então você precisa manter o   programa funcionando o tempo suficiente para ver o texto. Geralmente isso significa adicionar   a seguinte chamada de função no final do seu programa:

     

my_pyosd_obj.wait_until_no_display ()

Assim, a solução foi fazer isso:

#!/usr/bin/env python
import pyosd
p = pyosd.osd( )
p.display("HELLOOOOOOOOOOOOOOOOOOOOOOOOOO")
p.show()
p.wait_until_no_display()

16,04

O 16.04 LTS parece ter removido muitas das fontes usadas nas versões anteriores. Depois de instalar as fontes x11 com sudo apt-get install xfonts-75dpi e reinicializar, o código funciona com a fonte padrão especificada em pydoc pyosd :

default_font = '-*-helvetica-medium-r-normal-*-*-360-*-*-p-*-*-*'

    
por Sergiy Kolodyazhnyy 08.05.2016 / 09:40