A clean, native UPS monitor for Linux desktops. NUT Client connects to Network UPS Tools (NUT) and shows live battery charge, runtime, load, voltage, and frequency — and can shut your system down safely when the battery gets critically low.
Made for Fedora with the GNOME desktop (tested on Fedora 44).
- Live dashboard for one or more UPS devices
- Battery charge, runtime, load, voltages, and output power
- Battery health at a glance, with history charts
- Alert rules with desktop notifications and an alert history
- Automatic shutdown when the battery falls below a threshold you choose
- Background daemon that keeps protecting the system even when the app is closed
- Light, dark, and system themes
- Interface in 11 languages: English, Greek, German, Spanish, French, Italian, Portuguese, Russian, Chinese, Arabic, and Hindi
Download the latest .rpm from the
releases page, then:
sudo dnf install ./lnx-nut-client-1.0.0-1.x86_64.rpmThe package installs the app, the background daemon, the desktop entry, the icon, and the polkit rule used for automatic shutdown. The daemon starts at your next login.
To start it right away:
systemctl --user enable --now org.chrisdaggas.lnx-nut-client.daemon.service- Open NUT Client from the application grid.
- Go to UPS Devices and add your NUT server (host and port, usually
localhost:3493) plus the UPS name. - The dashboard updates automatically. Use the menu in the top-right to switch between light, dark, and system themes.
Configuration is stored in ~/.local/share/daggas/lnx-nut-client/. Passwords go to your
desktop keyring, never to the config file.
When the UPS is on battery and the charge drops below your configured threshold, the daemon starts a countdown and then powers the system off. You can set the threshold and delay under Settings.
For this to work without a password prompt, your user must be in the wheel
group (the default on Fedora) and the bundled polkit rule must be installed.
The RPM does both.
You need Rust, GTK 4.14+, Libadwaita 1.5+, and the usual build tools:
sudo dnf install gtk4-devel libadwaita-devel dbus-devel gettext-devel pkgconf-pkg-configcargo build --release --workspace
cargo run -p lnx-nut-clientTo build the RPM yourself:
./scripts/package-rpm.shThe result is written to dist/rpm/.
The daemon seems stuck on an old version. Restart it:
systemctl --user restart org.chrisdaggas.lnx-nut-client.daemon.serviceShutdown does not trigger. Check the daemon log:
journalctl --user -u org.chrisdaggas.lnx-nut-client.daemon.service -eIf you see a polkit or inhibitor error, confirm you are in the wheel group
and that /usr/share/polkit-1/rules.d/50-lnx-nut-client.rules exists.
The app opens at login when you don't want it to. Turn off Autostart in Settings. Older versions may have left a stale file behind:
rm -f ~/.config/autostart/org.chrisdaggas.lnx-nut-client.desktopcrates/
nut-client/ GTK4/Libadwaita app
nut-client-core/ shared models, config, NUT client, D-Bus types
nut-client-daemon/ background service
data/ systemd user unit
scripts/ install and packaging helpers
po/ translations
MIT — see LICENSE.
Website: chrisdaggas.com · Contact: info@chrisdaggas.com
