There's an alternative to using NetworkManager, and it's not too complicated to use
wifi-menu to set up a profile. Running it will bring a CLI menu of nearby Wi-Fi networks.
wifi-menu is a utility to create netctl profiles. After selecting a network in wifi-menu, a profile will be created in
/etc/netctl. After creating a profile, wifi-menu will automatically try to connect to it.
Only do this once per Wi-Fi network! After the profile's been created, you can connect to it without wifi-menu.
After creating a profile, you can connect to it using
netctl switch-to <name>. The name is the name you provided in wifi-menu.
netctl-auto list to show what profiles have been created before.
Check for the status using
iw dev—this will list of your physical devices. This should show you what SSID you're connected to, if any.
netctl enable to "enable" a profile. This creates and enables a systemd service, which is invoked on every bootup.
For the most part, I find NetworkManager to be a preferrable choice over
netctl for desktop systems. It works, it integrates with GNOME and Plasma, it has a lot of user interfaces (
nmtui being my favorite—a CLI version!), has support for OpenVPN, and many more.
With that said, I've been trying to use netctl instead lately for one silly reason: it seems to wake up faster from sleep! This only happens on my MacBook Air though, I've found NetworkManager to connect pretty fast in other systems.
There's also something to be said about going with a slimmer setup. Netctl seems a little closer to the metal than NetworkManager, and comes built-in as part of the
base package in Arch Linux.
Thanks for reading my article! I've done some edits since this was first published.
netctl-auto instead of
netctl. This gets you the benefits of "roaming" (auto-switching connections) and more.
Removed the use of
netctl enable <profile>. This works, but will make your boot time slower (Arch will wait for the connection to become successful before finishing the boot process).