The XMonad setup I described in this blog post should be functional and extendable enough to get started. However there is one glaring omission - no easy way to configure any wifi or 3G/4G networks you want to connect to. So it's useful to know a little about nmcli, the command-line interface to NetworkManager. This can also be useful if you're futzing around with a linux box remotely.
Fire up an xterm and run the following to check out which network interfaces you have available, and what state they are in:
$ nmcli dev status DEVICE TYPE STATE CONNECTION cdc-wdm0 gsm disconnected -- wlan0 wifi disconnected -- F4:31:C3:30:E3:6F bt disconnected -- eth0 ethernet unavailable -- lo loopback unmanaged --
So we've five interfaces, none of which are connected to anything. I'll focus on the extremely common use-cases - connecting to open and secured wifi networks using the "wlan0" device, as well as connecting to 3G/4G networks using the "cdc/wdm0" device.
To view available networks near you:
$ nmcli dev wifi list * SSID MODE CHAN RATE SIGNAL BARS SECURITY Rotor bar Infra 8 54 Mbit/s 72 ▂▄▆_ ahnet Infra 11 54 Mbit/s 42 ▂▄__ WEP eduroam Infra 1 54 Mbit/s 15 ▂___ WPA1 WPA2 802.1X vakan Infra 13 54 Mbit/s 12 ▂___ WEP JAMU Infra 1 54 Mbit/s 10 ▂___
If we want to connect to "Rotor bar" - an open, unsecured network, we can do the following
$ nmcli device wifi connect "Rotor bar" Device 'wlan0' successfully activated with 'ccb0a5a1-ef8d-4fea-966f-7999f2611345'.
If this network was instead secured with the password "123456789" we would instead have used:
$ nmcli dev wifi con "Rotor bar" password "123456789"
And when we want to disconnect from the WiFi, we can run:
$ nmcli dev disconnect iface wlan0
And if we wanted to reconnect to this network:
$ nmcli con up id "Rotor bar"
$ nmcli connection show | grep gsm Vodafone CZ 2756323d-e364-49dc-9d86-92b8c2a44d15 gsm --
In my case I'd previously setup "Vodafone CZ" using the NetworkManager applet in XFCE, however if we want to do this in the CLI all we need to do is make sure a config file is present in the /etc/NetworkManager/system-connections folder which has the right setup
$ sudo cat /etc/NetworkManager/system-connections/Vodafone\ CZ [connection] id=Vodafone CZ uuid=2756323d-e364-49dc-9d86-92b8c2a44d15 type=gsm autoconnect=false permissions= secondaries= [gsm] apn=internet number=*99***1# password-flags=1 pin=1234 [serial] baud=115200 [ipv4] dns=188.8.131.52; dns-search= method=auto [ipv6] addr-gen-mode=stable-privacy dns-search= ip6-privacy=0 method=auto
So, assuming you're using Vodafone in the Czech Republic you can use this config, tweak the PIN as necessary (it's the SIM PIN, btw) rerun nmcli connection show to check NetworkManager knows about it, and then run the following to bring it up:
$ nmcli connection up id "Vodafone CZ" Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/27)And to disconnect
$ nmcli connection down id "Vodafone CZ" Connection 'Vodafone CZ' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/27)
So there we have it - it's possible there's a strange configuration that you need, so you may have to dig into the nmcli man pages - but as long as you have some sort of internet connection I found the followingpages useful: