If you have installed the {{pkg|wicd-gtk}} and entered the desktop environment. Open a virtual terminal to run one of the following commands.

+

+

* To start Wicd as system service, run:

+

+

$ systemctl start wicd.service

+

+

* To load Wicd, run:

$ wicd-client

$ wicd-client

−

To force it to start minimized in the notification area, run:

+

* To force it to start minimized in the notification area, run:

$ wicd-client --tray

$ wicd-client --tray

−

If your desktop environment does not have a notification area, run:

+

* If your desktop environment does not have a notification area, or if you don't want wicd to show tray icon, run:

$ wicd-client -n

$ wicd-client -n

−

The above commands will only work if you have installed the {{pkg|wicd-gtk}}. If you did not install {{pkg|wicd-gtk}} then use wicd-cli or wicd-curses:

+

=== Running Wicd in Text Mode===

+

+

If you did not install {{pkg|wicd-gtk}} then use wicd-cli or wicd-curses:

$ wicd-curses

$ wicd-curses

Line 84:

Line 92:

{{Note | Wicd does not prompt you for a passkey. To use encrypted connections (WPA/WEP), expand the network you want to connect to, click '''Advanced''' and enter the needed info.}}

{{Note | Wicd does not prompt you for a passkey. To use encrypted connections (WPA/WEP), expand the network you want to connect to, click '''Advanced''' and enter the needed info.}}

−

==== Autostart ====

+

=== Autostart ===

+

+

The {{Pkg|wicd-gtk}} package puts a file in {{ic|/etc/xdg/autostart/wicd-tray.desktop}}, which will autostart {{ic|wicd-client}} upon login to your DE/WM. If so, enabling the wicd system service is enough:

−

The {{Pkg|wicd-gtk}} package puts a file in {{ic|/etc/xdg/autostart/wicd-tray.desktop}}, which will autostart {{ic|wicd-client}} upon login to your DE/WM. If so, enabling the service with {{ic|systemctl}} is sufficient.

+

$ systemctl enable wicd.service

If {{ic|/etc/xdg/autostart/wicd-tray.desktop}} does not exist, you can add '''wicd-client''' to your DE/WM startup to have the application start when you log in.

If {{ic|/etc/xdg/autostart/wicd-tray.desktop}} does not exist, you can add '''wicd-client''' to your DE/WM startup to have the application start when you log in.

Revision as of 14:48, 14 July 2013

Wicd is a network connection manager that can manage wireless and wired interfaces, similar and an alternative to NetworkManager. Wicd is written in Python and GTK+, requiring fewer dependencies than other network managers. Alternatively, a version of Wicd for KDE, written in Qt, is available from the Arch User Repository. Wicd can also run from the terminal in a curses interface, requiring no X server session or task panel (see #Running Wicd).

Installation

Base package

GTK+ client

For a GTK+ front-end, install wicd-gtk, available in the official repositories. It includes everything needed to run the GTK interface of wicd and the autostart file for the client to appear in the system tray.

KDE client

Notifications

To enable visual notifications about network status, you need to install the notification-daemon.

If you are not using GNOME, you will want to install xfce4-notifyd instead of the notification-daemon, because it pulls a lot of unnecessary GNOME packages.

Alternative

The wicd-bzrAUR buildscript is available in the AUR, which should build the latest development branch.
If you need an alternative version or you just want to roll your own package, you can easily build it using ABS.

Getting started

Initial setup

Wicd provides a daemon that must be started.

Warning: Running multiple network managers will cause problems, so it is important to disable all other network management daemons.

Note: The Unix group that dbus allows to access wicd is subject to change, and may be different than users. Check which policy group is specified in /etc/dbus-1/system.d/wicd.conf, and add your user to that group.

If you added your user to a new group, log out and then log in.

Running Wicd in Desktop Environment

If you have installed the wicd-gtk and entered the desktop environment. Open a virtual terminal to run one of the following commands.

To start Wicd as system service, run:

$ systemctl start wicd.service

To load Wicd, run:

$ wicd-client

To force it to start minimized in the notification area, run:

$ wicd-client --tray

If your desktop environment does not have a notification area, or if you don't want wicd to show tray icon, run:

Running Wicd in Text Mode

Note: Wicd does not prompt you for a passkey. To use encrypted connections (WPA/WEP), expand the network you want to connect to, click Advanced and enter the needed info.

Autostart

The wicd-gtk package puts a file in /etc/xdg/autostart/wicd-tray.desktop, which will autostart wicd-client upon login to your DE/WM. If so, enabling the wicd system service is enough:

$ systemctl enable wicd.service

If /etc/xdg/autostart/wicd-tray.desktop does not exist, you can add wicd-client to your DE/WM startup to have the application start when you log in.

Note: If wicd-client is added to DE/WM startup when /etc/xdg/autostart/wicd-tray.desktop exists, you will have an issue of two wicd-client instances running.

Scripts

Wicd has the ability to run scripts during all stages of the connection process (post/pre connect/disconnect).
Simply place a script inside the relevant stage folder within /etc/wicd/scripts/ and make it executable.

Stop ARP spoofing attacks

The script below can be used to set a static ARP, to stop ARP spoofing attacks.
Simply change the values within the case statement to match those of the networks you want to set static ARP entries for. Launch it as root:

Troubleshooting

Failed to get IP address

If wicd repeatedly fails to get an IP address using the default dhcpcd client, try installing and using dhclient instead. Do not forget to select dhclient as the primary dhcp client in wicd options afterwards!

If wicd can get an IP address for a wired interface and is unable to get an IP address for a wireless interface, try disabling the wireless card's powersaving features:

# iwconfig wlp2s0 power off

Random disconnecting

Cause #1

If dmesg says wlp2s0: deauthenticating from MAC by local choice (reason=3) and you lose your Wi-Fi connection, it is likely that you have a bit too aggressive power-saving on your Wi-Fi card[1]. Try disabling the wireless card's power-saving features:

# iwconfig wlp2s0 power off

If you have the package pm-utils installed, it may be the reason power-saving is on in your system[2]. You can put:

#!/bin/sh
/usr/bin/iwconfig wlp2s0 power off

into the file /etc/pm/power.d/wireless (create it if it does not exist and make it executable) and see if things get better.

If your card does not support # iwconfig wlp2s0 power off, check the BIOS for power management options. Disabling PCI-Express power management in the BIOS of a Lenovo W520 resolved this issue.

Cause #2

If you are experiencing frequent disconnections with wireless and dmesg shows messages such as

Wicd-client also throws a dbus connection error message ("Could not connect to wicd's D-Bus interface.") when wicd is not running due to a problem with a config file. It seems that sometimes an empty account gets added to /etc/wicd/wired-settings.conf in which case you simply have to remove the

[]

and restart wicd.

Problems after package update

Sometimes the wicd client fails to load after a package update due to D-Bus errors.

A solution is to remove the config files in the /etc/wicd/ directory.

# systemctl stop wicd
# rm /etc/wicd/*.conf
# systemctl start wicd

Note about graphical sudo programs

If you are receiving an error about wicd failing to find a graphical sudo program, install one of gksu, ktsussAUR, or kdebase-runtime, then use the relative command:

$ ktsuss wicd-client -n

$ gksudo wicd-client -n

$ kdesu wicd-client -n

Making eduroam work with wicd

Note: You may try the AUR package wicd-eduroamAUR first. It will appear in wicd as "eduroam". If it does not work for you, try the following.

This profile will only work for eduroam institutions which use TTLS and will not work for PEAP (you can find a PEAP profile here: Eduroam wicd).

Open wicd, choose TTLS for Wireless in the properties of eduroam, and enter the appropriate settings for your institution. The format of the subject match should be something like "/CN=server.example.com".

NB. This only works in my institution by commenting subject_match, which is not secure, but at least it connects.

Two instances of wicd-client (and possibly two icons in tray)

See the note in Wicd#Running_Wicd about the autostart file in /etc/xdg/autostart and the forum post and bug report provided in Wicd#External_Links. Essentially, if /etc/xdg/autostart/wicd-tray.desktop exists, remove it. You only need the wicd service enabled in systemd.

Bad password using PEAP with TKIP/MSCHAPV2

The connection template PEAP with TKIP/MSCHAPV2 requires the user to enter the path to a CA certificate besides entering username and password. However this can cause troubles resulting in a error message of a bad password *. A possible solution is the usage of PEAP with GTC instead of TKIP/MSCHAPV2 which does not require to enter the path of the CA cert.

Wicd skips obtaining IP address on wlp

This can be caused by dhcpcd running alongside wicd as systemd service. A solution would be to stop/disable dhcpcd.