Building a Near-Zero CPU Linux Settings Center in Rust (settings-tui)

# rust# linux# opensource# showdev
Building a Near-Zero CPU Linux Settings Center in Rust (settings-tui)Noel Paul

Most desktop Linux users on tiling window managers like Hyprland, Sway, or i3 face the same dilemma:...

Most desktop Linux users on tiling window managers like Hyprland, Sway, or i3 face the same dilemma: either memorize dozens of CLI arguments across nmcli, bluetoothctl, wpctl, and systemctl, or pull in heavy 500MB+ GUI control centers from GNOME or KDE.

I built settings-tui to bridge that gap with a unified, hyper-lightweight (<9MB, near 0% idle CPU) terminal control center written in Rust with Ratatui.

Subsystems Covered

  • Network: Wi-Fi network scanning, WPA/WPA2 interactive password modals, and Ethernet stats via NetworkManager D-Bus.
  • Audio: Sink/source volume, streams, and muting via WirePlumber / PipeWire.
  • Bluetooth: Device scanning, pairing, and connection management over BlueZ.
  • Displays & Backlight: Hyprland IPC monitor modes, resolutions, scale factors, and single-digit brightness control via sysfs.
  • Power: Battery health, discharge rates, and power profiles via UPower.
  • Systemd: Service inspection, restarts, and unit status.

The Transaction Engine

Rather than blindly executing shell commands and assuming success, settings-tui implements a transactional lifecycle:
READ CURRENT STATE -> MUTATE -> BOUNDED PROPAGATION WAIT -> READ CANONICAL STATE -> VERIFY POSTCONDITION.

If a Wi-Fi authentication fails or a PipeWire node does not accept a volume change, the TUI transparently reports the exact status badge.

Trying it Out

You can try it instantly without compiling:

npx settings-tui
Enter fullscreen mode Exit fullscreen mode

Or install from source:

git clone https://github.com/ziuus/settings-tui.git
cd settings-tui && cargo run --release
Enter fullscreen mode Exit fullscreen mode

GitHub Repository: https://github.com/ziuus/settings-tui

Contributions, ideas, and feedback are welcome!