LINUX alternative

From COSSAN Wiki
Jump to: navigation, search

How TO alternative

Introduction

It is possible for several programs fulfilling the same or similar functions to be installed on a single system at the same time. For example, many systems have several text editors installed at once.

This gives choice to the users of a system, allowing each to use a different editor, if desired, but makes it difficult for a program to make a good choice of editor to invoke if the user has not specified a particular preference.

In our example, we are going to create a link called editor, which will have a generic name of myeditor. This link and generic name are going to be associated with 3 text editors, namely gedit, kwrite and of course emacs. We will then switch the default editor between these 3 editors according to user preference. The steps to implement this scenario are less, but the concept is not that simple to understand.

Implementing Our Alternative

Assume you have a command for calling your favourite editor, stored in /usr/bin/editor and that you now want to offer 3 alternatives.

Issue the following commands :-

/usr/sbin/alternatives --install /usr/bin/editor myeditor /usr/bin/kwrite 90
/usr/sbin/alternatives --install /usr/bin/editor myeditor /usr/bin/gedit 90
/usr/sbin/alternatives --install /usr/bin/editor myeditor /usr/bin/emacs 90

The first command installs a link editor under /etc/alternatives directory, links it to a generic name of myeditor, which in turn is linked to the kwrite application with a priority of 90. The next two commands do the same thing for gedit and emacs.

Now, Issue the following command

/usr/sbin/alternatives --config myeditor

Your output will be as follows :

There are 3 programs which provide 'myeditor'. Selection Command    
----------------------------------------------- 
*+ 1 /usr/bin/kwrite 
2 /usr/bin/gedit 
3 /usr/bin/emacs
Enter to keep the current selection[+], or type selection number:

The option with the + sign is the default application. As you see, the above command also expects you to specify another choice if you wish to. Now, we have successfully created our alternative and have associated it with the above 3 applications.

Test alternatives

Now, double click on the Home icon on your desktop. I am assuming that you are currently working on KDE. Right click on any text file and then select Open With -> Other. In the window that is displayed, type /etc/alternatives/myeditor in the Open With Text Box and then tick the checkbox at the bottom that says Remember Application Association for this type of file and then click on the OK button. That's it. As you see in the above output, kwrite is the default editor. That is, whenever you double click on a text file, it will be opened in kwrite. Run the previous command again

/usr/sbin/alternatives --config myeditor

You will get the following output. Just type 2 as the selection number and press enter :-

There are 3 programs which provide 'myeditor'. Selection Command  
----------------------------------------------- 
*+ 1 /usr/bin/kwrite 
2 /usr/bin/gedit 
3 /usr/bin/emacs 
Enter to keep the current selection[+], or type selection number: 2

Now, if you double click on any text file, it will open in gedit. Likewise, you can specify emacs as your default text editor


--Ep 10:55, 9 May 2007 (CEST)

See Also