Making CoolerControl's GUI start on login

CoolerControl ships a system daemon and a separate Qt GUI. The daemon controls fans at boot regardless of login, but the rpm doesn't install an autostart .desktop for the GUI, so the tray icon never appears. Drop one in `~/.config/autostart/` (or use Plasma's System Settings → Autostart) to fix it.

CoolerControl is two binaries: a system daemon (coolercontrold) and a Qt GUI client (coolercontrol). The daemon does the actual work (pump curves, fan curves, temperature monitoring), and the rpm enables it as a systemd service, so cooling stays correct at boot whether you log in or not. The GUI is just a viewer for the daemon's API plus the configuration UI.

When you reboot and there's no tray icon, your fans are still being controlled. You're missing a UI, not a fan curve. But you'll still want it back.

Notes below are written for KDE Plasma (the default Bazzite spin) on Wayland. GNOME-specific deltas are called out where they matter.

# Why it doesn't autostart

The Fedora rpm (coolercontrol-4.2.0-1.fc44.x86_64 at the time of writing) installs:

  • /usr/lib/systemd/system/coolercontrold.service, the daemon, enabled by default.
  • /usr/share/applications/org.coolercontrol.CoolerControl.desktop, a launcher entry for the apps menu.

What's missing: no /etc/xdg/autostart/coolercontrol.desktop, and the package doesn't drop anything into ~/.config/autostart/ on first run either. The entry under applications/ puts CoolerControl in your apps menu. XDG autostart loaders don't look there.

Different from Making KopiaUI start on login when installed as a Flatpak, where an in-app toggle exists but silently writes into a sandboxed config dir. Here there's no toggle that writes a .desktop file at all; the package just doesn't ship autostart.

# Fix (Plasma, click path)

If you'd rather not edit dotfiles: System Settings → Autostart → Add → Add Application → CoolerControl → OK. Plasma writes a .desktop under ~/.config/autostart/ for you and applies it on the next session start.

# Fix (any DE, file path)

Drop a minimal autostart entry on the host:

# ~/.config/autostart/coolercontrol.desktop
[Desktop Entry]
Type=Application
Name=CoolerControl
Comment=Monitor and control your cooling device
Exec=coolercontrol
Icon=org.coolercontrol.CoolerControl
Terminal=false
StartupNotify=false
X-GNOME-Autostart-enabled=true

Plasma needs nothing more than a valid XDG .desktop file in ~/.config/autostart/. Its session manager honours the freedesktop spec directly. The X-GNOME-Autostart-enabled=true line is a GNOME-specific extension; Plasma ignores it, but leaving it in keeps the file portable if you ever switch DE or copy it to another machine.

Verify after a reboot:

pgrep -af coolercontrol

You should see two processes: coolercontrold under the system slice (the daemon) and coolercontrol under your user session (the GUI).

# Get it to start in the tray

By default the GUI opens its main window on launch, which is annoying as an autostart. There's no --start-in-tray CLI flag despite forum threads claiming there is. coolercontrol --help lists -h, -v, -d, --full-debug, --disable-gpu, --chromium-flags, --clear-cache. That's it.

Tray-on-launch is a setting inside the app: Settings → Start in Tray. Enable it once with the GUI open, then future autostarts come up minimised to the system tray.

Plasma's tray shows the CoolerControl icon out of the box (StatusNotifierItem support is native). GNOME needs the AppIndicator and KStatusNotifierItem Support extension. Without it, the GUI is running but invisible: no main window, no tray icon, just a process you can only see in pgrep.

# When it still doesn't work

  • Daemon isn't running. systemctl status coolercontrold.service. If it's disabled, sudo systemctl enable --now coolercontrold.service. The GUI will sit at "Connecting to daemon" forever without it.
  • GUI launches but pegs at "Connecting to daemon" with the daemon up. The daemon listens on 127.0.0.1:11987 over HTTPS with a self-signed cert. If you've tightened the local firewall or replaced the cert, that's where to start.
  • Wayland session, GUI window flashes on login then closes. Check journalctl --user -b | grep -i coolercontrol. Usually a Qt platform plugin or GPU acceleration issue. Add --disable-gpu to the Exec= line as a workaround.
  • Plasma's System Settings → Autostart lists the entry but it doesn't run. Check perms on the desktop file. It must be readable by your user. chmod 644 ~/.config/autostart/coolercontrol.desktop. Same applies to GNOME's Tweaks → Startup Applications.

# Why not just the system desktop file

You might be tempted to copy /usr/share/applications/org.coolercontrol.CoolerControl.desktop into /etc/xdg/autostart/. Don't, on Bazzite or any other rpm-ostree atomic system: /etc is layered, but /usr is read-only and gets rebuilt on every rebase. A user-level autostart entry under ~/.config/autostart/ survives both system updates and rebases, and doesn't need root.

# References