Hi,
I think there is an other problem: The linking between various characters (Rabt). This was resolved in arabic Ms-Dos (the gliffs can be used is any place within the word because of the low resolution: gliffs are not smooth enough to be distingwishable among various other forms).
For the unicode staff, all you need is a translation table. Most of the work, then, will be on the keyboard handler.
To keep english there too, I recommand using the OEM char table (code page 720), it won't be hard to find on internet.
If you are very lazy
, you may get the gliffs by taking a snapshot from an arabic dos window (win98 Arabic Enabled) or directly form the chars table (vga), it would suffice!
For information, there is a program (service) named "arcon" that "enables" arabic in linux's console.