How To: Install and Configure Looking Glass 3D Desktop

I saw a video from Sun MicroSystems last year, in which they showed a demo version of a 3D desktop environment. It was really awesome and was the really 3D desktop environment. A lot of 3D desktop emulators are available currently like beryl, but they are not really 3D. Because one can’t go behind the windows, terminals etc. Believe me, Looking Glass 3D is far better than all vistas and beryls if only graphics are compared. Around two-three weeks when I was going through one of the tech magazines in library, I came across a topic which discussed desktop environments for Linux. I was surprised to see Project Looking Glass over there. Day before yesterday, I downloaded the Project Looking Glass 3D desktop environment for Linux from here.Project Looking Glass 3D desktop environment is a purely Java based desktop environment and it runs on top of Java virtual machine. It requires graphics card (at least on board). Here is a way to install nVidia drivers in Linux. The other requirement like processor and RAM are quite low and almost all systems can qualify for that. Looking Glass 3D is very easy to install. Below are the steps to install it on Fedora 7 (kernel-, but the steps for other operating systems may be similar.

Step 1

Get lg3d–1-0-0-linux-i686-0612190943.bin from here.

Step 2

In a terminal switch to root user.

[saini@bordeaux saini]$ su [Enter]
Enter root password.

Step 3

Move the lg3d–1-0-0-linux-i686-0612190943.bin to /usr/share/ and go to directory /usr/share/

[root@bordeaux saini]$ mv lg3d--1-0-0-linux-i686-0612190943.bin /usr/share/ [Enter]
[root@bordeaux saini]$  cd /usr/share/ [Enter]

Step 4

Extract lg3d–1-0-0-linux-i686-0612190943.bin

[root@bordeaux share]$ bash  lg3d--1-0-0-linux-i686-0612190943.bin [Enter]

The files will be extracted to /usr/share/lg3d/

Step 5

Logout and login into root’s desktop environment and go to the directory /usr/share/lg3d/bin/

[root@bordeaux root$ cd /usr/share/lg3d/bin/ [Enter]

Step 6

Execute the following command.

[root@bordeaux bin]$ bash ./postinstall [Enter]

If this command doesn’t give any error, that means you have successfully installed the Looking Glass 3D desktop environment.

Now logout and on the login screen, choose Looking Glass as the desktop environment. Just login into your account and what you will see will be more than a surprise. Below are some screenshots of my Looking Glass 3D desktop. You can browse all my screenshots here .

PS0 : It may the best 3D desktop environment but is not really usable on slower machines especially with low end graphics cards.

Awesome Wallpaper in Looking Glass 3D 3D Clock in Looking Glass Four Desktops in Looking Glass Notes on Backside of VLC Media Player in Looking Glass

Trumplayer Album Art in Looking Glass I Can't Read Mails in Looking Glass Jumbled Directories in 3D in Looking Glass Random Directory 3D Tiles in Looking Glass


How To: Configure Procmailrc to Reduce Spam

Last Monday in IIIT Linux Users Group (LUG) meeting, I gave a small presentation regarding how to configure .procmailrc to make very effective filters.

Procmail is a mail delivery agent or mail filter which is widely used on Unix systems to process incoming mails. It is automatically invoked by the mail transport agents like Sendmail whenever there is an incoming mail. Procmail has the power to process all the incoming mails based on the recipes provided by the user and deliver them to the provided destination(either a mail folder or email id or something else like a file or stdout and many more).

Procmail by default searches for a configuration file named .procmailrc in user’s home directory. All the recipes, global variables and other things are provided here by the user to let Procmail know what to do.

Here is an example .procmailrc

# .procmailrc 
SHELL = /bin/bash
# Backup for testing mode.
#:0 c # Uncomment for testing mode
:0: # Spam mails should go to Spam folder
* ^(From|Cc|To).*(|auctionit|newegg|voilin|mingle)
:0: # Spam mails should go to Spam folder
* ^Subject:.*(Goonj|Spam|Disarmed|Pictures|Re\. Pictures|Sperm|Penis|Viagra|Filename|voilin)
:0: # Mail from Fedora mailing list should go to Fedora
* ^(From|Cc|To).*(fedora-devel|fedorawiki-noreply|bugzilla)
:0: # Mail from yum mailing list should go to Yum
* ^(From|Cc|To).*yum-devel*
:0: # Mail from/to lug should go to LUG folder
* ^(From|Cc|To).*
:0: # Lost found mails should go to LostFound folder
* ^Subject:.*(lost|found)
:0: # Mail from/to life should go to Life folder
* ^(From|Cc|To).*life@students*
:0: # Birc mails should go to BIRC folder
* ^(From|Cc|To).*birc@students*
:0: # Mail from/to course should go to Courses folder
* ^(From|Cc|To).*(ec5303|cs3600|cs3150|cs3350|cs3155|cs4460|cs4110)
	:0 c
:0: # Mail from/to clubs should go to Clubs folder
* ^(From|Cc|To).*(agents|campusgreen|campusgreenclub|cybergames|dpscm|guitar|music|nss|photography|quizzers|signet|sigops|videography|movie)
:0: # Mail from/to clubs should go to Clubs folder
* ^Subject:.*(agents|campusgreen|dance|cybergames|dpscm|guitar|music|nss|photography|quizzers|signet|sigops|videography|movie)
:0: # House mails should go to House folder
* ^Subject:.*(IBCT|House|Tournament|Champion|championship|Inter\ House|chess|cultural|basket|cricket|foot|ball|Physical|PEC|carrom|dumb|TT|IHFT)
:0: # Mails from Physical Education Center
* ^(From|Cc|To).*
:0: # Returned mail transcriptions to Bounced folder
* ^Subject:.*(Returned mail: see transcript for details|could not deliver mail|bounced|could not send message for past)
:0: # Mails from TopCoder should go to TopCoder folder
* ^(From|Cc|To).*topcoder*
:0: # Default
* ^(From|Cc|To).*
	:0 c

The top few lines are global variables which you need to declare so that Procmail can detect your default mailbox and mail folders, path etc.

These are configured in accordance with the Students mail server at IIIT-H. These global variable declarations are followed by the recipes which guide Procmail to process the incoming mails.

The usual syntax of a recipe is

:0 [flags] [: [lock-file]]
zero or more conditions
one action line or nested actions

Lets start with the conditions line with second recipe from above image. ‘*’ specifies the start of the action line. This ‘*’ is followed by a regular expression which Procmail egreps in the header by default. ‘^’ in regular expression species the start of the line. Then all the mail which are from/to/cced to mail ids which contain auctionit or newegg or violin . e.g. The condition can span only one line. You can’t write comment in the action line otherwise Procmail will treat it as a part of regular expression. Anywhere else all the characters that follows a ‘#’ in a line are treated as comments or are ignored by the Procmail while processing mails.

Then comes the action line. There can only be action line per recipe unless and until its not nested. Action line may be just a mail folder name or path (relative or absolute). Spam means that all the mails satisfying the regular expression in condition line will be delivered to the Spam mail folder.

The action lines can be nested as in the last recipe in the above image. Procmail can support any level of nesting but the nesting should be proper.

The action line may also be used to forward mails to some other email id. ‘!’ is used in starting of the line followed by the email id to forward the mail.

Now some tips about the first line in the recipe. ‘:0′ is must. But optional flags may be specified. The second ‘:’ asks Procmail to use a lock-file. The need of lock-file is because if your mail account is being swamped with a lot of mails. The Sendmail invokes one copy of Procmail per incoming mail. In that case if two or more Procmail processes try to write the same mail folder, there will be conflicts. So, using the second ‘:’ protect the same mail folder from being written by the two different Procmail processes.

Procmail processes .procmailrc in top-down fashion and stops whenever it finds a matching regular expression in any of the recipes. But you may make it work further buy using the flag ‘c’ as in last recipe. If flag ‘c’ is specified, it will create a carbon copy and give it to the both recipes.

I think thats enough. If you want to explore Procmail more, read man page ‘procmailrc’ and for example procmailrcs read ‘procmailex’ man page.

You can use my procmailrc if you are interested. Find it here.


How To: Configure Wireless with Ralink (rt2500) Level One WNC 0301 in Fedora 7

If you are searching for wireless lan configuration in Fedora Core 6, a detailed description is available here. Though Fedora 7 – Moonshine detect the Ralink rt2500 Level One WNC-0301 wireless lan card, the network doesn’t work properly with default drivers. You may be able to connect sometime, but some other time it may not function properly. Because ralink drivers are not yet stable. See the discussions here. So, here is a step by step complete reference to how to make it work properly.

Step 1: Download the latest CVS release of Ralink rt2500 drivers from here.

Step 2: Unload the kernel module for rt2500 drivers

[root@bordeaux kulbirsaini] rmmod rt2500pci [Enter]

Step 3: Go to the directory /lib/modules/2.6.21-1.3194.fc7/kernel/drivers/net/wireless/mac80211/rt2x00 and take backup of the current rt2500pci driver module.

[root@bordeaux rt2x00] mv rt2500pci.ko back.rt2500pci.ko [Enter]

Step 4: Untar the download driver tar ball and change to the directory ./rt2500-cvs-XXXXXXXXXX/Module/

[root@bordeaux Module] make [Enter]
[root@bordeaux Module] make install-fedora [Enter]

Step 5: Open /etc/modprobe.conf file and add a line

alias wlan0 rt2500

Save the file and load the rt2500 driver.

[root@bordeaux kulbirsaini] modprobe rt2500 [Enter]

Step 6: Go to the directory /etc/sysconfig/network-scripts/ and create a file named ifcfg-wmaster0. Copy the contents of ifcfg-wlan0 to the ifcfg-wmaster0. If you don’t have ifcfg-wlan0 file, then issue command ‘neat’ as root and add new wireless device with appropriate configurations and ifcfg-wlan0 will be created in the process.

Step 7: Activate the device, what else ???

PS1 : You can refer to my ifcfg-wlan0 and ifcfg-wmaster0 files.

PS2 : You can ask for more details on any issues in the any of the above steps.


How To: Install and Configure NVIDIA Drivers and Beryl

Well, finally I realized the power of my onboard graphics card … too lazy to realize even this (it took me a year to realize this obvious fact). I downloaded the latest nVidia drivers from here and also upgrade to the kernel-2.6.20-1.2944.fc6. You can get it from any site which provides rpms or you can install is using yum. Not to forget I did it on Fedora Core 6 – Zod. So, here goes the exact procedure.

Warning: Take a backup of your /etc/X11/xorg.conf file before experimenting with 3D desktop. It help in case of X server crashes.

1. Download the latest nVidia drivers from here.

2. Upgrade to kernel-2.6.20-1.2944.fc6

(a)Download rpms kernel-2.6.20-1.2944.fc6.i686.rpm and kernel-devel-2.6.20-1.2944.fc6.i686.rpm and install using

[root@zod saini] rpm -ivh kernel* [Enter]


[root@zod saini] yum install kernel-2.6.20-1.2944.fc6 [Enter]

3. Reboot and switch to the newly installed kernel.

4. Login as root and delete the temp file for xserver

[root@zod saini] rm -f /tmp/.X0.lock [Enter]

5. Install the nVidia drivers

[root@zod saini] bash --kernel-source-path=/usr/src/kernels/2.6.20-1.2944.fc6-i686/ [Enter]

A user interface(I don’t know what to call it, graphical user interface on command line) will appear, answer the basic questions and you are done.

6. run this command

[root@zod saini] nvidia-xconfig [Enter]

7. Open your /etc/X11/xorg.conf file in you favourite(Vim) editor and edit it as follows …

Add these lines to the “screen” section

Option     "AddARGBGLXVisuals" "True"
Option     "DisableGLXRootClipping" "True"

and Add this line to the “Device Section”

Option         "TripleBuffer" "true"

or you can use my xorg.conf with appropriate modifications.

8. Now install Beryl + emerald or compiz

(a) Get rpms from any site which supplies rpms for packages in fedora and install

[root@zod saini] rpm -ivh beryl-* emerald-* [Enter]


[root@zod saini]  rpm -ivh compiz-* [Enter]

(b) There is always a short cut

[root@zod saini]  yum install beryl* emerald* [Enter]


[root@zod saini]  yum install compiz* [Enter]

9. Now logout and login again and run command beryl-manager or compiz and you are done with installing beryl/compiz with latest nVidia drivers. Enjoy the 3D desktop.

10. If in the above process your X-server crashes, press Ctrl-Alt-F1 and login as root, replace your existing /etc/X11/xorg.conf file with the backup you took in the beginning and do startx.

I installed the above packages on Fedora Core 6, the Hardware is Nvidia Ge Force 6100 onboard.

Here are some screenshot of my 3D Desktop ( They can also be seen here ).


How To: Configure Wireless with Ralink (rt2500) Level One WNC-0301 in Fedora Core 6

Well … Yesterday I switched from Fedora Core 4 to Fedora Core 6. The main problem was the wireless lan. As I was using ndiswrapper for wlan in FC4, I tried compiling it for FC6. But FC6 doesn’t have build packages so it didn’t work out. Then I installed the kernel-devel packages from here. Now the build packages were not a problem. I installed ndiswrapper from here. Now while installing ndiswrapper it gave an error that your kernel is using 4k stack, while for windows driver you need to have a kernel with 16k stack. I googled and searched the 16k stack version for my kernel but didnt get one. I used to download 16k stack kernel from here. But 16k stack kernel is not yet out for FC6. So its almost impossible for me to get ndiswrapper to work if I dont want to mess up with the patched and all.

Then I thought of using the native drivers for rt2500 (Level One wnc-0301). I downloaded the drivers from here.
The step by step installation is here ….

Step 0

Install the kernel-devel package from the above specified site.

[root@localhost ~]# rpm -ivh kernel-devel-yourkernel.rpm

Step 1

Untar the drivers.

[root@localhost ~]# tar -xvzf rt2500-1.1.0-b4.tar.gz

Step 2

Change the directory to Module

[root@localhost ~]# cd rt2500-1.1.0-b4/Module/

Step 3

compile the modules

[root@localhost ~]# make

If this gives error like this

make[1]: Entering directory '/usr/src/kernels/2.6.18-1.2798.fc6-xen-i686'
CC [M]  /home2/Softwares/Drivers/rt2500-1.1.0-b4/Module/rtmp_main.o
In file included from /home2/Softwares/Drivers/rt2500-1.1.0-b4/Module/rtmp_main.c:50:
/home2/Softwares/Drivers/rt2500-1.1.0-b4/Module/rt_config.h:58:40: error: linux/config.h: No such file or directory
make[2]: *** [/home2/Softwares/Drivers/rt2500-1.1.0-b4/Module/rtmp_main.o] Error 1
make[1]: *** [_module_/home2/Softwares/Drivers/rt2500-1.1.0-b4/Module] Error 2
make[1]: Leaving directory '/usr/src/kernels/2.6.18-1.2798.fc6-xen-i686'
rt2500.ko failed to build!
make: *** [module] Error 1

Then open the file rt_config.h and comment the line #include<linux/config.h> and again compile by issuing make.
If you get a different error try to debug if you know c-programming a bit.
Step 4. [Do as root]
Install the module

[root@localhost ~]# make install-fedora

Step 5 [Do as root]

Configure the wlan card.

[root@localhost ~]# neat

Now select a new connection and wireless and the the Ralink driver. Thats it. Activate the wlan0.

Hope this help a bit.
More suggestions are welcome.

Edit : If you are looking for wireless configuration in Fedora 7, here is a reference.


How To: Configure Evolution

Well if you already know it, don’t waste your time. But if you don’t know just go through it. Today I started using evolution mail for viewing my mails at the students mail server. Its very attractive as you have vast variety of options for making contact list and its fast and easy way to have your mails at hand. Filters are provided with different specifications. You have your calendar to schedule your jobs and much more to explore. Following are the configuration steps.

1. Start evolution mail by clicking this icon Evolution Icon on you panel or in start menu go to internet and click Email or evolution mail or run command “evolution” from the terminal.

2. A window like this will appear

Evolution  Startup

Evolution Startup

click forward to have this …

Evolution Mail Account

Evolution Mail Account

after adding user click forward ….

Evolution Mail Account Preferences

Evolution Mail Account Preferences

choose imap as server type and fill other required information and click forward ….

Evolutoin Mail Server Preferences

Evolutoin Mail Server Preferences

fill information accordingly as it suits you and click forward …

Evolution Account Name

Evolution Account Name

name the account and click forward …

Evolution Finish

Evolution Finish

click apply and it will ask your password for the account give the password.

Now enjoy the facilities provided in the evolution mail browser.


How To: Configure Kopete Messenger

Kopete is one of the Instant Messengers available for linux and is an alternate for gaim for kde. Though the older versions were not good enough to use but the recent versions are just awesome with a good gui. Its very easy to use and it also goes to the system tray when you close it. You can logon on to yahoo, msn, google talk etc. in just one widnow, minimizing the memory usage bye the application. It asks to view or ignore whenever a new message comes from a user with you were not chatting already.


1. You have to get the latest kopete package from the sourceforge or kde official site.

Unzip the bz2 package with command…

[saini@localhost]# bunzip2 -d package.bz2

change directory to package and then issue these command

[saini@localhost]# ./configure
[saini@localhost]# make
[saini@localhost]# make check
[saini@localhost]# make install

These should not give any errors, make and make install normally takes 15-20 minutes on an average machine.

Now you are ready to use kopete if it gives any problem try to have a reboot because I faced some problem which rectified itself after a reboot.

2. Adding accounts

Now go to k-menu -> internet -> kopete and that it.

When kopete opens go to settings -$gt; configure…

Kopete Main

Kopete Accounts

Click new and select new

Kopete Choose IM Server

Select yahoo and add your account…

Kopete Yahoo Username Password
Go to account preferences and browse your photograph

Kopete Yahoo User Preferences
Just click next and finish and you are done with yahoo account.

Similar is for the MSN Messenger, No special settings.

If you want google talk also. Then you have to install some support for tls

Download the source package qca-tls-1.0.tar.bz2 from here.

If it gives no errors and got install without any errors. Then go to add account and select jabber in the add acount wizard menu and do as shown

Kopete Add Gmail User

and in connection tab do

Kopete Gmail Server Preferences

click next and finish and now you can connect to Google as well.

If you have further suggestion, please leave a comment.


How To: Configure Wireless with Ralink (RT2500) Level One WNC 0301 in Fedora Core 4

Yesterday after a lot of trials with Fedora Core 5 to activate my wireless LAN card, I switched to Fedora Core 4, which looked much more stable than FC5. Actually with FC5, I mainly faced problems with gui , my mouse which is Microsoft USB mouse and my wlan card which is level one Ralink RT2500. In FC5, I tried both with ndiswrapper and madwifi but nothing worked out for me. Also my mouse was not working well. I can click things but the pointer was not visible like microsoft gave me a invisible mouse or this microsoft mouse don’t want to work with Linux. After installing FC4, I felt very comfortable with guis and my mouse. They worked fine. But now there were two problems. One is that FC4 was not able to detect my soundcard and the wlan was not working again. Anyway soundcard is not a big problem, as it worked in FC5, I’ll make it work with some up-gradation or things like that. But the major problem is wlan. And here goes the methods which I tried to activate my wlan card.

Method 1. With rpms

I downloaded these rpms


from the site atrpms and tried installing them but they failed the dependency /boot/vmlinuz-2.6.16-1.2111_FC4 , then i tried to find this rpm everywhere on google , rpmfind etc …. but I could not find it. Then I installed it with –nodeps option and configured according to the data given here .
But in vain.

Method 2. With ndiswrapper using Microsoft Windows XP drivers

I downloaded the ndiswrapper-1.16 from sourceforge.
I untarred it and used these commands.

make uninstall
make install

Please don’t forget to the read the INSTALL and README files in the ndiswrapper-1.* directory. Then I inserted my LAN card driver cd for XP and copied the drivers directory which contains .inf and .sys files to my root directory. Then I used the commands .

ndiswrapper -i Rt2500.INF
ndiswrapper -l
modprobe ndiswrapper
iwconfig "wlan0" key open "wep 128 bit hex key" ESSID "IIIT WLAN"
dhclient wlan0

I ran all this command and I am very happy to say that wireless LAN did not work. :) Then I ran this command

touch /etc/sysconfig/network-scripts/ifcfg-wlan0

and then edited this file. I entered all the data suggested here except that second line I wrote


OK. Then i ran


and edited the properties of wlan device by double clicking it and gave the 26 letters wlan key there and activated the device and it worked 😀


How To: Troubleshoot SCP Command

Some times we face problems in transferring the data from one machine to other machine using scp. Actually the scp command is executed successfully but the data is not transferred. As the .bashrc and not the .bash_profile file of the system to which the data is being transferred is executed. If the .bashrc of the remote system contains any command or executable which output some data to the standard output then that command is executed and the output is flushed on the local machine and the scp command is terminated and data is not transferred.

For example if the remote machine has any ‘echo’ or ‘nfrm’ command in .bashrc file, the scp of the data will not be possible.
Also suppose the remote machine has a lines in .bashrc like this


where contains the data as below:-

echo "Kulbir Saini"

Then also the scp will not be possible.

So if you are facing such problems please try to remove such lines from your .bashrc file and scp the data you want.
Anyway you can keep those lines in your .bash_profile because it is not executed while transferring the data.

Please report any other cases in which scp is not possible.


How To: RSA Key Generation for Remote Host

Using RSA key of a remote machine you can authenticate for SSH for that machine without entering a password. Generating RSA key is very easy and simple. Follow the procedure below to generate keys for two machine. Machies: 1) mirage ( and students (

Step 1
use this command on mirage server

[kulbir@mirage ~] ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/
The key fingerprint is:
32:30:af:c6:0b:e2:c0:60:92:fd:62:da:37:32:f2:ce root@LocalHost

You should get the result as above and if it asks to overwrite something then overwrite it.

Step 2

[kulbir@mirage ~] scp ~/.ssh/ user@
user@''s password:

Now if the above operation was successful, then you can login from your mirage account to your students account without a password. Try it, and if it is successful then do the same for your students server. Now you don’t need type your password again and again to login from one server to the other.

If the above worked for you, then there is one more thing you can try out. Go to .ssh/ directory in your home directory and create a file named ‘config’. Now write in that file

host students
port 22
user kulbirsaini

and save the file. You have to specify the port on which SSH is listening. Save this file and now you can login by just typing

[kulbir@mirage ~] ssh students [Enter]

You can write whatever you want in place of ‘students’ in the file and then login typing ssh ‘word’ that you have written against the host in file.