Hi,
I am trying to start a shell script after user login in gnome. Under Xorg I did this with a .desktop file in ~/.config/autostart.
Today I switched to wayland and the autostart of this script doesn’t work.
The script should start two instances of conky. When I run the script manually all is working fine and conky gives me the information. But the autostart is not working.
Here is the .desktop file (~./config/autostart/startconky.desktop
[Desktop Entry]
Type=Application
Exec=/home/NAME/.conky/myscript.sh
Hidden=false
X-GNOME-Autostart-enabled=true
Name=myscript
Comment=custom script
and the the content of the script:
#!/bin/bash
exec conky --config=/home/NAME/.conky/.conkyrc &
exec conky --config=/home/NAME/.conky/.conkyrcnet &
Is there another way to autostart a script under wayland?
Autostart works just the same under wayland, but I’m not sure if conky does? Have you tried running that script from terminal after switching to wayland?
I tried this and it works. I can start the script manualy.
xabbu
29 October 2020 19:10
4
Maybe add a little delay in the script (sleep 30
) . If the script is executed to early you might not see conky.
Start with 30 seconds and go backwards if it is working.
Or switch to a systemd user service. I use it for my conky(s)
For example
$ systemctl --user cat conky-0.service
# /home/xabbu/.config/systemd/user/conky-0.service
[Unit]
Description=Conky Part 0
After=display-manager.service
[Service]
Type=forking
ExecStartPre=/usr/bin/sleep 1
ExecStart=/usr/bin/conky -c /home/xabbu/.conkyrc
[Install]
WantedBy=default.target
I need a one second delay. Otherwise I would not see my conkys. ( It does not work as good if you use sometimes only ssh without logging in before via GDM. )
A systemd service also works, however Conky already has a delay option built in:
See conky --help
:
-p, --pause=SECS pause for SECS seconds at startup before doing anything
Example:
conky --daemonize --pause=30 --config=/home/NAME/.conky/.conkyrc &
I tried to start the script with a unit file. After boot up the sytem I used sudo systemctl start conky.service to start conky manualy but:
➜ sudo systemctl status conky.service
● conky.service - Conky for network and system information
Loaded: loaded (/etc/systemd/system/conky.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Fri 2020-10-30 09:13:04 CET; 5s ago
Process: 584883 ExecStartPre=/usr/bin/sleep 10 (code=exited, status=0/SUCCESS)
Process: 584946 ExecStart=/home/NAME/.conky/start_conky.sh (code=exited, status=0/SUCCESS)
Okt 30 09:12:54 xxx systemd[1]: Starting Conky for network and system information...
Okt 30 09:13:04 xxx systemd[1]: Started Conky for network and system information.
Okt 30 09:13:04 xxx start_conky.sh[584948]: conky:
Okt 30 09:13:04 xxx start_conky.sh[584947]: conky:
Okt 30 09:13:04 xxx start_conky.sh[584948]: can't open display:
Okt 30 09:13:04 xxx start_conky.sh[584947]: can't open display:
Okt 30 09:13:04 xxx systemd[1]: conky.service: Succeeded
xabbu
30 October 2020 09:05
7
You need to use a user service file and not a system service file. A system service is run as root by default (unless you define a user and group).
Also your script starts 2 conky instances. This does not work well. Use fore every conky instance a different service file.
Or use the old way (desktop file in autostart) but add a delay.
1 Like
With using user unit files and one file for every conky instance it works. Thanks a lot
system
Closed
14 November 2020 12:58
10
This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.