I try to download a file with curl directly after logging into Gnome. This usually fails because mostly the WiFi connection is only established after login. If I wait long enough in the login screen before logging in, the connection is already established and the download works.

So far I have used Manjaro. WiFi was already active long before the login screen of GDM was even displayed. The download therefore always worked.

The download is initiated with a *.desktop file in ~/.config/autostart.

Is there another way to start the download after the user is logged in and the WiFi connection is really ready?

  • jrgd@lemm.ee
    link
    fedilink
    English
    arrow-up
    19
    ·
    5 days ago

    Create a systemd user unit that waits for the network-online.target.

    A script something like:

    [Unit]
    Description=Startup script
    Requires=network-online.target
    After=network-online.target
    
    [Service]
    Type=oneshot # either simple or oneshot, but sounds like oneshot
    ExecStart=/home/<user>/script.sh
    RemainAfterExit=yes #if oneshot, otherwise no
    
    [install]
    WantedBy=default.target
    

    Edit the template according to your needs and dump it into ~/.local/share/systemd/user/<unit>.service and enable it with systemctl --user enable --now <unit>

      • jrgd@lemm.ee
        link
        fedilink
        English
        arrow-up
        8
        ·
        5 days ago

        Oneshot services are for things like scripts that do a thing and exit. Simple is for basic services that intend to run for the lifetime of the system (or for user units, the lifetime of the user’s session).