mirror of
https://github.com/anotherhadi/settuings.git
synced 2026-10-05 08:18:23 +02:00
6e4f8b889cab156591524d2d49b67ef5afcd8965
SetTUIngs
A TUI to manage your Linux system settings like wifi, bluetooth, and more, without leaving the terminal.
What is SetTUIngs?
SetTUIngs is a keyboard-driven TUI for the everyday Linux system settings you'd otherwise dig through a GUI panel for: WiFi, Ethernet, VPN, Bluetooth, and audio. Every page is a thin, readable wrapper around the CLI tools you already have installed (nmcli, bluetoothctl, and wpctl), so there's no background daemon or D-Bus client library involved, and it always reflects whatever changed things elsewhere (a NetworkManager applet, pavucontrol, another terminal).
Features
- WiFi: Scan, connect, and manage networks, including signal strength, security, saved passwords, and known networks, with the radio toggled on/off in one keystroke.
- Ethernet & VPN: Bring interfaces up or down and connect to VPN profiles from the same Network page.
- Bluetooth: Discover, pair, connect, trust, and forget devices, and power the adapter on/off.
- Audio: Adjust output/input volume, mute, and pick the default speaker or mic; preview a device with a test tone or a live input-level meter; control the volume of individual apps (browser tab, Spotify, etc.) independently.
- Power: Switch power profiles (performance, balanced, power-saver) and check battery charge, health, and time remaining at a glance.
- Inputs: Change the keyboard layout and adjust mouse pointer speed, via
hyprctl(Hyprland only). - Vim-like Navigation: The entire interface is keyboard-driven with Vim-inspired shortcuts. Use
h/j/k/lto move,gg/Gto jump to the top/bottom,/to search,qto close panels, and more. All keybindings are fully customizable via the config file.
Installation
Go install
go install github.com/anotherhadi/settuings/cmd/settuings@latest
Requires Go 1.22+. The binary will be placed in $GOPATH/bin (or ~/go/bin).
Nix (temporary run, no install)
nix run github:anotherhadi/settuings
NixOS (flake)
Add settuings to your flake inputs:
inputs.settuings.url = "github:anotherhadi/settuings";
Then add the package to your system or home-manager packages:
environment.systemPackages = [ inputs.settuings.packages.${pkgs.system}.default ];
CLI Flags
A TUI to manage your Linux system settings like wifi, bluetooth, and more, without leaving the terminal.
Usage:
settuings [flags]
Flags:
--add-default-config copy the default config file to the config path and exit
-c, --config string path to config file
-h, --help help for settuings
-p, --page string page to open at launch (About, Network, Bluetooth, Audio, Power, Inputs)
-v, --version version for settuings
Tech Stack
| Component | Library |
|---|---|
| TUI | bubbletea |
| Styles | lipgloss |
| Config | viper |
| Plugins | gopher-lua |
Languages
Go
98.4%
Nix
1.2%
Python
0.4%
