Entries Tagged as 'planetellak'

Οδηγός πολυτονικού

Αυτή είναι η ανακοίνωση για τον οδηγό γραφής πολυτονικού με το σύστημα ΧΚΒ (λειτουργικό σύστημα Linux),

http://docs.google.com/Doc?id=dccdrjqk_1g6g6ncgw

Ο οδηγός δεν είναι πλήρης και δεν αντικατοπτρίζει την τρέχουσα κατάσταση, μιας και έχουν γίνει σημαντικές αλλαγές πριν από λίγες εβδομάδες.

Ο στόχος της ανάρτησης αυτής είναι να προσκαλέσει άτομα να βελτιώσουν το κείμενο.

The Keyboard Layout Editor

(this entry is a repost, the original was lost in a database mishap.)

As part of the 2008 GSoC program, I worked on a Keyboard Layout Editor for the X.Org Foundation.

The Keyboard Layout Editor (KLE) is an application that allows you to create keyboard layouts for the X.Org server, commonly found in the Linux, OpenSolaris, *BSD, etc Desktops.

My mentor was Sergey Udaltsov, maintainer of xkeyboard-config, the Keyboard Indicator applet in GNOME, supporting libraries for keyboard layouts and much more. I had great help and Sergey was very supportive. Highly recommended mentor for your GSoC’09 project.

The Keyboard Layout Editor showing a layout

The Keyboard Layout Editor showing a layout

The screenshot above shows the main window of the program; a keyboard with blank layout (keys are empty), a section Add to layout with items that can be used to populate the layout, and a section for the description of the layout (Layout details).

There are typically two workflows; first you start off with a blank layout and you add Unicode characters, dead keys, include files, then you save.

The other workflow is to start with an appropriate existing layout as a base, then add more characters, make changes, etc.

It might be strange to talk about different workflows, but in terms of usability it’s important provide assistance for such cases. For example, having tooltips is important when a person starts off with a new layout.

Using the Keyboard Layout Editor

Using the Keyboard Layout Editor

Here we started with a blank layout; we click on Start Character Map, then locate the characters you need, and drag and drop them to the appropriate keys. Each key is composed of four parts, and we number these from 1 to 4. The way we count is quite peculiar,

  1. bottom left, when you press the key as is (key)
  2. top left, when you press the key with Shift (Shift + key)
  3. bottom right, when you press the key with AltGr (AltGr + key)
  4. top right, when you press the key with Shilft+AltGr (Shift + AltGr + key)
Analysis of a key

Analysis of a key

This is my entry to the most engineered diagram competition.

The dead keys relate to diacritic marks such as grave and acute. Since they are too small to see, we present them next to a D letter (D for Dead key). In some cases I could not find a character equivalent to the diacritic mark, so I put ?, therefore it looks like D?. If you put the mouse pointer over the key, you can see the full details in the tooltip.

Including files

Including files

In many cases, there exist layouts/variants that contain most of the characters you want to add. In this case, you add and enable in the Include files section. You can then override any of those characters by dragging and dropping to the layout.

At this stage in the blog post, it is important to clarify the notions of a layout and a variant. The two are quite similar and the distinction is messy when trying to explain to the end-user. The French layout file is fr, which contains several variants (distinct groups of mappings of physical keys to Unicode characters). When you are actually talking about a French keyboard layout, you are actually referring to the default variant of the «fr» file. Oftentimes people refer to the «fr» file as a whole as the French layout. You can also pick a non-default variant of the layout file, and call it your layout.

The way I would like to define layout and variant is this: a layout refers to the default variant of the layout file. This is consistent to the fact that distributions pick the default variant in the settings so it’s what get the most visibility, or when users select a new layout, they are presented with the default setting first. Regarding layouts in general, it is important for different languages/scripts to make effort that the default layout is updated and includes extra useful and relevant characters.

The new Greek keyboard layout

The new Greek keyboard layout

This is the updated Greek keyboard layout, and is the near-final version that we are planning to submit to xkeyboard-config. It adds Greek Polytonic to the existing Greek layout.  It does not make changes to the previous default layout, so users will not be unpleasantly surprised. It also adds all sort of characters that are found in the Greek Unicode block.

In this post I simplified some of the terms/description. If I went a bit too far, please correct me and I’ll update in-place.

Update 8th Sep 08: What are the plans for further development of the layout editor;

  • Increase the user base and get more people trying out the editor. This requires some more cleanup of the code, more instructions on how to run it youselves, and get people to provide feedback. An open-source project without users is not a successful project.
  • Make it easier for developers to contribute on the project. If you use Eclipse, you can install pydev, antlr3ide, mylyn, subclipse, and you can do the full development from within the cozy Eclipse environment. These need documentation.
  • The Issues page at the project has about ten items. This list needs to be reduced.
  • The natural place for users of the layout editor is the http://listserv.bat.ru/xkb/List.html mailing list. We need to promote the editor there, and get examples of users actually using it to maintain layouts.
  • An issue that plagues some users is when they need compose sequences to generate characters that no pre-composed forms exist. If users really need this (mainly Latin and Cyrillic scripts, complex scripts), it can be adapted to the UI.
  • It is technically easy to adapt the editor so that it produces XML layouts. Considering the state of XKB-atkins, this may not be a top priority at the moment. libxml2 comes with the MIT license, so in license terms it would be OK. Not sure if it is OK to link libxml2 to the X.org server. It might actually solve the slow parsing of the configurations files and the issues of xkbcomp.
  • At the moment the default geometry is a somewhat generic keyboard. In addition, I deactivated several keys (such as the function keys), in order not to confuse users (you can activate with a small change in the code). The keyboard can be expanded to a full 105-keys style. A related project would be to figure out an efficient way to edit those geometry files, and make the keyboard customised. If people start creating layouts with the editor, they will certainly love to edit geometry files!

Συνέδριο XOrg Developer Summit

Αυτές τις μέρες (αρχές Σεπτεμβρίου 2008) διεξάγεται το συνέδριο XOrg Developer Summit Εδιμβούργο της Σκωτίας.

Διαρκεί 3 μέρες και οι σημειώσεις περιγράφουν τι ειπώθηκε.

[Read more →]

We are back!

After a long hiatus (web-wise), this blog is back online.

We lost about two weeks worth of comments and blog posts. Ouch.

Now we are getting better with all this web hosting blog wordpress hosting web database blog thing.

If something is not working, please report ;-)

Practical UPnP in Linux

UPnP is a set of protocols that allow the automatic configuration of devices. One of those protocols, the Internet Gateway Device (IGD) protocol, allows software to configure routers for NAT traversal without user-intervention. In other words, with UPnP/IGD, the long and error-prone manual configuration for port-forwarding can be done automatically.

When tasks are done automatically, they are less visible to the user, and users are not comfortable that they are in charge of the process.

For the case of UPnP/IGD, we look into the open-source (LGPL) GUPnP library and the companion tool gupnp-universal-cp. You can install these from source (pick the packages gssdp, gupnp, gupnp-tools, and install in this order), or just install the package gupnp-tools from your package manager (for Debian and Ubuntu, these packages reside in Debian unstable).

Once you have installed the tool, you can start it from Application→Programming→UPnP Universal Control Point. This tool can be used for all things UPnP, however we focus on IGD here.

Once we start the UPnP Universal Control Point, we get the above screen. The tool sends discovery requests to the local network for UPnP-capable devices, and automatically the list gets populated. In the screenshot you can see that a router has been detected, and general information is shown.

If your router does not appear in the list and you are sure that UPnP is enabled on the device, then you might have hit on a known bug, Bug 1078 - Some devices may not work due to User-Agent field in requests. In this case, you need to make a minor edit in the source code and recompile.

Going through the available functions that the router exports, and allows to configure remotely.You can easily distinguish the functions that allow to perform port-forwarding. The one we have highlighted can be used to list the details of the currently active port-forwarding rulers. We right-click and select Invoke, which leads us to…

Action invocation in GUPnP Tool

We just pressed the Invoke button, and since there was a rule with Index 0, the details get filled in for us. Here we can see that Skype has opened a port-forwarding rule for us; when someone from the Internet is connected to port 18210 of this router, the network connection is mapped to the local system with IP address 192.168.1.67.  In the mapping description it shows that Skype was the program that set this rule.

You would normally increase the Mapping Index and click on Invoke, in order to see any additional port mappings. Skype generally opens a few more ports, so there is more to see.

For all the shortcommings, UPnP/IGD is an important network configuration protocol. Due to the lack of an open-source library, applications had to implement UPnP support from scratch. Now with GUPnP, it is much easier to write UPnP-enabled applications.

UPnP/IGD is very important for applications such as Ekiga, Pidgin (file transfers!), Empathy, XChat (for DCC). This has to be done in order to raise the bar in terms of connectivity, and so that it Just works.

«Εσείς, κύριέ μου, έχετε όρεξη για κουβέντα!» Ντρανκ!

Έχει έρθει το guerrila μάρκεντινγκ και στην Ελλάδα. Σε παίρνουν τηλέφωνο και σε πιέζουν να αγοράσεις ένα προϊόν ή μια υπηρεσία χρησιμοποιώντας πολλές επιθετικές τακτικές, μια από αυτές είναι ότι σε ξαφνιάζουν με το τηλεφώνημα και τη γρήγορη ροή του λόγου.

Έχω ακούσει ιστορίες για ηλικιωμένες κυρίες που επιλέγουν νέα συμβόλαια για το τηλέφωνο με 26 ευρώ το μήνα (περιλαμβάνει απεριόριστές κλήσεις) αντί του υπάρχοντος 14 ευρώ το μήνα (ΟΤΕ, 28 ευρώ το δίμηνο), ενώ τα τηλεφωνήματα που κάνουν είναι πολύ λιγότερο από 12 ευρώ (η διαφορά).

Όταν χτύπησε το τηλέφωνο, δεν το έπιασα εγώ. Μετά από λίγα λεπτά με παραξένεψε η σχετική ησυχία. Πάω να δω, «Λέει κάτι για το τηλέφωνο και το Ίντερνετ». Προσφέρομαι να συνεχίσω τη συνομιλία.

«Σας απαλάσσουμε από το πάγιο του ΟΤΕ. Με την υπηρεσία μας μπορείτε να παίρνετε τηλέφωνο δωρεάν στην Ελλάδα και το εξωτερικό. Ακόμα, σας βάζουμε και Ιντερνετ. Και πολλά άλλα, που σας τα λέω από το τηλέφωνο αλλά είμαι σίγουρη ότι δε θα τα θυμάστε όταν γράφεται την κατάντια μας στο ιστολόγιό σας.»

«Με ενδιαφέρει το κομμάτι για το Διαδίκτυο. Μπορείτε να μού πείτε περισσότερα;»

διαβάζει μερικές παραγράφους με τυπικές πληροφορίες, που φυσικά δεν μπαίνουν σε λεπτομέρειες

κάνω μερικές τεχνικές ερωτήσεις

κάνει προσπάθεια για απαντήσεις

«Μπορείτε να μου πείτε τι διαφορά έχει η υπηρεσία σας από άλλες παρόμοιες; Βλέπω ότι έχετε ακριβώς τις ίδιες τιμές. Γιατί να προτιμήσω εσάς;»

κάποια λεπτομέρεια που δεν θυμάμαι. Ας είναι καλά ο ΟΤΕ, δεν υπάρχει διαφοροποίηση παρά μόνο όταν το δίκτυο είναι ιδιόκτητο. (Λάθος, το δίκτυο ήταν ιδιόκτητο. Ακόμα και με ιδιόκτητο, το ίδιο αποτέλεσμα στις τιμές)

εδώ ρωτώ για το χρόνο που χρειάζεται για την ενεργοποίηση (δεν υπάρχει εγγύηση για το πότε θα λειτουργήσει η γραμμή), δεν υπάρχει εγγύηση για το πόσο χρόνο θα είναι η τηλεφωνική γραμμή εκτός λειτουργίας, δεν υπάρχει εγγύηση, δεν υπάρχει εγγύηση, …

«Ποια είναι η διαδικασία για να αγοράσω την υπηρεσία σας; Πως θα μάθω τις λεπτομέρειες του συμβολαίου;»

«Θα μου δώσετε τα στοιχεία σας και θα έρθει ο κούριερ να σας δώσει το συμβόλαιο να υπογράψετε»

«Είναι διαθέσιμο το συμβόλαιο για να το διαβάσω πιο νωρίς; Για παράδειγμα, κάποιος δικτυακός τόπος;»

«…»

«Εννοώ είναι διαθέσιμο το συμβόλαιο σε ηλεκτρονική μορφή στο Ίντερνετ;»

«Αα. Το συμβόλαιο θα το φέρει ο κούριερ. Μόνο ο κούριερ το έχει. Θα το δείτε εκείνη τη στιγμή.»

«Θα διαβάσω το συμβόλαιο όσο περιμένει ο κούριερ;»

«Ναι»

«Θα περιμένει ο κούριερ εμένα να διαβάσω το συμβόλαιο; Αν χρειάζομαι 20 με 30 λεπτά;»

«Τι λέτε τώρα; Ο κούριερ πάει σε 50 σπίτια την ημέρα. Σε 2 λεπτά μπορείτε να το ρίξετε μια ματιά και να το υπογράψετε!»

Όταν κάποιος λέει “Θα κάνω μισό λεπτό”, εννοεί ότι θα γυρίσει μετά από μισή ώρα ή περισσότερο. Όταν κάποιος λέει “Έχεις δύο λεπτά χρόνο”, εννοεί ότι 20 δευτερόλεπτα είναι το ανώτατο χρονικό όριο πριν πάρει το στυλό και σε πιέσει να υπογράψεις.

«Δεν έχω τη δυνατότητα να υπογράψω ένα συμβόλαιο που δεν έχω δει πριν, και που πρέπει να αφιερώσω τόσο λίγο χρόνο για να το διαβάσω.»

«Εσείς, κύριέ μου, έχετε όρεξη για κουβέντα!» Ντρανκ!

Γράμμα από τον κ. Μπιλ Γκέιτς #2

Μιλήσαμε πρόσφατα για ένα γράμμα από τον κ. Γκέιτς για να προστεθούν χαρακτηριστικά στα έγγραφα γραφείου που να κάνουν δύσκολη τη πρόσβαση από τρίτους κατασκευαστές.

Θα μιλήσουμε τώρα για ένα ακόμα γράμμα από τον κ. Γκέιτς για να προστεθούν χαρακτηριστικά στο BIOS των υπολογιστών ώστε να είναι δυσκολότερη η λειτουργία από τρίτα λειτουργικά συστήματα.

Email by Bill Gates to Microsoft to make ACPI misbehave for Linux

Email by Bill Gates to Microsoft to make ACPI misbehave for Linux

Μπορείτε να δείτε το πλήρες κείμενο από τα τεκμήρια της δίκης μεταξύ Comes και Microsoft, που έγινε στην Αμερική πριν από μερικά χρόνια.

Το κείμενο στα αγγλικά,

From: Bill Gates
Sent: Sunday, January 24, |999 8:41 AM
To: Jeff Westorinon; Ben Fathi
Cc: Carl Stork (Exchange); Nathan Myhrvofd; Eric Rudder
Subject: ACPI extensions

One thing I find myself wondering about is whether we shouldn’t try and make the “ACPI” extensions somehow Windows specific.

If seems unfortunate if we do this work and get our partners to do the work and the result is that Linux works great without having to do the work.

Maybe there is no way to avoid this problem but it does bother me.

Maybe we could define the APIs so that they work well with NT and not the others even if they are open.

Or maybe we could patent something relaled to this.

(πηγή: τεκμήριο δίκης μεταξύ Comes και Microsoft)

Το κείμενο στα ελληνικά (με ελεύθερη μετάφραση):

Από: Bill Gates
Στάλθηκε: Sunday, January 24, |999 8:41 AM
Προς: Jeff Westorinon; Ben Fathi
Αντιγραφή: Carl Stork (Exchange); Nathan Myhrvofd; Eric Rudder
Θέμα: ACPI extensions

Ένα πράγμα που με απασχολεί είναι το αν θα έπρεπε να κάνουμε τις επεκτάσεις ACPI να είναι ειδικές για Windows.

Φαίνεται να είναι ατυχής κατάσταση αν κάνουμε τη δουλειά και οι συνεργάτες μας κάνουν τη δουλειά, και το αποτέλεσμα είναι να δουλεύει στο Linux δίχως να χρειάζεται να κάνει τη δουλειά.

Ίσως να μην υπάρχει τρόπος να το αποφύγουμε, αλλά με απασχολεί το ζήτημα.

Ίσως να μπορούσαμε αν καθορίσουμε τα API ώστε να δουλεύουν καλά με NT και όχι με τους άλλους, ακόμα και αν είναι ανοιχτά.

Ή ίσως να μπορούσαμε να πατεντάρουμε κάτι σχετικό.

(πηγή: τεκμήριο δίκης μεταξύ Comes και Microsoft)

Είναι σημαντικό να προσέξουμε ότι το παραπάνω γράμμα δεν είναι τεκμήριο ότι η Μίκροσοφτ έκανε όντως τέτοιες ενέργειες. Ο κ. Γκέιτς ήταν εκείνο το διάστημα CEO της Μίκροσοφτ, και η δουλειά του ήταν να κατευθύνει την εταιρία. Οι δε υπάλληλοι δούλευαν στην κατεύθυνση του CEO.

Το μήνυμα που πρέπει να κρατήσουμε σε κάθε κατάσταση είναι ότι το παραπάνω γράμμα δείχνει τη συμπεριφορά της εταιρίας στο χώρο της πληροφορικής. Ως καταναλωτές, η συμπεριφορά αυτή είναι πολύ αρνητική.

Δείτε το άρθρο του Λευτέρη για ένα πρόβλημα χρήστη με τη μητρική του και το ACPI.

Layout editor keyboard

This is a screenshot of the keyboard for the layout editor. The keyboard is a widget which is composed of individual widgets of each key.

I did not use glade-3 for the keyboard at this time. Although it is possible to create custom widgets in Python and install them in Glade, the current distributed packages are missing something, thus it would be messy when others try to use the editor. It’s a good experience to do all by hand anyway.

When creating a layout, you drag and drop characters on the keyboard. The editor shows a table with characters though it would be possible to drag characters from gucharmap as well.

The next step is to get an intuitive UI so that when you drop a character on a key, the key expands (a popup appears) showing the available four positions to receive the character.

Éńĥãǹčīṅǧ·ẗḧë·ẃṛīťıñĝ·ṩụṗṗọṙẗ·ıń·ǦŤḰ+

These are the presentation slides of my talk on improving the writing support in GTK+. It relates to several posts I have in my other blog at http://blogs.gnome.org/simos/.

Enhancing the writing support in GTK+

Upgrading to Wordpress 2.6 and the white blank page

I just completed the upgrade of my blog to Wordpress 2.6. It took more time that I had anticipated. However, the process was quite educational.

I have upgraded before using the WordPress Auto Updated plugin. After a few clicks, your blog is updated. It is so easy that it is hard to resist. I tried WPAU in order to get to Wordpress 2.6, and the process was somewhat interrupted on the final stages. It was not clear what the problem was. The effect however was any access to any page of the blog would result to a blank page. No errors, no warnings whatsoever.

In terms of troubleshooting, it is really annoying not to have some sort of feedback. My visit to #wordpress at Freenode resulted in “oh dude, join the club”. Apparently, the blank page issue is common and it affects many users. I just noticed that Irene’s blog gives a blank page as well; I wonder if she upgraded recently.

There are a few blog posts that debate on the blank page issue; use blogsearch.google.com to find the most fresh of them. The typical blog post on the blank page issue has a standard format with the author dumping a laundry list of things they tried first before mentioning at the end of the post in vague terms what they think the source of the problem is. I will spare of the long list as we are already at the fourth paragraph of the post.

What I believe was the problem is the theme. When you use WPAU, it does not disable the theme since you are upgrading from within the Wordpress administration screen. Then, you end up with a new WordPress and a theme that crashes. If you are planning to try WPAU, it might be good to revert to a default theme first.

If you are reading this, then you probably messed up your blog already. You can change the theme using phpmyadmin, by altering the wp_options table. The option_names of interest are template, stylesheet and current_theme. Put default values here.

Overall it was quite educational to go through the details of installing WordPress, picking new theme, dumping old plugins and updating existing ones. What’s needed now is a full backup and hope the blog works until WordPress 3.0.

Code of conduct και ελληνικές κοινότητες ΕΛ/ΛΑΚ

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

Ένα πρόσφατο παράδειγμα είναι στη λίστα gnome-i18n, όπου ένας νέος μεταφραστής ήταν πολύ αρνητικός και προσβλητικός στη συμπεριφορά του απέναντι στο συντονιστή της συγκεκριμένης γλώσσας και άλλα άτομα που έλαβαν μέρος στη συζήτηση (=όπως εμένα!). Κατά τη συζήτηση, έγινε αναφορά στο λεγόμενο Code of conduct του GNOME, απλοί κανόνες καλής συμπεριφοράς. Αν θέλεις να συμμετέχεις στο GNOME, πρέπει να ακολουθείς τους κανόνες καλής συμπεριφοράς. Εννοείται ότι ο καθένας που λαμβαίνει μέρος στην ανάπτυξη του GNOME ακολουθεί τους κανόνες αυτούς· ωστόσο μπορεί κάποιος και να υπογράψει ότι ακολουθεί τους κανόνες. Το ίδιο συμβαίνει με την κοινότητα του Ubuntu Linux όπου ο χρήστης μπορεί να υπογράψει ψηφιακά το Code of Conduct με το κλειδί του, και να λάβει το χαρακτηρισμό Ubuntero.

Στην ελληνική πραγματικότητα δεν έχουμε φτάσει ακόμα σε τέτοια επίπεδα και η κατάσταση είναι σχεδόν ad-hoc. Αναφερθήκαμε πρόσφατα στο πρόβλημα με το φόρουμ Linux του Adslgr.com.Ένα πράγμα που θεωρώ πολύ σημαντικό είναι ότι πρέπει να υπάρχει σεβασμός και τήρηση των τυπικών κανόνων καλής συμπεριφοράς. Παλαιότερα που έβλεπα τη λίστα LGU, παρατηρούσα ότι υπήρχαν συχνές «παραβάσεις», με αποτέλεσμα να επικρατεί αρνητικό κλίμα, να μην βγαίνουν αποτελέσματα στις συζητήσεις, ο καθένας να προσπαθεί να κάνει τον έξυπνο και να «την βγει» στον άλλο, και ουσιαστικά να γίνεται κακό στην κοινότητα, στους νέους χρήστες. Για τώρα δεν γνωρίζω, έχω την εντύπωση ότι τα πράγματα δεν έχουν καλυτερέψει σημαντικά. Είδα την πρόσφατη συζήτηση στην LGU για το σχολιασμό της μετάφρασης από ΕΛΟΤ των θεμελιωδών όρων πληροφορικής. Πολλά άτομα απάντησαν, ωστόσο στη συζήτηση αυτή δεν παρατήρησα κάποιο χειροπιαστό αποτέλεσμα.

Ένα άλλο πρόσφατο παράδειγμα είναι με αυτό το γράμμα στη λίστα public@hellug.gr. Ανεξάρτητα αν έχει δίκιο ή όχι ο αποστολέας, το γράμμα αυτό είναι από τα πιο τυπικά για να κάνει μια συζήτηση να αποσυντονιστεί. Ο δε αποστολέας του γράμματος δεν είναι νέος χρήστης· είναι μέλος της κοινότητας πάνω από δέκα χρόνια. Αντί να έχει την ωριμότητα να κλείσει το θέμα, το ανοίγει περισσότερο.

Βλέπω αυτό το εχθρικό περιβάλλον να διαιωνίζεται σε συγκεκριμένες κοινότητες, με μικρές ελπίδες για αλλαγή.

Προσωπικά αφιερώνω χρόνο στο φόρουμ του ελληνικού Ubuntu, στο http://ubuntu.opengr.net/ όπου υπάρχει έντονη προσπάθεια να έχουμε ένα θετικό περιβάλλον. Βλέπουμε να έχουμε αποτελέσματα, και να γίνονται μέλη περισσότεροι νέοι χρήστες της διανομής. Το ίδιο θετικό περιβάλλον υπάρχει στη λίστα του Ubuntu-gr.

Αντιγράφω εδώ τους κανόνες καλής συμπεριφοράς του GNOME,

Advice

  • Be respectful and considerate:
    • Disagreement is no excuse for poor behaviour or personal attacks. Remember that a community where people feel uncomfortable is not a productive one.
  • Be patient and generous:
    • If someone asks for help it is because they need it. Do politely suggest specific documentation or more appropriate venues where appropriate, but avoid aggressive or vague responses such as “RTFM”.
  • Assume people mean well:
    • Remember that decisions are often a difficult choice between competing priorities. If you disagree, please do so politely.
    • If something seems outrageous, check that you did not misinterpret it. Ask for clarification, but do not assume the worst.
  • Try to be concise:
    • Avoid repeating what has been said already. Making a conversation larger makes it difficult to follow, and people often feel personally attacked if they receive multiple messages telling them the same thing.

Keyboard layout editor UI concept

(click for bigger image)

At the top we select the keyboard layout file, the variant, and set the corresponding verbose name.

The keyboard layout editor shows a standard keyboard, where each keyboard key can show up to four levels. When you select a key, the bottor-left window shows the characters that have been set (here we use four levels). In this bottom-left window we can drag and drop characters (from Unicode blocks) and dead keys that are found from the right of the image. Dead keys are shown in red boxes.

The user is also able to include existing keyboard layout files in the current layout.

At this stage I am thinking how to easily draw the keyboard in a PyGTK application. It would be important not to draw it manually. It would be cool to have a GTK+ keyboard key widget, that you can specify the size, and the text that appears on it, then build a keyboard in Glade. Another option would be to have the basic keyboard as an SVG file (already exists), then draw over it with Cairo. I am inclined for the second option.