What it looks like?
Everybody loves screenshots, right?
As I couldn't find any real documentation for writing gnome-shell extensions, I based my code on better or worse snippets and tutorials found on internet. Some of the sources are mentioned below:
How it works?
The extension connects to NetworkManager via dbus and gets list of available network devices. Then it parses /proc/net/dev file for interfaces' statistics.
I should have used imports.gi.NetworkManager instead of writing all the code myself, but I've found the module too late (did I mention lack of documentation?). Moreover I should have used imports.gi.GTop instead of parsing /proc/net/dev/, but I don't believe it's supported in gnome-shell 3.0.
In order to install gsettings schema, copy org.gnome.shell.extensions.net-monitor.gschema.xml file to /usr/share/glib-2.0/schemas and invoke glib-compile-schemas on that direcory. Note that you need to be root or use sudo to do that:
# cp org.gnome.shell.extensions.net-monitor.gschema.xml /usr/share/glib-2.0/schemas # glib-compile-schemas /usr/share/glib-2.0/schemas
The NetMonitor@zdyb.tk directory should be copied to /usr/share/gnome-shell/extensions or ~/.local/share/gnome-shell/extensions/:
# cp NetMonitor\@zdyb.tk /usr/share/gnome-shell/extensions
$ cp NetMonitor\@zdyb.tk ~/.local/share/gnome-shell/extensions/
Go ahead and try:
$ hg clone http://bitbucket.org/ojo/gnome-shell-extension-netmonitor/
Copyright 2011 Aleksander Zdyb
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.