How to get Nautilus extensions on Silverblue?

On Silverblue, how does one install common Nautilus extensions? I thought these were just Gnome Extensions but apparently not. I like to stay away from using layering (rpm-ostree) for something so trivial as adding basic functionality to a filemanager… hope I am not the only one.

1 Like

When using an atomic version of fedora you have 2 options to add additional packages.
Layering with rpms or flatpaks.

The OS is atomic and is delivered as a complete bundle so the only way to make changes is with layering or adding flatpak apps.

Well complete is not really correct. Silverblue is far from a complete OS. Also, you can’t just do layering and still expect Silverblue to behave. For example rpm-ostree layering will break smooth upgrades and can become a bit of a headache…

Also, you forgot to mention the third option: Gnome Extensions.

It’s inconsistent of Gnome Project that they have Nautilus extensions, which are not part of their Gnome Extensions ecosystem.

For Gnome Extensions, no layering is necessary.

This means in total there are 4 ways to add tools or applications, but it seems that for Nautilus extensions, there is no way to do it like with Gnome Extensions.

I’m using both Fedora Silverblue and Workstation. Can you give an example of a Nautilus extension that would otherwise work on a non-atomic edition of Fedora (e.g. Workstation)?

That shouldn’t be the case for packages from the Fedora repos applied on up-to-date systems. At least it isn’t the case on my systems. I tend to restrict rpm-ostree layering to only a few packages which are either needed on a system-level (e.g. adw-gtk3-theme for legacy GTK apps, or gnome-tweaks), and install the rest of GUI apps as Flatpaks and CLI tools in a Toolbx container. I tend to avoid extensions altogether.

IMO, layered packages which cause upgrade issues will probably cause dependency issues on non-atomic desktops as well.

System extensions (sysetxs) would be a good option for adding those extensions to an Atomic Desktop system: GitHub - travier/fedora-sysexts: Example sysexts for Fedora image based systems

1 Like

You are right, I meant added layers from RPM Fusion.

The actions-extension is a no-brainer and additionally the admin-extension to allow right-click anywhere and open with elevated privileges. Currently, there is a context menu option to open in Terminal in which you can then use sudo. The admin-extension allows you to stay in the UI (but with a big fat coloured bar on top so that you are reminded of the elevated privileges.
Another extension allows additional columns for metadata of images etc.

I think most users would benefit from actions and admin extensions.

That looks quite complex for something that is just 1 rpm package of 78 KB away:
https://fedora.pkgs.org/41/fedora-x86_64/nautilus-extensions-47.0-1.fc41.x86_64.rpm.html
Adding that to the base image (that already contains the nautilus package) might make more sense?

nautilus-extensions

This looks like the package needed to make extensions work, not the package including the extensions.

I don’t know why this package is not included in Silverblue. If you think this package should be added by default to the image then you can open an issue for it.

We will probably have to ask the Workstation Working Group why it is not included by default.

It seems to be installed on my aarch64 Silverblue 41.

rpm -qa nautilus-extensions
nautilus-extensions-47.1-1.fc41.aarch64

I didn’t layer it, so it was either in the base install, or it was brought as a dependency of the very few packages layered.

rpm-ostree status
State: idle
Deployments:
● fedora:fedora/41/aarch64/silverblue
                  Version: 41.20250116.0 (2025-01-16T01:19:21Z)
               BaseCommit: 052cea77eba7fdf50c816814833cc798022fd6d6a7ea5bdd5c2ff7a36e825cfb
             GPGSignature: Valid signature by 466CF2D8B60BC3057AA9453ED0622462E99D6AD1
          LayeredPackages: adw-gtk3-theme gdb gnome-tweaks rclone

# [...]

Based on the below output, it seems to be provided by the OSTree image though, given that it’s a dependency of nautilus.

dnf rq --whatrequires nautilus-extensions
Updating and loading repositories:
Repositories loaded.
eiciel-0:0.10.0-6.fc41.aarch64
file-roller-nautilus-0:44.3-2.fc41.aarch64
file-roller-nautilus-0:44.4-1.fc41.aarch64
gnome-terminal-nautilus-0:3.54.0-1.fc41.aarch64
nautilus-0:47.0-1.fc41.aarch64
nautilus-0:47.1-1.fc41.aarch64
nautilus-devel-0:47.0-1.fc41.aarch64
nautilus-devel-0:47.1-1.fc41.aarch64
nautilus-gsconnect-0:57-2.fc41.noarch
nautilus-gsconnect-0:58-1.fc41.noarch
nautilus-python-0:4.0.1-3.fc41.aarch64
papers-nautilus-0:47.0-6.fc41.aarch64
seahorse-nautilus-0:3.11.92-27.20220906git2cc2a06.fc41.aarch64
2 Likes

What specific extension?

How do you normally install it?

Where are such files placed?

I have tried some 3D-model previewer extensions on Ubuntu, because the devs only provided .deb packages. And they were installed to a /usr directory which needs to be done by layering

But there might be different kinds of extensions.

Once Nautilus can run as a Flatpak, adding extensions to it would be way easier.