When I change album name of a file in song info in the Music application, it writes a whole new artist-album-track structure to the Music folder, without removing the existing one; resulting in two copies of the file, the new and the old :s

I just had a bizarre issue where Luna’s Music application did not discover an MP3 file I had just placed in my Music folder. I even tried having it rescan the library, but to no avail. Finally, I asked it to actually import the Music folder (into the Music folder itself, mind you). It then gave in, put a copy of the file into an artist-album subfolder, and then it popped up in the application window.

Disgraceful apt

Trying (without luck, I might add) to install support for MTP on my elementary OS system, I had to do an apt-get upgrade, doing which my computer overheated and crashed. Generally, the reboot went fine, but my touchpad was not responding at all. I knew the crash meant that the apt-get upgrade was left in an inconsistent state, so I opened a terminal and found the right commands to have it self-repair, and after a reboot my touchpad was restored.

My point is, though, that this is another example of graceless behaviour under Linux. Requiring a systems administrator to fiddle around with the command line to fix a broken upgrade may be fine, but it is completely unacceptable for a non-technical desktop user.

Hacking elementary OS (how to build from source)

Contributing bug reports is a good first step, but if you really want to be an upstanding citizen in open source society, you have to learn how to hack things:

Image

To this end, you will want to be able to build packages from source. For the purposes of this post, I will use the switchboard-plug-pantheon-shell package as an example. This package contains the Switchboard plug called “Desktop”.

First of all, you have to download the code to your computer. The code is hosted in a Bazaar repository on Canonical’s Launchpad servers. Being in the middle of an development cycle (as open source software almost always is), there are actually two relevant branches – one for elementary OS Luna and one for elementary OS Isis. You should generally work off the newer branch (Isis), since the older branch (Luna) will meet end-of-life sooner. However, it is easier to satisfy the dependencies of the branch based on the version of elementary OS your computer is already on, so I will just go ahead and check out the Luna-based branch from a terminal:

bzr branch lp:switchboard-plug-pantheon-shell/luna

This will download the source code to a directory called ‘luna’ in your current working directory. You can rename it to something more instructive if you wish, while adjusting the commands in the rest of this post accordingly.

Before we can begin compiling the source code, you will also need to acquire the dependencies of the package (i.e. the software libraries it uses). This is easily done with the ‘apt-get build-dep’ command, fortunately:

sudo apt-get build-dep switchboard-plug-pantheon-shell

Now we need a place to build the package. Enter the ‘luna’ directory, and make a new directory called ‘build’:

cd luna
mkdir build

elementary OS packages uses the CMake build system. If you don’t already have CMake installed, you have get it with apt-get:

apt-get install cmake

Now enter the ‘build’ directory, and launch the CMake build:

cd build
cmake ..

If you have done everything right so far, appropriate makefiles will now have been written to your working directory. Run ‘make’ to actually compile the package:

make

Finally, to install package so it appears in your desktop, you have to do a ‘make install’ as superuser (root). Note that this may overwrite the existing installation:

sudo make install

For some reason (I have not investigated why), switchboard-plug-pantheon-shell does in fact not seem to overwrite the existing plug, but just lines up neatly beside it:

screenshot-from-2014-04-28-002447-e1398637749581

Now that you know how to build and install the package, you can change anything you wish in the source code, and repeat the build and install process to have it show up in your desktop. Here I just quickly modified some string:

Screenshot from 2014-04-28 00:40:27

Simple, right? Never listen to anyone trying to make you think that you aren’t good enough to hack on free software. Good luck!

First experiences with elementary OS

I finally decided to try installing elementary OS Luna on my main PC, an Asus laptop.

Writing the ISO to an USB key was relatively pain-free once I figured out how to use the tool included in Ubuntu for that purpose. After rebooting, and mashing F-keys randomly in search of the one throwing me into BIOS setup, I eventually found my way into elementary OS’s ‘live’ environment that allowed me to try out the desktop before installing.

The elementary OS installer is based on Ubuntu’s Ubiquity installer, I gather. It occured to me how archaic “partition tables” seem in this day and age. It’s the 21st century, and we still need to compartmentalize our harddrives up into little silos for each OS to reside inside? Really? How would I be able to decide now if I need 300 GB for Windows and 100 GB for elementary OS or 300 GB for elementary OS and 100 GB for Windows in the future? I’ve tried carving up such partitions before, only to later regret that I hadn’t divided the space differently. Alright – it may be that Microsoft has made a push to make dual-booting more difficult altogether with UEFI. But it still ought to be possible at least for different Linux distributions to coexist peacefully and dynamically on the same partition.

Also, the installer generally lacks the polish of the rest of elementary OS. But I imagine that’s an item on the to-do list.

Once installed, I was happy to see that elementary OS really does feel smoother than Ubuntu, for the most part. The little transition animations in Pantheon, the desktop manager, are one of the first signs that these people must know what they are doing. Also, the horrid “Dash” thing of Ubuntu – my main motivation for seeking other pastures – has been thrown out completely, and replaced with a much sleeker popup area that shows launcher icons of a handful of useful applications beneath a search field that lets the user find anything missing from the selection.

One bizarre issue I am still struggling with, though, is that I have no right mouse button (RMB)! I’m using a trackpad, but if I click its RMB, it’s just registered as a left mouse button (LMB) click. I’ve never had this issue in Ubuntu, as far as I remember.

I am also unable to copy and paste text in pantheon-terminal. When pressing Ctrl-C or Ctrl-V, it sends the keypress to bash instead of copying or pasting, respectively.

On a more sentimental note, the lack of a way to show the desktop (or even minimize windows!), is making me claustrophobic. You know how liberating a day in the woods can feel after a long week in the city? Sometimes I just need to see that wallpaper on the desktop, man, but Luna won’t let me do it.

The worst problem I ran into, however, was when I tried installing the restricted Nvidia drivers, using the “Additional Drivers” application. After rebooting, as it said I had to, the desktop was broken. After the elementary OS logo boot splash, I just got a textual init screen and then nothing. The machine just kept showing the lines of init text, never getting to the graphical login screen. I Ctrl-Alt-F1’ed into a console, issued a ‘reboot’ command, and tried again. Same thing happened – only this time I was unable to Ctrl-Alt-F1 out into a console! I was stuck. In my view, this is terrible. Failing is one thing – all software does it, especially complex system software. But not leaving the user a way out, a way back … that’s unforgiveable.

I even tried booting into recovery mode (which shouldn’t have been necessary in the first place), but this also failed. The lines of init text was different and more verbose, but it also eventually just stopped – halted, leaving me stuck. If I had been really desperate, I could have booted into my Ubuntu partition, and attempted to clean up the elementary OS setup from there, but that would be a ridiculous amount of work for what ought to have been a simple task – installing a driver for a graphics card. So, at this point, I just had enough, and reinstalled Luna from scratch. Fortunately, I had not done many customizations of the installation yet, so nothing was lost. But I am still without proper drivers. And I am not wanting to screw up my Luna installation once more by careless experimentation.