手动或编程时自动启动应用程序不起作用

手动或编程时自动启动应用程序不起作用

我目前正在为 Ubuntu 编写一个登录时运行的背景更改器。经过多次思考,我最终决定使用自动启动应用程序来实现这一点。

但是,我没有在启动应用程序 GUI 中创建的自动启动应用程序将无法运行即使是复制粘贴的。(我的意思是,当通过编程或手动复制粘贴时,它们将不起作用。)我尽力复制 GUI 的文件输出,但无论我怎么尝试,它就是不起作用。当保存为 python.desktop 时,它们将不起作用。当保存为 时,它们将不起作用desktop_changer.desktop。但是,手动和编程插入的文件将出现在 GUI 中,如果我在 GUI 中稍作调整(例如更改名称或添加空格),它们就会立即起作用!我是否遗漏了某些明显的东西?

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)

主要方法:

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)

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)

文件输出(~/.config/autostart/python.desktop):

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

当我通过 GUI 执行此操作并删除多余的部分(~/.config/autostart/python.desktop)时:

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

我无法想象是什么导致了这种差异。有人知道吗?

相关内容