wpa_supplicant is tool which manages association of the computer's Wi-Fi card with access point.
Typically all network management daemons such as wicd or network manager have to run it behind the scenes to do the job.
But really no daemon is nesseccary to control wpa_supplicant. It can manage everything by itself.
Debian-based systems provide ways to configure wi-fi networks with /etc/network/interfaces file
You'll need to define at least two interfaces in it
Physical wifi interface which would have wpa-roam line with name of your wpa-supplicant config
Interface named 'default' which describe IP configuration which should be performed after association (typically
iface default inet dhcp
would suffice.
If you have wifi networks which requires non-standard IP configurations, you can use idstring in the wpa_supplicant.conf and describe configuration in the descrption of interface with name of this idstring.
You can control wpa_supplicant and even define new networks on the fly, using control socket. You don't need to be a root to control this socket, you have just to be a member of netdev (on debian systems) group.
There is an application wpa_gui which allows to control wpa_supplicant via dialog boxes. It even can seat in the system tray.
But it's interface doesn't well suite needs of everyday laptop user. So, we are going to develop our own wifi-applet.