Uninstall Polaris, or start over
Two reasons bring people here: you are done with Polaris, or you want a clean slate before installing it again. The steps are the same. The last one decides which of the two you get.
The package manager removes what the package installed. It does not remove what Polaris created while running, what host setup wrote outside the package, or what you added yourself. This page lists all of it, in the order that works.
Before you start
Section titled “Before you start”- Finish your games and end every stream from the client.
- Quit Polaris. If it runs as a service:
If you start it from the desktop or the tray, quit it from the tray icon.
Terminal window systemctl --user disable --now polaris - Check that nothing is left running:
It should print nothing. A second instance you forgot about, for example a validation build, counts too.
Terminal window pgrep -a polaris
1. Remove the Spaces security setup first
Section titled “1. Remove the Spaces security setup first”Do this while the package is still installed. The helper is a package file, and nothing else knows how to remove the policies it installed.
sudo -H /usr/bin/polaris-spaces-setup removeIt removes only the SELinux policies and the input rule it installed, and it never touches player homes. If it refuses, Prepare Spaces security support explains each message.
Docker keeps the gaming runtime image and each Space’s Steam home after the package is gone, and
Polaris never deletes a home on its own. The homes are Docker volumes with opaque names, listed by
docker volume ls next to your other volumes. Leave them if you might come back; the games and
saves live there. Remove one with docker volume rm only when you are sure which Space it belongs
to and want its games and saves gone for good. The runtime image is safe to remove at any time:
docker image ls 'ghcr.io/papi-ux/polaris-worker-steam'Hosts without Spaces skip this section.
2. Turn off boot start, if you enabled it
Section titled “2. Turn off boot start, if you enabled it”Also before the package goes, because it needs the binary:
sudo -H polaris --setup-host --disable-headless-bootIf the package is already gone, remove the boot hook by hand instead:
rm -f ~/.config/systemd/user/default.target.wants/polaris.serviceLingering stays on because other services may rely on it. Turn it off yourself if nothing else needs your session at boot:
loginctl disable-linger "$USER"3. Remove the package
Section titled “3. Remove the package”Fedora:
sudo dnf remove polarisUbuntu:
sudo apt remove polarisArch Linux:
sudo pacman -R polarisSteamOS:
sudo steamos-readonly disablesudo pacman -Rns polarissudo steamos-readonly enableBazzite:
sudo rpm-ostree uninstall polarisThen reboot into the new deployment.
The package takes its binaries with it, including polaris-spaces-setup, plus the user service
unit, the udev rules and modules-load configuration under /usr/lib, the desktop entries and
/usr/share/polaris. The uinput and uhid kernel modules stay loaded until the next reboot,
which is harmless. The KMS capture capability lives on the binary and leaves with it.
4. What the package does not take with it
Section titled “4. What the package does not take with it”Check each of these. On a host that only ever ran the packaged Polaris, most of them are absent.
- Rules copied into
/etc. Older host setups copied the udev rules and modules-load configuration into/etc. The package manager does not know about those copies.Terminal window sudo rm -f /etc/udev/rules.d/60-polaris.rules /etc/modules-load.d/60-polaris.confsudo udevadm control --reload-rules /usr/share/polarisstill present. The package manager leaves the folder when something else wrote into it, for example web assets deployed from a source build or an.rpmsavefile. Once the package is gone, remove it:Terminal window sudo rm -rf /usr/share/polaris- The Spaces security state. The helper keeps a small record under
/var/lib/polaris. Remove it after step 1:Terminal window sudo rm -rf /var/lib/polaris - KWin screencast permissions, on KDE hosts. Polaris registers itself for KWin’s screencast
permission by writing
~/.local/share/applications/dev.polaris-stream.app.Polaris.kwin.<id>.desktop, one per binary path, and never removes them, so they pile up across upgrades. Remove them:Terminal window rm -f ~/.local/share/applications/dev.polaris-stream.app.Polaris.kwin.*.desktop - Installs from source. If you ever installed a source build, its files live under
/usr/localand no package manager knows them:/usr/local/bin/polaris*,/usr/local/share/applications/dev.polaris-stream.app.Polaris*.desktop(this is what keeps “Polaris” in the application launcher after the package is gone),/usr/local/share/polaris,/usr/local/lib/systemd/user/polaris.service, and the icons under/usr/local/share/icons/hicolor/scalable/apps/polaris.svgand/usr/local/share/icons/hicolor/scalable/status/polaris-*.svg. Because/usr/local/sharecomes before/usr/shareinXDG_DATA_DIRS, stale icons there shadow the packaged ones, so the panel and the launcher keep showing an old Polaris icon even after a reinstall. Remove all of it, then on KDE runkbuildsycoca6 --noincrementalso the launcher forgets the entry, and restart the panel or log out and in:Terminal window sudo rm -rf /usr/local/bin/polaris* /usr/local/share/applications/dev.polaris-stream.app.Polaris*.desktop \/usr/local/share/polaris /usr/local/lib/systemd/user/polaris.service \/usr/local/share/icons/hicolor/scalable/apps/polaris.svg \/usr/local/share/icons/hicolor/scalable/status/polaris-*.svgkbuildsycoca6 --noincrementalsystemctl --user restart plasma-plasmashell.service - Your own additions. Unit overrides under
~/.config/systemd/user/, udev rules you wrote for a virtual display, firewall openings for the Polaris ports, or an extra binary you copied into/usr/binwhile testing. Only you know about these;ls /usr/bin/polaris*andls /etc/udev/rules.d/ | grep polarisfind the common ones. - Steam Input. If you applied the Doctor fix that turns off Steam’s Xbox configuration support, Steam keeps that setting after Polaris is gone. Turn it back on in Steam under Settings, Controller, if you want it; Steam Input and virtual controllers explains what it does.
- Bazzite’s optional KMS copy. If you made the writable copy of the binary for KMS capture, remove that copy and its unit drop-in as the Bazzite guide describes.
5. Your data
Section titled “5. Your data”Everything Polaris created while running lives in one folder, ~/.config/polaris:
| Files | What they hold | Keep them if |
|---|---|---|
polaris.conf |
host settings: capture, modes, HDR, ports | you want the same setup back |
polaris_state.json, credentials/ |
the web UI account and every paired device | you do not want to pair every device again |
apps.json, library_sources.json |
the library and its ROM folders | you want the library back |
device_db.json, client_profiles.json |
per-device tuning | you tuned devices by hand |
covers/, artwork/ |
downloaded box art | never needed; they come back |
polaris.log* |
logs | you plan to report a problem |
Back the folder up before deciding. It is small:
tar czf ~/polaris-config-$(date +%F).tgz -C ~ .config/polarisTo keep Polaris off the machine for good, or to install it again as if for the first time:
rm -rf ~/.config/polarisTo install again and keep your account, devices and library, leave the folder alone. The next install finds it and shows the login page instead of the welcome page.
6. Check
Section titled “6. Check”pgrep -a polarisls -d /usr/bin/polaris* /usr/share/polaris /etc/udev/rules.d/*polaris* \ /etc/modules-load.d/*polaris* /var/lib/polaris ~/.config/polaris 2>/dev/nullls -d /usr/local/bin/polaris* /usr/local/share/applications/dev.polaris* \ /usr/local/share/icons/hicolor/*/*/polaris* ~/.local/share/applications/dev.polaris* 2>/dev/nullsystemctl --user status polarisEverything but the last line prints nothing, and the last says the unit could not be found. Anything that still shows up belongs to one of the sections above.
7. Install again
Section titled “7. Install again”Follow the quickstart or your distribution’s page. Two things to know:
- With
~/.config/polarisgone, the console opens on the welcome page and asks for a new account. With the folder kept, it opens on the login page and your devices are still paired. Web UI credentials covers both. - KMS capture needs its capability again after every install or upgrade. Doctor says so once
KMS capture is configured; the fix is one command:
then restart Polaris.
Terminal window sudo -H polaris --setup-host --enable-kms