You are currently browsing the category archive for the ‘Linux Projects’ category.

This blog has been moved and new updated post can be found here

In this post I am going to explain about how to enable Grayscale Printing in Canon Pixma MP250 series printer . You can refer to my tutorial here in case you want to install the printer and scanner on Ubuntu and any other Linux distro .

To enable the Grayscale printing just follow the following steps .

1. Click System –> Administration –> Printing .

2. Now right click on your printer and select properties .

3. Now select Job Options

4 . Now scroll down to the bottom .

5. At the bottom you will see a text box . In that text box add “CNGrayscale” (without qoutes) and click on Add button .

6. Once you click add there will appear another text box right above the first text box . So in the second text box add “TRUE” and click on apply .

Thats all , now your printer will print in Grayscale mode . In case you want to print in color mode just change the TRUE to FALSE .

If there is something that you did not understand , you can ask me in the comments .

This blog has been moved and new updated post can be found here


This is the list of some of the best Lightweight applications available in Linux . I hope you like it . Please give your feedback in comments .

Browsers :

  • Abaco A multi-page graphical web browser
  • Arora A cross platform web browser built using Qt and WebKit
  • Chromium The open-source project behind Google Chrome
  • Conkeror A highly programmable web browser based on Mozilla XULRunner
  • Dillo A small, fast graphical web browser built on FLTK
  • Elinks An advanced and well-established feature-rich text mode web browser
  • Hv3 A minimalist web browser based on tkhtml3
  • Kazehakase GTK+ web browser that uses the Gecko rendering engine
  • Links A text WWW browser, similar to Lynx
  • Midori is a lightweight web browser based on Gtk and WebKit. It passes the ACID3 test
  • Netsurf has its own rendering engine, is written in C and is extremely lightweight.
  • rekonq rekonq is a KDE browser based on Webkit. Its code is based on Nokia QtDemoBrowser, just like Arora.
  • Surf is another lightweight WebKit-based browser, which follows the “Suck less philosophy” . Which means, the software is even more lightweight (basically, the browser itself is a single C source file).
  • Uzbl “web interface tools which adhere to the unix philosophy.”
  • vimprobable Vimprobable is a WWW browser that behaves like the Vimperator plugin available for Mozilla Firefox. It is based on the WebKit engine (using GTK bindings)
  • Xombrero xombrero is a minimalist web browser with sophisticated security features designed-in.

Email Clients :

  • Alpine is another powerful, and user-friendly text-based mail and news client.
  • Mutt is a small but very powerful text-based mail client.
  • Sylpheed is a simple, lightweight but featureful, and easy-to-use GTK based e-mail client
  • Claws is a user-friendly, lightweight, and fast GTK based email client.
  • Sup is yet another powerful, text-based mail client; it is still under development.

Instant Messengers :

  • Bitlbee is a way to use other IM to your IRC client .
  • Centerim is a curses based fork of Centericq which supports several protocols.
  • Emesene is a Python/GTK+ instant messenger for the Windows Live Messenger network.
  • Finch is a curses based version of Pidgin.(as pointed by Laurence Becker, Finch is not very lightweight application)
  • Pidgin is a multiprotocol instant messenger.  (as pointed by Laurence Becker, Pidgin is not very lightweight application)


  • Conspire Lightweight, simple, and powerfull.
  • Irssi is a modular text mode IRC client with Perl scripting.
  • II Ultimate lightweight, literally `tail -f` the convo and `echo` back your replies.
  • ircfs is a file system interface to irc written in Limbo
  • LostIRC is a simple IRC client.
  • ScrollZ is an advanced IRC client based on ircII.
  • WeeChat is a fast, light & extensible curses-based IRC client.
  • Xchat is a GTK+ X client with Perl and Python scripting support.
  • pcw is a frontend for ii that opens a new terminal for each channel (depends on srw by default)

Torrent Clients :

  • Deluge User-friendly BitTorrent client written in Python and wrapped with PyGTK
  • qBittorrent The closest open source (GNU GPL v2 license) equivalent to µtorrent
  • rTorrent Simple and lightweight ncurses BitTorrent client
  • Transmission Simple and easy-to-use BitTorrent client with (GTK+) GUI and CLI front-ends
  • Aria2 An advanced, lightweight CLI download manager that supports many protocols including bittorrent and metalink

Audio Players :

  • Ario is very feature-rich GTK2 client for mpd, inspired by Rhythmbox
  • C* Music Player is a very feature-rich ncurses-based music player.
  • cplay is a curses front-end for various audio players.
  • Goggles Music Manager is a music collection manager and player that automatically categorizes your music, supports gapless playback, features easy tag editing, and internet radio support.
  • MOC(Music On Console) is an ncurses console audio player with support for the MP3, Ogg, and WAV formats.
  • ncmpc is a curses client for mpd.
  • Pragha is a GTK+ music manager that was a fork of Consonance Music Manager.
  • QmpdClient is Qt4 based mpd client.
  • Sonata is an elegant GTK+ music client for mpd.
  • mpg123 A fast free MP3 console audio player for Linux, FreeBSD, Solaris, Hpux and near all other UNIX systems. Also decodes mp1 and mp2 files.

Video Players :

Image Editors :

  • mtPaint is a graphic editing program geared towards creating indexed palette images and pixel art.

Image Viewers :

  • Feh is a fast, lightweight image viewer that uses imlib2 .
  • GPicView is a simple and fast image viewer for X. Made by the developers of LXDE
  • GQview is an image browser that features single click access to view images and move around the directory tree.
  • Geeqie is a lightweight image browser and viewer (fork of GQview), with additional functionality like RAW files view.
  • Mirage is a fast and simple GTK+ image viewer.
  • Ristretto is a fast and lightweight picture-viewer for the Xfce desktop environment.
  • QIV (Quick Image Viewer) is a very small and fast gdk/Imlib image viewer.
  • Viewnior Viewnior is a simple, fast image viewer with a minimalistic GTK2 interface.
  • Xv is a shareware program written by John Bradley to display and modify digital images under the X Window System.

Calendars :

  • Calcurse is a curses calendar and scheduling system.
  • Remind is a highly sophisticated text-based calendaring and notification system.
  • Wyrd is an curses front-end to Remind.
  • wxRemind is a Python text and graphical frontend to Remind.

PDF Tools:

  • apvlv is a lightweight PDF viewer with VIM key bindings.
  • ePDFView is a free lightweight PDF document viewer using Poppler and GTK+ libraries.
  • MuPDF is a lightweight PDF viewer and toolkit written in portable C. It is one of the lightest available.
  • Xpdf is a viewer for Portable Document Format (PDF) files.
  • zathura is another lightweight PDF viewer similar to apvlv, only lighter

Text Editors:

  • Acme a minimalist and flexible programming environment by Rob Pike.
  • Beaver is an Early AdVanced EditoR.
  • Geany is a text editor using the GTK+ 2 toolkit with basic features of an integrated development environment.
  • Leafpad is a notepad clone for GTK+ 2.x that emphasizes simplicity.
  • medit is intended to be a useful programming and around-programming text editor.
  • Mousepad is a simple text editor for Xfce based on Leafpad.
  • nano is an easy-to-use text editor, with on-screen key binding information, based on pine’s pico editor.
  • PyRoom is a great distractionless PyGTK text editor, a clone of the infamous WriteRoom
  • Sam a graphical text editor by Rob Pike (still used by Ken Thompson and others).
  • Vi, Vim, gVim, the classic vi text editor.

Word Processors:

  • Abiword is a full-featured word processor, there is also an even lighter version in the AUR, Abiword-light.
  • txt2tags is a dead-simple, KISS-compliant lightweight, human-readable markup language to produce rich format content out of plain text files
  • WordGrinder a word processor for processing words .

Todo List Managers:

  • Todo.txt manages your Todo list from the command line.

File Managers:

  • emelFM2 is file manager that implements the popular two-pane design.
  • Midnight Commander is a console-based, dual-paned, file manager.
  • PCManFM is a lightweight file manager which features tabbed browsing and can optionally manage the desktop background.
  • Ranger is a console based file manager with vi bindings, customizability, and lots of features.
  • ROX is a small and fast file manager which can optionally manage the desktop background and panels.
  • Thunar is fast and responsive with a good start up time and directory load time.
  • Vifm is a ncurses based two-pane file manager with vi like keybindings.
  • Xfe X File Explorer (Xfe) is an MS-Explorer or Commander like file manager for X.

GUI Compression Tools:

  • Squeeze is a modern and advanced archive manager.
  • Xarchive is a GTK+ 2 front-end for various command line archiving tools.
  • Xarchiver is a lightweight desktop independent archive manager built with GTK+ 2.

CD/DVD Burning Tools:

  • recorder is a graphical frontend of cdrkit/cdrtools, cdrdao, mkisofs and growisofs.

Login managers:

  • CDM provides an ultra-minimalistic, yet full-featured login manager written in bash.
  • SLiM provides a lightweight and elegant graphical login solution.
  • Qingy is ultralight and very configurable graphical login independent on X Windows.


  • Conky is a lightweight, scriptable system monitor.
  • htop is a simple, ncurses interactive process viewer.


  • BMPanel (BitMap Panel) is a lightweight, NETWM compliant panel for the X11 system.
  • fbpanel is a lightweight, NETWM compliant desktop panel.
  • LXPanel is a lightweight X11 desktop panel (part of LXDE).
  • PyPanel is a lightweight panel/taskbar written in Python and C (HOWTO).
  • Tint is a simple panel/taskbar intentionally made for openbox3, but should also work with other window managers (HOWTO).
  • pancake is a highly configurable, modular panel for X.


  • Lilyterm is a light and easy to use libvte based X Terminal Emulator.
  • ROXTerm is a tabbed, VTE-based terminal emulator with a small footprint.
  • urxvt is a highly extendable unicode enabled rxvt-clone terminal emulator featuring tabbing, url launching, quake-style dropdown, pseudo-transparency, and is extensible with perl.
  • Sakura is a terminal emulator based on GTK+ and VTE.
  • xterm is a terminal emulator for the X Window System.
  • xvt xvt is an X terminal-emulator that is designed to be more or less compatible with xterm while using much less swap space.
  • st st is a simple terminal implementation for X.


  • Docker is a docking application which acts as a system tray.
  • Stalonetray is a stand-alone system tray.
  • Trayer swallows GTK+ 1.2/2.x application docklets, and KDE docklets.

Window managers:

  • Awesome is a floating and tiling window manager initially based on a dwm code rewriting.
  • Dwm is an extra light dynamic window manager which is configured by directly editing the source(which itself is less than 2000 SLOC).
  • Enlightenment a very lightweight and extremely beautiful WM .
  • Evilwm is a minimalist floating window manager with an installed size of only 0.07 MB.
  • Fluxbox is a lightweight and highly configurable window manager.
  • FVWM is a lightweight, flexible and highly-configurable Window Manager.
  • i3 i3 is a manual tiling window manager which places client into containers.Containers can be stacked (like wmii) or tabbed (like ion3). i3 also supports floating windows.
  • Musca is a very lightweight window manager which has features from dwm and ratpoison. Uses about 350-400KB of memory.
  • Openbox is another lightweight and highly configurable window manager.
  • PekWM is small and easily configurable window manager.
  • Ratpoison is a keyboard-oriented, customizable lightweight window manager, modelled after GNU Screen.
  • Scrotwm is a small dynamic tiling window manager for X11. It is written in C and configured with a text configuration file.
  • Subtle is a semi-automatic tiling window manager with a strong focus on easy but customizable handling and look and feel.
  • TinyWM is a tiny window manager that was created as an exercise in minimalism, and it is also helpful in learning some of the very basics of creating a window manager. It is around 50 lines of C, and there is a Python version using python-xlib.
  • Twm is a classic, customizable and very lightweight window manager; possibly the first designed for X11.
  • Window Maker is an elegant, fast and usable OpenStep implementation.
  • Xfce is a desktop environment much lighter but similar to GNOME. It includes the xfwm4 window manager.
  • Xmonad is a tiling window manager for X, written and configured in Haskell.
  • Wmfs (Window Manager From Scratch) is a lightweight and highly configurable tiling window manager for X.

Help me to improve this list by specifying if I missed something . Please give your feedback in comments . This list was orginally posted at Arch Linux . I have fixed the few links and I am sharing it here with you guys .

Contributors :

  1. MercurialAlchemist
  2. damn_right
  3. TheAntiRudin
  4. KimTjik
  5. Jaqui
  6. drad

This blog has been moved and new updated post can be found here

I have used most of the torrent clients out there for Windows ( utorrent , vuze , Mainline , bittornado , etc)   and I have also used most of the torrent clients available for Linux(Transmission , Deluge , halite , Ktorrent , qbittorrent , rtorrent) . Out of all these the one that I used most of the times in Utorrent on Windows XP . There is no match for Utorrent on Windows XP or any other Windows based operating System because its light and fast . While using Windows I having Ubuntu installed on other partition . But I never actually used it for using bit-torrent . One day I decided to completely switch to the Linux as I found myself using it most (98%) of the time . I removed the Windows XP and now Ubuntu is the only OS on my machine . As a regular Bittorrent user I felt completely lost as I could not found the proper alternative to utorrent as I was addicted to it and I knew it completely from inside out . Ubuntu came with transmission by default . But I did not liked it much as it was not upto my expectations . Then I tried few others and I found myself settled with the Vuze as I was familiar with it and I was getting decent speeds . But one after an update it started to annoying me , It was eating my  memory like a crazy and such a behavior is just not acceptable . So i dumped it and started looking for something else . One day at some forum I read a post about rtorrent and It actually attracted me as I feel quite comfortable with the command line . So I installed it and started playing with it . But my initial experience with it was not so good and it took me about one week to completely understand it and use it efficiently .  Now I am using rtorrent on daily basis without any problem and I was never been this much satisfied with a torrent client before . It just blows away every other client with with its speed , efficiency and elegance . I am going to write this tutorial so that others can benefit from my experience and they dont have face the problems that i faced . My this tutorial will be mainly targeted towards Ubuntu users but it will be equally helpful for the users of any other Linux distro . This tutorial is divided into 3 sections i.e. Installation , Configuration and Usage . So here I go :


Installation of rtorrent is very simple , simple follow the following steps

1. For Ubuntu and Debian users just issue the following command :

sudo apt-get update
sudo apt-get install rtorrent

And this will install the rtorrent for you .
2. For Fedora users just issue the following command :

sudo yum install rtorrent

Now rtorrent is installed on your system .
3. For those who want to install by compiling from source can download the latest version from here

If there is any problem installing it from source then ask me for help in the comments .

4. To check if rtorrent is correctly installed you can run from terminal by typing


When you will first start it , it will show a warning that configuration file .rtorrent.rc not found .Just ignore it .
I suggest that you never run rtorrent as a root .


Before we begin configuration you need to create few directories which will be used by rtorrent . Suppose that your user name is foo . Then the user foo will create the following directories .

1. Default directory to save the downloaded torrents. Open your terminal and issue the following command without root (sudo) .

mkdir /home/foo/rDownloads

The above command will create a directoy named rDownloads in your home directory where your dowloaded torrents will be saved automatically . Remeber that you must change foo with your own username .

2. Default session directory . This is very important as it will contain data related to your download , paused , completely torrents .

mkdir /home/foo/session

This will create a directory in your home directory of name session and it will be used by rtorrent to save its current session .

Alright now you have created the directories required so now we can move on to the actual configuration part . So first of all download this files and save it on your computer.

Now open the file with your favorite text editor . You will a long file with some stuff in it . Well all this stuff is what we are going to configure now . The first thing that you will see is something like this :

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

Now change it to exactly as shown below

# Maximum and minimum number of peers to connect to per torrent.
min_peers = 50
max_peers = 80

Now the next thing to change is this :

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

change it to this :

# Maximum number of simultanious uploads per torrent.
max_uploads = 4

Now change this :

# Global upload and download rate in KiB. "0" for unlimited.
#download_rate = 0
#upload_rate = 0

Into this :

# Global upload and download rate in KiB. "0" for unlimited.
download_rate = 0
upload_rate = 50

Now change this :

# Default directory to save the downloaded torrents.
#directory = ./

Into this :

# Default directory to save the downloaded torrents.
directory = /home/foo/rDownloads

(replace foo with your username)

Now change this :

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#session = ./session

Into this :

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = /home/foo/session

(replace foo with your username)

Now change this :

# Port range to use for listening.
#port_range = 6890-6999

Into This :

# Port range to use for listening.
port_range = 60125-64125

Now change this :

# Start opening ports at a random position within the port range.
#port_random = no

Into This :

# Start opening ports at a random position within the port range.
port_random = yes

Now change This :

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

Into This :

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
check_hash = yes

Now change this :

# encryption = allow_incoming,enable_retry,prefer_plaintext

Into This:

 encryption = allow_incoming,try_outgoing ,enable_retry

Now change this :

# dht = auto

# UDP port to use for DHT.
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
# peer_exchange = yes

Into This:

dht = auto

# UDP port to use for DHT.
 dht_port = 63425

# Enable peer exchange (for torrents not marked private)
 peer_exchange = yes

Alright now your configuration is complete . Now save the file and copy the file into your home (/home/foo) directory . And issue the following command .

 mv rtorrent.rc /home/foo/.rtorrent.rc

This command is simply to hide the rtorrent.rc file

Now using rtorrent is very simple . Open your terminal and write


without root and hit enter
you will see a screen like below

The above screenshot is having the following useful information .

To demonstrate the usage to rtorrent we will download the latest version of Ubuntu from here via torrent . So download the torrent file and save it in your computer . I downloaded the file and saved it in /home/harbhag/ where harbhag is my username for the system .

Now hit ENTER and the above screen will change to the one like below :

Here you can see that in the end of the screen is load> , so here rtorrent is asking to load the torrent file to start download .

Now press TAB and you will a screen like the one below

Here it is showing the list of all the Directories and files present in my home directory . Now you can see that in the end of the list it is showing torrent file that i just downloaded . If you also saved the file in your home directory then you will also see this file (ubuntu-10.04-desktop-i386.iso[].torrent) along with the other files and directories present in your home directory .

Now enter u (first letter for the torrent file) and hit TAB and it will automatically load the torrent file for you like below .

Now hit ENTER and your screen change to the one like below :

your torrent is loaded now but its not downloading yet to start the download press UP or DOWN arrow and you will see stars in front of the name of torrent you just added like below :

Now press Ctrl key and s key together (i.e. Ctrl+s) and your torrent will start downloading and the numbers on the bottom of the screen will start changing . Congratulations now your have successfully loaded your first torrent in the rtorrent .

To stop the downloading press Ctrl+d and your torrent will stop and if you press Ctrl+d the torrent will got deleted . To quit the rtorrent first stop all the torrents you are downloading by pressing Ctrl+d and then press Ctrl+q to quit the rtorrent . If you will press the RIGHT arrow key while the stars are in front of the torrent , then you will see a screen like below :

Here you can find lots of information regarding peers and trackers and many more . To exit from this screen to go back to previous screen just press the LEFT arrow key .

So thats all for now . If you have any problem regarding this tutorial or you are having slow speed or your are not able to do anything i explained here then you can ask me for help in the comments . Good luck ,cheers .

Improvements :

Well one of my reader(Ellidi) suggested me in comments that torrents should be loaded in to rtorrent automatically as adding them manually is little more overhead . So now I am going to explain how to do it . You need to change the file (rtorrent.rc to make this feature work . So open the file and change it as below :

gedit /home/foo/.rtorrent.rc

and change this :

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

Into this :

# Watch a directory for new torrents, and stop those that have been
# deleted.
schedule = watch_directory,5,5,load_start=/home/foo/watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

And then create the watch directory

mkdir /home/foo/watch

And dont forget to replace foo with you username .
So from now on rtorrent will automatically start downloading the torrents that you will save in watch (/home/foo/watch) directory . And if you will delete the torrent from the rtorrent , it will be automatically deleted from the watch directory .