Skip to content
 
 

Repository files navigation

nm-tui

License Go Version GitHub stars

Lightweight TUI wrapper for NetworkManager

Why nm-tui: built-in nmtui doesn't look great and there aren't many TUI alternatives

📌 Table of Contents

Features

  • 😎 TUI style (looks cool)
  • 📡 Scan and list available networks
  • 🔑 Connect to networks with password
  • 🔘 Activate connections to saved networks
  • 📜 View detailed network information (signal strength, security, etc.)
  • 🌐 Control device networking
  • 📡 Create hotspot
  • 🖥️ Clean, modern TUI built with Bubbletea
  • ⚡ Fast and lightweight — single static binary
  • 🐧 Linux only — designed specifically for NetworkManager
  • 🌈 Customize look & feel

Demo

Demo

Screenshots

Main tabs

wifi connector wifi info

WiFi connection and Network info

wifi connector wifi info

Network and Access point creation

wifi info wifi connector

Requirements

  • NetworkManager as the main network manager
  • Go Go Version
  • (optional) xdg-open + ip on Linux -- opens captive portal for connecting to the public WiFi-networks
  • Nerd Font

Installation

Go install

Requires Go installed.

go install github.com/alphameo/nm-tui/cmd/nm-tui@latest

The binary is placed in $(go env GOPATH)/bin.

# Run directly
$(go env GOPATH)/bin/nm-tui

# If you have the `$(go env GOPATH)/bin` directory in your `PATH` just run
nm-tui

To use just nm-tui add the $(go env GOPATH)/bin directory to your PATH

Nix

With Nix and flakes enabled:

nix profile install github:alphameo/nm-tui

Or install into your profile:

nix run github:alphameo/nm-tui

Binary

Move binary nm-tui into /usr/bin or add location to PATH if you want system-wide access.

Prebuilt binary

Load the latest archive for your architecture from the releases page.

Manual

Clone repo

git clone https://github.com/alphameo/nm-tui.git
# or
git clone git@github.com:alphameo/nm-tui.git

Generate binary:

make deps
make build
# or
make clean-build

Binary generated at ./bin/nm-tui

Configuration

Config is placed at $XDG_CONFIG_HOME/nm-tui/config.kdl (e.g. ~/.config/nm-tui/config.kdl).

All settings have default values, with which the user configuration is subsequently merged.

You don't need to copy the defaults — a fully-commented example covering every option is available in config.example.kdl. Only include the sections you want to override, e.g.:

colors {
    accent "#865fff"
}
keys {
    main {
        quit "esc" "ctrl+c" "q" "ctrl+q"
    }
}

Tech Stack

Contributing

Pull requests are welcome! Please open an issue first to discuss what you would like to change.

License

MIT

Inspirations

About

TUI client for NetworkManager

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages