A hot topic in the community is wireless management. There’s a whole lot of buzz about NetworkManager, Wicd, dbus, frontends, PolicyKit, plasmoids, and the whole modicum of dizzying names and acronyms. Let me tell you about my mobile laptop’s wifi setup and why it’s easier and slimmer than any of the classic bloat.

I use wpa_supplicant’s optional wpa_gui. It’s a tiny Qt app that has a tray icon and a command line switch to start in the tray. Wpa_supplicant is required for all modern wireless connections and is always running in the background no matter what. Wpa_gui simply connects to wpa_gui’s socket and tells it what to do. I like having wpa_gui in my system tray so that I can reconfigure wifi networks easily.

zx2c4@ZX2C4-Laptop ~ $ cat ~/.kde/Autostart/wpagui.sh
wpa_gui -t

And check it out:

A simple, somewhat ugly, but extremely functional info display. I can connect to new networks with a simple double click:

And presto it connects to the wifi network. I can also configure all of the highly advanced encryption profiles that wpa_supplicant supports. All of this is easily accessible in my tray:

If I did not want wpa_gui -t running all the time, I could pretty easily make this into a little quick launch plasma button, and it would start up nearly as fast, because wpa_gui is so light weight.

This is how I do wireless. I have never had any trouble, and I can connect to wifi networks anywhere I go with ease. It remembers the connections and the priorities that I assign, and I have not seen any system simpler or easier than this.

For wired networking, netplug calls my ethernet setup scripts when I plug in an ethernet cable. No tinkering required. For wired networking, running dhcpcd alone is enough to monitor my Ethernet port for changes, and bring up my network and assign an IP when a cable is plugged in. For non dhcp networking, I just close dhcp and use the standard linux ifconfig/ip tools. For my cellphone internet via bluetooth, I run “pon nokia” and my ppp chatscript does all the rest. All this could easily be tied to a little menu button in my launcher.

I’m bloat free, and networking dynamically on the go with my laptop does not require any advanced timely tinkering.

Why are you all using NM, wicd, etc instead of good ol’ wpa_gui?

Update, July 12, 2011: I’m still going strong with wpa_gui. Did you know there’s also wpa_cli, which does the same but has an easy command line interface for managing wifi networks. Incredible. Anyway, I no longer use netplug nor any ethernet scripts. I just have plain old dhcpcd running, which monitors eth0 for me like normal. When something is plugged in, it gets everything set. So my network setup is essentially:

  1. /usr/sbin/wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf -B -c/etc/wpa_supplicant/wpa_supplicant.conf
  2. /sbin/dhcpcd -q

These are both run by normal init scripts (or systemd or upstart or whatever). Nothing fancy at all.

January 25, 2010 · [Print]

35 Comments to “Wpa_gui is Underrated”

  1. Jeff says:

    “Why are you all using NM, wicd, etc instead of good ol’ wpa_gui?”

    Well, because this is the first I’ve heard of it. I wish I had one of my laptops with me, then I could give it a spin right now.

  2. Leo S says:

    > Why are you all using NM, wicd, etc instead of good ol’ wpa_gui?

    I always assumed it only did WPA, given the name. Ohwell, NM works just fine as well (for me), and lots of distros set it up automatically these days, so I don’t see a reason to switch.

  3. Ryan T says:

    Does wpa_gui remember the authentication settings for every network you connect to, and then automatically reconnect to those networks when it detects them in the future? Or does it always require manual intervention to connect to a network?

    • It remembers all the settings and you can store the priorities or have it unprioritized. Actually, this is a feature of wpa_supplicant, which is nicely exposed by wpa_gui, wpa_cli, or the wpa_supplicant.conf file.

  4. robo1337 says:

    There’s a simple reason for that: Simplicity. You have to configure this before you can use it and it just doesn’t sound too easy. Of course, you can do it, I can do it and most of the readers of this blog could probably do it too but it consumes more time than simply installing networkmanager and configure all settings for all devices at a central place quickly. This doesn’t take any longer than a minute and I’m sure it’s easier than

    “For wired networking, netplug calls my ethernet setup scripts when I plug in an ethernet cable. No tinkering required. For my cellphone internet via bluetooth, I run “pon nokia” and my ppp chatscript does all the rest. This could easily be tied to a little menu button in my launcher.”

    The problem is, this “just works” with the gnome nm-applet and the KDE one still has its bugs despite KDE4.0 was released two years ago.

    I don’t really unterstand the problem, though, the KDE Networkmanager applet seems to work quite well nowadays. This would’ve been the perfect blog post one year ago 😉

    • Actually, it requires zero configuration, since wpa_supplicant is used no matter what. All you have to do is run wpa_gui. No configuration needed. In fact, I could also click on the K menu, go to applications, and presto, there it is.

      My setup “just works” with no configuration necessary.

  5. robo1337 says:

    Honestly, I didn’t try this app before, so I just know it from manpages and your blogpost. I was refering to bluetooth and wired connections if that wasn’t clear before.

    Your post pretty much sounded like you had to tweak quite a few config files and scripts for those two connection methods (netplug [wired], ppp [bt->nokia]). I couldn’t find any hints wpagui supported these methods on the internet, so excuse me if I told anything wrong 😉

    Anyway, this just looks like a nice way for configuring networks. Definitely worth a try when networkmanager decides to give up work (again… :o) :)

    • Netplug also requires zero configuration (emerge netplug and presto). But I didn’t really have to tweak anything at all. I run Gentoo so there also wasn’t the additional step of getting rid of NM, since it was never there in the first place.

  6. anonymous says:

    The reason why is because obviously network connectivity and control should be a service that your computer offers applications, and not JUST a simple commandline/GUI tool for user management. The scope of NM is much greater.

    WPA_gui seems great – and I’ve been burnt many times by bad WPA in NM, trust me – but a compelling application platform must offer developers ways to communicate and query network connectivity.

    In addition, NM does seem to be -very good- at integrating bluetooth and cell phones in one complete package.

    It’s a great tool, but modern computing experiences demand more than great tools. It requires great integration. I hope that NM can be as reliable as possible though, so maybe it should learn a thing or two from WPA-gui.

  7. ephemient says:

    I use wicd because it can automatically join known networks and switch based on preference even when there’s nobody logged in.

  8. Marvin says:

    I still use networkmanager from kde 3.5 on kde4. It seems to be the only kde nm which is capable using my gsm/gprs/umts device. Others either don’t work or crash. wvdial works too tough.

  9. jbernardo says:

    I use wicd, but maybe I’ll switch to wpa gui. NM with its idiotic habit of scanning every minute together with the buggy ath9k drivers means that with it my network is down one minute out of every two.

  10. maninalift says:

    I use wicd which I have never had any problems with and which could never be described as bloated. My only qualm is that it would be nice if it were Qt. Perhaps that’s a reason to try wpa_gui

    Had bad experiences with NM though

    • wicd is running in addition to wpa_supplicant, since all wireless needs wpa_suppliacant. never had any problems with it, im sure, since wicd is a good solution, but why the extra layer?

      more importantly, i’m interested in why wpa_gui is not very popular and why lots of people do not know about it.

  11. moltonel says:

    I think NM has the advantage of being all-in-one and well integrated by gnome and by specific distributions. If it’s in the default install and does what you need, most people will not know or care about the bloat.

    wpa_supplicant used to be a pain to configure, but I retried it recently and I’m now as happy as can be (simple needs, though).
    On my netbook running Arch (all other machines using gentoo), I settled for wicd a while back, but I think I’ll switch to wap_supplicant there too.

  12. david says:

    I will definitely give it a try cause nm doesn’t connect to all networks or times out randomly.

  13. charly says:

    Well, most guides about wireless networking on linux don’t mention wpa_gui, i guess its a significant reason for its low popularity.

    Now that i gave it a try, it seems its aimed audience is not the average joe linux user, but rather the geek who want to know his mac address. I don’t feel uncompfortable with that, but i don’t understand why you try to make people use an ugly ui which is _just_ a wpa_supplicant gui and _not_ an integrated network management service as someone pointed out already.

  14. TGM says:

    Love the icon :)

  15. Nicolas Dietrich says:

    Wow – I’m pretty surprised I didn’t know about it – thanks for the pointer!

    I’m also quite surprised / shocked by reading the comments, which imply that technical simplicity is not considered elegant by a lot of people :-(

    Btw – it didn’t work out of the box on my Gentoo system, I had to
    – create a wpa_supplicant.conf file first to allow all users to connect (not needed in wicd since server always runs as root and clients connect via dbus)
    – explicitly load the wpa_supplicant module in the network configuration file (not needed in wicd, since server starts wpa_supplicant directly)

    Great! One layer less!

    • Hey I’m glad it worked out well for you. I’ve never used wicd on my gentoo box, so I haven’t had this hassle of migration, but all those steps of wpa_supplicant.conf and /etc/init.d/net.wlan0 are suggested in the networking section of the gentoo handbook, so by the time I got around to discovering wpa_gui, I was already setup.

      The top 3 lines of my wpa_supplicant.conf are:


  16. Vytautas says:

    How can you make wpa_supplicant request IP through dhcp ?

  17. Serafean says:

    Hi, just stopping by to acknowledge that wpa_gui is all I need; but I must say that when I first saw it a few years back, it scared me away (no network scan at first glance: one has to go to another tab; I’ve grown wiser since). It does have that power-user-ish feel to it… Thanks for bringing it up. Not sure if this is the right place to ask, but,technically speaking, could there be a network abstraction in Solid for wpa_supplicant (as there is for wicd/Networkmanager)? It seems to me that with a better GUI wpa_supplicant is all an average user needs (1 process less in the background, YAY!!)

  18. Dan says:

    Where all this seems to me likely to be a really extra-handy way of doing things now –is in dealing with the multitudinous bugs encountered these days:

    Between NM –and good old macchanger.

    Lots o’ bugs between these two these days:


    So can you show a sample script for bootup (and some wpa_supplicant.conf entries) that might call on a macchanger generated randomized macaddresses for configuring wpa_supplicant.conf?

    This would be for a ubuntu 10.4 box –with an ath0 and eth0 connection.

    I would love to dump NM at this point.


  19. Tony says:

    Came across this little article as I’m preparing to move off Network Manager because when running NM I cannot directly manage, configure, create and destroy virtual network devices like br, tap and tun. Am currently exploring if wpa_gui supports any VPNs in the gui(currently unlikely) which could mean those will need to be launched from console.

    Also, unless things have changed since I last looked at wpa_supplicant approx the time this article was first published, wpa_supplicant supports wpa and open networks, iw will be required for any wep networks(ugh! – those shouldn’t exist but do) and of course dialup as mentioned in the original article. Today (2013), NetworkManager supports both wep and dialup as well as wpa.

  20. Thrawn says:

    I also tried wicd and wpa_gui on my FreeBSD UNIX notebook, but neither worked very well, especially when using mixed networks (WPA & WEP), so I wrote myself a bunch of scripts to handle everything. Quite cumbersome, and definitely not elegant, I can tell you that much.

    Just recently though, wpa_gui was updated from 0.7 to 2.0 on FreeBSD 10.1, and now I wouldn’t wanna do without it ever again!

    Exactly what I was looking for originally, a light-weight tool that just gets the job done (light-weight because it’s an older laptop, running Xfce4 on it).

Leave a Reply