Spice Up Your Nokia Phone With The Ubuntu Font

Yes, I know, I’m living in the era of the ‘droid and I still have a Symbian phone (that too Symbian S60v5, when Symbian^3 has been released). Yes, I like to live old school :P

I have the Nokia 5233 (Pretty much the same as the Nokia 5800 and 5230 but lacking in some features)

Recently I’ve been thinking of customizing my phone, I’ve already added lots of new applications, like the SPB shell (it’s pretty cool and also available for Androids, it brings fun to the boring Symbian home screen) etc. etc. but something was missing in the end, something that would show that I’m a grade A Ubuntu fanboi :P an Ubuntu font!

So, I searched for a way to install custom fonts on Symbian and it’s pretty easy, no need to install an app or anything, just pure copy/paste. Let’s get started. Please note I’ve only given this a go in Nokia 5233, I’m sure it will work with similar ones like the 5800, 5230 and any other S60v5 device.

Follow these steps:

  1. Get the Ubuntu fonts archive from here or use the ones installed on your Ubuntu box.
  2. Extract the fonts to somewhere and choose which version of the font you will be using (no, you can’t use the whole font family, just one! Unless I happen to find another way :P)
  3. Make four copies of the font you wish to use on your phone (I used the regular one Ubuntu-R.ttf) and name the copies like this (Note the case): s60snr.ttf s60ssb.ttf s60tsb.ttf S60ZDIGI.ttf
  4. Connect your phone in Mass Storage mode and open the resource directory. Create a folder called fonts and copy the four files that you renamed to the fonts directory.
  5. Disconnect the phone from the PC and restart it (the phone that is, not the PC :P)

*NOTE: *To avoid any problems make sure you copy the fonts in your memory card, not the phone memory, since if something goes wrong you can just remove the memory card and the phone will work as normal.

If all goes well you will see your Ubuntu fonts everywhere on your phone, I didn’t get to test it much but I don’t think this will cause any problems, works perfectly on my phone.

Here are some screenshots of my phone with the Ubuntu font:

Give this a go if you have a Symbian device and tell me in the comments how it turned out (some pics would be awesome! :) )

Make your GTK apps look good on KDE

Hello everyone, Happy new year! I know I’m a little late, but oh well, better late than never :P OK, back to business. If you run KDE you probably know that GTK applications don’t look good on it, yup I’m talking about Firefox or Gimp looking fugly and you trying out endless Qt like themes for Firefox and Gnome to make GTK apps look decent. Well, here’s some good news, there’s a new GTK engine that greatly resembles the native Qt look and makes your GTK applications look respectable on your KDE desktop.

The engine is called oxygen-gtk and it provides a much more native Qt like feel to your Gtk applications. You can visit the developers blog here (Great work mate!). Here’s some more info right from the developers (shamelessly copied from the README file in the source :P ):

Oxygen-Gtk is a port of the default KDE widget theme (Oxygen), to gtk. It’s primary goal is to ensure visual consistency between gtk-based and qt-based applications running under KDE. A secondary objective is to also have a stand-alone nice looking gtk theme that would behave well on other Desktop Environments. Unlike other attempts made to port the KDE oxygen theme to gtk, this attempt does not depend on Qt (via some Qt to Gtk conversion engine), nor does render the widget appearance via hard coded pixmaps, which otherwise breaks everytime some setting is changed in KDE.

Some of the key features are:

  • ARGB Support – Provides transparency (Could cause some problems for some applications though)
  • Window Grabbing – You can move a window by dragging it from an empty area (just like in Qt apps)
  • Mouse-Over Support – Highlighting of the widget when the mouse pointer enters it
  • Lots of tweaking options – Just run oxygen-settings to tweak the engine’s settings

A new feature that will come in the next release will be DBus support so that Gtk applications can update themselves if KDE’s configuration changes, so no need to restart your apps after applying that uber cool colorscheme you got from kde-look.org:P

I’ve packaged it in my ppa, Ubuntu users can get it by adding my ppasudo add-apt-repository ppa:gastly/oxygen-gtk and then *sudo apt-get update && sudo apt-get install oxygen-gtk *

Sorry to say, but I’ve deactivated my PPA, I wanted to change my nick and I couldn’t do that if I had an active PPA. Therefore, I removed the PPA. But I found another PPA providing Oxygen-Gtk, by Nikola Kovacs here.


Oxygen Gtk Firefox There are some more screenshots on the developer’s blog. OK, so this wraps up this post, I’ll post again on oxygen-gtk when I have more time to tinker with it. But for now, I’ll sign off (it’s almost 3 AM! o_O)

Laters :)

10 Linux Commands You Probably Not Know About

Linux Terminal

Linux command line is very powerful and has a lot of useful commands/utilities that come in handy for every Linux system administrator. Since there are loads of commands in a Linux system, there can be some that many people are not aware of or are not so popular for new Linux users; But the old timers will probably have used them. So, here comes the 10 Linux commands that people don’t know about. **

*NOTE: In the examples below, lines starting with a $ are the actual commands, lines starting with a # are my comments and all other lines are the output of commands. *

1. *nl *– Prints the file to stdout with line numbers prepended.

It’s useful if you want to search for a specific line number without opening a full text editor (like vi or emacs) and then searching for a line number. Just specifying the filename as an argument will make nl output all the contents of the file with line numbers, you can use grep to filter out the lines you need.

Syntax: nl [OPTION]… [FILE]…


$ nl hello.txt 1 Hello World 2 This is a test

2. pgrep and Pkill – Searches for or signals the processes based on their names.

These commands are really useful for system administrators, suppose you wish to search for a process and get it’s pid. The normal way any user would do it will be to use “ps aux” and then pipe it through “grep” or simply use “ps -C process-name -o pid=”. To avoid this, you can simply use the “pgrep” command to search for a process’ pid and then use the “pkill” to kill it or send a signal to it. The best thing is that “pgrep” and “pkill” use patterns to match the process names, so you can search for or send signal to multiple processes at once.

Syntax: **

*pgrep [OPTIONS] [PATTERN] *



$ pgrep vim 2747 $ pkill vim

*3. pstree *– Shows the process tree for the current user.

“pstree” can be used for system administration tasks. Like, if you wish to see which process was started by what program, then this command will be useful.

Syntax: pstree [OPTIONS] [PID] [USER]


$ pstree # Shows all running processes for the current user $ pstree 2747 # Shows the process tree for the pid specified kdm───startkde─┬─kwrapper4 └─ssh-agent

4. watch – Runs a command repeatedly and shows the output.

The basic idea behind this command is that it executes a command after a specified time period repeatedly. This can be used to monitor the output of a command. This command can be very helpful when monitoring files that change frequently, like log files. Options like “-d” can be specified to highlight the differences between successive updates.

Syntax: watch [OPTIONS]


$ watch cat hello.txt

5. lshw – Shows detailed hardware information about the system.

It’s recommended to be run as root as it needs to extract system information that needs root privileges. You can also generate HTML or XML output using the “-html” or “-xml” options. You can also specify options to show hardware information only about a specific class, like memory, processor etc. For a list of classes just use “lshw -short”.

Syntax: lshw [OPTIONS]


$ lshw -C display # Gives information only about the display. *-display description: VGA compatible controller product: G92 [GeForce 9800 GT] vendor: nVidia Corporation physical id: 0 bus info: pci@0000:01:00.0 version: a2 width: 64 bits clock: 33MHz capabilities: pm msi pciexpress busmaster caplist rom configuration: driver=nvidia latency=0 resources: irq:16 memory:d2000000-d2ffffff memory:c0000000-cfffffff(prefetchable) memory:d0000000-d1ffffff ioport:9000(size=128) memory:d3000000-d301ffff(prefetchable)

6. wc – “wc” stands for Word Count.

As the name suggests, it counts all the words in a file. It can not only count words, but it can count lines and characters as well :P Very useful for finding the size of a file in terms of lines, words or characters.

Syntax: wc [OPTIONS] [FILE]


$ wc hello.txt 2 6 27 hello.txt

7. split – Splits large files into smaller parts.

Useful for making backups or sending large files by email.

Syntax: split [OPTIONS] [INPUT] [PREFIX]


$ split -b 1M bigfile.tar.gz bigfile_ # This will split bigfile.tar.gz into files with size 1MB and prefix the splitted files with “bigfile_”

8. ldd – Shows library dependencies.

This command is useful if you have a compiled program and you wish to see which libraries it depends on. Very useful for packagers that need to specify the package dependencies.

Syntax: ldd [OPTIONS] [FILE]


$ ldd /usr/bin/aptitude linux-gate.so.1 => (0x00d33000) libapt-pkg-libc6.10-6.so.4.8 => /usr/lib/libapt-pkg-libc6.10-6.so.4.8 (0x00110000) libncursesw.so.5 => /lib/libncursesw.so.5 (0x003bc000) libsigc-2.0.so.0 => /usr/lib/libsigc-2.0.so.0 (0x00c0c000) libcwidget.so.3 => /usr/lib/libcwidget.so.3 (0x00d79000) libept.so.0 => /usr/lib/libept.so.0 (0x004e6000) libxapian.so.15 => /usr/lib/libxapian.so.15 (0x00697000) libz.so.1 => /lib/libz.so.1 (0x0092e000) libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0x00201000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0021a000) libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00e89000) libgccs.so.1 => /lib/libgccs.so.1 (0x001db000) libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00943000) libutil.so.1 => /lib/tls/i686/cmov/libutil.so.1 (0x001fa000) libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0x00f01000) /lib/ld-linux.so.2 (0x00b52000)

9. chardet – Shows file encoding.

It tries to guess which type of encoding a file uses and then prints the encoding name along with the filename to the terminal.

Syntax: chardet [OPTIONS] [FILE]


$ chardet /etc/resolv.conf /etc/resolv.conf: ascii (confidence: 1.00)

10. chattr and lsattr – Changes or lists the file attributes.

“chattr” changes file attributes, the attributes are mainly file system attributes that define properties of the file. To see attributes set for a file, use “lsattr”.


*chattr [OPTIONS] [+-=modes] [FILE] *

lsattr [OPTIONS] [FILES]


$ chattr +e hello.txt $ lsattr hello.txt —————–e- hello.txt

Have any more commands to share with everyone? Let’s see them in the comments!

Installing nVidia Drivers in Linux [HowTo]

So, you got a new gfx card eh? And it’s nVidia? coolio!
But you don’t know how to install the drivers on your linux distro? no probs….here’s how.

First of all, download the drivers from the nvidia site. Save the file (it should have a .run extension) to your home directory (or a directory which you can easily access).

Now, you will have to logout. Log-out of your account and once you reach the gdm or kdm login screen, press Alt+F2 (or Alt+F1). This will give a ‘text-only’ login screen. Enter your username and password and login.

Once there, cd to the directory where you saved the file you downloaded.
If you download the file in a directory named ‘Downloads’ inside your home directory then type this:

[plain]cd $HOME/Downloads[/plain]

Once inside the directory, you can use the following command to see the exact filename:

[plain]ls *.run[/plain]

It should give a filename similar to this NVIDIA-Linux-x86-185.18.14-pkg1.run

Now, before you start the install, you will need to stop the X server, or else you will not be able to complete the install.
Type (as root or use sudo):
[plain]sudo /etc/init.d/gdm stop[/plain]

NOTE: If you’re running KDE, replace ‘gdm’ with ‘kdm’ in the above command.

After that is done, run the installer with the following command:
[plain]sudo sh ./NVIDIA-Linux-x86-185.18.14-pkg1.run[/plain]
*Substitute the filename above, with the filename of the driver you downloaded.

When you’re asked if you wish to download the pre-compiled module, then either select ‘Yes’ to download them, or you can select ‘No’ if you have the linux kernel headers installed for your kernel. If you don’t have them, you will need to install them first, before running the installer.

On Ubuntu/Debian systems, you can install them from the following command:
[plain]sudo apt-get install linux-headers-uname -r[/plain]

After that run the installer again and it will install it without any problems! :)

After the installer has finished installing and it returns you back to the terminal, you will need to restart the X server by the following command:

[plain]sudo /etc/init.d/gdm start[/plain]

You will then be sent back to the login screen :) Voila, you just installed the nVidia drivers! :)

If, later you wish to un-install them you can use the following command:
sudo ./NNVIDIA-Linux-x86-185.18.14-pkg1.run –uninstall

  • Replace the filename with the exact name of the file you downloaded.

And that’s it :)

Cheers :)

– gastly


Firefox Bug – Font Rendering Problem In Ubuntu

I was compiling Firefox 3.5 on Ubuntu and I did all the optimizations and stuff to get better font rendering in it (see my other tutorial), but it seems that Firefox 3.5 has a bug; The font rendering is really bad even when you have all the configure options set and you have a subpixel hinting enabled build of cairo (default in Ubuntu). Here’s the bug filed at launchpad: https://bugs.launchpad.net/ubuntu/+source/firefox-3.5/+bug/379761

Here’s the comparison:

The middle one is FF 3.5. See any difference in the fonts? Yup, that’s what the bug is all about.

But don’t worry, there’s a workaround for it, you just need to edit one file (create it, if it doesn’t exist). You see, the problem is that Firefox takes the font rendering settings directly from Freetype2, and Freetype2’s default settings are not always good for everyone, so if you’ve tweaked the font settings via the ‘System->Preferences->Appearance’ menu, you won’t see any change in Firefox 3.5. Although, Firefox 3 works fine.

OK, enough blabber, here’s what you have to do.

First of all, create a file named ‘.fonts.conf’ in your home directory (edit it, if it already exists) and change it to your hearts content :P

Here’s mine:







All I did was change the hinting to “true”, initially it was ‘false’ so I replaced it with ‘true’.
And, ” hintstyle” I changed it to ‘hintslight’. You need to see which is good for you, ‘hintfull’ or ‘hintmedium’.

You can check your font options (System->Appearance and click on the ‘Fonts’ tab and then click on ‘Details’) and change the file according to those settings.

*Please Note: *This workaround was taken from the Ubuntu forums from this post.

Best Firefox Addons For Added Privacy and Security

Firefox Logo

Hi all :)

I’m making a post after a long time now…been busy with other stuff’s lately…

So, we’ve previously seen How To Compile Firefox 3.5b4 from source now in this post, I’m going to list some of my favorite Firefox addons for added security!

You’ve probably heard that Firefox is the safest browser…yup, it’s true…but what makes it safe? It’s the ability to extend it’s functionality with the help of addons. Yes, I agree that it has some inbuilt features to protect users, but the majority of the feature’s that help us to be safe on the web comes from addons.I’m trying to list some of my favorite addons here that help protect your privacy and secure you from online threats…here goes…

NOTE: This list is strictly in alphabetical order… :P

AdBlock Plus: AdBlock (as the name suggests…) blocks ads! duh! And it’s the first addon that I install on a newly installed Firefox, whether it be my own computer or a friends or a relatives or my neighbours! It has a comprehensive set of filters that blocks almost all ads on a website, this saves your bandwidth and also reduces page load times significantly. A highly recommended extension!

Better Privacy: This is an awesome addon too, but it doesn’t block ads :P What it does is safeguard your computer from the so-called ‘Super Cookies’. The only thing you need to know about ‘Super Cookies’ is that they are never expiring…and according to the creator of this addon: ‘This (Super Cookies) new cookie generation offers unlimited user tracking to industry
and market research. Concerning privacy Flash- and DOM Storage objects
are most critical.’ It protects from cookies that are set by flash objects (which the browser is not able to remove automatically), it’s a good addon, and if you’re paranoid (like me)…then this addons is for you! ;)

FlashBlock: FlashBlock is one of my favorite addons, it prevents flash objects from automatically getting loaded! It’s a time saver I tell ya! :P The reason I like it very much is that it’s simple and effective, it adds a placeholder in place of all the flash objects in a page and it allows you to manually load them by clicking on them. I agree that it’s a bit annoying on sites that have flash navbars but you can always add a site in the exclude list! ;)

Ghostery: According to the description of this addon ‘Ghostery Notifies you about the invisible web elements contained in the current page. Including web bugs, javascript libraries etc.’ Alright, this is not of the ‘highly recommended’ ones, but I guess if you want to see by whom you are getting tracked by (useful for me ;) ) then it’s a pretty nice addon :)

LastPass: *This is also one of my favs and *highly recommended ones, it’s a password management addon so you don’t have to remember passwords ever! It stores your passwords online (on their own servers) and therefore you don’t need to backup your passwords if you ever need to reinstall. It is also by far the best password management addon I’ve seen!

*NoScript: *This is also one of the *highly *recommended ones. As the name suggests, it blocks all kinds of scripts from executing in your browser, which enhances privacy. It only allows websites that you yourself choose to run scripts…a really handy addon! Personally, I don’t use it that much, but I recommend it to users who need their top-notch security ;)

Web Of Trust: *Another *highly recommended addon. It’s the best when it comes to detecting fraud sites, it has saved me alot of times from fraudulent websites that are hungry for your personal data ;) It adds a toolbar button to the top (near the address bar) which changes color according to the websites rating in their database.

Dark green is 100% safe, light green is safe, orange is suspicious and red is dangerous (my own interpretation of the colors :P i.e not from the author :P ). It also adds an icon next to your google search results, so that you know (just by looking) how the site’s rating is. Awesome addon! :)

So, that wraps it…I hope you will find this list useful, I will add some more from time to time to this list, stay tuned ;)
And oh yeah, I created a collection of these addons, so you can install them with easy :) you can find the collection here.

Did I forget an addon that you would like included in the list? Tell me in the comments :)

firefox, addons, security, privacy, extensions

Benchmarks of Fedora 9 through 11 [Phoronix]

Hi all, just making this quick post…
Phoronix.com posted a report of benchmark tests between all the versions from Fedora 9 through Fedora 11!

Here’s an excerpt:

Last week we delivered benchmarks comparing the performance of Ubuntu 9.04 vs. Fedora 11 and found for the most part that these two incredibly popular Linux distributions had performed about the same, except for a few areas where there notable differences. However, like in the past when we have looked at Ubuntu 7.04 to 8.10 benchmarks or benchmarking the past five Linux kernels, we are now looking at the performance of Fedora over their past few releases.

Read on here: [Phoronix] Benchmarks Of Fedora 9 Through 11

Linux Kernel 2.6.30 Released

So, finally the linux kernel 2.6.30 is released! Wow, they’re developing the kernel pretty fast eh? :)
It’s great news for geeks and enthusiasts who want a go at everything new! So, what are you waiting for? Grab a copy at kernel.org and have fun!

If you don’t know how to compile a kernel, then don’t worry, I’ll write an article on it shortly…meanwhile you can
Update: As the comment by
doixanh points out, you can get a pre-compiled one at http://kernel.ubuntu.com/~kernel-ppa/mainline/ , so for those who don’t want to compile the new kernel themselves, they can download the deb packages for Ubuntu from that link, thanks doixanh :)

search google for it, here’s also a good how-to (or you can wait for your fav distro to include this kernel…which would be a long wait eh? :P )

But, I’ll write one that will be specific to 2.6.30 and for Debian based distro’s (since I love debian and I’m on Ubuntu :P ) so stay tuned :)

Meanwhile, you can read the changelog here. Lot’s of new file system’s support ;)
And I hear it’s a lot faster too…I’m gonna compile and tell you guys if it’s worth the switch or not :)

[OSNews.com] – Linux Kernel 2.6.30 Released

linux, kernel, 2.6.30, 2.6.x, ubuntu, debian

[How To] Make a blue Ubuntu wallpaper in Gimp

Hi :) Today, I’m going to show you how to make a nice looking cool blue Ubuntu desktop wallpaper. Requirements: You should be familiar with gimp (not much advanced stuff, just how to open and save a file and select and use the tools,create layers etc.). For complete beginners, please read these awesome tutorials on the gimp website: http://www.gimp.org/tutorials/#Beginner**

NOTE: You can download this wallpaper from here: http://www.gnome-look.org/content/show.php?content=106047 1. Make a new image (Image->New) with the size of your desktop…or the size of the wallpaper you need (mine is 1440×900 so I’ll use that). Alright, now we have an image created…

  1. Set your foreground color to ‘2057d4′ and background color to ‘074880’. 3. Select the ‘Blend’ tool (Key: L) and use the following settings…

  1. Now, apply a gradient as shown in the image below:

  1. You should have something like this:

  1. Create a new transparent layer and name it ‘Gradient’. Now, set your foreground color to white ‘ffffff’ and select the gradient tool. Use these settings: NOTE: Set the ‘Gradient’ type to ‘Foreground To Transparent’.

  1. Apply a similar gradient (like you did in step 4) to the ‘Gradient’ layer.

Now, set the layer mode to ‘Overlay’. Magic eh? ;) You can do some awesome things with different layer modes, but for this tutorial, we’ll just use the ‘Overlay’ mode…

  1. Now, you need to add some text to your image… First of all, you need to install the Ubuntu logo font… So, open up a terminal and type this in it: sudo apt-get install ttf-ubuntu-title This will install the Ubuntu logo font! That’s what I like about linux, you can do the toughest stuff’s from a single command! Alright, now select the text tool and set the ‘ubuntu-title’ as your font:

NOTE: It’s not shown in the screenshot, but you need to set the ‘Size’ of the text to ‘140’ (well, if you’r using an image-size of something other than 1440×900, then you may experiment with the text size).

  1. Using the text tool, add text in the center of the image and type ‘ubuntu’.

  2. Create a new transparent layer and position it below the ‘ubuntu’ text layer. Select the ubuntu text layer and right click and select ‘Alpha to Selection’. This will select the text. Now left click on the layer you just created and goto Select->Grow, enter ‘5px’ in it and press ‘OK’. Set your foreground color to ‘074880’ and use the fill tool (Key: Shift+B) and fill the selection with your foreground color. Set the layer mode to ‘Overlay’.

– Now, it’s time to add the Ubuntu logo! Go here: https://wiki.ubuntu.com/Artwork/Official And get the ‘Basic Ubuntu Logo’ in .png format. Open it up with Gimp (as a new image). Here’s what we’re going to do…we want to copy the ubuntu logo from the .png image and we want to past it into our wallpaper.

  1. Use the rectangle select tool (Key: R) to make a rectangular selection around the ubuntu logo.

Now, goto ‘Edit->Copy Visible’ (Key: Ctrl+Shift+C). After that, goto our wallpaper image and select ‘Edit->Past as->New Layer’

  1. Now you need to scale the layer…we will position the logo next to our text, just like in the real ubuntu logo.

  2. Select the layer with the ubuntu logo, and select the ‘Scale Tool’ (Key: Shift+T). Now scale the layer to an optimum size, that you think is good for your wallpaper… I used ‘164×151′. 14. Use the move tool (Key: M) to position the layer next to the ‘ubuntu’ text layer.

  1. Now, perform the same as step 10 on the logo layer and you should have somthing like this:

Congrats! You just made an awesome ubuntu wallpaper! Pat yourself on the back! ;) This was a very straight-forward tut, I just wanted to show new users how easy it is to make a simple wallpaper with gimp. You can add some nice customizations to it, using brushes, but that’s upto you :P You can download this wallpaper from here: http://www.gnome-look.org/content/show.php?content=106047

Please rate and comment! :D I hope you enjoyed it :) If you did, then please digg or stumble this post of mine, if more readers read this blog I’d be more tempted to write useful stuff for all of you! :) Cheers and take care :) – gastly

How To Compile Firefox 3.5b4 from Source (With Nice Fonts)

So, you’re really eager to try out the firefox 3.5 that is in beta stage right now eh?

The thought of exploring the web in the new feature-packed, open source

browser makes your brain neurons light up? Then, this guide is for


I’m going to show you how to compile firefox 3.5b4 from scratch…yup

that’s right, from scratch; Because nothing beats the feeling of

running a program that you compiled yourself, spending a whole week to

make it to compile by editing conf files and configure

scripts….whoops, that may be too much :P I don’t wanna scare you away


Don’t worry, this won’t be hard, it’s easy and all you need is 5 mins

;) (If we take out the download time and compile time of the source

that is :P).

Alright, lets start…woooo!

First of all, I recommend you create a new profile to test out the new firefox (without messing your current one).

Close all the firefox windows (save this text somplace first!) and open up a terminal and type:

NOTE: All the command I mention here begin with a ‘$’ symbol, you don’t

need to type the ‘$’, it’s just for telling that it’s a

command…so…don’t type it! :P

$ firefox -ProfileManager

And create a new profile (I made one named ‘Developer’).


Then you need to install the firefox build dependencies…

On Debian or Ubuntu systems you can do: $ sudo apt-get build-dep firefox-3.0n>

And install these as well: $ sudo apt-get install libcairo2 libcairo2-dev libasound2-dev libcurl4-openssl-dev libnotify-dev

On others…well, check your package manager…

Now, you need to do is download the source…

I recommend you download the source via FTP rather than CVS. Go here:


(Download the tar.bz2 file)

Extract the source to someplace convenient (I always use a source/ directory in my home folder to extract sources…)

Use this command: $ tar -zxf

You need to patch the source file ’cause it has a bug when you compile with the ‘–enable-system-cairo’ (See below).

Get the patch from here: https://bugzilla.mozilla.org/show_bug.cgi?id=466250

Save the patch file in your ‘mozilla-1.9.1′ directory (which would be created after you extract the source archive).

Execute the following command to patch the source:

$* patch -p1 < *


Alright, now we have the build dependencies and the source ready…

cd into the directory named ‘mozilla-1.9.1′

Now, use your fav text editor to make a .mozconfig file in the ‘mozilla-1.9.1′ directory.

I use ‘nano’ for simple editing…so I typed this:

$ nano .mozconfig

NOTE: You can use any filename, it’s not important…like ‘.mozblahblah’ or just ‘blahblah’ (without the ‘.’).

Put in the following inside the mozconfig file:
[plain]mkaddoptions MOZCOPROJECT=browser

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt

ac_add_options –enable-application=browser

ac_add_options –disable-tests

ac_add_options –enable-optimize –disable-debug

ac_add_options –enable-default-toolkit=cairo-gtk2 –enable-system-cairo
NOTE: For a complete list of build options, go here: https://developer.mozilla.org/en/ConfiguringBuildOptions

Here’s the explanations of the options I used:

mkaddoptions MOZCOPROJECT=browser – Means you’re tryng to build the browser

mkaddoptions MOZ_OBJDIR=@TOPSRCDIR@/ff-opt – You’re telling the compiler to create an OBJDIR

*ac_add_options –enable-application=browser *– Same thing as ‘mkaddoptions MOZCOPROJECT=browser’

acaddoptions –disable-tests – (Recommended) This will tell the scripts, not to compile tests that come with the source, this will save a LOT of time and diskspace.

acaddoptions –enable-optimize –disable-debug – This will enable code optimization and disable adding of debugging symbols (reduces the size of the executable).

acaddoptions –enable-default-toolkit=cairo-gtk2 –enable-system-cairo – This will use the cairo engine (nice fonts! :D )

Now, you need to do is, export the variable named ‘MOZCONFIG’, this will tell the make scripts that path of your mozconfig file.

$ export MOZCONFIG=/path/to/your/mozconfig/file

eg: export MOZCONFIG=/home/john/source/mozilla-1.9.1/.mozconfig

Now, you’re ready to compile!

NOTE: This will take some time to build…yup, ever compiled the linux kernel? Yup, this will take as much time as it takes to compile a kernel (I think) :P

To build the browser, do this: $ make -f client.mk build

NOTE: If you have a multi-core processor, you can speed up the build by

specifying an additional option ‘-j N’ where N is the no. of cores in

your processor + 1.

eg: For dual core processors: $ make -j 3 -f client.mk build

Now, sit back, relax, listen to some music, call your gf and talk about her new shoes…or take her shopping :P

After the build is complete (woohoo! PS: If you took your gf shopping, then I’d recommend you to stop now and check your credit card bills first…)

You can test out the firefox right now! wooo!

cd into the directory ‘mozilla-1.9.1/ff-opt/dist/bin’ and there run the executable ‘firefox’.

$ cd mozilla-1.9.1/ff-opt/dist/bin

$ ./firefox -P

eg.: $ ./firefox -P Developer

NOTE: Close all running firefox’s and then run the new firefox build, otherwise it will just open up a new window…

If all went well, you should see a shiny new firefox running on your system! Oh Yeah!!

Here’s mine:

firefox,3.5b4 firefox,3.5b4

WOW! Looks nice doesn’t it? :D

Congrats! You built yourself a new firefox…completely from scratch! No need for any third party to compile it for you, now all you need to do is package the build ;)

Here’s how…

$ cd mozilla-1.9.1/ff-opt/

$ make package

The new package will be located in ‘ff-opt/dist/’

And there you go! You have a brand new beta version of firefox, ready to be distributed to others!

You can download my packaged build here: http://www.mediafire.com/file/ymamnkrjh42/firefox-3.5b4.en-US.linux-i686.tar.bz2