My idea is to define a systemd user unit and start it with a timer unit. But I even fail to start the application manually with the unit in:
~/.config/systemd/user/signal-desktop.service :
[Unit]
Description=Start Signal Desktop GUI
Requires=default.target
[Service]
Type=notify
ExecStart=/usr/bin/gtk-launch signal-desktop
[Install]
When I start this unit manually, I see the icon of the application in the task bar, but after ~15 sec. it disappears again, and I never see the app window appear.
$ systemctl --user start signal-desktop.service
Job for signal-desktop.service failed because the service did not take the steps required by its unit configuration.
See "systemctl --user status signal-desktop.service" and "journalctl --user -xeu signal-desktop.service" for details.
$ systemctl --user stop signal-desktop.service
$ systemctl --user status signal-desktop.service
× signal-desktop.service - Start Signal Desktop GUI
Loaded: loaded (/home/ich/.config/systemd/user/signal-desktop.service; static)
Active: failed (Result: protocol) since Mon 2023-05-01 00:08:22 CEST; 22s ago
Process: 93087 ExecStart=/usr/bin/gtk-launch signal-desktop (code=exited, status=0/SUCCESS)
Main PID: 93087 (code=exited, status=0/SUCCESS)
CPU: 115ms
Mai 01 00:08:22 T500 systemd[1005]: Starting Start Signal Desktop GUI...
Mai 01 00:08:22 T500 systemd[1005]: signal-desktop.service: Failed with result 'protocol'.
Mai 01 00:08:22 T500 systemd[1005]: Failed to start Start Signal Desktop GUI.
What is meant by "Active: failed (Result: protocol)"?
An alternative may be using a cron
job with anacron
.