Tag Archives: ubuntu

Another Diodon milestone released

I am happy to announce another Diodon milestone 1.1.0 being released today.

You can download it as tarball here or if you use Ubuntu simply install it with the stable ppa:

sudo add-apt-repository ppa:diodon-team/stable
sudo apt-get update
sudo apt-get install diodon unity-scope-diodon

Due to changed dependencies will this version only be available for Saucy 13.10 and Trusty 14.04. Of course for older flavors there will still be an older version available in the ppa and also as tarballs.

This new version finally removes the limitation of maximum 100 items in the clipboard history and therefore brings with it a much more powerful Unity Scope integration and lots more.

If you want to know more in detail what has changed read the following posts:

This milestone is only a start creating the foundation for future improvements such as better integration into other desktop environments and more. I keep you posted.

With this in mind… Happy copying.

Mounting external usb drives automatically to its label

I am maintaining a file server running Ubuntu 12.04 in my company and was faced with the problem how to backup my system easily and on a low cost. As we have a huge amount of data and a rather slow internet connection I have made the decision to backup onto external hard drives which we will rotate frequently. In the end USB drives are still the cheapest option to backup your data… ;).

This blog post is though not about backing up your data but rather how to mount a USB drive automatically when connected to a server and access it with its label. This helped me to have a specific mount point for backup hard discs but won’t interfere if anyone else needs to connect another USB drive to the server. I am sure you might have different use cases for such feature as well. I have tested following configuration on a Ubuntu Server 12.04 but it should run on other Debian based operating systems as well.

OK this said let’s get started with the configuration then.

While I was looking for a tool to automatically mount my usb drives I found usbmount which was very simple and pretty much worked out of the box.

You can install it with the following command:
apt-get install usbmount

After usbmount is installed you can simply connect your usb drive to your server and usbmount will automatically mount it to /media/usb0. When an additional drive is connected it will be mounted to /media/usb1 and so on.

That’s a good start… but there is a draw back that every drive connected to the server will be mounted to /media/usb0 so we cannot really distinguish the different drives from each other. But usbmount has a feature for this that it creates a symlink for each drive in the folder /var/run/usbmount.

Such symlink can look like the following:
lrwxrwxrwx 1 root root 11 Apr 11 10:53 SAMSUNG_HM160HI_1 -> /media/usb0

The name of the symlink is built by using the vendor, model and partition number. So accessing the hard disc you simply access it using this symlink. This is great when you want to identify a specific hard disc. There is still one problem with it though when I want a group of hard disc to be accessed the same way I cannot really use this symlink.

So my idea was why not using the volume label and when I format hard drives I simply give all those drives the same volume label.

This can be done for instance with following format command using ext4 as an example (of course you can change ext4 to whatever file system you need):
mkfs.ext4 -L VOLUMENAME /dev/sdb1

Unfortunately usbmount doesn’t create any symlink of drives by its volume label. I therefore created following script to do this:

#!/bin/sh
# This script creates the volume label symlink in /var/run/usbmount.
# Copyright (C) 2014 Oliver Sauder
#
# This file is free software; the copyright holder gives unlimited
# permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
#
set -e

# Exit if device or mountpoint is empty.
test -z "$UM_DEVICE" && test -z "$UM_MOUNTPOINT" && exit 0

# get volume label name
label=`blkid -s LABEL -o value $UM_DEVICE`

# If the symlink does not yet exist, create it.
test -z $label || test -e "/var/run/usbmount/$label" || ln -sf "$UM_MOUNTPOINT" "/var/run/usbmount/$label"

exit 0

This script you have to save to /etc/usbmount/mount.d/01_create_label_symlink and do not forget to add executable rights to it (chmod +x /etc/usbmount/mount.d/01_create_label_symlink). usbmount will run this script whenever a hard disc is connected.

Beside creating this symlink we also have to make sure that the symlink will be removed when the hard disc is disconnected. usbmount already has a script which removes symlink from /var/run/usbmount but we have to adjust it as it only removes the first link and not all. We can simply open the file /etc/usbmount/umount.d/00_remove_model_symlink and remove the break statement in line 19.

The script will then look like the following:

#!/bin/sh
# This script removes the model name symlink in /var/run/usbmount.
# Copyright (C) 2005 Martin Dickopp
#
# This file is free software; the copyright holder gives unlimited
# permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
#
set -e

ls /var/run/usbmount | while read name; do
    if test "`readlink "/var/run/usbmount/$name" || :`" = "$UM_MOUNTPOINT"; then
        rm -f "/var/run/usbmount/$name"
    fi
done

exit 0

So now when we connected a hard disc to the server there will be a symlink created /var/run/usbmount/VOLUMENAME and such path we can then use to point to for backups or whatever other use case you have.

Hope this was helpful. While working with usbmount I have found some more articles which might be helpful for you e.g. when you have issues with permissions or want to use ntfs as a file system.

Clipboard Unity Scope with its full potential

Test version of Diodon with its new Zeitgeist integration has been out for a while. In the first test version there was only a limited version of Unity Diodon Scope available. We have been working on improving this integration to bring the Unity Scope to its full potential. In this post do I want to describe what new features have been integrated and how you can testrun those before we hopefully release them soon.

When the Unity Scope (resp. Lens back then) has been introduced in Diodon version 0.4.0 it was fairly limited and it was only possible to search in the recent clipboard history which had a limit of 100 items. With the recent change of Zeitgeist and infinitive clipboard history this limit has been removed and makes the Unity Scope more powerful itself.

But there is more like the new filters for category (Text, Files, Images) or time when a clipboard item has been copied.

Diodon Unity Scope Filter

With this filter and text search available you hopefully find any item you have copied before. There is also a preview available when you click on a clipboard item. The preview will show you the full content of the item (especially helpful when verifying a longer piece of text) with additional information what application the item has been copied from and the date copied.

Unity Diodon Scope Preview

You can open Unity Diodon Scope with the hotkey <Super>b or simply by pressing the clip icon on the right hand side on the dash and start search your clipboard history.

The Diodon Scope used to be an plugin which caused some issues as Smart Scopes service was not able to start and stop it itself. We therefore have now turned the scope into its own service as it should be which also gives the advantage that the scope can be closed when not needed to safe resources, but started as soon as requested.

This brought about some changes in the packages to install it – we have removed the package diodon-plugins (will be added again as soon as we have other plugins available again) and added a new package unity-scope-diodon. As soon as you have installed this package and logged in and out again the scope will be available. No need to activate it as before.

If you are interested and want to test it use the following commands:
sudo add-apt-repository ppa:diodon-team/daily
sudo apt-get update
sudo apt-get install diodon unity-scope-diodon

Let us know what you think and report a bug if you find any glitches or have suggestion to improve it.

I herewith also want to thank all translators who took the time to update the Diodon translations. Great work. There are still some translations which are not quite up-to-date yet. Have a look whether you can help out.

Diodon is getting official

I am glad to announce that with version 1.0.2 Diodon has made it into the official Ubuntu repository for Raring. This means that from Ubuntu 13.04 onwards no PPA will be needed to install Diodon. So simply install it with apt-get or use the Ubuntu Software Center.

Of course the Stable Diodon PPA will remain for other versions of Ubuntu and to release stable packages which have not made it into the official repository yet. And for all lovers of cutting edge software, there is still the Daily PPA for the daily snapshots of Diodon.

Additionally with version 1.0.2 comes there a Apport integration so you can simply report bugs. Just use the following command to do so:

ubuntu-bug diodon

Apport is collecting data like what version of Diodon is installed, what are the dependencies etc. and then also ask you whether you want to include your clipboard history. It then puts all this together and uploads it to Launchpad.net, where you can input a bug description. And then hopefully with all this information we will be able to find the cause of the issue quickly and provide a fix.

So therefore have fun using Diodon and do not hesitate to file any bug or annoyance you find.