Why I can’t ditch Gnome 3

February 13, 2012

On low power machines people will often mention that Gnome/KDE are sometimes too bloated to use. I don’t really agree that it’s bloat, but sometimes you get the feeling that everything could be a lot quicker.

gnome-shell and Gnome 3 has been my best desktop experience on Linux since I started using it. So why am I looking elsewhere?

The short version is that I’m always looking for something to play with on my computers and Gnome 3.2 has evaporated the need to use jhbuild or build from source to complete my desktop so now I’m compile hungry.

I’ve been looking for a minimal desktop to use on a netbook and the closest thing I’ve found to a winner has been Razor-qt. http://razor-qt.org/

Razor-qt isn’t quite there yet but what is there is pretty amazing. A pure QT desktop that’s getting better and better each week. While it’s not up there with similar DE’s like LXDE/XFCE I’ve had more fun with Razor-qt than with any other non-gnome desktop I’ve ever used.

So now I’ve given my little plug to Razor-qt is there anything out there that can actually be used as a DE that doesn’t look like it’s from 1994? I have tried:


But nothing has really caught my attention as usable long-term.

When Razor-qt is feature complete I think it will give the other small/fast Desktops a real run for their money and the focus on pure QT is a lot better in my opinion than relying on KDE libs.

Is there anything else out there???

Organise your music with Rhythmbox File Organizer

December 2, 2011

Basically this is a short plug for my Rhythmbox Plugin, Fileorganizer. The plugin Supports all the latest versions of Rhythmbox in current distros.


Fileorganizer is a Rhythmbox Plugin that will move and rename files according to your tags and then update the database so you don’t lose your ratings and play counts.

Don’t waste your time organising your music collection before you get to actually enjoy your music. With Fileorganizer as long as your tags are right it will do the rest!


Do you have thousands of files all over your drives with no sense of rhyme or reason?
Ever use an external tagging program and move or change your file and folder names?
Do you manually name and move your music into your library?

When you move files in an external program it doesn’t update your Rhythmbox database for you. This means they become ‘missing’ and you lose everything unless you edit your database manually or put them back! :(

Dealing with new music in your carefully organised file structure can be a real pain and take a lot of time to manage.

That’s where this plugin steps in!
* Open up Rhythmbox.
* Set your tags
* Right click on the files and select ‘Organize Selection’
* Fileorganizer moves your files and updates the database for you all in one action!
* :)

To install the plugin, simply double-click the INSTALL file.
To unsinstall run the UNINSTALL file.

If you want to install manually, extract to the following directory:
 * $HOME/.loal/share/rhythmbox/plugins/fileorganizer-gtk3/


This plugin is pretty simple but it has a few complicated features under the hood.

Once the plugin is installed, simply enable it in Rhythmbox. A restart of rhythmbox will be required to detect the plugin if it was open when you installed.

When the plugin is enabled, you will notice an option in the right-click menu of music items (like songs) that will read ‘Organize selection’. Clicking this will organize the selected files following a defined structure (see 3. Configuration and customisation) for both folders and filenames. Thats all there is to it.


Intelligent duplicate backup:
 * When two songs have the same name, the plugin moves the file to a backup directory.
 * If you lose a file, you’ll probably in a folder named ‘backup’ in the root of your music library.

Move all non music files with your music:
 * When enabled, Fiileorganizer will move files like text files and pictures with that music file.
 * This is great for keeping all files organised, not just music.

Import cover art into the Rhythmbox cache:
 * When enabled, the plugin will import cover art that it finds in the music folder.
 * The default cache location is: $HOME/.cache/rhythmbox/covers/

Log file for all actions:
 * The log file is an invaluable tool to see what happens when running fileorganizer.
 * By default this file is hidden in your home folder: $HOME/.fileorganizer.log


The output when running ‘Organize Selection’ is set from dconf-editor using default Rhythmbox settings:
 * org.gnome.rhythmbox.library/layout-filename (Is the filename for your output)
 * org.gnome.rhythmbox.library/layout-path (Is the folder path for your output)
 * org.gnome.rhythmbox.rhythmdb/locations (Is your library path)

Using these, your final output becomes:
 * library + layout-path + layout-filename

The Locations setting can actually be multiple locations, the first value is always taken by the plugin.

The Variables for layout_path and layout_filename follow the same values as rhythmbox:
 * %at — album title
 * %aa — album artist (Album artist will use track artist if it does not exist)
 * %aA — album artist (lowercase)
 * %as — album artist sortname
 * %aS — album artist sortname (lowercase)
 * %ay — album release year
 * %an — album disc number
 * %aN — album disc number, zero padded
 * %ag — album genre
 * %aG — album genre (lowercase)
 * %tn — track number (i.e 8 )
 * %tN — track number, zero padded (i.e o8 )
 * %tt — track title
 * %ta — track artist
 * %tA — track artist (lowercase)


Fileorganizer will use the album artist tag which is a part of rhythmbox and replace the artist field. For example:
 * Path: /music/$artist/$year $album/$disc-$track – $title
 * Input: /music/new/spawn soundtrack/01 – filter & the crystal method – trip like i do.mp3
 * Set Album Artist to ‘Various’ in Rhythmbox.
 * Output: /music/Various/1997 Spawn/1-01 – Can’t You (Trip Like I Do).mp3


The preferences window gives you the ability to switch features on or off. The ‘Enabled’ check boxes will obviously disable these features.

Log File:
 * Set the filename of the log file (stored in your home folder)

Import Cover Art
 * List of coverart filenames that if found are imported to the rhythmbox cover cache for that album

File/Folder Cleanup
 * If enabled, files within the same folder that aren’t music files are moved as well

Remove Empty Folders
 * If the source folder is empty after moving, delete the folder


I use this plugin all the time to maintain my music library and was the whole reason I took over maintenance. (Selfish I know ;) ) I’d really like to spread the word about it becuase this plugin cuts down on the work I have to do by sooooo much that i can’t help but get excited about it.

Nerdy yes, but I’m just glad i can help out others.

MiniDLNA: The best streaming software hands down!

January 5, 2011

*UPDATE* – minidlna is now a package in Debian! It’s also a package in Ubuntu 11.10 so you can just install it from your package manager. ;)

I stream to my Xbox 360 and other devices from a file server in the office.

For years I’ve used (and purchased) TwonkyMedia Server but I was never truly happy with it. Last week I stumbled upon MiniDLNA and I have to say that this is the best streaming server software hands down.

MiniDLNA by jmaggard

“MiniDLNA (aka ReadyDLNA) is server software with the aim of being fully compliant with DLNA/UPnP-AV clients. It is developed by a NETGEAR employee for the ReadyNAS product line. So if you are looking for a NAS, please consider ReadyNAS first!”


From what I’ve read it looks like MiniDLNA is included in ReadyNas boxes but when you install it on a decent server it is amazing.

Issues I’ve had with Twonky that are fixed by MiniDLNA:


MiniDLNA keeps a database file on the server that makes loading files on my Xbox 360  really quick. I have 28,000 MP3’s that used to take over 10 seconds to load using Twonky. It would also have have to rescan after scrolling through a few pages which is slow and annoying. MiniDLNA is up instantly and hasn’t needed to rescan contents yet.


If you keep your database in /tmp, MiniDLNA will recreate the database each boot which can be helpful for those of us who rename or move files regularly. MiniDLNA scanned my music picture and video folders in less than 3 minutes. (~34,000 files.) Twonky will recan everything from scratch each service reset.

Stability and Quality

Sometimes Twonky decides you don’t have any music to share or the database wouldn’t update new files until a service restart (which for me would scan all shares again.) MiniDLNA is rock solid, configurable and even streams well over wireless which Twonky (and others) could never achieve.

Installing MiniDLNA On Debian Squeeze

I installed the latest version from CVS and was up and running in minutes. I had to install these prerequisites to be able to run the make command:

sudo aptitude install cvs libavcodec52 libavcodec-dev libavformat52 libavformat-dev libavutil49 libavutil-dev libflac8 libflac-dev libvorbis libogg0 libogg-dev libid3tag0 libid3tag0-dev libexif12 libexif-dev libjpeg62 libjpeg62-dev

Download the latest version

cd /home/user/src 
cvs -z3 -d:pserver:anonymous@minidlna.cvs.sourceforge.net:/cvsroot/minidlna co -P minidlna

Build the code

cd ./minidlna/

Install MiniDLNA (Run as root user)

make install

Install Startup Script

cp /home/user/src/minidlna/linux/minidlna.init.d.script /etc/init.d/minidlna
chmod -x /etc/init.d/minidlna

Enable Startup Script

sysv-rc-conf is a great little tool for enabling and disabling startup services use the arrows to get to minidlna and press the spacebar to tick 2, 3, 4 and 5.



nano /etc/minidlna.conf

Example Configuration File (Comments removed for Space)


Enjoy Your New Server

After a week of testing and watching I haven’t had a single hiccup. This is the best media streaming experience I’ve found and the dev will be working on transcode support as well.


Why Debian is always going to be better than Ubuntu

February 3, 2010

I had troubles with gnome-shell and ATI drivers on both my computers running Debian Squeeze. Whatever I tried I just couldn’t get it to work. I was dejected and defeated that I couldn’t try out the next big thing.

I’ve always preferred to have the latest testing but my girlfriend hates using Linux at the best of times and the last straw for her was not being able to click on flash in Compiz. So I decided to change to the just released Ubuntu 9.10 hoping that a stable release would keep the hounds (her) at bay.

Sure enough 9.10 worked quite well out of the box and I tried out gnome-shell making it my primary desktop. I had just installed Ubuntu over my trusty Debian install that had been with me since Etch was Released. I was thinking about doing this anyway so I could move to EXT4 and start afresh.

Immediately I regretted the decision because of one simple fact; EVERY x.10 release of Ubuntu is broken.

It’s like they take a snapshot of the worst possible Sid and just run with it for six months. I have never had trouble installing Ubuntu which is always easy for anyone who’s installed Linux before but the task of using Ubuntu for longer than a live cd session is painful and annoying. Updates constantly break things or things have just never worked.

Then there were the new features of 9.10 all of which are useless in their own way:

  • I was intruiged by Ubuntu One but it’s just useless, dropbox seems way better to me in every way especially more configurable but useless for me.
  • I was intruiged by the Ubuntu Software Centre but it is in no way aimed at anyone besides pushing Canonical crapware. gnome-app-install is the same thing and synaptic/aptitude is still the best way to do anything.
  • I was interested in using the restricted drivers utility as installing ATI drivers was a crap shoot at the best of times, but then I found out radeonHD was good enough to use so it’s irrelevant to me again.
  • I liked notify-osd but since using gnome-shell from Git it’s added the message tray which is less annoying to boot, so I don’t even need that.
  • Firefox in Ubuntu is crap. I have no idea what it is about Firefox lately (even Iceweasel isn’t too flash) but i’ve moved to google-chrome and back to epiphany.
  • mono-runtime is installed. While I agree with the Debian project on this in that I don’t care about mono’s existence. I have yet to see a program based on mono that was worth putting in the default install of anything. Banshee, F-spot, Tomboy aren’t killer apps.

Gnome 2.28’s biggest feature for me was including gnome-shell, sure enough I fell in love and I can’t wait for it to replace metacity and panels. This was the biggest reason I switched to 9.10 but it ended up being the stupidest.

After I followed development at;


And started using the Git repository to get the latest versions:

curl -O http://git.gnome.org/browse/gnome-shell/plain/tools/build/gnome-shell-build-setup.sh
sh gnome-shell-build-setup.sh
jhbuild build

I realised that things were way ahead of where I was and made gnome-shell-git (the name I gave the link) my primary desktop. The current state of gnome-shell is awesome and is a lot more usable as far as features go.

So back to the initial reason I wanted to leave Debian and look at other things was because gnome-shell was unusable. Try as I might I couldn’t work out why. I eventually filed a bug on bugs.debian.org and a week later I received my answer from Gustavo Noronha Silva:


I installed Squeeze back on my laptop and sure enough it fixed my problem. I felt so glad to have Debian back. I realise that bugs.debian.org should have been my first port of call when thinking about jumping ship but I was too desperate to try something new.

In the two months of using Ubuntu again I remember the reasons why I chose Debian over Ubuntu and Windows to become my only operating system on my computers since 2005:

  1. Debian Testing isn’t always stable but major transitions aside I’ve had less problems with Etch Testing, Lenny Testing and Squeeze Testing  than any Ubuntu Release from 4-9.
  2. Releasing every 6 months has made one of the most unstable, ‘stable’ distro’s around. The freeze in Lenny was 6 months while Ubuntu has released with unfinished and broken software for years.
  3. Debian gives you everything you want, nothing you don’t want and doesn’t tell you how to use it. It’s gotten a lot bigger over the years but still installs less crap by default.
  4. Ubuntu effectively creating a 4th branch of Debian doesn’t help Debian as much as it helps Ubuntu. This isn’t a bad thing for either but I would rather see contribute to Debian.
  5. I say “I use Debian” before I say Linux. I have obviously chosen my favourite distro and after years of tinkering with settings and staring at Clearlooks windows I’ve never felt more comfortable with my computer.

I apologise Debian, I was wrong to think that you weren’t the right one for me. Thanks for taking me back.

Forget Samba. Use sshfs!

July 23, 2009


sshfs is something i only just stumbled across after 5 years of using linux and i could just kick myself for all the effort this would have saved me.

Because i prefer the couch to a desk I wanted to rename and retag my music collection remotely using audio tag tool. (packagename tagtool) tagtool is a godsend for anyone with a large collection as you can set pretty much any tag using the file name and folder location.

The problem with doing this remotely is samba. It doesn’t support as many different characters as my ext3 partitions do. So when samba doesn’t like a folder name it will change to something weird.


Local ./Therapy?
Samba ./THIUB9~3

So if you access your music through samba you won’t be able to tag or even view your music correctly unless you name files with acceptable samba characters or tag manually, which is way to time consuming.

sshfs to the rescue!

sshfs Info:

Filesystem client based on SSH File Transfer Protocol
sshfs is a filesystem client based on the SSH File Transfer Protocol.
Since most SSH servers already support this protocol it is very easy
to set up: i.e. on the server side there’s nothing to do.  On the
client side mounting the filesystem is as easy as logging into the
server with ssh.
sshfs is FUSE (Filesystem in USErspace).

So to sum up in one sentence. If you can log on through ssh you can mount file systems through ssh.

Machines used in this example:

File Server (host=debian, IP=, Laptop (host=laptop IP= both running Debian Testing amd64. As you can see i’m pretty unadventurous with names.

Install sshfs

debian~# sudo aptitude install openssh-server

Install the client and connect to the file system:

laptop~# sudo aptitude install openssh-client sshfs
laptop~# sudo mkdir /mnt/remote
laptop~# sshfs user@ /mnt/remote

Open up a nautilus window and bam! ‘local’ access to your files.

How can wannabe programmers move beyond scripting?

January 5, 2009

I have a problem, after working in support for several years and studying basic and advanced programming courses at university. I’ve had my fair share of experience with numerous programming languages. But not a lot of experience building applications beyond assignments and heavy scripting for work.

Using VB, VBS, C# and basic Python I haven’t been able to take this knowledge to building solid windowed applications. While I would like to become a programming lord quickly I have decided my first goal will be recreating a simple two player game called dots and hopefully adding more functionality as my skill level rises.

To do this I have a few requirements:
1- The language I use must be cross platform compatible or at least easily ported to other systems.
2- I would like a strong IDE with the ability to build my forms visually.
3- I would prefer to use a language or at least a similar language to what i have used before.
4- All these things must be accomplished using free software available for Debian as anything I produce will also remain free.

So where should I look? C? Python? C#/Mono? GTK? My current thinking is that python will be easiest to start learning with but i don’t know about any IDE’s or window modules for the language.

Is there any documentation for newcomers to programming? Even places to look for tips on development process and examples would be a start in the right direction. I am also willing to purchase books and other material to get me in the right direction.

In the end i’d just like to be able to contribute something useful to the development community but we all have to start somewhere.


November 13, 2008

Today i read an email from debian-devel about how anyone with the abillity to press print screen can help contribute to Debian.

I’ve already uploaded a few myself so fire up your favourite programs and the GIMP and help out Debian. It’s so much easier than learning how to code.

Christoph Haas to debian-devel-a.
show details 07:18 (2 hours ago) Reply

Hi everybody,

a picture is worth a thousand words. And thanks to screenshots.debian.net[0] this finally comes true for Debian packages. Several people have proposed a service to provide screenshots for them. So after getting other developers’ opinions and suggestions I sat down and crafted a web application that allows to upload and provide screenshots.

Unless you are busy helping to fix RC bugs for the Lenny release please consider contributing screenshots of your favorite applications. Currently there are already over 260 screenshots available but there is still some way to go. Everybody can upload screenshots – you don’t have to be a Debian developer or Debian maintainer to help. Your uploads will just be checked by the admin team and then published.

I would love to see the screenshots integrated into packages.debian.org and perhaps they even get used in graphical package managers like synaptic, kpackage, adept or gnome-apt. It is easy to refer to screenshots from your own application or web site. Just use these URLs:

Thumbnail (<= 160×120 pixels):
 (this URL returns a dummy thumbnail if no screenshot was found)

Package’s page with all available screenshots:

There is still a couple of items on my to do list. But if you have further ideas on features, need a certain API or find bugs please tell me or let’s discuss matters on debian-devel.

Have fun,

[0] http://screenshots.debian.net

Building .deb package from source

October 29, 2008

Building from source can become annoying. While i don’t mind running through configure and make to get the packages i want it’s not always the best option. You may want to use this package a lot more than once and on other machines so a deb along with a local repo may be the best choice.



root@debian:~$ apt-get install autotools-dev fakeroot dh-make build-essential

Configure the package

Extract the source folder from your chosen directory.

user@debian:~/files/src$ tar -xvzf pkgname-0.5.5.tar.gz

Change directory to extracted source:

user@debian:~/files/src$ cd pkgname-0.5.5

Make the debian control files:

user@debian:~/files/src/pkgname-0.5.5$ dh_make

Follow the prompts and the control file is created.

Edit the debian/control file and replace the placeholder information.

user@debian:~/files/src/pkgname-0.5.5$ gedit ./src/debian/control

Build the package

Run the following:

user@debian:~/files/src/pkgname-0.5.5# dpkg-buildpackage -D -rfakeroot

You now have a working deb package.
If you have an error try it without the -D. (-D checks build dependencies and conflicts.)

Create a local deb repository

October 29, 2008

If you download a lot of individual deb files and use them over multiple computers a good idea might be to use a central place to store your deb files. if you store them offline and maintain a lot of systems. downloading once and updating your repo will be a lot better than downloading the same deb 100 times.

So in short you can use a server as a local update server.

Have it download packages that are installed on your network pc’s, move them to your repository, rebuild that repository and have the pc’s connect to the local server for updates.

Step by Step

Copy your debian packages to a folder


Generate a Packages.gz file:

dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Add the new repo to your sources.list

sudo gedit /etc/apt/sources.list
#Personal repository
deb file:/home/user/deb/repo /

# Reload your package index like this:

sudo apt-get update

That’s it a local (or LAN accessible) repository that will help you maintain your systems without having to lose all your bandwith to updates.

Update Script:

It’s annoying to remember the command to rebuild Packages.gz with each update. Simply use a shell script in the deb directory.

Script contents for “update.sh”

#must be run as root.
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
echo “”
echo “Package updates completed successfully.”
echo “”

You can now run the command:

sh update.sh

and your package list will be updated. You may even want to include a line to copy deb files from your apt archive each time you update using cp or mv.


Get every new post delivered to your Inbox.