Edit: This is incorrect, see my post below. I am leaving the original text here since knowing about preset files may be useful for somebody else.
Most likely, check out man 5 systemd.preset.
The preset files determine which units are enabled or disabled by default. I currently don’t have a Silverblue system to check it out, but I think the presets for it should be in /usr/lib/systemd/user-preset/.
You should be able to create a new file /etc/systemd/user-preset/70-disable-gnome-software.preset with the content
disable gnome-software.service
Make sure that you choose a priority number (I used 70 above, but that was just a guess based on the preset files I have on my Fedora KDE system) that is lower than whatever preset file in /usr/lib/systemd/user-preset/ enables gnome-software.service.
Actually, turns out I assumed wrong and this isn’t the way to go.
I just spun up a Silverblue 43 VM, which I wanted to check out anyway. In Silverblue 43, gnome-software.service is not started as a preset, but by a Wants= entry in the drop in file /usr/lib/systemd/user/gnome-session@gnome.target.d/gnome.session.conf:
~ > systemctl --user show gnome-software.service
[...]
WantedBy=gnome-session@gnome.target
[...]
~ > systemctl --user status gnome-session@gnome.target
● gnome-session@gnome.target - GNOME Session (session: gnome)
Loaded: loaded (/usr/lib/systemd/user/gnome-session@.target; static)
Drop-In: /usr/lib/systemd/user/gnome-session@gnome.target.d
└─gnome.session.conf
Active: active since Sun 2025-11-02 16:22:01 CET; 37min ago
Invocation: cdc91266a03b4a3283e33535ee789a00
Nov 02 16:22:01 fedora systemd[2640]: Reached target gnome-session@gnome.target - GNOME Session (session: gnome).
You should be able to override this file with a modified copy in /etc
~ > sudo mkdir -p /etc/systemd/user/gnome-session@gnome.target.d/
~ > sudo cp /usr/lib/systemd/user/gnome-session@gnome.target.d/gnome.session.conf /etc/systemd/user/gnome-session@gnome.target.d/
~ > sudo nano /etc/systemd/user/gnome-session@gnome.target.d/gnome.session.conf # <- remove or comment out the 'Wants=gnome-software.service' line
There is a chance, though, that /usr/lib/systemd/user/gnome-session@gnome.target.d/gnome.session.conf gets updated in the future and this update isn’t picked up on your system because you have a higher priority file in /etc/systemd/user/gnome-session@gnome.target.d/. I don’t know how to avoid this, since AFAIK you cannot just use another drop in file to remove one specific Wants= entry from a unit. Maybe somebody else has a solution for that.
You can also mask the service, which has some other consequences. systemctl --user mask gnome-software.service but then you have to make additional changes to the desktop file to get it to launch or just run it from the command line.
Desktop file changes: cp /usr/share/applications/org.gnome.Software.desktop ~/.local/share/applications/
edit the file in ~/.local/share/applications/ with your preferred editor.
Remark Out (put a # in front of it) the line with: DBusActivatable=true
or
set it to DBusActivatable=false
If you’re not going to use it at all it’s probably easier to just remove it: rpm-ostree override remove gnome-software-rpm-ostree gnome-software
With any of these changes you’re losing automatic updates from software.
This is not really an answer to your question, but I wonder why do you want to prevent GNOME Software from starting up? Is it because you don’t want to use it at all?
I am on Silverblue as well, and while I was updating it from the CLI at the beginning, via rpm-ostree upgrade and flatpak update commands, now I rely on GNOME Software to carry out the updates seamlessly in the background.
However, if you want to disable automatic updates, you can do that in the app’s settings, and you can also disable update notifications with:
gsettings set org.gnome.software allow-updates false
(There was a bug in GNOME 48 which prevented properly disabling update notifications, but it should be fixed by now in GNOME 49).
I don’t use it. I have automatic updates stage and a script for flatpak apps. One thing less running in my computer. It delays start up, waste RAM and it is (was) slow to run.
FWIW, according to the GNOME 49 release notes, GNOME Software received some performance improvements. I have noticed such improvements myself after rebasing to Silverblue 43.