I don't use a GUI but I hacked together a little Python script that basically calls `ifconfig wpi0 scan` to obtain a list of available networks, filters out the known ones, sorts them by priority and signal strength and then configures the one on the top of the list with ifconfig and if need be, with wpa supplicant.
The priority and strength sorting is done so I can have multiple wireless networks in the same location configured and readily available. Then I have a script that pings the current IPv4 gateway, or, if that is not available, IPv6 gateway, and once 5 or more packets are missed, just calls /etc/netstart. The /etc/hostname.if file for wpi0 calls the Python script and the /etc/hostname.if for trunk0 configures everything for DHCP. I do this because I have a wireless + wired trunk for transparent switchover. If there's a demand, I can upload the scripts somewhere. There is also some "Set up VPNs if I am in an untrusted location"-stuff in there but it relies on some way to identify the network one is currently attached to. This is currently done by a shell script that checks for things like known wireless ESSIDs, known gateway MAC addresses and known network topologies, for example "When I'm at home, my gateway is 192.168.2.1, there's a host named Zim and one named Gir and my public IP address resolves back to Unity Media". That's probably unportable and needs to be reimplemented for every user. -- Gregor Best