Difference between revisions of "Wicd"

From ArchWiki
Jump to: navigation, search
m (fixed category - Category:Wireless Networking is subcategory of Category:Networking, see Help:Style#Categories)
m (Start/stop openvpn client: fix header)
 
(54 intermediate revisions by 22 users not shown)
Line 1: Line 1:
 +
[[Category:Network configuration]]
 
[[de:Wicd]]
 
[[de:Wicd]]
 
[[es:Wicd]]
 
[[es:Wicd]]
 
[[fr:Wicd]]
 
[[fr:Wicd]]
 
[[it:Wicd]]
 
[[it:Wicd]]
 +
[[ja:Wicd]]
 
[[tr:Wicd]]
 
[[tr:Wicd]]
 
[[zh-CN:Wicd]]
 
[[zh-CN:Wicd]]
[[Category:Networking]]
+
{{Related articles start}}
{{Article summary start}}
+
{{Related|Network configuration}}
{{Article summary text|Covers installation and configuration of Wicd – an open source wired and wireless network manager for Linux which aims to provide a simple interface to connect to networks with a wide variety of settings.}}
+
{{Related|Wireless network configuration}}
{{Article summary heading|Overview}}
+
{{Related|:Category:Network configuration}}
{{Article summary text|{{Networking overview}}}}
+
{{Related articles end}}
{{Article summary end}}
+
  
[http://www.wicd.net/ 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]]).
+
[https://launchpad.net/wicd 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+]]. 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 in Text Mode]]).
  
 
== Installation ==
 
== Installation ==
Line 18: Line 19:
 
=== Base package ===
 
=== Base package ===
  
[[pacman|Install]] {{Pkg|wicd}}, available in the [[official repositories]]. It includes everything needed to run the wicd daemon and the {{ic|wicd-cli}} and {{ic|wicd-curses}} interfaces.
+
[[Install]] {{Pkg|wicd}}, available in the [[official repositories]]. It includes everything needed to run the wicd daemon and the {{ic|wicd-cli}} and {{ic|wicd-curses}} interfaces.
  
 
=== GTK+ client ===
 
=== GTK+ client ===
Line 26: Line 27:
 
=== KDE client ===
 
=== KDE client ===
  
For a KDE front-end, install {{AUR|wicd-kde}}, available in the [[AUR]].   
+
For a KDE front-end, install {{AUR|wicd-kde}}{{Broken package link|{{aur-mirror|wicd-kde}}}}, available in the [[AUR]].   
  
 
=== Notifications ===
 
=== Notifications ===
  
To enable visual notifications about network status, you need to install the {{Pkg|notification-daemon}}.
+
To enable visual notifications about network status, you need to install the packages {{Pkg|notification-daemon}} and {{Pkg|python2-notify}}.
  
If you are not using [[GNOME]], you will want to install {{Pkg|xfce4-notifyd}} instead of the notification-daemon, because it pulls a lot of unnecessary GNOME packages.
+
If you are not using [[GNOME]], you may want to install {{Pkg|xfce4-notifyd}} instead of the notification-daemon, because it pulls a lot of unnecessary GNOME packages.
  
 
=== Alternative ===
 
=== Alternative ===
Line 49: Line 50:
 
First, stop all previously running network daemons (like netctl, netcfg, dhcpcd, NetworkManager).
 
First, stop all previously running network daemons (like netctl, netcfg, dhcpcd, NetworkManager).
  
Disable any existing network management services, including {{ic|netctl}}, {{ic|netcfg}}, {{ic|dhcpcd}}, and {{ic|networkmanager}}. Refer to [[Systemd#Using_units]].
+
Disable any existing network management services, including {{ic|netctl}}, {{ic|netcfg}}, {{ic|dhcpcd}}, and {{ic|networkmanager}}. Refer to [[Systemd#Using units]].
  
 
{{Note|You might need to stop and disable the '''network''' daemon instead of '''netctl''', which is a current replacement for '''network''' service. If unsure, try disabling both.}}
 
{{Note|You might need to stop and disable the '''network''' daemon instead of '''netctl''', which is a current replacement for '''network''' service. If unsure, try disabling both.}}
  
Start the '''wicd''' [[systemd ]] [[daemon]] and enable it at system start up.
+
Start the '''wicd''' [[systemd]] [[daemon]] and enable it at system start up.
  
 
Add your account to '''users''' group:
 
Add your account to '''users''' group:
Line 59: Line 60:
 
  # gpasswd -a USERNAME users
 
  # gpasswd -a USERNAME users
  
{{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 {{ic|/etc/dbus-1/system.d/wicd.conf}}, and add your user to that group.}}
+
{{Note|The Unix group that D-Bus allows to access ''wicd'' is subject to change, and it may be different than ''users''. Check which policy group is specified in {{ic|/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.
 
If you added your user to a new group, log out and then log in.
Line 67: Line 68:
 
If you have installed the {{pkg|wicd-gtk}} and entered the desktop environment. Open a virtual terminal to run one of the following commands.
 
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:
+
* To start Wicd as system service, [[start]] the {{ic|wicd.service}} systemd unit.
 
+
$ systemctl start wicd.service
+
  
 
* To load Wicd, run:
 
* To load Wicd, run:
Line 91: Line 90:
 
{{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 ===
+
{{Note|''wicd-curses'' is less stable than ''wicd-gtk'', and is known to crash regularly. If a crash occurs when attempting to configure a wireless network, try {{AUR|wicd-patched}}}}
  
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:
+
=== Switching WPA supplicant driver ===
 +
 
 +
''Wicd'' still suggests to "almost always" use Wext as WPA supplicant driver and defaults to it. This is [http://linuxwireless.org/en/developers/Documentation/Wireless-Extensions/index.html#Do_we_still_use_WE_.3F outdated behavior]. One should use nl80211 instead, except with old drivers that do not support it. The relevant option is located in ''Preferences > Advanced Settings''.
 +
 
 +
=== Autostart ===
  
$ systemctl enable wicd.service
+
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, [[enable]] the {{ic|wicd}} systemd unit.
  
 
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.
Line 143: Line 146:
 
==== Change MAC using macchanger ====
 
==== Change MAC using macchanger ====
  
See the [[MAC_Address_Spoofing#Systemd_unit_using_random_address|relative article]].
+
See [[MAC address spoofing#systemd + macchanger + dhcpcd (no NetworkManager)]]{{Broken section link}}.
  
 
The script below can be used to change the MAC address of your network interfaces.
 
The script below can be used to change the MAC address of your network interfaces.
Line 164: Line 167:
 
         macchanger -A enp1s0
 
         macchanger -A enp1s0
 
         ip link set enp1s0 up
 
         ip link set enp1s0 up
 +
fi
 +
</nowiki>}}
 +
 +
==== Start/stop openvpn client ====
 +
 +
Put the following script in {{ic|/etc/wicd/scripts/postconnect/}}, to be able to restart openvpn client when wireless connected to specific ESSID, and replace the {{ic|YOUR_WIFI_ESSID}} with your ESSID.
 +
 +
{{bc|<nowiki>
 +
#!/bin/sh
 +
 +
ESSID="YOUR_WIFI_ESSID"
 +
 +
if [ $1 == "wireless" ]; then
 +
if [ $2 == "$ESSID" ]; then
 +
systemctl restart openvpn@client
 +
fi
 +
fi
 +
</nowiki>}}
 +
 +
Put the following script in {{ic|/etc/wicd/scripts/predisconnect/}}, to stop openvpn client when wireless disconnected from specific ESSID and replace the {{ic|YOUR_WIFI_ESSID}} with your ESSID.
 +
 +
{{bc|<nowiki>
 +
#!/bin/sh
 +
 +
ESSID="YOUR_WIFI_ESSID"
 +
 +
if [ $1 == "wireless" ]; then
 +
if [ $2 == "$ESSID" ]; then
 +
systemctl stop openvpn@client
 +
fi
 
fi
 
fi
 
</nowiki>}}
 
</nowiki>}}
Line 169: Line 202:
 
== Troubleshooting ==
 
== Troubleshooting ==
  
See [[Network Configuration#Troubleshooting]] for troubleshooting wired connections and [[Wireless Setup#Troubleshooting]] for troubleshooting wireless connections. This section covers only problems specific to ''wicd''.
+
See [[Network configuration#Troubleshooting]] for troubleshooting wired connections and [[Wireless network configuration#Troubleshooting]] for troubleshooting wireless connections. This section covers only problems specific to ''wicd''.
 +
 
 +
=== Autoconnect on resume from hibernation/suspension ===
 +
 
 +
If for some reasons autoconnect on resume from hibernation or suspension does not work automatically, you can manually restart Wicd by enabling the following service file for your user; see [[systemd/User#Basic setup]].
 +
 
 +
{{hc|~/.config/systemd/user/wicd@resume.service|<nowiki>
 +
[Unit]
 +
Description=Restart Wicd autoconnect service on resume
 +
After=suspend.target
 +
 
 +
[Service]
 +
Type=oneshot
 +
User=%i
 +
RemainAfterExit=no
 +
ExecStart=/usr/share/wicd/daemon/autoconnect.py
 +
 
 +
[Install]
 +
WantedBy=suspend.target
 +
</nowiki>}}
  
 
=== Importing pynotify failed, notifications disabled ===
 
=== Importing pynotify failed, notifications disabled ===
  
In case the {{pkg|python2-notify}} package did not get installed automatically. You can [[pacman|install]] it from [[Official Repositories]].
+
In case the {{pkg|python2-notify}} package did not get installed automatically. You can [[install]] it from [[official repositories]].
  
=== Dbus connection error message ===
+
=== D-Bus connection error message ===
  
If wicd suddenly stopped working and it complains about dbus, it is quite likely that you just need to remove wicd fully, including and all its configuration files, and re-install it from scratch:
+
If wicd suddenly stopped working and it complains about D-Bus, it is quite likely that you just need to remove wicd fully, including and all its configuration files, and re-install it from scratch by first removing {{pkg|wicd}}. Then remove its configuration files:
# pacman -R wicd
+
 
  # rm -rf /etc/wicd /var/log/wicd /etc/dbus-1/system.d/wicd*
 
  # rm -rf /etc/wicd /var/log/wicd /etc/dbus-1/system.d/wicd*
# pacman -S wicd
+
Then reinstall the package.
 
Check this link for more details: https://bbs.archlinux.org/viewtopic.php?pid=577141#p577141  
 
Check this link for more details: https://bbs.archlinux.org/viewtopic.php?pid=577141#p577141  
  
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
+
Wicd-client also throws a D-Bus 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 {{ic|/etc/wicd/wired-settings.conf}} in which case you simply have to remove the
 
  []  
 
  []  
 
and restart wicd.
 
and restart wicd.
  
If the above doesn't work you could try https://bbs.archlinux.org/viewtopic.php?pid=1268721
+
If the above does not work, you could try https://bbs.archlinux.org/viewtopic.php?pid=1268721
  
 
=== Problems after package update ===
 
=== Problems after package update ===
Line 208: Line 259:
 
  $ kdesu wicd-client -n
 
  $ kdesu wicd-client -n
  
=== Making eduroam work with wicd ===
+
=== Eduroam ===
  
{{Note|You may try the AUR package {{AUR|wicd-eduroam}} first. It will appear in wicd as "eduroam". If it does not work for you, try the following.}}
+
See [[WPA2 Enterprise#Wicd]].
  
This profile will only work for eduroam institutions which use TTLS and will not work for PEAP (you can find a PEAP profile here: [http://csclub.uwaterloo.ca/~mtahmed/article/eduroam_wicd Eduroam wicd]).
+
=== Two instances of wicd-client (and possibly two icons in tray) ===
  
Save the following as {{ic|/etc/wicd/encryption/templates/ttls-80211}}
+
See the note in [[#Running Wicd]]{{Broken section link}} about the autostart file in {{ic|/etc/xdg/autostart}} and the forum post and bug report provided in [[#External Links]]{{Broken section link}}. Essentially, if {{ic|/etc/xdg/autostart/wicd-tray.desktop}} exists, remove it.  You only need the {{ic|wicd}} service enabled in systemd.
{{hc|/etc/wicd/encryption/templates/ttls-80211|<nowiki>
+
name = TTLS for Wireless
+
author = Alexander Clouter
+
version = 1
+
require anon_identity *Anonymous_Username identity *Identity password *Password
+
protected password *Password
+
optional ca_cert *Path_to_CA_Cert cert_subject *Certificate_Subject
+
-----
+
ctrl_interface=/var/run/wpa_supplicant
+
network={
+
      ssid="$_ESSID"
+
      scan_ssid=$_SCAN
+
  
      key_mgmt=WPA-EAP
+
=== Bad password using PEAP with TKIP/MS-CHAPv2 ===
      eap=TTLS
+
  
      ca_cert="$_CA_CERT"
+
The connection template PEAP with TKIP/MS-CHAPv2 requires the user to enter the path to a CA certificate besides entering username and password. However this can cause troubles resulting in an error message of a bad password [https://bbs.archlinux.org/viewtopic.php?pid=990385]. A possible solution is the usage of PEAP with GTC instead of TKIP/MS-CHAPv2 which does not require one to enter the path of the CA cert.
      subject_match="$_CERT_SUBJECT"
+
+
      phase2="auth=MSCHAPv2 auth=PAP"
+
  
      anonymous_identity="$_ANON_IDENTITY"
+
=== Wicd skips obtaining IP address on wlp ===
      identity="$_IDENTITY"
+
      password="$_PASSWORD"
+
}
+
</nowiki>}}
+
  
Open a terminal
+
This can be caused by dhcpcd running alongside wicd as systemd service. A solution would be to stop/disable '''dhcpcd'''.
  
# echo ttls-80211 >> /etc/wicd/encryption/templates/active
+
=== dhcpcd not running ===
  
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".
+
Normally it should not be required, nor recommended to run the dhcpcd service next to wicd. However, if you encounter the error message that dhcpcd is not running, then you can try [[start]]ing the {{ic|dhcpcd}} systemd unit and see if you encounter any incompatibilities when using both services at the same time.
  
NB. This only works in my institution by commenting {{ic|subject_match}}, which is not secure, but at least it connects.
+
Alternatively, as a workaround you might consider switching to {{Pkg|dhclient}} in the Wicd settings.
  
=== Two instances of wicd-client (and possibly two icons in tray) ===
+
{{Note|If you get ''send_packet: Network is unreachable'' errors, then try increasing the timeout in /usr/share/dhclient/dhclient.conf.}}
 
+
See the note in [[Wicd#Running_Wicd]] about the autostart file in {{ic|/etc/xdg/autostart}} and the forum post and bug report provided in [[Wicd#External_Links]]. Essentially, if {{ic|/etc/xdg/autostart/wicd-tray.desktop}} exists, remove it. You only need the {{ic|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 [https://bbs.archlinux.org/viewtopic.php?pid=990385 *]. 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'''.
+
  
 
== See also ==
 
== See also ==
  
* [http://www.wicd.net/download.php Note on interfaces at the official site]
 
 
* [https://bbs.archlinux.org/viewtopic.php?id=114803 Forum post] about two instances of wicd-client and {{ic|/etc/xdg/autostart}}
 
* [https://bbs.archlinux.org/viewtopic.php?id=114803 Forum post] about two instances of wicd-client and {{ic|/etc/xdg/autostart}}
 
* [https://bugs.archlinux.org/task/22423 Bug report mentioning /etc/xdg/autostart and wicd-client behavior]
 
* [https://bugs.archlinux.org/task/22423 Bug report mentioning /etc/xdg/autostart and wicd-client behavior]

Latest revision as of 17:53, 25 October 2016

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+. 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 in Text Mode).

Installation

Base package

Install wicd, available in the official repositories. It includes everything needed to run the wicd daemon and the wicd-cli and wicd-curses interfaces.

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

For a KDE front-end, install wicd-kdeAUR[broken link: archived in aur-mirror], available in the AUR.

Notifications

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

If you are not using GNOME, you may 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.

First, stop all previously running network daemons (like netctl, netcfg, dhcpcd, NetworkManager).

Disable any existing network management services, including netctl, netcfg, dhcpcd, and networkmanager. Refer to Systemd#Using units.

Note: You might need to stop and disable the network daemon instead of netctl, which is a current replacement for network service. If unsure, try disabling both.

Start the wicd systemd daemon and enable it at system start up.

Add your account to users group:

# gpasswd -a USERNAME users
Note: The Unix group that D-Bus allows to access wicd is subject to change, and it 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, start the wicd.service systemd unit.
  • 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:
$ wicd-client -n

Running Wicd in Text Mode

If you did not install wicd-gtk then use wicd-cli or wicd-curses:

$ wicd-curses
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-curses is less stable than wicd-gtk, and is known to crash regularly. If a crash occurs when attempting to configure a wireless network, try wicd-patchedAUR

Switching WPA supplicant driver

Wicd still suggests to "almost always" use Wext as WPA supplicant driver and defaults to it. This is outdated behavior. One should use nl80211 instead, except with old drivers that do not support it. The relevant option is located in Preferences > Advanced Settings.

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, enable the wicd systemd unit.

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.

The scripts are able to receive three parameters, these being:

$1 - the connection type (wireless/wired).
$2 - the ESSID (network name).
$3 - the BSSID (gateway MAC).

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:

#!/bin/bash
#Set the parameters passed to this script to meaningful variable names.
connection_type="$1"
essid="$2"
bssid="$3"

if [ "${connection_type}" == "wireless" ]; then

        #Change below to match your networks.
        case "$essid" in
        YOUR-NETWORK-NAME-ESSID)
                arp -s 192.168.0.1 00:11:22:33:44:55
         ;;
         Netgear01923)
                arp -s 192.168.0.1 10:11:20:33:40:50
         ;;
         ANOTHER-ESSID)
                arp -s 192.168.0.1 11:33:55:77:99:00
         ;;
         *)
                echo "Static ARP not set. No network defined."
         ;;
       esac
fi

Change MAC using macchanger

See MAC address spoofing#systemd + macchanger + dhcpcd (no NetworkManager)[broken link: invalid section].

The script below can be used to change the MAC address of your network interfaces.

To change the MAC whenever you connect to a network, place this script under /etc/wicd/scripts/preconnect/.

Take a look at macchanger --help to adjust the macchanger command to your liking.

#!/usr/bin/env bash

connection_type="$1"

if [[ "${connection_type}" == "wireless" ]]; then
        ip link set wlp2s0 down
        macchanger -A wlp2s0
        ip link set wlp2s0 up
elif [[ "${connection_type}" == "wired" ]]; then
        ip link set enp1s0 down
        macchanger -A enp1s0
        ip link set enp1s0 up
fi

Start/stop openvpn client

Put the following script in /etc/wicd/scripts/postconnect/, to be able to restart openvpn client when wireless connected to specific ESSID, and replace the YOUR_WIFI_ESSID with your ESSID.

#!/bin/sh

ESSID="YOUR_WIFI_ESSID"

if [ $1 == "wireless" ]; then
	if [ $2 == "$ESSID" ]; then
		systemctl restart openvpn@client
	fi
fi

Put the following script in /etc/wicd/scripts/predisconnect/, to stop openvpn client when wireless disconnected from specific ESSID and replace the YOUR_WIFI_ESSID with your ESSID.

#!/bin/sh

ESSID="YOUR_WIFI_ESSID"

if [ $1 == "wireless" ]; then
	if [ $2 == "$ESSID" ]; then
		systemctl stop openvpn@client
	fi
fi

Troubleshooting

See Network configuration#Troubleshooting for troubleshooting wired connections and Wireless network configuration#Troubleshooting for troubleshooting wireless connections. This section covers only problems specific to wicd.

Autoconnect on resume from hibernation/suspension

If for some reasons autoconnect on resume from hibernation or suspension does not work automatically, you can manually restart Wicd by enabling the following service file for your user; see systemd/User#Basic setup.

~/.config/systemd/user/wicd@resume.service
[Unit]
Description=Restart Wicd autoconnect service on resume
After=suspend.target

[Service]
Type=oneshot
User=%i
RemainAfterExit=no
ExecStart=/usr/share/wicd/daemon/autoconnect.py

[Install]
WantedBy=suspend.target

Importing pynotify failed, notifications disabled

In case the python2-notify package did not get installed automatically. You can install it from official repositories.

D-Bus connection error message

If wicd suddenly stopped working and it complains about D-Bus, it is quite likely that you just need to remove wicd fully, including and all its configuration files, and re-install it from scratch by first removing wicd. Then remove its configuration files:

# rm -rf /etc/wicd /var/log/wicd /etc/dbus-1/system.d/wicd*

Then reinstall the package. Check this link for more details: https://bbs.archlinux.org/viewtopic.php?pid=577141#p577141

Wicd-client also throws a D-Bus 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.

If the above does not work, you could try https://bbs.archlinux.org/viewtopic.php?pid=1268721

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

Eduroam

See WPA2 Enterprise#Wicd.

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

See the note in #Running Wicd[broken link: invalid section] about the autostart file in /etc/xdg/autostart and the forum post and bug report provided in #External Links[broken link: invalid section]. 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/MS-CHAPv2

The connection template PEAP with TKIP/MS-CHAPv2 requires the user to enter the path to a CA certificate besides entering username and password. However this can cause troubles resulting in an error message of a bad password [1]. A possible solution is the usage of PEAP with GTC instead of TKIP/MS-CHAPv2 which does not require one 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.

dhcpcd not running

Normally it should not be required, nor recommended to run the dhcpcd service next to wicd. However, if you encounter the error message that dhcpcd is not running, then you can try starting the dhcpcd systemd unit and see if you encounter any incompatibilities when using both services at the same time.

Alternatively, as a workaround you might consider switching to dhclient in the Wicd settings.

Note: If you get send_packet: Network is unreachable errors, then try increasing the timeout in /usr/share/dhclient/dhclient.conf.

See also