Installation (Fedora RPM)

This page is the end-user path: install the packaged .rpm, then turn Wusel on. It is the counterpart to Trying it out, which builds from source. Building the RPM itself is covered by Project, licence & distribution and packaging/rpm/README.md in the repository.

Get the package

Every v* tag builds the RPM for x86_64 and aarch64 and attaches both to a GitHub Release, so the normal route is to download one from the latest release and install that file. These are the unsigned community RPMs — there is no Wusel dnf repository, so dnf will not update them for you; grab the next release the same way.

You can also build the RPM yourself (mise run rpm, output in dist/); see Project, licence & distribution and packaging/rpm/README.md.

Install the package

sudo dnf install ./wusel-*.rpm

The one dependency the spec states explicitly is fuse3, for the setuid fusermount3 helper the unprivileged mount needs; the shared libraries the binary and the Nautilus extension link against come in automatically as soname dependencies. The nautilus and gnome-shell applications are only Recommends: the package installs on a machine without them and the mount works — you simply get no sidebar entry, no emblems and no Shell search. The search provider in particular links no GNOME Shell library at all; it is the wusel binary answering D-Bus, which the Shell activates on demand. dnf also runs Fedora’s icon-cache and desktop-database triggers for you.

The package installs the wusel binary, a systemd user service template, the Nautilus extension with its emblem icons, the GNOME Shell search provider, and the Nautilus sidebar (cloud-provider) registration for the default account.

Turn it on

Three steps: log in, enable the mount service, then load the desktop integration once.

Step 1 — Log in

wusel login https://cloud.example.org

This runs Nextcloud’s official Login Flow v2: it prints a URL, you approve the connection in your browser, and Wusel stores an app password. By default that password goes into your OS keyring (GNOME Keyring / KWallet); if no keyring is available it falls back to a 0600 file. To force the file, log in with wusel login --keyring false <url>. Nothing is mounted yet.

Step 2 — Enable the mount (systemd user service)

The mount runs as a user service — no sudo, tied to your login session. One instance per account; the default account is wusel@default:

systemctl --user enable --now wusel@default

--now mounts your cloud at ~/Wusel immediately, and enable makes it come back automatically at every login. This one service is the whole running Wusel: it serves the filesystem, drives the Nautilus sidebar entry and per-file emblems, and pushes live emblem updates.

Check it and follow its log:

systemctl --user status wusel@default
journalctl --user -u wusel@default -f

systemctl --user enable --now wusel@default is the packaged equivalent of the wusel service enable command shown in Trying it out. Use whichever you like — the RPM ships the unit at /usr/lib/systemd/user/wusel@.service so systemctl --user finds it directly, with no per-user setup.

Step 3 — Load the desktop integration (log out and back in)

The Nautilus extension and the GNOME Shell search provider are loaded by their host processes at session start. After installing the package, log out and log back in once so both pick it up.

  • Files (Nautilus) — a Wusel (Nextcloud) entry appears in the sidebar, and files carry a status emblem (cloud = online-only, cloud+check = cached, green check = pinned/always offline, up-arrow = pending upload). Right-click a file for Make Available Offline / Free Up Space.

  • Search — start typing in the Activities overview; Nextcloud matches appear under Wusel (Nextcloud) and open from your local ~/Wusel.

Faster than a full re-login: restart Nautilus with nautilus -q (it relaunches on next use), and restart GNOME Shell — on X11 with kbd:[Alt+F2] then r, on Wayland by logging out and in. A full re-login always works.

If the search provider does not show up

The search provider is D-Bus-activated by GNOME Shell — there is no service to start. If results do not appear:

  1. Open Settings → Search and make sure Wusel (Nextcloud) is present and toggled on (GNOME lists a provider here only after a Shell restart).

  2. Confirm you are logged in (Step 1) — search queries the server with your stored credentials.

  3. First queries can be slow while the server warms up; Wusel waits up to a few seconds per query.

See File-manager integration for how the emblems, menu and search work under the hood.

More than one Nextcloud account

Each account is its own login, its own mount folder, and its own service instance. For an account named work:

wusel login --account work https://cloud.work.example      # log in
sudo wusel desktop install-provider --account work         # sidebar entry (needs root)
systemctl --user enable --now wusel@work                   # mount ~/Wusel-work

The RPM ships the sidebar registration only for the default account; additional accounts register theirs with wusel desktop install-provider (it writes into a system directory, hence sudo). Log out and back in so the new sidebar entry appears.

Turn it off / uninstall

Do it in this order — disable the user service first (the package can’t stop a service running in your session), then remove the package:

systemctl --user disable --now wusel@default   # unmount now + stop auto-mount
sudo dnf remove wusel                           # remove the package

dnf remove deletes every file the package owns — the binary, the systemd unit, the Nautilus extension and emblems, the search provider, and the default account’s sidebar registration. Sidebar registrations that Wusel wrote for named accounts are cleaned up too (a removal scriptlet handles those). Your Nextcloud is untouched — Wusel only ever mounted it.

What is deliberately left behind

Your per-user data stays: ~/.config/wusel (config + credentials), ~/.local/state/wusel (the state database) and ~/.cache/wusel (downloaded file blobs). RPMs never touch files in a home directory — and keeping them means a later reinstall picks up exactly where you left off, with no new login.

Wipe everything and start fresh

When you want a clean slate — reinstall from zero because something is broken — remove that per-user data as well:

systemctl --user disable --now wusel@default             # if not already done
systemctl --user reset-failed 'wusel@*' 2>/dev/null || true
rm -rf ~/.config/wusel ~/.local/state/wusel ~/.cache/wusel
# Drop the app password from the keyring (default storage; no-op if it was a file):
secret-tool clear service wusel 2>/dev/null || true

After that, nothing of Wusel remains: a fresh dnf install + wusel login starts completely from scratch.

Disabling the service before removal also clears its enable symlink under ~/.config/systemd/user. If you removed the package first and left a dangling link, systemctl --user disable wusel@default (then systemctl --user daemon-reload) tidies it up even though the unit file is already gone.