A fast, minimal NetworkManager frontend for application launchers, written in Go.
nmsurf provides a simple interface to manage networks using NetworkManager, with support for launcher-based menus such as wofi.
- Scan available Wi-Fi networks
- Connect, disconnect, and forget networks
- Hard rescan (hardware scan)
- View detailed network information
- Supports:
- Wofi
- Rofi
- Walker
- Fuzzel
- Use your existing launcher theme or specify a custom theme
- Fast and lightweight
- wofi, rofi, fuzzel or walker
- NetworkManager
- Go 1.20+ (build only/go install)
For Arch Linux users, nmsurf is available in the AUR. This is the recommended method for easy installation and updates.
You can use any AUR helper like yay, paru, etc.
yay -S nmsurfgo install github.com/aayushkdev/nmsurf/cmd/nmsurf@latestEnsure Go bin directory is in PATH:
export PATH=$PATH:$(go env GOPATH)/binBuilding:
git clone https://github.com/aayushkdev/nmsurf.git
cd nmsurf
go build -ldflags="-s -w" -o nmsurfInstall:
./install.shThis installs to:
/usr/local/bin/nmsurf
nmsurf can be configured using:
~/.config/nmsurf/config.tomlExample:
launcher = "wofi"
theme = "~/.config/wofi/style.css"valid launchers include wofi, rofi, walker, fuzzel
If no config file exists, defaults are used (wofi)
Run:
nmsurfBind to key (Hyprland example):
bind = SUPER, N, exec, nmsurf
wofi or any launcher based menu (except maybe rofi) does not expose any way to refresh the state of the menu without killing it and bringing it back up, so the ux may not be par with a tui or a gui based tool
MIT License