There's an alternative to using NetworkManager, and it's not too complicated to use
Many desktop systems rely on NetworkManager, but this isn't the only way to get a Linux system online. Arch Linux comes with netctl—a systemd-native way of managing physical network connections.
Use wifi-menu
to set up a profile. Running it will bring a CLI menu of nearby Wi-Fi networks.
The 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.
Enable the netctl-auto@<interface>
service to automatically connect to networks as they become in range. You may need to edit the profile files for this; check the (wiki entry) for more info.
After creating a profile, you can connect to it using netctl switch-to <name>
. The name is the name you provided in wifi-menu.
Use 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.
Use 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.
Used 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).