Manjaro Transmission gtk css image get concrete size assertion default_width 0 failed?

I have launched transmission 3.00-2 (extra repo) via command line on 5.8.18-1-MANJARO. Though it started pulling in the error messages like following ones despite i instructed it to run on background.

$ env DISPLAY=:0.0 transmission-gtk &
[1] 506799
[me@me ~]$
(transmission-gtk:506799): Gtk-CRITICAL **: 14:09:17.425: _gtk_css_image_get_concrete_size: assertion ‘default_width > 0’ failed

(transmission-gtk:506799): Gtk-CRITICAL **: 14:09:17.425: _gtk_css_image_get_surface: assertion ‘surface_width > 0’ failed
…above 2 errors repeats…

How can this be fixed?

Btw. anyone knows how to launch transmission-gtk via cronjob? This cronjob works, but the one you see in the comment under it, does not…

Just because a program should run in the background, does not mean it will not print error messages. It just means that you will get your promt back. Also if you close the Terminal emulator, all background process are killed.

By not doing what you did. Create a systemd service, the transmission-cli contains a systemd system service example. It might not fit perfectly, since you want a GUI. Btw, the cli has a web interface.
If you want the gtk version, you might want to create a systemd user service, for your user. This service can be started via a systemd timer, so there is no need for cron after all.

This is a very simple systemd user service which can start transmission minimized. You might want to tweak it to fit your needs.

$ systemctl --user cat transmission-user.service
# /home/xabbu/.config/systemd/user/transmission-user.service
[Unit]
Description=transmission
After=display-manager.service

[Service]
Type=simple
ExecStart=/usr/bin/transmission-gtk -m
ExecReload=/bin/kill -s HUP $MAINPID

It can be manually started with systemctl --user start transmission-user.service or via a timer. But it can’t be enabled. If you want to use it, don’t forget to reload systemd with systemctl --user daemon-reload

1 Like

Thank you.
I have ran it, it worked to create service:

echo -e "[Unit]\nDescription=transmission\nAfter=display-manager.service\n\n[Service]\nType=simple\nExecStart=/usr/bin/transmission-gtk -m\nExecReload=/bin/kill -s HUP $MAINPID" > ~/.config/systemd/user/transmission-user.service;systemctl --user daemon-reload

I see that the web interface complained about missing files, so i have installed transmission-cli package and web UI started working.

Btw. i am having problem with launching yours mentioned command (systemctl --user start transmission-user.service) via bash script. that bash script launches other commands OK, but the mentioned command not start transmission via bash, but when i run it directly via command line, then it works…

bash script that fails to start it:

#!/bin/bash
ps=$(ps aux)
if [[ “$ps” != “transmission-gtk” ]];then systemctl --user start transmission-user.service
fi

and direct command that works:

if [[ “$(ps aux)” != “transmission-gtk” ]];then systemctl --user start transmission-user.service;fi

This is how the manually started service looks like:

● transmission-user.service - transmission
Loaded: loaded (/home/me/.config/systemd/user/transmission-user.service; static)
Active: active (running) since Tue 2020-12-08 01:12:37 CET; 22s ago
Main PID: 178503 (transmission-gt)
CGroup: /user.slice/user-1000.slice/user@1000.service/transmission-user.service
└─178503 /usr/bin/transmission-gtk -m

my aim is that the transmission-gtk is kept running, ideally via bash script as im already using it to keep running other services (as per the link above).