Integrating NetworkManager into KDE while keeping the Gnome out
I think that I am not wrong when I say that Networkmanager is the de-facto way of network configuration management in Linux. Most Linux distributions have implemented it. Slackware on the other hand, traditionally encourages the use of “vi” for network configuration management (by editing “/etc/rc.d/rc.inet1.conf“)… but in recent times, the WICD daemon has been added to the “/extra” directory of Slackware, and that includes a graphical network configuration utility. A lot of (particularly mobile) users like WICD, and so do I.
WICD is for the most part a one-man exercise and the main developer has stated that he is not able to work on the program as much as it deserves. That is not too good news, but I still have hopes for the project.
In the meantime, switching to NetworkManager is not a decision that should be taken lightly. Not because NetworkManager itself will give us issues, but because NM is only the service framework and it does not come with configuration utilities (either GUI or cli oriented – I do not consider the nmcli program adequate) that allow you, the computer’s user, to configure your network connections.
Traditionally, distros will add the “nm-applet” aka “network-manager-applet” to that purpose. The nm-applet is a graphical configuration utility that lives in your desktop’s system tray area. It is being developed by the NetworkManager team. However it is is a Gnome applet, and as such it is riddled with Gnome dependencies. Precisely for that reason it is not trivial to add nm-applet to Slackware, one of the few Linux distros that does not contain Gnome.
I think that if you are a Slackware GUI lover, you should consider yourself very lucky that the WICD developer team has one passionate Slackware user (NaCl) as member!
Having said all that, I do not have any issues with Networkmanager itself. It’s just the default configuration tool which sucks because of its Gnome allegiance. Hmm, that is not completely true… in the well-known take-a-blunt-knife-and-kill-your-software style of Redhat they managed to break API as well as ABI compatibility with the release of the 0.9 series of NM last august… where did I hear this story before? Like with PolicyKit, HAL and systemd, Redhat managed to cause a lot of fuss when developers decided to throw away their code and start over with fresh insights…
Applications which have been written to interact with the old 0.8 interface of NM have to be re-written and that takes time. At this moment, many NM-aware programs still do not support NM 0.9.
While all of that passed, I have been keeping an eye on what happens in the KDE camp. The KDE software compilation has never had a good network configurator for the 4.x series and the team which was developing KNetworkManager seems to have dissolved. But there is good news: a new networkmanagement plasmoid (KDE widget) plus accompanying KControl is available, it supports NM 0.8.x and is stable enough that I have come to prefer it over WICD.
I have built a set of supporting packages (many thanks to Robby Workman for some of these SlackBuild scripts):
- NetworkManager (the actual network service framework)
- cnetworkmanager (a commandline interface to NM if you don’t like the GUI)
- mobile-broadband-provider-info (world-wide database of mobile access providers)
- ModemManager (accompanying bradband modem management)
These packages allowed me to recompile the kde-workspace package and make it pick up support for NM in KDE’s solid device management. And finally I added the package for the required configuration GUI, networkmanagement
You can get these packages from my ktown repository or any of its mirrors, I built them for KDE 4.7.2 and you will find them inside the directory called “test“.
- http://alien.slackbook.org/ktown/4.7.2/ (the master repository), rsync URI: rsync://alien.slackbook.org/alien/ktown/4.7.2/
- http://taper.alienbase.nl/mirrors/alien-kde/4.7.2/ (my fast mirror), rsync URI: rsync://taper.alienbase.nl/mirrors/alien-kde/4.7.2/
- http://repo.ukdw.ac.id/alien-kde/4.7.2/ (willysr’s Indonesian mirror), rsync URI: rsync://repo.ukdw.ac.id/alien-kde/4.7.2/
- http://scw.net.br/alien-ktown/4.7.2/ (a new mirror maintained by Herbert Alexander Faleiros), rsync URI: rsync://rsync.scw.net.br/alien-ktown/4.7.2/
You can install these packages (kde-workspace needs to be upgraded of course, not installed a second time) with a single command after downloading the packages appropriate for your hardware architecture (32bit or 64bit). Run the following command in the directory which contains the six packages:
# upgradepkg –install-new *.t?z
And please read the README file which specifies in great detail how to enable NetworkManagement while at the same time disabling WICD!
How does it look in KDE after you rebooted? Well, here is a screenshot:
My goal for the next releases of KDE (in case I will still be building the packages for it) is to compile kde-workspace in the presence of NetworkManager and thus add support for NM to the kde-workspace package. Then it will be up to you if you want to actually switch to NM or keep using WICD. The kde-workspace package will work fine even if you did not install NetworkManager.
Give me feedback! Eric