Tag : font

Ubuntu Font Beta and Greek

Update: All open bugs for this font at https://bugs.launchpad.net/ubuntufontbetatesting/+bugs File your bug. Currently there bugs relating to Greek, 1. Letter γ ((U03B3) has an untypical style 2.  In letters with YPOGEGRAMMENI, YPOGEGRAMMENI is expected to be under not on the right and 3. Many Greek small letters have untypical style

Here we see some samples of Greek with Ubuntu Font Beta.

Ubuntu Font supports both Greek and Greek Polytonic.

In the following we compare between DejaVu Sans (currently the default font in Ubuntu) and the proposed Ubuntu Font Beta.

Screenshot Waterfall DejaVuSans

This is DejaVu Sans, showing the Greek Unicode Block. This means, modern Greek and Coptic.

Screenshot Waterfall UbuntuBeta Greek

This is Ubuntu Font Beta, showing the Greek Unicode Block. Coptic is not covered as it was not part of the requirements for this version of the font (actually Coptic currently uses a separate new Unicode Block so the Coptic here are too low of a priority).

Screenshot-Waterfall DejaVu Polytonic

This is DejaVu Sans showing the Greek Polytonic Unicode Block coverage. We show the second part of the Unicode Block which has the most exotic characters with up to three accents.

Screenshot Waterfall UbuntuFont Beta Polytonic

Same thing with Ubuntu Font Beta.

Note that those characters that appear as empty boxes are characters that either were not designed by the font designers, or are reserved characters that have not been defined yet.

Antigoni text in DejaVu Sans and Ubuntu Font Beta (PDF, 12pt)

Antigoni text in DejaVu Sans and Ubuntu Font Beta (PDF, 10pt)

If there are things to be fixed, this is the time to do them. Post a comment and we can take if further.

Traditionally, the letters γ and ν tend to have a unique form. In this case, in Ubuntu Font Beta, γ looks different to what a Greek user is accustomed to. I attach an SVG file of γ; if you have suggestions for enhancement, please use Inkscape, this gamma_UbuntuBeta-Regular file and make your suggestion!

(see top of post for link to bug reports)

Stix Fonts, eventually out.

The StixFonts project is a project to produce high quality fonts for academic publications.

It has been in progress for over ten years and there has been a beta about two years and a half ago. At the same time there had been a discussion on the relevant license for these fonts. The first draft of the license would have made the fonts obsolete as soon as they would be released. However, after public consultation, the project selected to use the Open Font License (OFL).


StixFonts support mathematical symbols from Plane 1, however the WordPress post editor is not able to handle them and truncates the post when you save :-(.

Apart from mathematical characters, StixFonts support Latin, Greek and Cyrillic. Compared with DejaVu (default font in Ubuntu), DejaVu still has overall bigger coverage. You would want to use StixFonts if you write academic documents and require to use a wide range of math symbols.

You can get the StixFonts from the StixFonts project website, at version 1.0, in OpenType format. From the zip archive with the fonts, extract the *.otf files into your home directory, in a subfolder called .fonts (if it does not exist, create it). No need to restart the system; any newly restarted applications should be able to see and use the fonts. OpenOffice.org 3.2+ is required (for example, in Ubuntu 10.04) due to the OpenType format of the fonts. If you use OpenOffice.org for your document writing, it might be a good idea to create special styles for your math content and set the StixFonts as the font of those styles. You can type in those math characters using Insert → Special Character… in OpenOffice.org as shown below.

StixFonts in OpenOffice.org 3.2 (Insert Special Character)

These are the mathematical alphanumeric symbols (fraktur style) in Plane 1. You may notice that some characters are missing (such as capital N fraktur style). It’s not a bug. In OpenOffice.org, you click on characters and these are added in a string. Then, when you completed the string with all the special characters you click OK and they are inserted in your document. While we wrote ubuntu as sample text, these are symbols meant for math documents. However, the potential for geekiness in the Facebooks and the Twitters is easy to describe.

The beta version of the StixFonts are already packaged in Debian/Ubuntu as ‘otf-stix’. I suppose the package will be updated soon with the new version 1.0.

OpenType support in OpenOffice 3.2 (Greek)

The new version 3.2 of OpenOffice.org is being developed and you can currently download the release candidate for your testing purposes.

A big enhancement in OpenOffice.org 3.2 is the support for OpenType fonts. A typical Linux user is able to do most of the tasks with TrueType fonts, however any new exciting fonts available are mostly OpenType fonts. So, OpenOffice.org 3.2 (to be released this month) has OpenType support and most likely Ubuntu 10.04 is going to have OpenOffice.org 3.2.

You can install OpenOffice 3.2 RC (or final, in a few weeks) on your Ubuntu by downloading the relevant archive from download the release candidate. Extract the files and enter the DEBS/ subdirectory. Then, run sudo dpkg -i *.deb in order to install the development version of OpenOffice 3.2. The installed files are located in /opt/ooo-dev3/program/ and you run now run swriter (for Writer). It is quite possible there is already a relevant PPA repository; tell me in the comments and I’ll update here.

We test with the Greek Font Society OpenType fonts, which are distributed with the OpenFont License. The Debian/Ubuntu repositories already have the GFS fonts packaged for you. You can either install the fonts with your package manager (open synaptic package manager, search for ttf-gfs), or run from the command line

sudo apt-get install ttf-gfs-artemisia ttf-gfs-baskerville ttf-gfs-bodoni-classic ttf-gfs-complutum ttf-gfs-didot-classic ttf-gfs-gazis ttf-gfs-neohellenic ttf-gfs-solomos ttf-gfs-theokritos

Here is a screenshot of the PDF file of GFS Fonts Sample. With OpenOffice.org 3.1 or earlier these fonts would not appear in Writer and would be replaced with the default OpenOffice.org font. In addition, if you tried to export to PDF, you would get the default font (that is, the OpenType fonts do not get embedded in the PDF file either).

Here is the .odf file of the GFS Fonts Sample. If you load it in OpenOffice.org 3.1, you will notice that the default OpenOffice.org font will appear for each line in the sample file. If you load the sample .odt file in OpenOffice.org 3.2, you need to have the GFS OpenType fonts installed beforehand.

The GFS fonts support Greek, Greek Polytonic and several ancient Greek characters. See How to type Greek, Greek Polytonic in Linux for instructions on how to configure and use the Greek keyboard layout in Linux. Note that to type Greek Polytonic, you do not need anymore to select the Polytonic layout; the default «Greek» keyboard layout has been updated so that you can type Greek, Greek Polytonic and Ancient Greek characters.  Ergo, άᾷᾂϡϖϝ€ϕͼϾʹ͵ϐϛ.

Workaround for bad fonts in Google Earth 5 (Linux)

Update Jan 2010: The following may not work anymore. Use with caution. See relevant discussions at http://forum.ubuntu-gr.org/viewtopic.php?f=5&t=15607 and especially http://kigka.blogspot.com/2010/11/google-6.html

Older post follows:

So you just installed Google Earth 5 and you can’t figure out what’s wrong with the fonts? If your language does not use the Latin script, you cannot see any text?

Here is the workaround. The basic info comes from this google earth forum post and the reply that suggests to mess with the QT libraries.

Google Earth 5 is based on the Qt library, and Google is using their own copies of the Qt libraries. This means that the customisation (including fonts) that you do with qtconfig-qt4 does not affect Google Earth. Here we use Ubuntu 8.10, and we simply installed the Qt libraries in order to use some Qt programs. You probably do not have qtconfig-qt4 installed, so you need to get it.

So, by following the advice in the post above and replacing key Qt libraries from Google Earth with the ones provided by our distro, solves (read: workaround) the problem. Here comes the science:

If you have a 32-bit version of Ubuntu,

cd /opt/google-earth/
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib/libQtWebKit.so.4.4.3  libQtWebKit.so.4

If you have the 64-bit version of Ubuntu, try

cd /opt/google-earth/

sudo getlibs googleearth-bin
sudo mv libQtCore.so.4 libQtCore.so.4.bak
sudo mv libQtGui.so.4 libQtGui.so.4.bak
sudo mv libQtNetwork.so.4 libQtNetwork.so.4.bak
sudo mv libQtWebKit.so.4 libQtWebKit.so.4.bak
sudo ln -s /usr/lib32/libQtCore.so.4.4.3  libQtCore.so.4
sudo ln -s /usr/lib32/libQtGui.so.4.4.3  libQtGui.so.4
sudo ln -s /usr/lib32/libQtNetwork.so.4.4.3  libQtNetwork.so.4
sudo ln -s /usr/lib32/libQtWebKit.so.4.4.3  libQtWebKit.so.4

Requires to have getlibs installed, and when prompted, install the 32-bit versions of the packages as instructed.

Now, with qtconfig-qt you can configure the font settings.

Today you’ll make history with Firefox

Today you’ll make history with Firefox

Are you ready to make history? Are you ready to set a World Record? Today is Download Day. To become part of the official Guinness World Record you must download Firefox 3 by 17:00 18:15 UTC on June 18, 2008, or roughly 24 hours from now.

Download page with live download statistics

The sender of this email is Mozilla Corporation, 1981 Landings Drive, Bldg. K, Mountain View, CA 94043-0801.

Did you receive your notification for your pledge?

The Firefox Download Day has just started. We are already counting 1 and a half hours in the download day. See download countdown which shown until when your downloads count for the record attempt.

Mozilla.com is currently very slow due to the repeated attempts to download. I hope the issue is resolved soon.

Update +2 hours: Now it works; when you visit the download page, it now shows correctly that Firefox 3.0 is available for download.

Update +16 hours: The download count reached 5,400,000 downloads. It is good to drive it higher. You can get your national download total, and ask your friends and family to help increase it.

Update +20 hours: The download count is over 6,000,000 downloads. Due to the technical issues at the start of the record attempt, the deadline for downloads has been extended by one hour and 15 minutes.

Update +24 hours: The download count is nearing 8,000,000 downloads. We have a bit more than an hour to go (due to the technical issue that delayed the start of the downloads). Can we make it to 8 million?

Update +25 hours: We did it! 8 million downloads in 24 hours! World record!

Update +30 hours: The world record attempt has been completed. Still, the Firefox 3 downloads continue. At the moment we surpassed 9.4 million downloads and counting.

Προβληματικές συμπεριφορές στο adslgr.com/Forum του Linux

Παρακολουθώ μερικά forum και την ενότητα για Linux που έχουν, και αρκετές φορές απαντώ σε ερωτήματα χρηστών. Μερικά έχουν μικρή κίνηση, άλλα έχουν αρκετή και είναι πολύ ζωντανά. Ένα από τα forum αυτά είναι το ADSLGR.com @ Linux.

Ωστόσο υπάρχει ένα πρόβλημα συμπεριφοράς από μερικά από τα «παλιά» μέλη που χρησιμοποιούν τακτικές bullying για να περάσουν τις απόψεις τους. Είναι πραγματικά παράξενο να έχουμε τέτοια ζητήματα στο ελεύθερο λογισμικό. Ωστόσο έτσι φαίνεται να είναι.

Σε μια συζήτηση, για τα νεότερα στο GNOME 2.22,
http://www.adslgr.com/forum/showthread.php?t=184570 υπήρξαν σχόλια με ύψηλο flameability,

Α. «Ακομα πιο προηγμενο, τωρα ΚΑΙ με υποστηριξη για webcam. »

Β. «χαχαχα, μπήκε download notification στον epiphany.»

Γ. «Σε λίγο θα διαφημίσουν και το κουμπάκι “πίσω”, ε μα είναι πράγματα αυτα?»

Δ. « Αρχικό μήνυμα από simosx Διαβάζω όλα αυτά τα ειρωνικά σχόλια, όπως και στο άλλο thread με τον έξυπνο τίτλο gnome-vs-kde.
Ως ελληνική κοινότητα φαίνεται να είμαστε άσχετοι από τα τεκτενόμενα στο εξωτερικό. Είμαστε θεατές με επιφανειακή γνώση. »

««Συγγνώμη, για να εκφέρουμε άποψη πρέπει να συνεισφέρουμε πρώτα? Έλεος, διαφημίζουν τα αυτονόητα που υπάρχουν σε άλλους browsers εδώ και 10 χρόνια και καμαρώνουν κιόλας…?
Εντάξει, αφου πλέον μπορώ να βλεπω την ώρα στην Αυστραλία για να μην παρεξηγούμαι που δεν απαντάει στο msn η τουρ-τουρίστρια που γνώρισα πέρσυ, όλα καλά .»»

Ε. «Θα σου δώσει κατάλληλη απάντηση κάποιος καλοθελητής σε λίγο.»

ΣΤ. «Χρησιμοποιώ και gnome ενίοτε αλλά με τέτοιες μπαρούφες που κάθονται και του βάζουν…»

Ζ. «το μόνο σίγουρο είναι πως κάναμε hijacked το θέμα του gnome
έτσι κι αλλιώς δεν έχει ενδιαφέρον »

Η. « Αρχικό μήνυμα από no_logo το μόνο σίγουρο είναι πως κάναμε hijacked το θέμα του gnome
έτσι κι αλλιώς δεν έχει ενδιαφέρον
Ποιος το λέει ; Ο καθοδηγητής μήπως ; »

Θ. « Αρχικό μήνυμα από midnightsun Ποιος το λέει ; Ο καθοδηγητής μήπως ;
η πραγματικότητα 1 σελίδα είναι η “είδηση” για το gnome, οι υπόλοιπες είναι bashing από kde χρήστες και το πρόβλημα του ATC
Πάρε μάτι το νήμα του kde 4 που ενώ δεν έχει βγει ακόμα μαζικά έχουν γραφτεί σελίδες επι σελίδων
Αυτή είναι η διαφορά, ψοφοδεής κοινότητα από την μια vs την ζωντανή και ενεργητική κοινότητα του kde »

(σταματώ στη σελίδα 5 του νήματος· πάει μέχρι το 8)

Αυτό που βλέπω είναι ότι η αρνητική συμπεριφορά δεν είναι μεμονωμένη, και υπάρχουν και moderators που λαμβάνουν μέρος.

Αν μια διανομή είναι καλύτερη ή όχι από μια άλλη, αυτό δεν μπορεί να είναι αίτια για τέτοιες αρνητικές συμπεριφορές. Στην πραγματικότητα, οι διανομές/γραφικά περιβάλλοντα αποτελούν απλά αφορμή, κάτι το επιφανειακό.

Ένα άλλο χαρακτηριστικό είναι η κομπλεξική συμπεριφορά και η χρήση γραφικών εκφράσεων όπως «μυκητίαση» ή «μούχλα» (σε κάποια βίντεο κατά την αναπαραγωγή φαίνονται κάποιες περιοχές σε πράσινο χρώμα· πρώτη φορά το ακούω, και η λύση ίσως να είναι ένα απλό «περίμενε να ολοκληρωθεί το torrent»). Ο τίτλος της συζήτησης ήταν «18 μήνες έχει κλείσει αδιόρθωτο το bug της μούχλας του Xine».

Άλλες εκφράσεις συμπεριλαμβάνουν «άθλιο», που είναι μια γενική περιγραφή για τα προγράμματα που δεν καταλαβαίνουμε πως δουλεύουν.

Ένα ακόμα μήνυμα που βλέπουμε να περνάει από το adslgr.com/Linux είναι ότι στο ελεύθερο λογισμικό υπάρχουν κάποιοι «άλλοι» που έχουν υποχρέωση να κάνουν τη δουλειά, και αν δεν την κάνουν σωστά είναι άθλιοι. Αυτοί οι άλλοι είναι ταπεινοί υπηρέτες μας. Εδώ πρέπει να υπάρχει μια υποβόσκουσα σύνδεση στη σειρά Lost και τους Άλλους. (Ωχ, και εγώ κατάντησα να λέω μακίες).

Τι προβλήματα δημιουργεί αυτή η αρνητική συμπεριφορά;

  • Είναι ιδιαίτερα επιβλαβής στην ελληνική κοινότητα ελεύθερου λογισμικού. Η κοινότητα βασίζεται στην «ελεύθερη οργάνωση» που σημαίνει ότι δεν υπάρχουν επίσημες δομές στήριξης που θα περίμενε κάποιος σε ένα επιχειρηματικό περιβάλλον. Αν κάποιος νέος χρήστης τύχει να περάσει πρώτα από το ADSLGR.com για να μάθει για το Linux, τότε η κοινότητα έχει πιθανότατα χάσει ένα μέλος.
  • Τα μέλη διαιωνίζουν την αρνητική συμπεριφορά και σε άλλους χώρους.
  • Προκαλούν burnout (κούραση, μειωμένο ενδιαφέρον) στα άτομα που πραγματικά βοηθάνε. Μερικά από τα άτομα αυτά έχουν ήδη γίνει ban (!) διότι δεν ακολουθούν τη γραμμή των μπούληδων. Πάντως σε τελική ανάλυση κάτι τέτοιο είναι θετικό μιας και δεν ασχολούνται πια με το φόρουμ αυτό.

Για το που πάει το forum αυτό, ας δούμε μια πρόσφατη εγγραφή στο ίδιο φόρουμ κάποιου χρήστη, για τη διανομή Ubuntu (emphasis mine).

Θέμα: Ubuntu 8.04: Κάθε πέρυσι και καλύτερα?

Θα ήθελα τη γνώμη των χρηστών που εγκατέστησαν – δοκίμασαν την πιο πρόσφατη έκδοση της Ubuntu. Θα ήθελα να ξέρω αν, παρά τις διθυραμβικές κριτικές που είχα διαβάσει πριν την έλευσή της σε διάφορα τεχνολογικά sites, έχετε την ίδια αίσθηση με μένα: ΑΠΟΓΟΗΤΕΥΣΗ!
Κατ’ αρχάς να πω ότι το τελευταίο εξάμηνο χρησιμοποιούσα αρχικά την Feisty και ακολούθως την Gutsy. Συγκρίνοντας τις δύο μεταξύ τους θεωρούσα ότι υπήρχε μία αργή αλλά σταθερή βελτίωση στις διανομές. Στο laptop και οι δύο λειτουργούσαν θαυμάσια (ένα Sony Vaio) αλλά στο deskotp η Feisty αρνιόταν να αναγνωρίσει μία ασύρματη κάρτα Linksys WMP54g 4.1. Το πρόβλημα λύθηκε (σχεδόν) με την έλευση της Gutsy οπότε και με μερικά τρικ κατάφερα να εγκαταστήσω επιτυχώς Ubuntu και στο desktop. Το upgrade δε από Feisty σε Gutsy ήταν απλά άψογο.
Για να έρθουμε στην τελευταία έκδοση, Hardy Heron. Κατ’ αρχάς το upgrade και στα δύο μηχανήματα δημιούργησε προβλήματα και αναγκάστηκα να κάνω clean install κρατώντας σταθερό το home. Στο laptop είχα πρόβλημα στην εναλλαγή των layouts στο πληκτρολόγιο, καθώς έπρεπε να το ορίσω σε κάθε boot για να δουλέψει. Επίσης πρόβλημα παρουσιάστηκε στην ομαλή λειτουργία του openoffice (περίεργα κωλύματα που δεν είχα ξανασυναντήσει στην προηγούμενη έκδοση) και στη λειτουργία του emerald theme manager. Στο desktop δεν είχα το πρόβλημα με τα layouts του πληκτρολογίου αλλά είχα τα ίδια με το openoffice και το emerald, ενώ η σταγόνα που ξεχείλισε το ποτήρι ήταν ότι δε δούλευε το number keypad του πληκτρολογίου που δούλευε μία χαρά στην προηγούμενη έκδοση.
Για να μη σας κουράσω, έχω πλέον ξαναγυρίσει στην gutsy και στα δύο μου μηχανήματα. Το ερώτημα: είχατε αντίστοιχα προβλήματα? Και η αγωνία: θα είναι η 8.10 καλύτερη ή χειρότερη (η 8.04 είναι και LTS τρομάρα τους!)
To ADSLGR.com ως δικτυακός τόπος είναι σημαντικός και προσφέρει αρκετά στη γενικότερη κοινότητα. Το θέμα είναι ότι το κομμάτι που έχει να κάνει με το Linux είναι προβληματικό, και κάποιοι από τους συντονιστές διαιωνίζουν αντί να διορθώνουν την κατάσταση.
Αυτό που θα ήθελα να προτείνω στους χρήστες είναι να αποφεύγουν το ADSLGR.com/Linux για το άμεσο μέλλον, μέχρι τουλάχιστον να αλλάξει η κατάσταση.
Ενημέρωση: Όχι άλλα σχόλια πια. Μπορείτε να συνεχίσετε τα σχόλιά σας στο http://adslgr-critics.blogspot.com/.

How to easily modify a program in Ubuntu (updated)?

Some time ago we talked about how to modify easily a program in Ubuntu. We gave as an example the modification of gucharmap; we got the deb source package, made the change, compiled, created new .deb files and installed them.

We go the same (well, similar) route here, by modifying the gtk+ library (!!!). The purpose of the modification is to allow us to type, by default, all sort of interesting Unicode characters, including ⓣⓗⓘⓢ , ᾅᾷ, ṩ, and many more.

The result of this exercise is to create replacement .deb packages for the gtk+ library that we are going to install in place of the system libraries. Because these new libraries will not be original Ubuntu packages, the update manager will be pestering us to rollback to the official gtk+ packages. This is actually good in case you want to switch back; you will have the enhanced functionality for as long as you postpone that update.

There is a chance we might screw up our system, so please make backups, or have a few drinks first and come back. I take no responsibility if something bad happens on your system. If you are having any second thoughts, do not follow the next steps; use the safer alternative procedure. You may try however this guide just for the kicks; up to the dpkg command below, no changes are being made to your system.

We use Ubuntu 7.10 here. This should work in other versions, though your mileage may vary.

The compilation procedure takes time (about 30 minutes) and space. Make sure you use a partition with >2GB of free space. We are not going to use up 2GB (a bit less than 1GB), but it’s nice not to fill up partitions.

We are going to use the generic instructions on how to recompile a debian package by ducea.

First of all, install the development packages,

sudo apt-get install devscripts build-essential

Next, we use the apt-get source command to get the source code of the GTK+ 2 library,

cd /home/ubuntu/bigpartition_over2GB/
apt-get source libgtk2.0-0

We then pull in any dependencies that GTK+ may require. They are normally about a dozen packages, but we do not have to worry for the details.

apt-get build-dep libgtk2.0-0

At this stage we need to touch up the source code of GTK+ before we go into the compilation phase. Visit the bug report #321896 – Synch gdkkeysyms.h/gtkimcontextsimple.c with X.org 6.9/7.0 and download the patch (look under the Attachment section). You should get a file named gtk-compose-update.patch. If you have a look at the patch, you will notice that it expects to find the source of gtk+ in a directory called gtk+. Making a link solves the problem,

ln -s libgtk2.0-0 gtk+

We then attempt to apply the patch (perform a dry run), just in case.

patch -p0 --dry-run < /tmp/gtk-compose-update.patch

If this does not show an error message, you can the command again without the –dry-run.

patch -p0 < /tmp/gtk-compose-update.patch

Finally, we are ready to build our fresh GTK+ library.

cd libgtk2.0-0
debuild -us -uc

This will take time to complete, so go and do some healthy cooking.

At the end of the compilation, if all went OK, you should have about a dozen .deb files created. These are one directory higher (do a “cd ..“). To install, use dpkg,

dpkg -i *.deb

If you have any other deb files in this directory, it’s good to move them away before running the command. If all went ok, the .deb files should install without a hitch.

The final step is to restart your system. To test the new support, see the last section at this post. Use Firefox and OpenOffice.org to type those Unicode characters.

If you managed to wade through all these steps, I would appreciate it if you could post a comment.

Good luck!

Testing the updated IM support in GTK+

In Improving input method support in GTK+-based apps, we talked about some work to update the list of compose sequences that GTK+ knows to the latest version that comes from Xorg. From 691 compose sequences, we now support over 5000.

The patch has landed in GTK+ (trunk), and here are instructions for testing.

  1. If you have not used jhbuild before, read the jhbuild instructions and install it.
  2. Add the following to your ~/.jhbuildrc file
    branches['gtk+'] = None    # Makes sure you build from the trunk of GTK+
  3. Install gtk+ using the command (see the comment of James on this post on how to avoid Step 5 below)
    jhbuild build gtk+
  4. About 40 minutes later, and about 700MB of space (~600MB for source, ~100MB for installation of files) consumed, you should get a working copy of GTK+ 2.12.
  5. You can use this compiled version of GTK+ by running
    jhbuild shell

    This should give you a new shell, and whatever you run from here will use our fresh GTK+. Try running “gedit”. You will notice that the theme is different; it uses the default theme due to the special GTK+. This shell has set special environment variables so that program that run will use the fresh GTK+. The rest of the libraries come from our distribution.

  6. If you try to type compose sequences, you will notice no improvement. This is because at the moment jhbuild builds the branch 2.12 of GTK+ and not trunk. We need to download GTK+ from trunk and rebuild.
    cd ~/checkout/gnome2/
    mv gtk+ gtk+-branch-2.12
    svn co svn://svn.gnome.org/svn/gtk+/trunk gtk+
    jhbuild build --no-network gtk+
  7. Perform Step 4 and get gedit running.

How to test?

  • Setup a keyboard layout that supports a good variety of dead keys. My preference is GBr (United Kingdom). Here, AltGr+[];’#/ and AltGr+{}:@~? produce different dead keys. You press one of these combinations and then you press a letter. If such a combination exists, then it gets printed. For example, the old GTK+ produces öõóôòx åōőxxx. The new GTK+ produces öõóôòọ åōőǒŏȯ (12 dead keys).
  • Setup Greek, Polytonic (Ancient Greek). The dead keys are [];’ {}:@ AltGr+[] (10 dead keys). Produce characters such as ᾅᾂᾷῗὕὒᾥᾢῷ.
  • Try compose sequences as described from the upstream file at XOrg. For example,
    ComposeKey+(   1 0 )  produces ⑩. Try the same for 0-20, a-zA-Z.
  • Other miscellaneous, Ṩǟấẫǡ (using GBr layout)

The next step would be to parse the list of compose sequences and produce a documentation file.

Keyboard layout for combining diacritics

Typically, if you want to type characters with accents, such as á, ë, ś, you need to configure a suitable keyboard layout that includes compose sequences for those characters. The produced characters are what we call as precomposed characters; which were included in the early stages of Unicode. Nowdays, the idea is that you do not need to define á as a distinct character because it can be represented as a and ´, where the latter is a combining diacritic.

When put together a character and a combining diacritic, they fuse together, producing a seemingly single character. á is a precomposed (really one character), while á is letter a and the combining diacritic called acute (two characters). You can type the latter á by

  1. Type a
  2. Press Ctrl+Shift+u, then type 301, then press space bar.

Western languages do not really require combining marks, so the existing keyboard layouts do not use them. Other scripts, such as the Congolese keyboard layout (based on Latin) make good use of them.

Gedit, pango and combining diacritics

This is gedit showing off pango and DejaVu fonts (default font in major distributions).

Line 3 is a bit of an extreme, showing a sandwich of combining diacritics.

Line 4 shows the base character a with the combining diacritics from the Unicode range 0x300 to 0x315.

Both lines 3 and 4 were produced easily with a modified keyboard layout, which is show below.

Line 5 is just me being silly. You can have combining diacritics that enclose your base character.

$ cat  /usr/share/X11/xkb/symbols/combining
partial alphanumeric_keys alternate_group
xkb_symbols "combining" {

    name[Group1] = "Combining diacritics";

    key.type[Group1] = "FOUR_LEVEL";

    key <AD11> { [ NoSymbol, NoSymbol, 0x1000300, 0x1000301 ] }; // à   á
    key <AD12> { [ NoSymbol, NoSymbol, 0x1000302, 0x1000303 ] }; // â   ã

    key <AC10> { [ NoSymbol, NoSymbol, 0x1000304, 0x1000305 ] }; // ā   a̅
    key <AC11> { [ NoSymbol, NoSymbol, 0x1000306, 0x1000307 ] }; // ă   ȧ
    key <BKSL> { [ NoSymbol, NoSymbol, 0x1000308, 0x1000309 ] }; // ä    ả

    key <AB08> { [ NoSymbol, NoSymbol, 0x1000310, 0x1000311 ] }; // a̐     ȃ
    key <AB09> { [ NoSymbol, NoSymbol, 0x1000312, 0x1000313 ] }; // a̒     a̓
    key <AB10> { [ NoSymbol, NoSymbol, 0x1000314, 0x1000315 ] }; // a̔     a̕
$ diff -u /usr/share/X11/xkb/symbols/us.ORIGINAL /usr/share/X11/xkb/symbols/us
--- /usr/share/X11/xkb/symbols/us.ORIGINAL      2008-02-20 11:11:13.000000000 +0000
+++ /usr/share/X11/xkb/symbols/us       2008-02-20 13:02:07.000000000 +0000
@@ -492,3 +492,12 @@
     name[Group1]= "U.S. English - Macintosh";

+partial alphanumeric_keys modifier_keys
+xkb_symbols "combining_us" {
+    include "us"
+    include "combining"
+    key.type[Group1] = "FOUR_LEVEL";
+    name[Group1] = "U.S. English - Combining";
$ diff -u /usr/share/X11/xkb/rules/xorg.xml.ORIGINAL /usr/share/X11/xkb/rules/xorg.xml
--- /usr/share/X11/xkb/rules/xorg.xml.ORIGINAL  2008-02-20 11:27:00.000000000 +0000
+++ /usr/share/X11/xkb/rules/xorg.xml   2008-02-20 11:27:48.000000000 +0000
@@ -3643,6 +3643,12 @@
             <description xml:lang="zh_TW">Macintosh</description>
+        <variant>
+          <configItem>
+            <name>combining_us</name>
+            <description>Combining</description>
+          </configItem>
+        </variant>
$ _

Then, you select this keyboard layout (U.S. English) and variant (Combining) in the Keyboard Indicator applet.

Unlike dead keys, with combining diacritics you first type the base character (such as a) and then any combining diacritics.
Our sample layout variant puts the diacritics in the physical keys for [];’#,./. For example,

  • a + AltGr+[ : à
  • a + AltGr+Shift+[ : á
  • a + AltGr+[ + AltGr+’ : ằ

If your language has needs that can be solved with combining diacritics, this is how they are solved.

It is quite important to create keyboard layouts for all languages, and actually make good use of them.

Typing squiggles and dots in GNOME and GTK+ applications

Garrett asks how to type squiggles and dots in GNOME; that is, how to type characters such as á à ä ã â ą ȩ ę ő ǰ ǩ ǒ ġ ṅ ȯ ṁ ė.

There are several ways, and one can choose depending on how frequently they need to type them or how much time they need to invest learning.

① One option is to start the Character Map (Applications/Accessories/Character Map), pick the character, copy and paste it. This is good for rare characters and weird situations such as



The Unicode standard, apart from defining characters for languages, it also defines symbols, dingbats and all sort of things. If your distribution is based on the DejaVu fonts (such as Ubuntu), then you are probably covered for many of these symbols. If you do not have a suitable font, or you use Windows, you will be wondering what the hell I am talking about.

② Another option is to use the Character Palette applet which shows an applet on the panel with a configurable small repertoire of characters such as áàéíñó½©ث€. You select one of the characters with the mouse, and wherever you middle-click, this character is typed. This is an improvement over ①, and good when you want to type often rare characters. It is not convenient to type characters found normally on a keyboard layout.

③ To type characters normally found in a specific language(s), it is good to setup a suitable keyboard layout. For this, it is good to add the Keyboard Indicator applet; right click on the panel, click Add to panel… and choose the Keyboard Indicator from the Utilities section. The US English keyboard layout (Default variant) does not provide any interesting characters apart from those shown printed on the keys of a US Keyboard.
Keyboard layout US Intl with dead keys
The US English International (with dead keys) variant might be a better option,

Keyboard layout GB

Or the United Kingdom layout.

You can get a similar image for your layout when you right-click on the Keyboard Indicator applet, then click Show Current Layout.

Each key in the images contain up to four letters. Starting from bottom-left and going clock-wise, these are the keys produced when

ⓐ you press the key

ⓑ you press the key with Shift (or Caps Lock)

ⓒ you press the key with AltGr and Shift (or Caps Lock)

ⓓ you press the key with AltGr

For example, with the UK keyboard layout, the key G produces g, G, Ŋ, ŋ.

If AltGr + Shift + letter does not work for you, see the FDO Bug #2871 Different results for shift-altgr and altgr-shift.

Using the appropriate keyboard layout is the way to go when writing text that require squiggles. You can either choose a layout with dead keys (meaning that some keys lose their normal functionality), or you can pick a layout that still allows you to have dead keys but are available when you press AltGr + key. For example, in the UK Keyboard layout – Default variant, AltGr + ; + a produces á, or AltGr+Shift+]+e produces ē.

OLPC showing the keyboard

Photo by titanas.

The OLPC uses those four level for the keyboard layout. You can see the all the variations printed on the keyboard. Click on the image, choose Large size for the details.

④ Another option to produce more characters on the keyboard is to enable the compose key, and use compose sequences. A compose sequence looks similar to what we described above (i.e. AltGr+Shift+]+e to ē) but the idea is that we use it for characters we want to be available across different keyboard layouts that you may have enabled.
Configuring the compose key
The compose key is very powerful functionality, thus it is not enabled by default, and lays hidden in the Layout Options tab. I prefer to set it to Menu, but every person has their own preference.

For example,

  • Compose key + – + a produces ã,
  • Compose key + < + c produces č
  • Compose key + 1 + s produces ¹ (Superscript on 1. Try to replace 1 with 2.)
  • Compose key + + + – procudes ±

Currently, GTK+ provides 640 such compose sequences involving the Compose key, and hopefully soon it will increase to over 3000.

The Compose key is known as Multi_key in the source code (Xorg, GTK+, etc).

The Compose key compose sequences offer the ability to define smart mnemonics on how to produce characters. It is much easier to type ComposeKey + 1 + s rather than remembering the codepoint value of ¹ (1 superscript). As with many things open-source, there are too many options, and with the Compose key there is the issue of which shall we pick as a sensible default, and how to make it prominent for those who might want to use it.

It appears to me that there should be more effort to promote the functionality that is provided with the standard keyboard layouts (choose a better keyboard layout, produce characters provided in the third and fourth levels, etc). In this respect, Compose key compose sequences should complement after the main discussion on keyboard layouts take place.

⑤ There is a last issue on switching keyboard layouts to cover in a separate post.

Droid fonts from Google (Android SDK)

Update 10Feb2009: The Droid fonts are now available from android.git.kernel.org (Download tar.gz archive), under the Apache License, Version 2.0. Ascender (the company who created Droid), has now a dedicated website at http://www.droidfonts.com/ (thanks Rex!). At this dedicated website, Ascender presents the Droid Pro family which has several additions to Droid. For the open-source crowd, it is important to have the initial Droid font family dual-licensed under the “OpenFont License”, which would enable the best use with the rest of the OFL licensed fonts.

Two years ago, Google bought a start-up called Android in order to deliver an open platform for mobile applications. A few days ago the Android SDK has been released and you can develop now Android applications that can run in the emulator. Android handsets are expected at some point next year.

Even if you do not plan to develop applications for Android, you can still run the emulator which is functional, includes quite a few samples, and comes with a browser shown above. To get it, download the Android SDK for your system, uncompress it and run


An interesting aspect of Android is that it comes with a set of fonts that have been specially designed for mobile devices, the Droid fonts. The fonts are embedded in the Android image, in android_sdk_linux_m3-rc20a/tools/lib/images/system.img, a clever guy managed to extract them and a modest guy corrected me (Damien’s blog to download).

The fonts are probably licensed under the same license as the SDK (Apache License), however it is better to hear from Google first.

In the meantime, here is a screenshot of Ubuntu 7.10 with Droid.

Update: To extract the fonts from the SDK, run the emulator with the -console parameter. The emulator starts and at the same time you get a shell to the filesystem of the running emulator. You can locate the fonts in system/fonts/. Once located the full path of a file, you can extract with ./adb pull system/fonts/DroidSans.ttf /tmp/DroidSans.ttf (thanks cosmix for the tip).

StixFonts, finally available (beta)!

The STIX Fonts project (website) has been developing for over 10 years a font suitable to be used in academic publications. It boasts support from Elsevier, IEEE and other academic publishers or associations.

A few days ago, they published a beta version of the font in an effort to get public feedback. The beta period runs until the 15th December.

STIX Fonts Beta showing Greek (Regular), from STIX Fonts Beta

STIX Fonts Beta currently support modern Greek. An effort to get support for Greek Polytonic did not work out well a few years back.

STIX Fonts Beta showing Greek (Italic), from STIX Fonts Beta

The main benefit of STIX Fonts is the support for mathematical and other technical symbols. This helps when writing academic publications and other technical documents.

STIX Fonts Beta showing Greek (Bold), from STIX Fonts Beta

STIX Fonts have extensive support of mathematical symbols, symbols that exist in Unicode Plane-1.

STIX Fonts Beta showing Greek (Bold Italic), from STIX Fonts Beta

If there is any modification that we would like to have in STIX fonts, we should do now. Once they are released, they will be widely distributed. Currently, Fedora has packaged STIX Fonts and made them available already.