Before I start, I would like to note
that this is not a spoon feeding article. I am not here to tell you
how to install Linux or teach you how to use it in a step-by-step
manner. This article is the collection of experiences I have gained in
my time using Linux. It is also to encourage you to try Linux and use it
in your everyday life.
Now, Linux is really just the minimal
subsystem (kernel) and may or may not be useful by itself depending on
your needs. It is possible to modify Linux so it runs on a special
hardware (e.g. router) which has a processor, some memory and a few
network connections. Linux can be perfectly used for gaming consoles
(e.g. the PS2). It is also possible to run applications on top of the
Linux base to create a full Desktop system. This is where Linux
Distributions come in. Taking a look at http://www.distrowatch.com you
will see that there are lot of different Linux Distributions. You
should know that there is a substantial difference between Linux and a
Distribution; however, the two names are used often interchangeably.
Hence, from here forth, when I say Linux, I really mean a Linux
Distribution.
Now you may say, "Hold on Reza, my
computer already comes with an OS and I'm perfectly happy with it. Why
should I bother with Linux?" Well, that is a good question. Perhaps
your PC is already running a version of Microsoft Windows or MacOS and
you are able to do everything you want to with it. I am not telling you
to ditch your current OS and switch to Linux. However, I am telling you
that there are other choices available. Maybe you are tired or bored of
your current OS. Maybe your current OS doesn't offer you all the
freedom that you would like to have. Perhaps your OS has trouble
running on your PC or is just sluggish on that 200Mhz Pentium.
Finally, you may have heard a lot about Linux and you are curious to
try it, but you are not sure about it yet.
Linux is a stable, efficient, and
extremely flexible OS. Its great flexibility brings with itself a lot
of complexity; everything in Linux is configurable. While this is
great for power users, new users are easily frustrated by having to
configure every application before they can use it. In a sense, not
everybody has the time and patience to configure every aspect of their
OS--that's why distributions (distros) have been made, where
everything is already preset for users. With so many different
distros, it is easy to find one that you feel most comfortable with.
Once you are comfortable using Linux, you can take that distro and
modify it to your needs and wants.
Recently some retail stores are
selling PCs pre-installed with one of the more popular and easy to use
Linux distributions (e.g. Mandrake) and once you take home one of
these babies, some of you might wonder how to use it, specially if you
come from MacOS or Windows worlds.
Another important factor why you may
want to try Linux is that it is free. Yes, free as in you do not pay
for it. This is great for students, home users and businesses as they
can save a lot of money by not having to buy Linux or pay license fees
for it. However, before you decide to run off and switch all your
office network into Linux stations, you should consider that there are
still other expenses, such as maintenance and time investment on
learning a new desktop environment. Linux is not just about free (as
in free beer) software, but also about free speech (more on that
later).
Finally, if you are a computer
enthusiast or in the computer industry, knowing Linux is a must. Not
just because it makes you look more intelligent, but also because chicks
dig Linux nerds. Seriously, though, learning Linux by using it will
help you understand computers in any related field, be it software or
hardware.
If you have looked around the web, you
may have noticed that Linux has a penguin mascot. After some search on
the web I found the following explanation of the Linux penguin [5]:
The basic idea behind open source is
very simple: When programmers can read, redistribute, and modify the
source code for a piece of software, the software evolves. People
improve it, people adapt it, people fix bugs. And this can happen at a
speed that, if one is used to the slow pace of conventional software
development, seems astonishing.
'Free software' is a matter of
liberty, not price. To understand the concept, you should think of
'free' as in 'free speech' not as in 'free beer.' Free software is a
matter of the users' freedom to run, copy, distribute, study, change and
improve the software. More precisely, it refers to four kinds of
freedom, for the users of the software:
A program is free software if users
have all of these freedoms. Thus, you should be free to redistribute
copies, either with or without modifications, either gratis or charging
a fee for distribution, to anyone anywhere. Being free to do these
things means (among other things) that you do not have to ask or pay for
permission.
When talking about free software, it
is best to avoid using terms like 'give away' or 'for free', because
those terms imply that the issue is about price, not freedom.
So what do you need to get your hands
wet with Linux? First, time, patience and a strong will to learn.
Remember, good things come to those who wait. Don't expect to become a guru in 6 months. Linux is just so much more
complex than either Windows or MacOS. But don't be scared, the force
will be with you. Knowing this, you will need a Linux Distribution. Now,
I could write pages and pages why one distro is better than the other.
In fact, books can be written on each distro. Linux distros are like
ice-cream; while all are almost the same thing, each is unique in its
own way. You really have to taste each and find the one you are most
comfortable with. Take a look at http://www.distrowatch.com.
There are some major distros and some minor releases. The major
releases have the benefit of supporting a wider range of hardware
devices. Of the major releases, RedHat is good for business users,
specially that they have great business solutions in addition to their
RedHat distro. However, RedHat does not contain a lot of configuration
tools, making it not very newbie friendly. Mandrake and Suse are
great for beginners, as they include a lot of utilities that allow you
to change options with point and clicks and stay away from
configuration files. Both distros perform great in business
environments as well. Debian is for the power user; however, it has a
very advanced and easy-to-use software package management system. If
you ask my opinion, I'd say start with Mandrake and then move to Debian
once you have enough experience with Linux. I myself have been toying
with Linux for almost 2 years, getting to use it seriously only for the
past 8 months or so. I started with RedHat and had to suffer through
setting a lot of things by hand. Eventually I installed Mandrake.
In terms of hardware, anything from
486 would work, but if you are new to Linux, I would recommend more
recent hardware as it is better supported and will have less havoc on
the way. If you really want to take advantage of all the eye-candy that
Linux graphics systems offer, then a PIII with 512MB ram is
recommended. While I have been running just fine with a 3GB hard drive,
to really enjoy Linux, at least a 6GB drive is recommended. Use a
7200rpm drive if you have one available as it will make Linux much
faster. If you have an nVidia video card, you are in luck for you will
have full hardware acceleration using the nVidia drivers. Most other
cards are supported via XFree86, which is the piece of software that
gives you X, the application which displays the GUI system. Most Sound
Blaster compatible cards are also supported. USB 1.1, parallel and
serial connection are all supported. If you have Internet keyboards
(with those fancy buttons for Back, Forward, Mail, etc.) then you may
get them to work after installation. Most printers are also
supported, but scanner support is still flaky. There is a generic
driver set, but somebody must have already written specific drivers
for the scanner if you would like to use it. If you have a good brand
scanner (Cannon, Epson, HP) then your scanner is more likely supported
than names like Plustek (my 7 year old 300dpi scanner).
There is one little issue with
winmodems. Most brand name computers come with winmodems. If you
custom built your PC and the modem was very cheap, then it is most
likely a winmodem. Winmodems have a simple circuitry and do not have a
controller of their own and use the computer resources to function.
While this is not good for older systems--as they need every CPU cycle
they can use--newer systems have minimal impact from winmodems. Now,
since winmodems need to access the computer resources, they need
specific operating system drivers in order to function properly. There
has been substantial work to get these winmodems to work under Linux
and http://www.linmodems.org
is the place to visit if your distro does not already come with proper
drivers for your winmodem (oh the irony: you need Internet access to
download drivers for the winmodem). I would recommend a hardware modem
if you are still using dial-up for Internet access.
As long as we are talking about
Windows dependent hardware, let me say that nowadays a lot of
manufacturers make cheap hardware by removing their controllers, making
them dependent on the operating system and computer resources to
perform their tasks. One example is the number of cheap laser printers
showing up in the market. If the box says Windows only, I do not
recommend it. This is not because I have anything against Windows, but
because such a product will steal all your RAM and CPU resources to
function. I have seen such products from Brother (1000, 1200 models)
and HP (Lj1000).
Finally, a three button mouse is
highly recommended. If you do not have one, you can set it to emulate
three buttons when you press both left and right buttons.
There are a lot of articles on the web
on how to install Linux. My word of advice, if you have no previous
experience, make sure you have at least one day to spend on
installation. The installation process takes between 10 to 30 minutes
depending on your system and amount of packages you decide to install,
but the new user will need to take more time to make correct decisions
for each option. Get acquainted to the installer and read through the
help guides and install manuals [mandrakelinux.com]. It's not that
installing Linux is hard, it's just different. If you think it is just a
matter of clicking Next/Ok/Yes, then you are in for a shock. Yes, some
distros may be installed like this. However, Linux gives you choices
from the start and you better take advantage of that. You can select how
many software packages you would like to have installed with your OS
(be aware, going through each package one-by-one may take a few hours
as there are usually more than 1000 packages available, but you can
select groups of packages). You can select to install some peripheral
drivers, like printers, during installation as well. In new distros,
you can even download software updates during installation. I'll try to
give out some of the tips and pointers I wish I knew the first time I
was installing Linux. I learned them, the hard way (i.e. erasing my
Windows partition by mistake).
You may have become confused here. So
I'll explain a bit about the Linux file hierarchy. Like Windows and
MacOS, Linux has folders and files. Actually, in the Linux filesystem,
everything is a file. Even your hardware components are a bunch of files
(look in /dev directory). So your
hard drive is a file called hda or something similar to that
(IDE drives, look in help files for SCSI drives). In order to use the
drive, you 'mount' it (look in /mnt
directory). From here on, you let Linux take care of using the drive.
Now, folders residing on different drives can be mounted on the same
filesystem. Actually, they don't even need to be the same filesystem.
Linux will happily interact with FAT32 and NTFS partitions. Imagine,
your /homedirectory is on a FAT32
drive while /tmp is NTFS /var is ext2 (Linux Extended Filesystem).
More confused? Let's take a look at an image [3]:
Here you see two, a
master (hda) and a slave (hdb), drives on the primary IDE connection.
hdb is divided into 3 partitions, /, /home and the Swap partition. You don't have
to put the Swap partition on the same drive. Your /home partition does not need to be
Journalized FS, it can be FAT as well. clear? Not yet? Some
graphical installations have a Wizard or auto allocate button. Don't
just close your eyes and press it hoping for a correct result, but they
usually pick out good partitions for you.
Now, in the above picture
you see three Linux filesystems. Swap is for the swap partition.
Ext2 is the original Linux filesystem (remember, Linux supported the
Minix filesystem, but that was very limited, so they extended it and
called it Extended File System, then it was updated to Ext2), but it
has been improved so it can recover from computer crashes more
gracefully. The Journalized filesystems (ReiserFS, Ext3) are a bit
slower, but much more secure than Ext2 filesystem. There are some
articles comparing ReiserFS and Ext3, in short, Ext3 stores more metadata
(data about data) and is more secure, yet slower than ReiserFS. I
have no preference, either of them are fine.
Partitioning your drive is by far the
most complex task in installing Linux. However, once you know what you
need to do, it only takes 30 seconds to setup.
Moving on, before installation is
complete, you need to create some users for your computer. Now, Linux is
quite different from your MacOS (9 or below) or Windows (Me or below) as
it is a true multi-user OS. Linux needs at least 2 users; one root and
one normal user. The root user is the all mighty powerful god mode
user. Root user is for administration and configuration of the system.
You should be very (I mean very) careful when
you are in root mode. Running applications in root mode is also
dangerous. The normal user is really a weakling compared to the root
user and chances that a user ruins a complete installation is pretty
slim.
Finally, if you are given the chance
of creating a rescue (boot) disk, please do so as it will become handy
later on.
Before I go on telling you all about
the wonderful GUIs that are available for Linux, I need to explain how
graphics work on Linux. X is the application that provides graphics in
Linux. X is a client-server application. This means there is a X client
running which provides graphics data. The X server interprets those
data into actual graphics. Designing X in this way gives great
advantages: The server does not necessarily need to run on the same
machine, or even platform as the client. The server can be on a remote
location, a Windows or MacOS or even a web browser plug-in (check
out this article [linuxworld.com] for more detailed
description of X). In order to draw the widgets (text boxes,
buttons, scroll bars, etc...) developers have access to a few
toolkits; QT, GTK and TCL/TK to name a few. Finally, a window
manager is used to handle the windows placement and widgets. There
are a wide variety of window managers; KDE, Gnome, IceWM,
Enlightenment, Window Maker, Fvwm, and Fluxbox to name a few. Some of
these window managers are written with some of the toolkits
available, so they integrate better with their applications. For
example, KDE is written using the QT toolkit and Gnome is written the
GTK library. The beauty of all of this is that you can mix and match:
run Konqueror (QT application) on Gnome (GTK library) or run Galeon
(GTK library) on IceWM (written in C++). The downside is that
applications written with one library do not necessarily interact
nicely with applications written using other libraries.
While you generally do not have a
choice on which X application to run (there are a few commercial ones
as well as Xfree86), nor do you get to choose your widget library
(unless you are a developer), you get to choose which window manager to
run. From here on, I will let you play around with different window
managers yourself until you find one that you like most:
KDE uses the QT library and even comes
with an Integrated Development Environment (IDE, similar to Visual
Studio). KDE will give you the most Windows like environment, making
transition from a Windows Desktop very easy. There are also a large
number of themes and icons available for it. Just take a look at http://www.kde-look.org
to see for yourself. The downside is that it is fairly resource hungry
and will bring even a mediocre machine (Duron 750, 256DDR) to its
knees specially after a couple hours of use.
Gnome uses the GTK library and is
slightly less resource hogging than KDE. Still, a high-end system
will make using Gnome much more enjoyable. I recently upgraded to
512DDR memory and now Gnome runs smoothly on my Duron 750 system. Themes
for Gnome can be obtained from http://themes.freshmeat.net (as well as other
window managers).
Both KDE and Gnome are fairly
configurable and come with configuration programs. One can spend ours
just setting the large number of options each window manager provides. I
would recommend you to leave that for later as the default settings are
fairly usable.
These window managers are less
advanced than either KDE or Gnome, yet they are lighting fast and
have small memory footprint. Out of these, IceWM is the most Windows
like window manager with the Start menu and taskbar. These window
managers also have different themes available for them. One of the
beauties of these skinable window managers is that creating your own
theme and look just requires some artistry and knowing where to copy
the files (mostly in a /themes directory). While Fluxbox and Blackbox
(essentially the same window managers, but Blackbox is not being
developed anymore and is replaced by Fluxbox) have a minimal theme
which is just perfect for remotely accessing your computer.
This screenshot shows IceWM running
many applications. I made the theme myself. You may be wondering
where the Close, Minimize and Maximize buttons are. When the mouse
enters a window, the buttons appear on the top right corner. As you can
see I like minimalist themes where the window manager stays out of way
and let me concentrate on my work.
So many windows. From top left
going clockwise, the gimp, gtop, ghostview, gnome-terminal,
gqview, Acrobat Reader, lyx, galeon, konqueror, OpenOffice.org, and
in the center, mozilla composer
Keyboard & Mouse
On Windows or MacOS, most users are
used to a set of keyboard and mouse shortcuts which makes them more
productive in their everyday use. Linux has similar accessibility
options, but they may not necessary be the same as the other
operating systems.
Perhaps the most useful shortcut is
the middle mouse button on your mouse. In Linux, highlighting a piece of
text is equivalent to copying it. So you don't need to highlight and
then CTRL-C the text. In order to paste that highlighted text, simply
middle click where you would like the text be pasted. The left, right
and mouse wheel on the mouse act very similar to Windows environment.
Try them out on different window managers.
There are a few important keyboard
shortcuts you might want to remember:
| CTRL-ALT-Backspace |
Restart the X
server |
| CTRL-ALT-KEYPAD+ |
Go up a screen
resolution |
| CTRL-ALT-KEYPAD- |
Go down a screen
resolution |
| CTRL-ALT-F1 |
Switch to first
virtual console |
| CTRL-ALT-F7 |
Switch to first GUI |
| CTRL-ALT-F8 |
Switch to second
GUI |
| CTRL-ALT-Delete |
This combination
does not work on all window managers, on some, it brings up a
menu |
You perhaps won't need to use the
CTRL-ALT-F1/F7/F8 combination for a while. However, if you do need a
situation where you need text mode only (say, you managed to ruin
your mouse configuration and you can't get to a terminal to run the
mouse configuration utility) then these will come handy. Once finished,
CTRL-ALT-F7 will get you back to the GUI.
Basic Command Line
Since you are going to need to know
how to use the command line at some point, here is a very basic
reference table. In order to try them, open a terminal and type them
in the shell and see the results.
| Command |
Description |
| pwd |
find out what the current
directory is. In Linux, everything is relative to the root '/'
directory. |
| ls |
list files in current
directory. ls -la will list all files line by line. |
| cd <directory name> |
change current directory to
<directory name>, use '.' for current
directory and '..' for the parent directory |
| mkdir <directory name> |
make a new directory with name <directory
name> |
| rm <filename> |
remove file <filename>
(does not remove directories) |
| rm -r <directory name> |
recurse into directory <directory
name> and remove all files |
| rmdir <directory name> |
remove a directory <directory name> |
mv/cp
<name> <to>
|
move/copy
directory or file <name> to <to>.
|
mv
<oldname> <newname>
|
rename file or
folder <oldname> to <newname>
|
| su <username> |
substitute current user with <username>,
leave <username> blank for root user. |
| whoami |
find out who are you logged in
as |
| ./<executable> |
run file <executable> |
| chmod +x <name> |
make <name>
executable for current user, use '-' instead of '+'
to have reverse effect. To allow directory browsing, they
must be exec. |
| chmod +r <name>/chmod +w <name> |
make <name>
readable/writeable for current user (use '-' instead
of '+' to have reverse effect) |
| chown <user> <name> |
change ownership of file
or folder <name> to user <user> |
| man <command> |
get the manual for command or
program <command>. Use -k option to search for
keyword |
| tar xvfz <filename.tar.gz> |
decompress a gzipped tar (tape
archive). |
| tar cvfz <filename.tar.gz> <folder> |
gzip and tar all files in
folder <folder> and save the file as <filename.tar.gz> |
| <TAB> |
pressing tab after typing a few
character of a word will either complete the word if it is
unique or give you a list of words with same prefix. |
| ./configure ; make |
process to compile a source. If
configure is successful, the code is compiled. |
| make install |
after compilation is complete, make
install will install the program. You must be root to do
this. |
This is definitely not a complete guide, however, you can easily find
many
command line guides and references on the web.
Fonts
After playing around with Linux and
the different window managers, you may notice something ugly; your
fonts. There are very few of them and some just look horrible. Well,
this is because TrueType fonts (specially those
found in Windows [microsoft.com]) are not installed by default
because of licensing and copyright restrictions. TrueType fonts were
originally developed by Apple computers, and aimed to address some of
the limitations of Adobe's Type1 as well as to include some new
displaying techniques. Microsoft, which had also been looking for a
font format for its Windows OS, licensed this technology from Apple
and continued improving it [4].
You will need to download and install
the TrueType fonts manually. If you are using Mandrake, simply run
drakfont in root mode, and if you are dual booting, simply select
'install fonts', otherwise, you need to download them from
http://keithp.com/~keithp/truetype.tar.gz and decompress them into a
directory and point drakfont to that directory. If you are using any
other distro, check out
http://home.c2i.net/dark/linux.html#ttf or
http://linux.org.mt/article/ttfonts for further instructions how to
install the TrueType fonts.
Once you have the TrueType fonts
installed you will notice that some of them they are still very ugly.
Again, because of license restrictions, the bytecode interpreter which
is responsible for rendering the fonts nicely is disabled. To enable
them, visit
http://elektron.its.tudelft.nl/~rbos36/mdkfreetype2.html and make
sure you read all of it.
Finally, if you have an LCD, you may
want to enable
cleartype [microsoft.com] or sub-pixel [grc.com] rendering.
Visit
http://jmason.org/howto/subpixel.html for more information.
Personally I find that process makes my fonts too blurry and I have
disabled them.

Office Productivity
Once all the installation hassle has
been put away, let's put Linux to some use. I will start with office
productivity. While there are already a few different office
productivity packages, what would be most important to you is
compatibility with Microsoft Office as it is the dominant Office package
in the market. In my use of different office packages, I found OpenOffice.org
[openoffice.org] not only very sophisticated and complete, but also most
compatible with Microsoft Office documents. Another very good Office
package is KOffice which is still in development and is not as mature
as OpenOffice.org. Lastly, lyx is the one and only professional
desktop publishing software you will find on Linux. Lyx approaches
desktop publishing from a different angle. It is WYSIWYM rather than
WYSIWYG (What You See Is What You Mean rather than What You See Is What
You Get).
OpenOffice.org
When installing OpenOffice.org on
Linux, remember to use the -net option (./setup -net) which
will install OpenOffice.org in a common location. Then, for each user
go to where you installed OpenOffice.org and run setup again (this time
just ./setup). This will install the required components
(about 10MB) on your home directory and you are ready to use it.
Finally, use spadmin (where you installed OpenOffice.org in
your home directory) to add your TrueType fonts which you downloaded
earlier to OpenOffice.org. Fonts are a bit shaky in OpenOffice.org.
While some show even with anti-aliasing, other fonts (like Times New
Roman) are truly ugly. I am not sure if there is a fix for it, but I
tried a few things unsuccessfully. Once of great features of
OpenOffice.org is its complete help system. Each section is explained
well with screenshots on how to perform a task.
OpenOffice.org: Writer
I have been using OpenOffice.org for
about 6 months now, and my coworkers always send me their documents in
Microsoft Word .doc format. I have always been able to open these file
(albeit they have simple formatting) and edit them and save then back
as .doc file. None of my coworkers have actually noticed anything
different, so MS Word compatibility is fairly good, although I have had
crashes with very complex formatted files. There are some
cut-and-pasting problems from and to other applications so I usually
copy my text into Emacs (no formatting) and paste it into Writer.
On a side note, because of the
different toolkits Linux application developers can use to create
widgets, there are a lot of problems with cut-and-pasting between
Linux applications. Still, there has been much improvement as developers
are trying to achieve a standard.
OpenOffice.org Writer editing a
Microsoft Word XP document
OpenOffice.org:
Spreadsheet
While the Windows version of
OpenOffice.org has all sorts of cool names for the different
applications in OpenOffice.org, I couldn't find any names on Linux.
Opening OpenOffice.org will start Writer and from there you can start
the other applications. I don't use spreadsheet applications a whole
lot myself, so my interaction with OpenOffice.org spreadsheet was
almost nill. On the other hand I have been developing an accounting
software using excel for a few restaurants for a couple years now. I
decided to test OpenOffice.org spreadsheet by inputting some data,
making some tables, formulas and macros and finally opening a fairly
complex Excel document with macros and buttons.
If you have used Excel, you will find
OpenOffice.org spreadsheet very similar. There is a large collection
of built-in functions for accounting purposes. Creating a new chart is
definitely easier than Excel. I could never get the rows and columns
correct in Excel, but the wizard in OpenOffice.org spreadsheet easily
let me identify where each data should go and provided me with a
complete preview. Thanks to tight integration with other components of
OpenOffice.org, once you have created a drawing in spreadsheet, you
can apply all sorts of effects and formats to it. In fact, you can
add drawing and formulas and even Java applets within your spreadsheet
document. While playing around with spreadsheet I noticed a whole gob
of features for data handling. For example the DataPilot allows you
to easily specify your data from within spreadsheet or other external
data source and then visually define where in the table each data
should go. There are a lot of other features which are beyond the
scope of this article, so I let you ponder at them for yourself.
OpenOffice.org spreadsheet: On
left, a complex Excel document with buttons (not shown) and macros. On
right, a simple data table with a chart.
OpenOffice.org:
Presentation
Open up OpenOffice.org presentation
and you are given a choice creating a blank presentation or choose
from a list of templates. However, you won't find any built-in
templates. They are available in the Sun's StartOffice which is the
commercial version of OpenOffice.org (same code, more features). Still,
creating a new slides is fairly easy as OpenOffice.org gives allows you
to visually select the kind of slides you would like to create:
OpenOffice.org Presentation:
Selecting a slide layout
Because of the way
OpenOffice.org components are integrated into each other, it is very
easy to create a presentation with graphics, charts and spreadsheet
components. But how well does Presentation handle Microsoft PowerPoint
documents? Almost very good. I imported a few PowerPoint presentations,
out of them, 1 crashed OpenOffice.org while the other two worked fairly
well with some fonts problems:
OpenOffice.org Presentation
PowerPoint Import: Click on Image for a full view.
OpenOffice.org: Drawing
My favourite component of
OpenOffice.org is Drawing. I have never used any other office drawing
application which is as easy and intuitive as OpenOffice.org Drawing.
Creating shapes and connecting them together to create flowchart and
diagrams is an effortless task. What I appreciate is the many built-in
shapes and the many ways I can modify and enhance them.
OpenOffice.org: Creating diagrams
with embedded spreadsheet
Other Office Programs
KOffice
KOffice is integrated into KDE and
consist of the following packages: KWord, KSpread, KPresenter, Kivio,
Kugar and KChart. KWord is not as mature and complete as OpenOffice.org.
By the time I was writing this section of the article, KOffice 1.2-beta2
has been released which has a lot of improvements over the version that
comes with Mandrake 8.2. However, I haven't managed to download and
install it yet. I have become too attached to OpenOffice.org, to the
point that I don't see the need of having KOffice installed on my
machine.
KWord is your average word processor
which support MS Word files as well. I have had less luck getting to
open complicated Office documents with KWord. If you don't need MS
Office compatibility, then KWord is a great word processor. Kivio is
similar to MS Visio. It is good for producing diagrams and flowcharts.
However, the Kivio that is shipped with KOffice has only a few shapes
built-in. Additional stencils (template shapes) are not free and you
have to purchase them from theKompany.com.
The following screenshots present the
different components of KOffice:
KOffice Workspace
KWord
KSpread
KPresent
Kivio
To compensate for the lack of stencils
in Kivio, you can use Dia to create fairly complex diagrams.
Dia
Dia is a great diagram drawing
program. It already comes with quite a few shapes built into it. It is
also possible to download plug-ins for it. It looks and behaves a lot
like GIMP, so if you have learned GIMP, then creating diagrams in Dia is
a breeze. Here is an example:

LaTeX and Lyx
Now for something completely
different. When you are creating a professional letter how much time
do you concentrate on how the document looks and how much time do you
spend on the content? While a document should look professional and
good, its content should be your priority, specially if you are dealing
with scientific or technical material. For this, a whole set of other
applications have been made. LaTeX is a document preparation system for
high-quality typesetting. It is most often used for medium-to-large
technical or scientific documents, but it can be used for almost any
form of publishing. According to the LaTeX Project website [6], LaTeX is not
a word processor! Instead, LaTeX encourages authors not to
worry too much about the appearance of their documents, but to
concentrate on getting the right content. How is this done? Rather
than telling the program how to display your text, you give the
program hints on what you are writing and according to that, the
application automatically selects the correct and best looking
formatting for you.
LaTeX contains features for:
- Typesetting journal articles,
technical reports, books, and slide presentations.
- Control over large documents
containing sectioning, cross-references, tables and figures.
- Typesetting of complex mathematical
formulae.
- Automatic generation of
bibliographies and indexes.
- Multi-lingual typesetting.
- Inclusion of artwork.
- Using PostScript or Metafont
fonts.
Great you say, where is this awesome
software and why is it not so popular? Well, LaTeX is a typesetting
Language, to create something like:
Cartesian closed categories
and the price of eggs
Jane Doe
September 1994
Hello world! |
You have to write this, latex the document processor that you are
writing an article with title 'Cartesian...', the author is 'Jane Doe',
it is written on 'Sep...' and then the document:
\documentclass{article}
\title{Cartesian closed categories and the price of eggs}
\author{Jane Doe}
\date{September 1994}
\begin{document}
\maketitle
Hello world!
\end{document} |
Ouch you say, this is harsh. I agree
and trust me, writing your school project like this is no fun. Enter
lyx, a WYSIWYM (What You See Is What You Mean) document processor. Lyx
is really a LaTeX processor with a GUI front-end. Let's take a look at
it:
This is my research project written
entirely in lyx? This may look ugly here, but once you have created
your document you can tell lyx to export it to HTML, Postscript or PDF
format:
Nice, eh? That's not even half of it.
Lyx allows you to create indices, bibliographies, footnotes, table of
contents and other fancy stuff so easily that it makes writing projects
actually fun (in a sick way, of course). Table of contents is created
automatically as you create sections and subsections and is updated as
the page numbers change. To insert a footnote, you simply create a
footnote beside the word you would like explained and put your text
in it. The footnote is, again, magically created when you export the
document. To create a bibliography, you create each citation at the
bottom of page first. Then, when you are writing the article, you
simply insert a cross-reference from a selection box. For example, if
you take a look at the previous screenshot of lyx, you see
in the middle of the text. Now
take a look at the output in the image above, you see a [2]. Let's see
the Reference section of the document:
As you can see, I did not have to
think which number the reference was, lyx automatically took care
of it for me. If you export the document in HTML, lyx also links
footnotes and citations to the actual text. Lastly, creating those
complex mathematical formulas is very easy using the math panel:
There is one limitation to lyx. It
does not have all the features of LaTeX built in the GUI. While
the document processor understands them, you may not find a
function or character in the GUI. However, lyx is great for everyday
use, for those special characters one can always use a cheat sheet [fi.uib.no].
HTML Editing
It is possible to export HTML
documents from OpenOffice.org or lyx, and while the selection is not
as much as that of the Windows counterpart, there are some good HTML
editing applications on Linux. Unfortunately you won't find any
sophisticated WYSIWYG HTML editor similar to Dreamweaver or even
Microsoft FrontPage available natively for Linux. Mozilla composer is
by far the most easy to use graphical editor, but it is pretty
primitive. I am writing this article completely in Mozilla Composer,
but then our website has a fairly advanced content management; all I
have to do is to tell the application where the HTML file is and it
automatically loads the rest (the menus, ads).
You may think not having advanced
WYSIWYG web development software is a disadvantage. This is true for
the beginner and learning user, however, intermediate and advanced web
developers prefer to edit the source. WYSIWYG applications do not
generally create clean code (take a look at the source from Microsoft
FrontPage) which causes browsers to choke when rendering. Scripting,
like JavaScript, Jscript and VBscript cannot be done in a graphical
user interface anyways. A pro web developer can use a simple text
editor to develop nice looking and advanced pages. While you could use
Emacs to develop your webpages, I recommend use Bluefish which eases
some of coding:
A little update: Once I finished the
article on Mozilla, I needed to take it apart and also add CSS
(Cascading Style Sheet) tags to it. I also found that mozilla does not
like <p> tags and hence I had to go through the whole article and
create them myself. I did most of this on Bluefish and Emacs.
Producing PDF or PostScript
documents
Once you created your document, you
might want to convert it to PDF so everybody else on any other
OS/platform can read it. PDF stands for Portable Document and can be
viewed with Adobe Acrobat or similar PDF reader software which is
available for virtually any OS and platform. PDF is really an evolution
from PostScript document format. While people on Linux and MacOS X can
easily view PostScript documents, Windows people will have to download
and install GhostScript PostScript Viewer. On the other hand, on
Linux, once you create a PostScript document, you can easily convert
it into PDF format using ps2pdf program (if it is not
installed, look on your distribution CD or download it).
Almost all program on Linux are
capable for producing PostScript output. Most of the times, you select
File -> Print and there you select 'Print to File' and give a name to
the file (e.g. output.ps) and hit Print. Once you have the PostScript
document, you can view it using either ghostview or kghostview. As an
example, I printed this article from Mozilla Composer:
Printing a file in PostScript
Here is the produced file in ghostview:
Viewing a PostScript file in
ghostview
And finally converted the file to PDF
using ps2pdf. I zoomed in the document in Adobe Acrobat reader so you
can see that the fonts stay intact:
The result in Adobe Acrobat
Another useful program is a2ps. A2ps
stands for Any To PostScript and converts documents from any format
(well, a lot of them) to PostScript and applies appropriate formatting
to it. By default a2ps sends the document to your printer (as it is
really a print utility), but you can easily redirect the output to a
file with the '-o' option:
Output of a2ps form source, click
on image for full view
It is also possible to change the
layout that a2ps produces. I personally find the default settings just
exactly what I need, so I haven't touched it. A note about a2ps: If you
have an HP Deskjet printer or OfficeJet All-in-One then you should edit /etc/a2ps-site.cfg
and set the output to Letterdj:
...
#################################################################
# 1) System dependent
parameters
#
#################################################################
# Default encoding
Options: --encoding=latin1
# Default medium
Options: --medium=Letterdj
#################################################################
# 2) Your
printers
#
#################################################################
...
|
As a last example, I fed the output of
ps2pdf from above into a2ps, now I have nice 2-page-in-1 PostScript or
PDF document:
2-page-in-1 using a2ps
Internet & Communication
E-mail
It is now time for for everyone's
favourite: E-mail. There are many different e-mail programs on Linux
and once again you really have to play around with all of them until
you find the one flavour you like. You can send an e-mail right from
the command line (mail), choose from many text based programs (pine,
mutt, etc...) or choose one of the many graphical applications (KMail,
Evolution, Mozilla Mail, Sylpheed). Sylpheed is the one e-mail client
that I found most useful, feature rich and easy to use. Well,
Evolution is also very nice, but it is resource hogging and I do not
have a lot of patient when checking my mail (did she write me?). With
every new release, Sylpheed is becoming more like Microsoft Outlook
Express. Setting a new account is as easy as setting your mail server,
e-mail, username and password and off you go. While Sylpheed
incorporates an addressbook (which is compatible with other addressbook
programs) and allows advanced filtering features, like filtering the
e-mail on the server so to save bandwidth, it is the only program I
have encountered that allows me to delete my messages from the server
after a certain number of days. I am a very mobile person and sometimes
I need to access my older e-mails remotely. Other e-mail programs
either do not delete the messages from the server, or they leave it
until the inbox becomes full and the sever stops accepting incoming
mail. Sylpheed allows users to specify after how many days the
messages from the server should be deleted. Sylpheed also has a
newsreader and newsposter built into it.
An interesting version of Sylpheed is
Sylpheed-claws. Sylpheed-claws is the bleeding edge of Sylpheed where
new features (like Spellchecker and PGP encryption currently) are
implemented and tested. You are free to download either version, however
while Sylpheed-claws has more features, it also may contain bugs.
Sylpheed has a familiar interface
and is loaded with features
Internet Browser
Until recently, the only decent Internet browser available to Linux was
Netscape 4 which wasn't decent at all. For its own time, Netscape 4 used
to be great browser. However, when it comes to new, feature rich
websites, it chokes and either takes a long time to render the page or
just crashes. Thank goodness there has been a lot of movement in the
Internet browser market for Linux. The recently released Mozilla 1.0 (or
even Mozilla 1.1a) is truly an evolution in web browsers, not only for
Linux, but also for all other platforms. Mozilla packs a large number of
nice features which are truly a must have nowadays. Tabbed browsing,
pop-up/pop-under ad blocker, HTML pipelining and 128-bit encryption are
a few significant features of Mozilla. Mozilla also has a very fast
rendering engine, called the Gecko. The downside of Mozilla? Resource
hungry. Specially the Mozilla GUI toolkit is slow even on a decent
machine (Athlon 1.4Ghz, 256DDR). Enter Galeon, a browser with all the
features of Mozilla, but with the GTK toolkit (Gnome). Galeon also has
additional features that make surfing the web much more enjoyable.
Galeon features smart bookmarks and history bookmarks which keeps
bookmarks of websites most visited. While the
Google Toolbar
[toolbar.google.com] is only available on Internet Explorer on Windows,
Galeon has a similar feature which allows easy web searches as well as
Dictionary and a few other website (like freshmeat and rpmfind)
searches. Galeon does not have the composer, e-mail, news and chat
programs that Mozilla has and hence it has a much smaller footprint
compared to Mozilla. Galeon even has a "quick start" feature which
allows a process to run and load Galeon in the background when you
login. This way, when you actually want to use it, Galeon pops up
quickly. Internet Explorer does the same hack (i.e. quick nasty fix)
which is why it always seems like IE loads very fast on Windows. Galeon
may still appear to be rather memory hungry, but that is the Gecko
engine to blame. Internet Explorer is very forgiving toward lazy
developers who make buggy websites, so it has less trouble showing all
kinds of pages. Nowadays, there are many badly coded websites on the web
and the developers of the Gecko engine had no choice but to make sure
those pages render properly. For that, the Gecko engine has many
routines which try to work their way around bugs which makes it just
bloated and resource hogging.
Mozilla 1.1a with the Orbit theme
Galeon has neat toolbar features
which allow easy Google or Dictionary searches
While Mozilla is a full featured
browser with e-mail and newsgroup clients and Galeon is a lean and
mean browser, Konqueror acts as a file manager and web browser
integrated together. You will notice that Konqueror behaves a lot like
Explorer in Windows. While you can browse your local or remote files,
browse compressed files, preview multimedia files, you can also open a
website right in konqueror. Konqueror uses its own HTML engine,
khtml, but there is also experimental support for Gecko. Konqueror
supports Netscape plug-ins, JavaScript and Java. One of nice features
of Konqueror is multiple window browsing. Konqueror also integrates
tools like Cervisia and diff which make developer's life easier.
Konqueror file browser, web
browser and terminal emulator all in one window.
Another browser worth mentioning is
the Opera browser. Opera features worth mentioning Opera is light, and
fast rendering engine, Netscape plug-ins support, tabbed browsing and
skinable interface. The free version of Opera is ad sponsored (an ad
runs on upper right corner of screen).
Opera browser
Instant Messaging and
Chat
The good news is that you won't be
missing your online friends if you use any of the above Instant
Messaging (IM) programs. The nice thing is that there are more than one
client from which you can choose to use, so are not stuck with MSN
Messenger, ICQ 20002, YMessenger or AIM. There are even some programs
which support multiple clients, you log in one and automatically you are
logged in all the others.
From left,
GnomeICU ICQ client, Yahoo! Messenger, Gnome AIM, and Everybuddy
universal messenger
There are a few applications available
for IRC (Internet Relay Chat). If you had read my article before, I had
recommended KVirc. However, some readers recommended a few other
programs and finally I had the time to sit and actually use each. Out of
the croud, I found xchat actually be the easiest of the clients. KVirc
is nice, but xchat has a more MIRC look and feel to it. BitchX, a
popular IRC client is also available on Linux.
Xchat IRC client
Xchat IRC client channels window
Xchat IRC client preferences
File Transfer
Perhaps you need to transfer some
files from office or school. On any OS or platform, you would need
some sort of file transfer program to do so. One of the more popular
applications is FTP (File Transport Protocol) which allows one to log
into another machine and transfer files between the two machine. Gftp
(Gnome FTP) has all the features and facilities one would need for file
transfers. It is easy to setup and also supports bookmarks for easy
access in the future:
gftp with the Gnome AquaX theme
Remote Access
I have already covered most of Linux
remote access abilities in this
article. For the impatient, you need to be running the OpenSSH
server and you need some sort of ssh client to log into your machine
through command line. TightVNC consists of a server and client which
allow you to visually access your machine from even a web browser.
Viruses, Worms, Hackers
and other Low Lifers
You may have wondered if a Linux box
can get infected with viruses and worms from e-mail and Internet.
Currently the answer is no. However, this does not mean Linux is
completely safe. For the virus to do any significant damage to your
system, it must have root access. Getting root access is not an easy
task as your passwords are encrypted almost one way and retrieving
them is fairly hard (well, not hard, but very time consuming) .
However, a virus may be able to exploit a vulnerability in an
application and gain root access. Still, it is possible for a virus to
wipe off your home directory (so regular backups are still a must).
Fortunately, there have been only a very few number of viruses written
for Linux, and even those were created purposely to demonstrate that
even Linux is still vulnerable to viruses as the worst sense of security
is a false sense of security.
Internet worms are generally scripts
that run a sequence of commands and execute certain applications.
Linux has very powerful scripting languages and it is also possible to
create Internet worms for Linux. However, the worm may be severely
limited if it does not gain root execution access. For a script to work,
somebody must run it. Outlook Express on Windows has become the source
of Internet worms as it has features which allow a script to run
itself without the user's permission. Fortunately, there aren't any
e-mail programs that allow this on Linux.
So, for now at least, you are fairly
well protected against viruses and worms, but what about hackers? A
hacker's sole purpose is to gain access to your machine and either
steal information from it, or perform illegal activity (e.g. hacking
important corporate or government computers) with it. After all, when
was the last time somebody broke forcefully into your house for a good
cause? You are most vulnerable to hackers if you are running servers
like web-servers, ftp-servers or even network servers (Samba,
OpenSSH). If you do run any of them, you should constantly check out
the website of the software vendor and look for security patches.
Thankfully, Linux does come with firewall software which can be
configured to stop illegal network activity. Major Linux distributions
already come with a standard firewall software which is easy to
setup. There are also a few firewall software projects under
development.
Multimedia
Graphics
So you have an artistic edge and want
to make some graphics on Linux, but there is no Adobe Photoshop. Don't
worry, GIMP (Gnome Image Manipulation Program) has got you covered. All
the graphics you see on this article has been captured or edited with
the GIMP. The windows manager themes I have made are also done in the
GIMP. While learning GIMP may be difficult for the beginner, if you
already know how to use Photoshop, you would quickly feel at home with
the GIMP.
Image editing using the GIMP
Those who have a large collection of
photos will really appreciate Gqview which performs pretty much like
ACDSee on Windows allowing you to browse thumbnails or create slideshows:
Browsing MyPictures folder with
Gqview skinned with another Gnome theme
Sound
If you have a Sound Blaster compatible
sound card, your distribution has already installed the drivers for
your sound card and you are ready to listen to your wonderful
collection of Britany Spears songs. Xmms (X Multimedia System) is the
equivalent Winamp you would find on Windows. Just like its Windows
counterpart, it has plug-in support. One of the more interesting of
these plug-ins is Xosd (X On Screen Display). Take a look for yourself:
Xmms with Xosd
Of course if you absolutely despise
the Xmms (Winamp) look, you can enable the k-jofol plug-in, importing
other skins for Xmms:
Xmms with the K-jofol skin
Grip is a CD player, CD audio ripper
(copies CD audio digitally to your computer), and audio compression
utility. It has CDDB feature which allows the CD track names be
grabbed from the Internet. Grip is in reality a front-end GUI to audio
management programs like cdparanoia and bladeenc. You can select to
either just rip the CD tracks or to encode them into mp3 or ogg
format. It is really the only application you would need to digitally
backup your CDs.
Grip
Grip ripping and encoding a CD
Video
Watching videos on Linux is no
different than watching them on either Windows or MacOS. However,
there are a few issues which may limit your video watching enjoyment.
Videos are compressed using a wide variety of codecs. DivX is an
example of a video codec. While some of these codecs are open to anybody
to use them, some other ones are propietary and you are not allowed
to use them without a license. Now, Microsoft and Apple have dealt
with a lot of these license issues and hence media players on these
machine have most of them included in them. This is why it seems like
Windows Media Player can play anything you throw at it.
Xine, AviPlay and X-Movie are a few of
the available video players on Linux. I personally prefer Xine as it is
easy to use and looks very good with themes. After loading Xine, you
will soon realize that you are limited to playing only avi and mpeg
movies. This is because of the license issues I noted above. It is
possible to download other Windows codecs. If you are using Mandrake,
you can get additional codecs for Xine from here [ftp.ibiblio.org].
Xine showing the Matrix (Image is
reduced in quality)
CD Burning
Once again, there are a few CD burning
programs with different interfaces, each unique in its own way, for
Linux. Most of these application are not easy to use by any sense. The
truth is that there are only a couple of CD burning programs available
for Linux, all of which work in command line only. The rest are
front-end GUIs to these programs, so it is just a matter of finding the
application that has the best graphical user interface. After trying
every single CD burning application, I found e-roaster to be the easiest
and most feature rich. E-roaster allows easy compilation of a music CD
from a combination of mp3s, waves or even ogg files. It also allows easy
burning of data CDs and ISOs. There is a disk copy feature, but I have
not used it yet. If you are using Mandrake 8.2, you will need to
upgrade e-roaster to the latest version as the one shipped with version
8.2 is horribly buggy.
Using e-roaster to burn a CD
File sharing
I am not a lot into file sharing. I am not here to give a lesson, but I
believe that people should be accredited for the work they do (unless
they voluntarily do not want to). I personally do not download mp3s,
however, I am always listening to music online through one of
shoutcast
[shoutcast.com] channels. To listen to a channel, simply download the
file and open it using Xmms. You can set your browser to open the file
using
/usr/bin/xmms (use
xmms -e with Galeon) command.
You will be able to tap into one or
more of the popular file sharing networks using the many different
clients available online. I do not have a lot of experience with these
programs, however I found two programs which seem to be easier to use
and provide the most features: Knapster and gtk-gnutella.
Knapster allows you to connect to a
Napster network and share your files with the people on that server.
There a lot of servers, but I had some trouble connecting to the larger
ones as they are busy.
File sharing via knapster.
Gtk-gnutella allows you to connect to
the Gnutella network. It is fairly simple to use and has some nice
filtering features:
Gtk-gnutella with its advanced
filtering feature.
Desktop management
File Manager
On Windows and MacOS users either use
Explorer or the Finder to manage your files and Desktop. On Linux, file
managers are not necessarily embedded into the the window manager
application and you are free to choose from a few available ones. The
downside is that there aren't really any full fledged high performance,
feature rich and easy to use file managers. Konqueror on KDE is the best
filemanager on Linux, but it is very slow, specially starting it up. I
am not sure why there hasn't been enough development in this area of
Linux, but personally, I find the command line the fastest and most
sophisticated file manager. By the time Konqueror has started up (even
if I'm on KDE, it's even slower if you are using another window manager)
I have performed the task I wanted to in command line. Nautilus is
another window manager and comes with the Gnome Desktop. Nautilus is
just as slow as Konqueror and yet it does not have all the advanced
features of it.
Nautilus filemanager
A very promising file manager is
Rox-filer. While currently it has still a clunky feel to it and the
icons look very ugly, its speed is just astonishing. A welcome feature
is directory pop-up; move a file over a folder and hold it for a short
time and Rox-filer will open that directory for you. This is similar to
MacOS file manager.
Rox-filer
Archiving
Archiving files on Linux is very
easily. You can pack a whole bunch of files together using tar (Tape
Archive). Let's take a look at some examples:
listing content of a directory
In order to create a tar file, you use
the tar c, to tell tar to verbose what it is using, you use tar
cv and to tell tar to create an archive with a specific name you
usr tar cvf <filename>:
Creating a tape archive
In order to compress the tape archive
using gzip, we simply call tar xvfz <filename>. Remember
that you need to specify which files you would like to include in the
archive. If a directory is included, the content of that directory are
also included. In order to decompress a gzipped tar file, simply call tar
xvfz <filename.tar.gz>.
There are also graphical archival
programs similar to Winzip on Linux. Ark can create tar, tar.gz,
tar.bz2, zip, xpi, lzh, rar and some other compressed archives:
Creating a zip archive with Ark
If you have a lot of CDs with a lot of
programs backed up on them, you know about the frustrations of having to
search those CDs for a specific program or file. One Either has to spend
the time and make a file listing for each CD and print it or go through
each CD one by one until the file is found. CD cataloging programs come
to rescue and they are available on every operating system. I have been
looking for a good CD cataloging program on Windows, but the only
decent one that has good cataloging features is not free. You will be
happy to know Linux has an excellent easy to use CD cataloging program
called GTKtalog:

Mother of all applications:
Emacs
In 5 years of using Unix and 2 years
of using Linux, I have seen many different applications for *nix. Yet,
there is one single application that has always been there for me. In
thick and thin, in up and down, in sleepless nights of coding, playing
tetris...
Emacs is your run of the mill file
editor. Emacs is actually a very simple text editor with advanced
plug-in capability. Emacs uses Lisp for its configuration management.
Lisp is an actual programming language (to be correct, it is a scripting
language. Lisp does not get compiled into an executable, but it is
interpreted as it is run). Now, there is a zillion different plug-ins
for Emacs making it the most powerful text editor on planet. A nice
feature of Emacs is that it works in text mode only as well as
graphics mode.
You might wonder why you would ever
need a text mode only editor? Imagine you are stuck in the middle of a
Sahara. The sun is shinning at 90 degrees on your head and there is no
sight of any life anywhere you look. The only thing you have is a
dumb text only terminal and a keyboard. Now, you want to edit the
source of that tetris game you have been working for such a long time,
or maybe even e-mail somebody to come and rescue you. Now, if you
didn't have Emacs, or if it didn't work in text mode only, you would
probably die alone in that Sahara. (We have had too many of these
discussions during those long sleepless kernel hacking nights in
school).
Emacs can be used for all your text editing uses, but keep in mind,
Emacs is not a word processor. Emacs supports virtually every single
programming language in the world. Here is a list of Emacs features that
I am aware of (and there is so many that I don't even know about):
- Multiple Document Interface (well,
buffers)
- Indent and syntax highlight a lot
of different files
- remotely browse directories and
open and edit files
- run command lines (shell)
- compare files
- Speedbar
- built-in games like tetris
- Lisp (Scheme) interpreter
- CVS
- E-mail and Newsgroup support
- Advanced search and replace
- Compiler and debugger interface
- Spell Checker
- Calendar
Because Emacs is so wonderful, it does
not use your generic normal keyboard shortcuts. This is why perhaps
Emacs is not for the beginning user. However, once you are starting to
sink into editing configuration files or source code editing, you will
find that Emacs has the answer to all your questions. Here is a short
list of Emacs shortcuts and tips:
| CTRL-x CTRL-f |
Open/Create a file |
| CTRL-x
CTRL-s |
Save file |
| CTRL-x CTRL-c |
Quit |
| CTRL-s |
Incremental search |
| CTRL-SHIFT-- |
Undo
(ctrl-shift-minus) |
| CTRL-a |
Jump to beginning
of line |
| CTRL-e |
Jump to end of line |
| CTRL-k |
Kill line from
cursor |
| CTRL-w |
Cut highlighted
region |
| SHIFT-INSERT |
Paste |
| Esc x |
Activate minibuffer |
| Esc % |
Search and replace |
| Esc g |
Goto a line |
The Emacs menu system is not quite perfect. While it is much more
complete on newer version, it still does not show all of Emacs features.
The best way to find if Emacs has a specific feature you want is to use
the minibuffer. Activate it by pressing Esc x. Then type a few
letters of what you want and hit Tab to let Emacs give you a list of
available keywords. If you want to change a setting and you are not
sure what variable it is, use descrive-variable and press enter
and then the variable. Again, hitting tab will give you a list of
available words. As an example, Emacs does not support wheel-mouse by
default. However, somebody has already written a plug-in and all you
have to do is enable it in Emacs:
First, describe-variable 'mouse'+ tab
gave me this:
|
Click on a
completion to select it.
In this buffer, type RET to select the completion near point.
Possible
completions are:
mouse-avoidance-mode
mouse-buffer-menu-maxlen
mouse-buffer-menu-mode-groups
mouse-buffer-menu-mode-mult
mouse-drag-overlay
mouse-last-region-beg
mouse-last-region-end
mouse-last-region-tick
mouse-leave-buffer-hook
mouse-position-function
mouse-region-delete-keys
mouse-save-then-kill-posn
mouse-scroll-delay
mouse-scroll-min-lines
mouse-secondary-click-count
mouse-secondary-overlay
mouse-secondary-start
mouse-selection-click-count
mouse-selection-click-count-buffer
mouse-wheel-down-button
mouse-wheel-follow-mouse
mouse-wheel-mode
mouse-wheel-mode-hook
mouse-wheel-scroll-amount
mouse-wheel-up-button
|
I narrowed it by typing
'mouse-wheel' + tab:
Click on a completion to
select it.
In this buffer, type RET to select the completion near point.
Possible completions are:
mouse-wheel-down-button
mouse-wheel-follow-mouse
mouse-wheel-mode
mouse-wheel-mode-hook
mouse-wheel-scroll-amount
mouse-wheel-up-button |
and finally
mouse-wheel-mode gave me this:
|
mouse-wheel-mode's value is
t
Documentation:
Non-nil if Mouse-Wheel mode is enabled. See the command
`mouse-wheel-mode' for a description of this minor-mode. Setting this
variable directly does not take effect; use either M-x customize
or the function `mouse-wheel-mode'.
You can customize this
variable.
Defined in `mwheel'.
|
From here, you can
either middle-click on customize or simply enable the minibuffer and
type mouse-wheel-mode and hit enter. Easy.
Of course, reading the Emacs manual helps a lot.
Here are some samples of Emacs features:
Links
Of course, without the help of the
Linux community, learning Linux will be much much harder than it is. The
following table is a list of links I have collected in the past 2 years
in some random order. If you would like to see a link added, e-mail me
at hr_pakdel@yahoo.ca with the
subject 'Linux Links' and the link and maybe even a description. I will
add it if I see it fit (i.e. I will evaluate the page):
Link
|
Description
|
http://home.c2i.net/dark/linux.html
http://www.linuxnewbie.org
|
Linux
for beginners, contains good guides
Linux for newbies, click on 'nhf' for guides
|
http://loll.sourceforge.net/linux/links
|
Loads
of Linux Links (the names says it all!)
|
http://www.tldp.org
|
The
Linux Documentation Project, a large collection of HOWTOs and
guides
|
http://www.dsl.org/cookbook
|
The
Linux Cookbook, Tips and Techniques for Everyday Use |
http://www.desktoplinux.com
|
News
and articles regarding Linux on the desktop. Their directory contains
many good links to guides |
http://www.linuxgazette.com
|
A
lot of useful intermediate to advanced guides |
http://www.gnu.org/fun/humor.html
|
Gnu
funnies section, developers' jokes
|
http://forums.itrc.hp.com/cm/FamilyHome/1,,118,00.html
|
HP
Linux support forum, ask all your questions here if you are
installing on an HP system
|
http://freshmeat.net
http://sal.kachinatech.com
http://home.xnet.com/~blatura/linapps.shtml
http://www.linuxapps.com
http://apps.kde.com
http://www.sweetcode.org
http://www.gnu.org/directory
|
Linux
Applications, themes and some articles
Scientific Applications on Linux
Linux Applications and Utilities Page
Linux Applications
KDE Applications
Interesting Applications
Free Software Directory
|
http://www.kde-look.org
http://themes.freshmeat.net
http://sunshineinabag.co.uk
http://jimmac.musichall.cz
http://tigert.gimp.org
|
KDE
related themes and icons
Freshmeat's themes section (all window managers)
Gnome themes (not complete, freshmeat has more themes)
Jimmac's page (Gnome themes and GIMP tutorials)
GIMP related stuff
|
http://lhd.zdnet.com
http://www.linuxprinting.org
|
Linux
Hardware Database
Go here if your printer is not supported with your current distro
|
http://www.ozetechnology.com
|
Some
tutorials and a list of useful applications
|
http://www.pclinuxonline.com
|
News
and very good downloads (Texstar's)
|
http://linux.box.sk
|
Links
to a lot of thing, mostly security related
|
http://www.linuxgames.com
http://happypenguin.org
|
Linux
Games
The Linux Game Tome
|
http://www.mandrakeuser.org
|
Mandrake
User Community, make sure you visit the DocSection
|
http://www.winehq.com
http://www.linuxgames.com/wine |
Wine
(Wine Is Not an Emulator) allows Windows programs to run on Linux
Windows Games that work under Wine |
http://www.osnews.com
|
OS
related news
|
http://www.penguinmagazine.com
|
Penguin
Magazine, old, but contains a few important intermediate to
advanced guides
|
Conclusion
What you just saw was just a small
collection of applications available on Linux. Is Linux ready for the
desktop? That is still a hard question to answer. Major distributions
like Mandrake and Suse have paved a lot of complexities that Linux has.
Still, as you did notice from beginning of this article, the initial
setup is still bumpy. Another problem that frustrates a lot of users
is the lack of coherency between Linux applications. Copying and
pasting does not work flawlessly between all applications.
Standardizing Linux GUIs will definitely help all Linux users.
My friends and family have no problem
using my Linux box as configured by me which is heavily tweaked. My
system is dual booted, but Windows only exist to satisfy my fraging
needs. There is a big delusion that using Linux is hard and will make
you incompatible with the rest of the world. I have been using Linux
seriously for almost a year and I'm still compatible with everybody
else. I wrote this article to show that using Linux is at least as
easy as Windows and MacOS.
I hope you have enjoyed the article
and it has encouraged you to at least try it out when you get a chance
to.
Reference*
[1]
http://ragib.hypermart.net/linux/
[2] Silberschatz, Galvin. Operating
System Concepts.
[3] http://www.mandrakelinux.com
[4]
http://linux.org.mt/article/ttfonts
[5] http://sjbaker.org/tux/index.html
[6] http://www.latex-project.org
[7] http://www.freeos.com/articles/3007
* This is by no means a properly
formatted Reference section. Please see this page [bialik.netaxis.qc.ca] for a proper style
of writing a Reference**.
** Yes, I am too lazy to format the
Reference section properly.
FAQ
Why is the installation
guide incomplete?
I could have written a Linux
installation guide, but then there are already so many of them on the
web. I definitely recommend a good book for Linux newbies. I'm an not
aware of any, so it is up to you to find one.
Why wasn't program X
included in your list?
There are two reasons why I haven't
included a certain application. First, I may not be aware of it. I
will happily include the application if you send an e-mail to hr_pakdel@yahoo.ca with subject
'Linux Application' and a link and a reason what makes this program
great for desktop. If I see it fit, I will write a short description and
include screenshots of it. Secondly, I only listed those applications
that are useful for the desktop. When I say "useful" I also mean
robust. Mr. Project is a great task management application, but the
stock version which came with my Mandrake 8.2 install would crash X
server every time I added a resource. Hence, Mr. Project is not
included. When I say "useful" I also mean easy to use. Vi is a great
minimalist editor, but its user interface is frustrating at best, so it
was not included.
Why is there less
content at the end of the article than the beginning?
Initial setup of Linux is perhaps the
most time consuming. Once everything is the way you like it, all you
have to do is open an application and use it. There really isn't much
I can talk about applications that just work the way they should.
Some other applications are fairly unique to *nix environment (lyx)
and users of other platforms need a bit more explanation to learn about
it.
Are you writing this
article to diss Microsoft and Apple?
No, I have nothing against Microsoft
or Apple. I may not agree with some of the business decisions they had
made or make, but that does not prevent me from using their products.
Windows 2000 and XP and MacOS X are great operating systems for the PC.
I still use Windows XP Pro for my gaming purposes and I envy Mac people
for their awesome MacOSX (which is a Unix variation by the way).
I just enjoy Linux more because I
understand it. I have studied computers in extend and I understand
terms like preemption, CPU scheduling, virtual memory, segmentation
fault, inodes and other jargon like that. At every moment, I know
exactly why my system is behaving the way it is and I love that. It's
like you feeling your heartbeat and knowing that your heart is in
great condition.
I also believe in freedom and I find
that Linux gives me a greater opportunity to exercise that freedom.
Will you help me if I
have a Linux question?
Absolutely, as long as my time and
knowledge permit, I will answer all questions directed to hr_pakdel@yahoo.ca with the
subject title 'Linux Question'.
Reader Submitted Questions
Is it possible for
Windows programs to run on Linux in any way, shape or form?
Well, this is a tough question to
answer. WINE (Wine
is not an Emulator) [winehq.com] is a project that aims to provide an
environment in which a Windows program can run with or without actually
installing Windows. Wine has some built-in libraries and is being
improved at a pretty good rate. Installing WINE is not an easy task.
I've attempted it a few times. It works on basic programs like Notepad
and Calculator. Another problem is that almost 10% of all Windows
programs access custom drivers (VxDs) that operate on system level. As
VxDs thus need equal privilege as the operating system itself, Linux
won't run them and the application will produce an error, but given a
very good Wine package or quite some experience, you can get even very
complicated programs to run with some luck, e.g. Photoshop 6 or Internet
Explorer or AutoCAD. I would suggest you take a look at WINE application
database [appdb.codeweavers.com] to see if the application you need
works under WINE. (Thank you Andreas for the correction and the tip)
The only time I got a Windows program
to really run perfectly, was when I had Windows 98 installed on another
partition. This time, I told WINE to simply look in C:\Windows\System
(/mnt/hdb) for any libraries it needs. I was able to get even Internet
Explorer running.
CodeWeavers [codeweavers.com] is a company that is
trying to put WINE to some real use. They have been able to get Windows
Media Player, Quicktime and a few other windows plug-ins to work.
Actually, their product is nearly flawless. They also have been able to
get MS Office to work. However, their products are not free (which is
why I did not include them in the article).
Lindows [lindows.com] is a new Linux distro which
aims to include WINE (actually variation of it). They used to claim that
you will be able to run almost all Windows applications on Lindows, but
they have backed off from that claim.
To be honest, the best OS to run
Windows applications is Windows itself. Now, there is one way to do
exactly that. VMware[vmware.com]
is a sort of PC emulator which works fairly efficiently. It is not
free, but it works perfectly (no 3D acceleration though). You run
VMware, then install Windows and then install your applications.
There is one last way to run a Windows
application on Linux environment. Take a look at my article
[ratedpc.com] regarding VNC. If you have an extra PC and a hub or a
router, you can run VNC server on the Windows machine and then run a
client on Linux and run the program through that. You will have some
lag, nevertheless, it works. If you have two minitors, you can put them
side by side, and run x2vnc [hubbe.net]. When x2vnc is running, if you
move your mouse to the right corner of the screen, it will jump to the
VNC server you have specified and take over its mouse and keyboard. So
you can use both Linux and Windows with one keyboard and mouse.
Does Linux support TV
cards at all and is there any TV viewing software available?
I do not have a TV card, so I have not
tried installing it. However, I did a search on the web to see what
comes up:
"A TV Tuner card has three
important components. The tuner chip is used to "listen" to a specific
broadcast frequency. Most cards have major problems tuning weak signals,
especially when an antenna is the input source. A video decodechip
processes the incoming signal and processes the broadcast format
(PAL/NTSC/SECAM) and pushes it to an overlay area of the main video
card. The overlay area is a part of the video memory which is directly
written onto by the TV tuner to display the TV channel. Finally a sound
decoder chip, processes the audio signals and can additionally decode
Stereo/Dolby signals before feeding it to the speakers." [7]
Some more search revealed that an API
(Application Proramming Interface) for TV cards has been developed which
allows TV-Card softwares easily use the TV Cards:
"It all started with the bttv
driver many years ago. The very first bttv releases had some private
BTTV_* ioctls to control the hardware. Late in the 2.1.x cycle Alan Cox
stepped in with the idea to create a common API for that kind of
hardware.video4linux was born. The idea is great. But it
turned out later that the actual implementation has a number of flaws.
Basically the API was desiged too much along the lines of the existing
bttv driver. Bill Dirks started working on a new API, known asv4l2 these
days. It fixes a number of design bugs and will (hopefully) replace the
old video4linux API some day." [8]
As for the software, there are a few
of them. xawtv
[bytesex.org] and KwinTV
[kwintv.org] seem to be the popular ones. Here is a screenshot of KwinTV
from the KwinTV website:
For further information and
installation guides, I'd recommend you to check out these links:
Once again, for those of you who have a better solution, please
let me know.
Is there a PDF or
printer friendly version of this article?
I have put together all of pages of
the article into one page and posted it as page 21. Also, you may
download and print a PDF version (zip compressed) of the article. A note
that I created it by printing a PostScript file from Mozilla.
Unfortunately, some images look odd and I do not have control over that.
I would like to ask you to only
download the files if you really need to print them. This site is run by
a group of volunteers. We are allocated a bandwidth quota and anything
additional will come out of our pockets. I appreciate your consideration.
These files were updated on July 18th,
2002