Wicd is a network connection manager that can manage wireless (a la Wifi Radar) and wired interfaces, similar and an alternative to NetworkManager. Wicd is written in Python and GTK+, requiring less dependencies than other network managers.
Wicd is available from the standard repositories:
# pacman -S wicd
This will install Wicd and all the necessary dependencies, including dbus, python and gtk2.
You will likely want DHCP, secure wireless management, and GUI icons as well:
# pacman -S dhclient wpa_supplicant hicolor-icon-theme
If you need an alternative version or you just want to roll your own package, you can easily (re)build it using ABS.
Wicd provides a daemon that must be started before the tool can be used. Also, running multiple network managers will cause problems, so it is important to disable all other network management daemons.
First, stop all previously running network daemons:
# /etc/rc.d/network stop # /etc/rc.d/dhcdbd stop # /etc/rc.d/networkmanager stop
Now, edit /etc/rc.conf as root:
# nano /etc/rc.conf
Disable (!) any devices in the INTERFACES array that you wish to manage with Wicd. For example:
Disable (!) any existing network management daemons in the DAEMONS array, including network, dhcdbd, and networkmanager.
Now, add dbus (if not already present) and wicd to the DAEMONS array, in that order. The DAEMONS array should now look something like this:
DAEMONS=(syslog-ng dbus !network !dhcdbd !networkmanager wicd ...)
Note: If you use hal, replace dbus with hal in DAEMONS array, as the hal daemon will automatically start dbus.
Save and close.
Add your account to network group:
# gpasswd -a USERNAME network
Lastly, start the dbus and wicd daemons:
# /etc/rc.d/dbus start # /etc/rc.d/wicd start
To load Wicd, run:
Or if your desktop environment does not have a notification area, run:
$ wicd-client -n
You can add wicd-client to your DE/WM startup to have the application start when you log in. Note that Wicd doesn't prompt you for a passkey. To us encrypted connections (WPA/WEP), expand the network you want to connect to, click 'Advanced', and enter the relevant info.
If you had dbus already running, but for some reason wicd complains about it, restart both.
# /etc/rc.d/dbus stop # we are stopping manually instead of restarting to eliminate possible errors # /etc/rc.d/wicd stop # /etc/rc.d/dbus start # /etc/rc.d/wicd start
Hidden Wireless Networks and Autoconnection HACK
I had problems with my hidden network and the autoconnection function of wicd. It seems that the essid of my hidden network is not "<hidden>", but an empty string. Connect manually to the network and run:
$ iwlist scan
Output of my hidden network:
... wlan0 Scan completed : Cell 01 - Address: xx:xx:xx:xx:xx:xx ESSID:"" Mode:Master Channel:11 ...
If you have the same problems and your iwlist output shows ESSID:"", change /usr/lib/wicd/networking.py:
cd /usr/lib/wicd sed -i.orig -e 's/if CurrentNetwork\["essid"\] == "<hidden>":/if CurrentNetwork\["essid"\] == "<hidden>" or CurrentNetwork\["essid"\] == "":/' networking.py
This changes /usr/lib/wicd/networking.py and saves a backup of the original file to /usr/lib/wicd/networking.py.orig.
Based on wicd version 1.4.1-4