Wpa supplicant
Can be enabled on NixOS with networking.wireless.enable = true.
Extra configuration can be specified inside networking.wireless.extraConfig.
Wpa_supplicant_gui
To be able to use wpa_gui as user put the following in your configuration.nix file:
networking.wireless.extraConfig = ''
ctrl_interface=/run/wpa_supplicant
ctrl_interface_group=wheel
'';
Also your user must be part of the wheel group (replace USER with your username):
users.extraUsers.USER.extraGroups = [ "wheel" ];
Switching Network
From the shell terminal, use the wpa_cli command line tool and specify the network interface device with -g
wpa_cli -g /run/wpa_supplicant/wlp3s0
list_network
select_network 2
As a means to debug if things are working, open another terminal and examine the logs by:
journalctl -u wpa_supplicant -f