Improved Font Rendering in Gentoo

EDIT: Updated to latest infinality (2010-11-14). Changed default fonts to Arial. Microsoft-fonts are available here.

EDIT II: The lcd-filtering overlay does not have an ebuild for the latest version of cairo. I have put together one ebuild (using latest patches from ubuntu and infinality). You can get it here. These ebuilds are now present in the lcd-filtering overlay.

Before I begin, full credits must go to PaulBredbury, Infinality and bi3l (gentoo-forums nick) who have done all the hard work on this.

Here’s my guide to get (what I believe) the best font rendering in Gentoo. Note that this uses ebuilds from an overlay, and thus is not officially supported by Gentoo. If you don’t know what an overlay is, look it up (and look up layman as well) on the internet. When you have your box configured to work with overlays, continue with this guide.

layman -a lcd-filtering

Add the following lines to /etc/portage/package.use


##LCD Filtering Overlay
media-libs/fontconfig lcdfilter -cleartype
media-libs/freetype lcdfilter -cleartype
x11-libs/cairo lcdfilter -cleartype
x11-libs/libXft lcdfilter -cleartype

Now, emerge the following packages. Take care that these packages are being emerged from the lcd-filtering overlay and in the exact same order.

emerge -av1 freetype fontconfig libXft cairo


The .fonts.conf configuration file that I use is based on the one provided by Infinality. The only change that I have made is chose Aller as the default sans and sans-serif font, OFL Sorts Mill Goudy ast the default serif font and Inconsolata as the default monospace font. You can edit the provided .fonts.conf if you want to chose other fonts as the defaults.
I have lost my alteration of .fonts.conf and the fact that I do not have currently have access to a Gentoo installation implies that I can not create and test a new one. In case you want to change the default fonts, you will have to do it via your DE or create your own .fonts.conf (if you work in a DE agnostic environment).

Install the fonts I use (if you want to). I would still recommend using these fonts though. They look brilliant.

  • Arial (media-fonts/corefonts)
  • Vista Fonts (Here)

Make sure your eselect fontconfig list looks like this (ignore the lohit family if you do not have it installed).


Available fontconfig .conf files (* is enabled):
[25] 50-user.conf *
[36] 66-lohit-assamese.conf *
[37] 66-lohit-bengali.conf *
[38] 66-lohit-gujarati.conf *
[39] 66-lohit-hindi.conf *
[40] 66-lohit-kannada.conf *
[41] 66-lohit-kashmiri@devanagari.conf *
[42] 66-lohit-konkani.conf *
[43] 66-lohit-maithili.conf *
[44] 66-lohit-marathi.conf *
[45] 66-lohit-oriya.conf *
[46] 66-lohit-punjabi.conf *
[47] 66-lohit-sindhi@devanagari.conf *
[48] 66-lohit-tamil.conf *
[49] 66-lohit-telugu.conf *
[50] 67-lohit-malayalam.conf *
[51] 67-lohit-nepali.conf *

Restart X and have fun!

Installing WordPress Locally on Gentoo

There are already a couple of informative articles on this. Good as they are, I managed to run into a couple of problems that are not detailed on these articles possibly due to the fact that they were written a long time ago. Therefore this article, to help others (and me) who in the future wish to achieve the same that I did.

USE Flags

  • dev-lang/php apache2 mysql (in addition to ones already enabled by default)
  • www-apps/wordpress vhosts

Emerge WordPress

  • emerge -av wordpress

Install WordPress using webapp-config

  • webapp-config -I wordpress 2.9 -d wordpress

Configure the MySql database

  • mysql -u root -p (login to MySql)
  • CREATE DATABASE databasename; (create a database, replacing databasename with the name that you wish to choose)
  • GRANT ALL PRIVILEGES ON databasename.* TO username@localhost IDENTIFIED by ‘password’; (Create a user for the above database, replacing username with the name that you intend to use. Similarly with password)
  • FLUSH PRIVILEGES;
  • exit

Configure WordPress

  • vi /var/www/localhost/htdocs/wordpress/wp-config.php (and verify the following settings)

 

// ** MySQL settings ** //
define('DB_NAME', 'wordpress');     // The name of the database
define('DB_USER', 'username');     // Your MySQL username
define('DB_PASSWORD', 'password'); // ...and password
define('DB_HOST', 'localhost');

Configure apache2

  • vi /etc/apache2/httpd.conf
  • Comment out the following line: LoadModule unique_id_module modules/mod_unique_id.so
  • Add the following to the end: ServerName localhost
  • vi /etc/conf.d/apache2
  • Add the “-D PHP5” to the options passed in APACHE2_OPTS

You are set to go

  • Start apache2: /etc/init.d/apache2 start
  • Point your browser to http://localhost/wordpress
  • Have fun

Gentoo FTW!

So, the folks at linux-mag have bench marked Gentoo(x86_64) compiled with march=core2 and -O2,-O3 or -Os and compared it with Ubuntu 9.04. While Ubuntu 9.10 is already out, the software used on Gentoo (seems that the used the stable branch of Gentoo) is closer to 9.04 than 9.10. And what do the results tell us? Exactly what we already knew. Gentoo kicks ass. We already knew that, didn’t we. However, what is interesting is that when most of the people have been harping that optimizing for a particular CPU (which I believe is the primary reason for the differences that we see) is not useful anymore, it seems that the this is really not the case. In my own experience, I concur. My Gentoo system has been far more responsive than my Ubuntu or even Arch systems ever were.

Read the full article here: http://www.linux-mag.com/id/7574/

Changes in the Zen land

The past week has seen quite a few changes in the zen domain. Change, they say, is a necessary evil, so rather than dwell on what was we now look forward to what it would now be.

Zen-sources, as it was called, has a new name and a new home. It is now called zen-kernel and the new home can be found at http://zen-kernel.org/. Tutorials on how to install zen-kernel for the Linux distro of your choice are already up and this is where you should be headed. Because zen-kernel is still the way Linux Kernels should be. I would be posting benchmarks results of vanilla kernel vs. the Zen kernel pretty soon. Details will follow later, but right now I am not in favour of using phoronix test suite. I would rather benchmark more day-to-day tasks and see how the respective kernels perform.

Back to the changes in the zen land for now. The zen developers are also looking for a new logo. There is already a lively discussion in place at the Gentoo forums. Head over there, in case you want to take a sneak peek at the submissions that have been made so far.

And now the biggest change so far. This one is certainly for the positive. Zen kernel is now in portage (a big yay for all Gentoo users – it is now even easier to get zen). So, fellow Gentoo users, what are you waiting for? emerge zen-sources awaits you.

Zen Sources: The Way Kernels Should Be

From the main site, which can be found here.

Zen-Sources is a collaborative effort of kernel hackers and enthusiasts to provide the best Linux kernel possible. We include code that is not yet found in the mainline kernel in an attempt to support the latest hardware, new features, security fixes, optimizations, etc.

Now, on to the important stuff:

  1. Installation Guide for Gentoo Linux. (here). I recommend following the hand based git setup. (here).
  2. Arch Linux Install Guide (here).
  3. Ubuntu Guide. (here).
  4. For other distros, see the git mentioned in 1. (or check the repos and forums forums for your distro)

As you might have guessed from my recommendation, I have been using the git based setup on my Gentoo Linux install as my primary kernel. It has worked for me most of the time (there have been instances where the use of a kernel in rc stages has induced a bug or two – but this has seldom been the case and there is always the possibility to switch back to the stable release of zen sources).

There is a long list of projects that are included in zen sources (see the full list here) but the major advantages that I would think worth mentioning are:

  • Zen Tune
  • Brain Fuck Scheduler (don’t judge on the name)
  • BFQ
  • No problem with suspend/hibernate (and this is without TuxOnIce)

I would definitely suggest everyone to have a go at this. You will like it.

Amarok … Thou Rocked.

When I started using Linux back in 2006, the first media player that I encountered was rhythmbox and somehow it did not appeal to me. Then I came across Amarok 1.4 and even though it pulled in a lot of KDE-3 dependencies ( I was using Ubuntu) I stuck with it for the simple reason that it was the best media player that I had ever used – including all the various ones that I had tried on Windows (foobar, songbird, winamp, windows media player, etc.) and the few that I tried on Linux (rhythmbox, banshee, etc.). As a recap, let us look at the screenshot below of version 1.4 (taken from the official Amarok website).

Amarok 1.4

Take a look at the Now Playing view – it tells me all about the songs that I need to know. It tells me what the song is called, who is the artist, about the album, the length of the song , the year, where is it stored amongst others (eg. bit rate). The emphasis on the now playing view was what I really liked. The left tab could then be switched to display information about the artist (from wikipedia), the lyrics or display information about the song (how many times has it been played) and display other songs from the same artist that were already present in my collection.

Now, compare this to the current stable version of amarok (2.1.1). Again, lets take a look at a screenshot from the Amarok website.

Amarok 2.1

Now look at what they did to the now playing playlist. It has been banished to the right corner of the window and it shows no information other than the title of the song. If you are playing 12 songs from the same album the album and its details will appear at the head of the 12 songs and those 12 songs will not have that individual information in the playlist view. Why? How about albums when there are different artists for each song?

And let’s not talk about the stability for now. Amarok 1 was already three years old from its first official release when I used it in 2006 so it was quite a mature product. In comparison, Amarok 2 is only half a year old as of now and it would take some time to reach the same level of maturity as that of Amarok 1. However, this brings me to the question – why reinvent the wheel? I am strictly reflecting on the changes in the UI – changes in backend (integration with phonon and other KDE4 services) was, I believe, necessary to integrate tightly with KDE4 but the drastic overhaul in the UI was not. Why change something that was working – and working very well. The alignment of the playlist and the context view did not, in my opinion, require any change.

As an example of this, we can look at Kile – another of my favourite KDE applications – it is the best Latex editor when it comes to Linux. The KDE4 version does not bring any major UI overhaul – it is still tightly integrated with KDE4 and yet the user experience does not change. Something similar should have been done with amarok as well. Or maybe in the true spirit of open source, there is someone out there who would port Amarok 1.4 to Qt4. πŸ™‚

However, at this stage, Amarok has completely lost me. I have switched over to MPD with QMPDClient and ncmpc as the two frontends. I would recommend any one else who is tired of Amarok 2 to give MPD a go. And hopefully, Amarok will be able to win me back some day. πŸ™‚

A gnome user’s tryst with KDE 4.1

I have been a gnome user for nearly the past two years. Having started my Linux experience with Ubuntu, which shipped gnome as default, I never felt the need to switch. There was nothing the Windows XP DE provided (and I used) that was missing in gnome. Wireless with network-manager was the only problem that I encoutered however I soon found an excellent alternative in WICD – and that has been the default for me from then.

However, KDE4 came along with a lot of fanfare. However, the reports suggested that there were a lot of bugs with it and the official view seemed to suggest that it was more of a development release and therefore I decided to stick with gnome. But then came along 4.1 and the feedback from other users was encouraging. I decided to give it a try. However, Gentoo (my current Distro) did not have ebuilds for the 4.1 branch in the official tree yet. A simple search at the forums yielded the answer that the gentoo devs are working on it and they were expected to hit the tree sometime in the near future. Meanwhile, those who were really interested can get 4.1 from the kdesvn-portage overlay. Not wanting to wait, I went ahead and fetched the overlay. Next step was to install kde4.1. After tweaking with the use flags and unmasking the packages (they are all hard masked) , I went ahead and installed the following split ebuilds:

kdebase-startkde
kdemultimedia-meta
kdegraphics-meta
kdeadmin-meta
kdegames-meta
kdm (separately)

It took a while to compile (:P) and the download speed was legendary ( <20 kbps) so it was ready when I woke up the next morning. No idea how long it took to compile (luckily there were no breakages during the night).

Well, I changed the default login manager to kdm, logged out and was presented with the kdm login screen. Nothing special there, no difference in functionality compared to gdm.

Well, I logged in and the default KDE4.1 splash screen was definitely very nice eye candy. Defintely better than the default gnome splash screen. The default wallpaper was quite artistic as well. Surprisingly, it read my gnome-session properties. I had a few scripts added to the startup and they were executed in KDE as well. That was quite nice.

So, a side by side comparison of the apps that are provided in the DE.

Dolphin > Nautilus (Dolphin feels more responsive, and is faster)

Gwenview > eog (no comparison here, gwenview in this regard is like the picture manager in vista)

Dragon Player = Totem (Totem is the front end for gstreamer and Dragon Player for xine, so there is not much of a difference. I am not discussing about the backend here. πŸ™‚ )

kwin and Metacity (kwin is supposed to have compisite effects, but it does not work for me, so I do not know. :P) Other than that, it works fine.
EDIT: This is solved, kwin has to be built with openGL support if you want OpenGL as the compositing method. πŸ˜›

ksnapshot > gnome-screenshot (has more options)

konsole = gnome-terminal (not much difference)

Multimedia Keys (kde) < Multimedia Keys (in gnome) -> I have set the preferences for volume control at least a couple of times in systemsettings and it seems to stop working after some time. No dea why.

HAL Integration (kde) < HAL integration (gnome) -> First of all, no external drives would be automounted by default. It pops up in this new device notifier where you have to click on the new device to mount it. I mean, what the hell is this. If I plug in an external hard drive, I want it to be mounted and not wait for me to tell it to mount itself.
Secondly, my windows partition is not mounted by default. It pops up in the new device notifier when I log in, but when I click on it, it tells me something about having to thing extra options. So, I have to mount it manually. Quite irritating.

kmenuedit > alacarte. However, for some reason, I cannot get kmenuedit to recognize that gimp has an icon. πŸ™‚

Plasma Panels > gnome panel. Not a surprise considering they were working on it for so long and it was one of the major feature of 4.0.

Konqueror and Kmail I did not try, same with kopete. Firefox, Thunderbird and Pidgin work for me.

As for the default audio player, I do not know why JuK is installed. It is of no use, when Amarok is there.

Other than that, there is not much of a difference, and it did not take me (I have never used KDE before) to get used to the settings and all.

But, I must say, that the system responsiveness of KDE4.1 is better than that of gnome-2.22. It loads at a faster rate, and is faster when it run as well. And of course, the looks and the finish are better than gnome, in my opinion. Therefore, this time it looks like that kde4.1 is there on my computer to stay.

Below is a screenshot of my desktop with one gtk app, one qt app, and one native kde4 app.

KDE 4

Why I Use Gentoo?

So, I have been asked this question many times. And of course the assumption is that I am some sort of a masochist who enjoys wasting time on compiling packages. However, that is not entirely true. There are some other reasons why, after trying Ubuntu (started linux with it), Gentoo and then Arch I settled on Gentoo.

The main reasons in a nutshell would be:

1. Rolling Release – Arch does the same thing, while you could achieve the same if you keep using the development releases of Ubuntu. (However, once a feature freeze sets in, you have a wait of couple of months before new packages move into the repos). Arch, in fact, is more bleeding edge that gentoo. However, that is an advantage and a disadvantage as well. While it allows you to have the most bleeding edge system, minor breakdowns are expected. The same can be said for Gentoo – however, with the option of hard masking (not normal masking) a saner solution exists.

2. Portage – No other package management compares to it. Period. Not even the mighty and holy apt.

3. etc-update/dispatch-conf – Haven’t discovered a better way to manage configuration files in a better way in any other distribution. Very useful, if you like to edit your configuration files and do not want them to revert back with an update.

4. eselect – Modular configuration framework. In my opinion, the best feature of Gentoo.

5. Slotting – Install more than one version of the same package.

6. It forces you to learn command line – it is quite useful when you become used to it.

7. And before I forget, the famous USE flags. Trust me, once you get to know them, they are really helpful. And of course, there is no counterpart in any other distribution – this is a unique feature of gentoo (or rather source based distributions)

However, it is not that rosy. There are some disadvantages as well. The most obvious is the time consumed in compiling the packages and in getting the system installed. However, once everything is ready which would take anywhere between 3 days to a week, you would have a great system and you do not have to put in too much effort in maintaining it.

But still. only those who want to spend some time in building a system should try gentoo. Other than that, there is always Ubuntu, which is the best distribution if you are new to Linux.