Donations received in April: $315 Donate: Paypal | Patreon | Bitcoin

Friday, 25 October 2013

TimeShift FAQ

Q: Why is the home directory excluded from snapshots?

The home directory is excluded for following reasons.

  • The home directories of most users contain several GBs of music, videos and other files. Taking snapshots of this data will waste space on the backup device.
  • Documents in the home folder may get overwritten with older files when previous snapshots are restored.

Excluding the home directory avoids these two issues.

Q: What about user settings which are present in home directory?

Settings which are specific to a user are kept in hidden files and directories (starting with a period) in the user's home directory. These files and directories are included by default. Only non-hidden files and directories are excluded.

Q: I have some folders in my home directory that I want to include in my snapshots.

You can add it to the list of included paths (from the settings window) but please remember that these files will get overwritten when you restore a snapshot. TimeShift is designed to protect your system files and settings. If you need an application to help you take backups of documents, photos and other user files, please take a look at other tools like BackInTime.

Monday, 14 October 2013

TimeShift v1.1

What's New

This release fixes all issues that were reported by users in v1.0.
The most important changes are summarized below.

Changes since v1.0.7

  • Added support for using LVM volumes as backup device
  • Added user prompt for taking pre-restore snapshot
  • Added exclude entries for root user's home directory
  • Updated command line options
  • Reduced the default number of backups for all backup levels
  • Deleting all snapshots will delete the /timeshift directory
  • Moved code for estimating system size to separate thread

Changes since v1.0.0

  • Added /home/*/.gvfs to exclude list
  • Fixed an issue where scheduled backups are sometimes skipped
  • Fixed an issue with detection of root device
  • Fixed an issue with deletion of snapshots in Ubuntu 12.04
  • Added Italian translation by tomberry88
  • Installer for non-Ubuntu systems

Saturday, 12 October 2013

TimeShift Installer for Non-Ubuntu Distributions

Using the Installer

Download the installer from the following links: (32-bit, 170 KB) (64-bit, 180 KB)

Run it from a terminal window using the following commands:

sh ./  #32-bit
sh ./  #64-bit

Depending on the distribution that you are using, you may need to install packages for the following dependencies:

libgtk-3 libgee2 libsoup libjson-glib rsync

Saturday, 5 October 2013

Introducing TimeShift

TimeShift for Linux is a application that provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS. TimeShift protects your system by taking incremental snapshots of the file system at regular intervals. These snapshots can be restored later to bring your system to the exact state it was in at the time when the snapshot was taken.

Snapshots are taken using rsync and hard-links. Common files are shared between snapshots which saves disk space. Each snapshot is a full system backup that can be browsed with a file manager.

Monday, 16 September 2013

Conky Manager Support License

I have been trying to monetize my blog and applications for the last few weeks. After considering all options I am planning to provide support licenses for some of my applications. These applications will remain completely free for personal and commercial use but users will have the option to purchase a support license. Users who purchase a license will be given greater priority for implementing feature requests and providing technical support.

If you find Conky Manager useful and wish to support its further development, you can purchase a support license using the PayPal link below. You can pay any amount you wish. Amounts can be selected from the drop-down.

Thanks in advance :)

Conky Manager Support License

Tuesday, 27 August 2013

TimeShift for Linux: Coming Soon....

Ever wished that you could go back in time and restore your PC to the exact state it was in a few days ago?

What if you could take a snapshot of your system before installing software packages and undo the changes in case of issues?

TimeShift is a new application that makes this possible.

TimeShift for Linux is a application that provides functionality similar to the System Restore feature in Windows and the Time Machine tool in Mac OS. It uses rsync and hard-links to create system snapshots which can be restored at a later date to undo all changes that were made after taking the snapshot. Common files are shared between snapshots using hard-links which saves disk space. Each snapshot is a full system backup that you can browse with a file manager.

Thursday, 15 August 2013

Elementary Luna Themes for Ubuntu/Mint

I've uploaded the themes used in Elementary OS Luna to my launchpad PPA. You can install the themes from the PPA, if you are using Ubuntu/Linux Mint or its derivates.

Elementary Icon Theme 3.0

Wednesday, 14 August 2013

Elementary OS Luna Released

The long wait is finally over. After more than 2 years of development, the Elementary OS team has released the stable version of Elementary OS 0.2 (Luna). Luna features a redesigned icon theme, multiple display support and a stable version of the Pantheon desktop.

Elementary OS Jupiter, released in March 2011, was one of the most beautiful and well-designed distros at that time. The project had initially started in 2009 with the Elementary icon theme and a set of applications for Ubuntu. The themes and apps were combined to create the Jupiter distro which was based on Ubuntu 10.10. Jupiter was a modification of the base Ubuntu distribution with Elementary as the default icon theme, Plank as the dock and Slingshot as the application launcher. Not satisfied with their work, the developers started working on their own UI framework and desktop. This effort resulted in Granite and Pantheon.

Friday, 9 August 2013

Deepin GTK Theme for Ubuntu & Linux Mint

I've uploaded the theme and icons from the Deepin Linux distribution to my launchpad PPA. You can install the theme from the PPA if you are using Ubuntu/Linux Mint or its derivates.

Open a terminal window (CTRL+ALT+T) and run the following commands:

sudo apt-add-repository -y ppa:teejee2008/themes
sudo apt-get update
sudo apt-get install deepin-gtk-theme deepin-icon-theme faenza-icon-theme

Run the following to update the GTK icon cache: (optional step, improves system performance)

sudo gtk-update-icon-cache -f "/usr/share/icons/Deepin"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza-Ambiance"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza-Dark"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza-Darker"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza-Darkest"
sudo gtk-update-icon-cache -f "/usr/share/icons/Faenza-Radiance"

Current theme can be changed with the following commands:

gsettings set org.gnome.desktop.interface gtk-theme "Deepin"   # controls
gsettings set org.gnome.desktop.interface icon-theme "Deepin"   # icons
gsettings set org.gnome.desktop.wm.preferences theme "Deepin"   # window borders

Sunday, 4 August 2013

Vala #9: Drag & Drop

It is often useful to add drag & drop functionality in GUI applications. It allows the user to transfer data from other applications and to manipulate UI objects within the same application.
It is pretty simple to add drag and drop functionality in a Vala program. The following code creates a GTK3 window. Dragging files from a file manager (like Nautilus) and dropping the files on the window will display the file names in a TreeView widget. We'll look at the code first and then go through the details.

Saturday, 3 August 2013

Selene v2.2

What's New

The UI has been updated, some bugs were fixed and there's a new application icon. I didn't get time to add file monitoring yet. It will be added soon.

Wednesday, 31 July 2013

Linux Deepin 12.12 Review

I had some time today so I decided to check out Linux Deepin 12.12. Linux Deepin is a Chinese distribution based on Ubuntu 13.04. It comes with its own desktop environment called Deepin Desktop Environment (DDE) and its own set of default applications.

The look & feel of Deepin is very similar to the Window 7 desktop with transparency, shadows and glass effects. While the Windows 7 theme may not appeal to all Linux users, the desktop is extremely well-polished, and one of the prettiest desktops that I have seen since I came across the elementary desktop a few years ago. If you are someone who enjoys trying out new Linux distros then Deepin is something that you don't want to miss.

The Desktop

The DDE desktop is based on Compiz. There's a compiz-based dock at the bottom of the screen which acts as the taskbar. Moving the mouse over an aplication icon shows a preview window similar to the Windows 7 taskbar. The desktop supports icon grouping. Dragging one icon over another will create an icon group.

Sunday, 14 July 2013

Conky Manager v1.2

What's New

Selecting a widget from the dropdown in the Edit tab will automatically start the selected widget. Your current selection of widgets will be saved and automatically restored when you leave the Edit tab.

There's a new "Show Desktop" button to minimize other windows. This will make it easier to see the changes to the selected widget.

New options were added for changing the time format (12hr/24hr) and the network interface (WiFi/LAN). These options will replace the arguments for variables in the conky config file. This works for most widgets which display time and network stats but won't work for widgets that use lua scripts.

Themes will be sorted alphabetically in the theme list and widget list. A new application icon has been added.

Saturday, 13 July 2013

Deluxe Conky Theme Pack

A new Conky theme pack has been released by Jesse Avalos. This is an updated version of the Super Conky Theme Pack with more Conky themes and configs.


Here's a preview of some of the new themes:

Sunday, 7 July 2013

Super Conky Package

There's a new conky theme pack by Jesse Avalos. Jesse has put together some of the best Conky themes into one package. Download link and screenshots are given below.


Here a preview of some of the included themes:

Saturday, 29 June 2013

Conky Manager v1.1

What's New

A new tab has been added for editing Conky config files. This tab provides options for changing basic settings like the location of the widget on the desktop, transparency and size of the window.

Location Tab:

Set alignment and gap from screen borders.

Sunday, 16 June 2013

Introducing Conky Manager

I had some free time this weekend and so I quickly coded a small app for managing Conky scripts. It displays a list of Conky themes installed on your system and allows the user to start and stop specific themes. It also has an option to start Conky on system startup.

Sunday, 26 May 2013

Xubuntu 13.04 - Tips and Troubleshooting

I recently switched to Xubuntu 13.04 after using Linux Mint for nearly a year. While Linux Mint with Cinnamon desktop is a very good system, the Xubuntu desktop is more lightweight. The fonts look prettier with better anti-aliasing, the startup is much faster and the system somehow feels more powerful. Here's how you can make the most of your new Xubuntu system.

Enable Dropdown Terminal

The latest Xfce Terminal v0.6 features a drop-down terminal mode similar to other drop-down consoles like Guake and Terra. The terminal will appear when you press a key on your keyboard and hide when it loses focus. You can run a command and leave it running while you switch to another window. It supports multiple tabs which allows you to run multiple commands at once.

Saturday, 18 May 2013

Vala #8: Useful Functions

1) Get Process ID

public int get_pid_by_name (string name)
        string output = "";
        Process.spawn_command_line_sync("pidof \"" + name + "\"", out output);
        if (output != null){
            string[] arr = output.split ("\n");
            if (arr.length > 0){
                return int.parse (arr[0]);
    catch (Error e) { 
        log_error (e.message); 

    return -1;

This function returns the process ID of the first running instance. You can modify this function to return an array of process IDs for all running instances.

Vala #7: Process Execution

One of the best things about Linux programming is code-reusability. You can simply call a function in a library or execute a command to get a task done, instead of writing the code from scratch. Since there is a command in Linux for almost every task, it greatly reduces the effort required to develop a program. In this article we will see how Linux commands can be executed as a background process for performing various tasks in a Vala program.


public bool spawn_command_line_sync (   string command_line, 
                                        out string standard_output = null, 
                                        out string standard_error = null, 
                                        out int exit_status = null
                                    throws SpawnError 

The simplest way to execute a process is to call the spawn_command_line_sync function. The first parameter is the command to be executed, the second and third parameters return the data of the StandardOutput and StandardError streams and the fourth parameter returns the exit code. Only the first parameter (the command to execute) is mandatory. We can pass null for the remaining parameters which are optional.

Sunday, 5 May 2013

NVIDIA Panel for Conky

Displays the following information for NVIDIA cards:

  • GPU Temperature
  • Fan Speed
  • GPU Clock
  • Memory Clock
  • Memory Usage


Thursday, 2 May 2013

A Guide to Linux System Backups

In this article I'm going to show you a quick and painless way of taking regular backups of your Linux system. The backups will be completely automated and will not require any attention on your part. So when the day comes when your system finally fails due to a corrupted partition, damaged hard disk, or software issues, you can simply go back in time and restore your system to the way it was on particular day.

A Note about Parted Magic

We all use Parted Magic for taking system backups. It's an amazing utility for system rescue and recovery. Once you boot into the Live CD you can use the Clonezilla tool to backup, restore and duplicate entire partitions. While backing up your system using Parted Magic is very easy, it is not a good substitute for regular system backups. It is not practical to boot the live CD everyday for taking a system backup. Basically, the idea is that if it takes any effort on your part - you're not going to do it. Or you may do it once a month, or when you remember, but when your system finally dies you will feel like doing a fresh installation instead of restoring an old backup. The method shown below is completely automated, does not require much disk space and takes just a few seconds to back up your system.

The only thing we need for this is a portable hard disk with a Linux partition. If you don't have a Linux partition you can create one easily by resizing an existing partition and creating a new one. Format the new partition to ext2, ext3 or ext4. You can do this using the gparted tool (install it with the command 'sudo aptitude install gparted') or use the Parted Magic Live CD.

Saturday, 27 April 2013

CPU Panel for Conky

Simple Theme for Conky

A simple theme to monitor CPU, RAM and Network speed.

Simple Theme Download

CPU Panel

A panel for monitoring CPU loads. The load on each core is shown as a graph along with the frequency. The top-most graph displays the average/total load.

For 8-core CPU: Download

Sunday, 31 March 2013

Vala #6: Localization


Software applications are usually developed in a single language. So even though a programmer in Russia would be writing code using English keywords, the user interface and the messages in the application would probably be in Russian. Localizing an application involves writing the application in such a way that it can be easily translated to other languages.

The most common method is to keep all strings in an external resource file. Separate files are created for each language, and depending on the language selected by the user, the strings are loaded from the corresponding file on application startup. Separating the strings from the source code is important. It allows separate translation teams to work on translating the resource files while the developers can focus on application development.

Sunday, 3 February 2013

Vala #5: Toolbars


A toolbar provides a neatly arranged set of icons/buttons for executing various commands or actions. Unlike a menu which is also used for executing actions, toolbars are always visible to the user and readily accessible.

Toolbars can be used when there are multiple actions that need to be presented to the user. Instead of providing a button for each action, a toolbar can be used instead.

Tuesday, 29 January 2013

Vala #4: Using makefiles with Geany

In the last article we learnt how to set up Geany for compiling your Vala applications. Now we are going to see how we can create a makefile for building the entire project.

The valac "%f" command that we assigned to the Build button in the previous article works only on the current file that is open in the editor. This is enough if your project has a single .vala source file. However, most projects usually consist of multiple source files and we need a way to compile and link all those files to generate the final executable.

This is where the make utility comes into the picture. make is a classic Unix utility that is used for building executable files from source code. It reads instructions from a makefile which contains commands for building and installing the project.

Running the make command from the project directory will build the project using the commands in the makefile. It can also be used for installing and uninstalling the executable (and related files).

Sunday, 20 January 2013

Selene Media Encoder for Ubuntu

Latest Version: 1.1 (2013-02-02)
Platform: Linux (Debian/Ubuntu)
Language: Vala & GTK3

What is Selene?

Selene is an audio/video converter for linux that uses bash scripts for transcoding the input files. The scripts can use any command line utility for encoding the input and Selene will display the progress along with options to pause/resume/shutdown, etc.

Since the conversion process is driven by bash scripts, this makes Selene extremely flexible. Bash scripts can be written for a wide variety of transcoding tasks.

Saturday, 5 January 2013

MediaInfo Wrapper for .NET Projects

Latest version: v1.0.0.0 (2013-01-05)
Project Page: Google Project Hosting
License: Open-Source (GNU General Public License v2)


MediaInfoNET is a .NET wrapper for the MediaInfo library.
MediaInfoNET.dll can be added to any VB or C# project and used for reading information from audio and video files.