A aplicação Autostart não funciona quando feita manualmente / programaticamente

2

Atualmente, estou escrevendo um alterador de plano de fundo para o Ubuntu que é executado no login. Depois de muita atenção, finalmente decidi que uma aplicação de autostart era a maneira de fazer isso.

No entanto, os aplicativos de inicialização automática que eu não faço na GUI de Aplicativos de Inicialização não funcionarão mesmo se eles forem copiados e colados . (Eles não funcionam quando programaticamente ou copiados manualmente, quero dizer.) Eu tentei muito reproduzir a saída de arquivo da GUI, mas não importa o que eu tente, simplesmente não funciona. Eles não funcionarão quando salvos como python.desktop. Eles não funcionarão quando salvos em desktop_changer.desktop . No entanto, os arquivos inseridos manualmente e programaticamente aparecerão na GUI, e se eu fizer um pequeno ajuste na GUI (como alterar o nome ou adicionar um espaço), eles de repente funcionarão! Existe algo óbvio que eu sinto falta?

Python:

with open(os.path.expanduser("~/.config/autostart/python.desktop"), "w") as file:
    command = "[Desktop Entry] \nType=Application \nExec=python {}/main.py {} {}\nName=Desktop Changer\n".format(path, arg, minutes)
    file.write(command)

Método principal:

if __name__ == "__main__":
    time.sleep(10)
    os.chdir(os.path.dirname(os.path.realpath(__file__)))


    while True:

        #Set pic, set timer, run continously
        for img in os.listdir('pics/'):
            print(os.path.abspath('pics/' + img))
            set_gnome_wallpaper(os.path.abspath('pics/' + img))
            time.sleep(10)

e set_gnome_wallpaper() :

def set_gnome_wallpaper(file_path):
    command = "gsettings set org.gnome.desktop.background picture-options 'zoom' && gsettings set org.gnome.desktop.background picture-uri file://'%s'" % file_path
    subprocess.call(command, shell=True)

Saída de arquivo ( ~/.config/autostart/python.desktop ):

[Desktop Entry] 
Type=Application 
Exec=python /home/chessie/program/python/desktop_changer/main.py SPE 60.0
Name=Desktop Changer

Quando faço isso via GUI e excluo as partes estranhas (~ / .config / autostart / python.desktop):

[Desktop Entry]
Type=Application
Exec=python /home/chessie/program/python/desktop_changer/main.py SPE 60.0
Name=Desktop Changer

Eu não consigo imaginar o que poderia estar causando a disparidade. Alguém tem alguma ideia?

    
por Isaac Samuel 13.04.2017 / 16:39

0 respostas