Hits : 4600


Greek On Archlinux


Αυτός ο οδηγός μας παρουσιάσει πως μπορούμε να ρυθμίσουμε το σύστημά μας, ώστε να μπορούμε να εναλλάσσουμε το πληκτρολόγιό μας και σε ελληνικά.

hal 


Πλέον οι περισσότερες διανομές χρησιμοποιούν το hal ως ενδιάμεσο layer μεταξύ του kernel και του hardware.
Αυτό πρακτικά σημαίνει ότι τα περιφερειακά αναγνωρίζονται από το hal μέσω του dbus. Αυτό πρακτικά σημαίνει ότι το xorg χρησιμοποιεί το hal κι όχι το xorg.conf
για να δει τόσο τις συσκευές, όσο και τις ρυθμίσεις μας.


top


The old way 


Άρα οι εξής δηλώσεις στο xorg:


Section "InputDevice"
        Identifier      "Generic Keyboard"
        Driver          "kbd"
        Option          "CoreKeyboard"
        Option          "XkbRules"      "xorg"
        Option          "XkbModel"      "pc105"
        Option          "XkbLayout"     "us,el"
        Option          "XkbOptions"    "grp:alt_shift_toggle,compose:menu,grp_led:scroll"
EndSection


δεν λειτουργούν, παρά μόνο εάν προσθέσουμε στο τέλος του αρχείου το εξής section:


Section "ServerFlags"
	Option         "AutoAddDevices" "false"
EndSection


Γεγονός που πλέον ΔΕΝ συνιστάτε και καλό θα είναι να το αποφεύγουμε.


top


Hal Policy


Ο νέος τρόπος είναι μέσω του hal.
Το hal για να αποφύγει διάφορες αυτόματες διαδικασίες και φυσικά κάποια security issues ρυθμίζεται μέσω αρχείων που ορίζουν την πολιτική για τις συσκευές που αναγνωρίζει.
Στην δική μας περίπτωση θέλουμε να ορίσουμε ένα policy ώστε όταν αναγνωρίζει το πληκτρολόγιο να μπορούμε να γυρνάμε και στα ελληνικά.


Τι κάνουμε;
Ως διαχειριστές τα παρακάτω βήματα:

Βήμα Α 


Αντιγράφουμε το αρχείο /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi στην εξής διαδρομή: /etc/hal/fdi/policy/


Αυτό γίνεται με της εξής εντολή:


cp /usr/share/hal/fdi/policy/10osvendor/10-keymap.fdi /etc/hal/fdi/policy/


top


Βήμα Β 


Στην συνέχεια επεξεργαζόμαστε το αρχείο προσθέτοντάς του, τους extra κανόνες που είχαμε στο παρελθόν στο xorg.conf


Από έτσι:


<merge key="input.xkb.layout" type="string">us</merge>
      <merge key="input.xkb.variant" type="string" />


πρέπει να γίνει έτσι:


<merge key="input.xkb.layout" type="string">us,el</merge>
      <merge key="input.xkb.options" type="string">grp:alt_shift_toggle,compose:menu,grp_led:scroll</merge>
      <merge key="input.xkb.variant" type="string" />


Ένα πλήρες έτοιμο αρχείο είναι αυτό:


<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keymap">
      <append key="info.callouts.add" type="strlist">hal-setup-keymap</append>
    </match>
 
    <match key="info.capabilities" contains="input.keys">
      <merge key="input.xkb.rules" type="string">base</merge>
 
      <!-- If we're using Linux, we use evdev by default (falling back to
           keyboard otherwise). -->
      <merge key="input.xkb.model" type="string">keyboard</merge>
      <match key="/org/freedesktop/Hal/devices/computer:system.kernel.name"
             string="Linux">
        <merge key="input.xkb.model" type="string">evdev</merge>
      </match>
 
      <merge key="input.xkb.layout" type="string">us,el</merge>
      <merge key="input.xkb.options" type="string">grp:alt_shift_toggle,compose:menu,grp_led:scroll</merge>
      <merge key="input.xkb.variant" type="string" />
 
    </match>
  </device>
</deviceinfo>

top


Βήμα Γ 


Βεβαιωνόμαστε ότι έχουμε τερματίσει το Xorg και βρισκόμαστε σε κονσόλα.
Πάλι ως διαχειριστές γράφουμε:


/etc/rc.d/hal restart


ή εάν χρησιμοποιούμε κάποια άλλη διανομή (κακώς):


/etc/init.d/hal restart


top


locales


Με τα παραπάνω βήματα έχουμε προσθέσει την δυνατότητα της εναλλαγής γλώσσας στην διανομή μας.
Αλλά πριν ξεκινήσουμε όλα τα παραπάνω πρέπει να είμαστε σίγουροι ότι έχουμε ενεργοποιήσει τα ελληνικά
στην διανομή μας.

Έλεγχος


Για να ελέγξουμε τι γλώσσες έχουμε στην διανομή μας, ανοίγουμε ένα τερματικό και πληκτρολογούμε: locale -a


Εάν έχουμε το παρακάτω αποτέλεσμα, τότε ΔΕΝ έχουμε ελληνικά.


C
POSIX
en_US
en_US.iso88591
en_US.utf8


Ενεργοποίηση Ελληνικών


Άρα χρειάζεται να ενεργοποιήσουμε τα ελληνικά. Αυτό γίνεται αφαιρώντας τον χαρακτήρα του σχολίου (# δίεση ή αλλιώς και κάγκελο) από το αρχείο: /etc/locale.gen


Πριν:


#el_GR.UTF-8 UTF-8  
#el_GR ISO-8859-7


Μετά:


el_GR.UTF-8 UTF-8  
el_GR ISO-8859-7

Δημιουργία


Απλά ως διαχειριστές τρέχουμε την εξής εντολή:


#locale-gen


και το αποτέλεσμά της θα είναι κάπως έτσι:


Generating locales...
  el_GR.UTF-8... done
  el_GR.ISO-8859-7... done
  en_US.UTF-8... done
  en_US.ISO-8859-1... done
Generation complete.


Την επόμενη φορά που θα πληκτρολογήσουμε: locale -a
θα πρέπει να μας δείξει ένα αποτέλεσμα περίπου σαν κι αυτό:


C
POSIX
el_GR
el_GR.iso88597
el_GR.utf8
en_US
en_US.iso88591
en_US.utf8
greek

Προκαθορισμένο περιβάλλον


Εάν θέλουμε να ορίσουμε τα ελληνικά ως προκαθορισμένη γλώσσα στην διανομή μας,
τότε χρειάζεται να επεξεργαστούμε κατάλληλα το εξής αρχείο: /etc/rc.conf
ώστε να περιέχει την εξής δήλωση:


LOCALE="el_GR.utf8"


top


The New Greek Way (2010.06.21)


Τις τελευταίες ημέρες τα πράγματα άλλαξαν στο Xorg και πλέον εκτός του udev, οι δικές μας ρυθμίσεις πρέπει να αποθηκεύονται στον εξής κατάλογο:


/etc/X11/xorg.conf.d/


Το archlinux έχει ήδη προβεί σε αναβάθμιση όλων των απαραίτητων πακέτων κι έτσι "εμείς" πρέπει να αλλάξουμε λίγο τις συνήθειές μας.


Έτσι λοιπόν πλέον η αλλαγή της γλώσσας ΔΕΝ γίνεται πλέον μέσω hal, οπότε χρειάζεται να επιβεβαιώσουμε ότι το συγκεκριμένο αρχείο είτε δεν υπάρχει, είτε έχει μετονομαστεί:


Στην δική μου περίπτωση έγινε έτσι:


/etc/hal/fdi/policy/.10-keymap.fdi


Και δημιουργούμε το νέο αρχείο:


/etc/X11/xorg.conf.d/10-keyboard.conf


με το εξής περιεχόμενο:


Section "InputClass"
	Identifier	"Generic Keyboard"
	MatchIsKeyboard	"yes"
	Option		"CoreKeyboard"
	Option		"XkbRules"	"xorg"
	Option		"XkbModel"	"pc105"
	Option		"XkbLayout"	"us,el"
	Option		"XkbOptions"	"grp:alt_shift_toggle,compose:menu,grp_led:scroll"
EndSection


top


startx


Πλέον είμαστε έτοιμοι να εκκινήσουμε το γραφικό μας περιβάλλον με την εντολή: startx
Εάν ΔΕΝ έχουμε δημιουργήσει το xorg.conf πιθανά να μας παράγει ένα αυτόματα για την συγκεκριμένη συνεδρία μας.
Αλλιώς ρίχνουμε μια ματιά εδώ: xorg


top