LinuxCommandLibrary

wifi-menu

Connect to Wi-Fi networks from the terminal

TLDR

Set up a wireless connection interactively

$ wifi-menu
copy

Interactively set up a connection to a network and obscure the password
$ wifi-menu [[-o|--obscure]]
copy

Display help
$ wifi-menu [[-h|--help]]
copy

SYNOPSIS

wifi-menu [interface]
wifi-menu [-o | --old] [interface]
wifi-menu [-h | --help]

PARAMETERS

interface
    Specifies the wireless network interface to configure (e.g., wlan0, wlp2s0). If not provided, wifi-menu attempts to detect the first available wireless interface.

-o, --old
    Uses an older, simpler interface for network selection and configuration. This might be useful in environments with limited terminal capabilities or for a more basic workflow.

-h, --help
    Displays a brief help message and exits.

DESCRIPTION

wifi-menu is a command-line utility designed to simplify the process of configuring wireless network connections on Linux systems, primarily those utilizing the netctl network management framework, common in Arch Linux environments. It provides a user-friendly, ncurses-based (text-based graphical) interface that guides users through scanning for available Wi-Fi networks, selecting a network from a list, and entering necessary credentials such as passphrases.

Upon successful configuration, wifi-menu automatically generates a netctl profile for the selected network and stores it in the /etc/netctl/ directory. This profile can then be managed and activated using other netctl commands like netctl start profile_name or netctl enable profile_name for automatic connection at boot. Its primary goal is to abstract away the complexities of direct wpa_supplicant and iw commands, offering a quick and intuitive way to get online with Wi-Fi.

CAVEATS

netctl Dependency: wifi-menu is part of the netctl package and requires it to be installed and operational on the system. It is not a standalone Wi-Fi management tool for other network frameworks like NetworkManager or systemd-networkd.

Arch Linux Focus: While usable on other distributions that install netctl, wifi-menu is most commonly associated with and maintained for Arch Linux and its derivatives.

Interface Requirement: It operates exclusively on wireless network interfaces. Ensure your wireless adapter is recognized and its kernel module is loaded.

Limited Advanced Configuration: While excellent for basic WPA/WPA2-PSK networks, it may not directly support highly advanced configurations (e.g., enterprise EAP methods, static IP for Wi-Fi) without subsequent manual editing of the generated netctl profile.

Interactive Nature: It requires an interactive terminal session to display its ncurses interface. It is not suitable for non-interactive scripts without additional wrappers.

PROFILE GENERATION LOCATION

After a successful configuration, wifi-menu generates a new netctl profile file in the /etc/netctl/ directory. The file name typically corresponds to the chosen SSID. This profile can then be manually edited for advanced settings or managed using other netctl commands.

REQUIRED DEPENDENCIES

wifi-menu relies on several external utilities to function correctly. These include dialog or whiptail for its interactive ncurses interface, and wpa_supplicant for handling Wi-Fi authentication and encryption processes.

HISTORY

wifi-menu was developed as an integral part of the netctl project, which emerged as a lightweight and robust network configuration utility primarily for Arch Linux. Its creation addressed the need for an easy-to-use, interactive tool for setting up wireless connections, bridging the gap between manual configuration using tools like wpa_supplicant and more complex desktop-environment-integrated network managers. Since its inception, wifi-menu has been a staple for Arch Linux users, offering a consistent and reliable way to get Wi-Fi operational, especially during initial system setup or in minimal environments. Its development has focused on maintaining simplicity and tight integration with the netctl profile system.

SEE ALSO

netctl(8), netctl-auto(8), netctl-ifplugd(8), wpa_supplicant(8), iw(8)

Copied to clipboard