Προς το περιεχόμενο

Slackware: δεν μπορώ να βάλω τόνους σε pure console


jsmith6

Προτεινόμενες αναρτήσεις

Έκανα τις ρυθμίσεις ώστε να μπορώ να δω Greek UTF-8 σε text files (less, cat, vim).

 

Φόρτωσα το ελληνικό πληκτρολόγιο με

 

>loadkeys gr-pc.map.gz

 

και με alt+shift μπορώ να γράψω στα Ελληνικά. Όμως δεν μπορώ να βάλω τόνους. Όταν πατάω το ; δεν γίνεται τίποτα αλλά την επόμενη φορά που θα πατήσω space μου βγάζει και ένα '.

 

Βρήκα το gr-utf8.kmap.gz (σε μία λίστα Debian) αλλά και πάλι δεν μπορώ να βάλω τόνους. Αυτή την φορά όμως όταν πατάω το ; μου δίνει απλά ένα ;.

 

Καμιά ιδέα;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι, υπήρχε/υπάρχει περιορισμός με τα dead keys όταν η κονσόλα είναι σε unicode mode, ωστόσο σε μένα είχε δουλέψει αυτό.

 

Πιο distro-agnostic οδηγίες:

 

  1. Βεβαιώνεσαι ότι το σύστημα έχει UTF-8 locales:
    ># [color="Green"]locale[/color]


    Αν δεν έχει, τα ορίζεις, π.χ.:

    >export LC_CTYPE="el_GR.utf8"
    export LC_NUMERIC="el_GR.utf8"
    export LC_TIME="el_GR.utf8"
    export LC_COLLATE="el_GR.utf8"
    export LC_MONETARY="el_GR.utf8"
    export LC_MESSAGES="en_US.utf8"
    export LC_PAPER="el_GR.utf8"
    export LC_NAME="el_GR.utf8"
    export LC_ADDRESS="el_GR.utf8"
    export LC_TELEPHONE="el_GR.utf8"
    export LC_MEASUREMENT="el_GR.utf8"
    export LC_IDENTIFICATION="el_GR.utf8"


     

  2. Βρίσκεις κάποιο translation table από 8859-7 σε utf8. Σε διαφορετικές διανομές μπορεί να παρέχεται από διαφορετικό πακέτο και να έχει διαφορετικό όνομα. Στο Gentoo π.χ. παρέχεται από το kbd και βρίσκεται στο /usr/share/consoletrans/8859-7_to_uni.trans. Αν δε το βρίσκεις μπορείς να το κατεβάσεις από εδώ.
     
     
  3. Ομοίως για κάποιο font iso8859-7 (συνήθως iso07.*.*, όπου * οτιδήποτε). Στο Gentoo π.χ. είναι στο /usr/share/consolefonts/iso07.16.gz. Αν δεν το βρίσκεις μπορείς να το κατεβάσεις από εδώ.
     
     
  4. Ομοίως για keyboard mapping για iso-8859-7, το οποίο συνήθως ονομάζεται gr.map*. Στο Gentoo π.χ. είναι στο /usr/share/keymaps/i386/qwerty/gr.map.gz. Αν δεν το βρίσκεις μπορείς να το κατεβάσεις από εδώ.
     
     
  5. Από το Virtual Terminal που θέλεις να χρησιμοποιήσεις (π.χ. στο πρώτο μπορείς να πας με ctrl+alt+f1):
     
     
    1. Βάζεις τον keyboard driver σε Unicode mode (πιθανότατα τον έχει βάλει ήδη κάποιο script της διανομής):
      ># [color="Green"]kbd_mode -u[/color]


       

    2. Λες στο terminal ότι θα χρησιμοποιείς UTF-8 encoding (πιθανότατα του το έχει πει ήδη κάποιο script της διανομής):
      ># [color="Green"]echo -ne "\033%G" > `tty`[/color]


       

    3. Φορτώνεις τα αρχεία font, translation table και keyboard mapping στους σχετικούς drivers:
      ># [color="Green"]setfont [color="Orange"] /path/to/font[/color] -u [color="Orange"]/path/to/translation_table[/color][/color]
      # [color="Green"]loadkeys [color="Orange"]/path/to/keyboard_mapping[/color][/color]

(αντικαθιστάς τα πορτοκαλί γράμματα με την τοποθεσία και το όνομα των συγκεκριμένων αρχείων)

 

  • Κάθε διανομή έχει δικά της scripts και configuration files για να αυτοματοποιεί την επιλογή και την εκτέλεση των παραπάνω εντολών, δε ξέρω το debian 5 που τα έχει, αλλά αν δεν τα βρίσκεις μπορείς να τα αγνοήσεις και να εκτελείς τις εντολές κατά το login με κάποιο δικό σου script το οποίο θα ελέγχει αν βρίσκεσαι σε Virtual Terminal (και άρα αν χρειάζεται να τις τρέξει). Π.χ. θα μπορούσες να βάλεις στο /etc/profile κάτι σαν:
     
>[color="Green"]if  [[ `tty` = /dev/tty[0-12] ]]; then

[indent]kbd_mode -u
echo -ne "\033%G" > `tty`
setfont [color="Orange"] /path/to/font[/color] -u [color="Orange"]/path/to/translation_table[/color]
loadkeys [color="Orange"]/path/to/keyboard_mapping[/color][/indent]

fi[/color]

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Έκανα τις ρυθμίσεις ώστε να μπορώ να δω Greek UTF-8 σε text files (less, cat, vim).

 

Φόρτωσα το ελληνικό πληκτρολόγιο με

 

>loadkeys gr-pc.map.gz

 

και με alt+shift μπορώ να γράψω στα Ελληνικά. Όμως δεν μπορώ να βάλω τόνους. Όταν πατάω το ; δεν γίνεται τίποτα αλλά την επόμενη φορά που θα πατήσω space μου βγάζει και ένα '.

 

Βρήκα το gr-utf8.kmap.gz (σε μία λίστα Debian) αλλά και πάλι δεν μπορώ να βάλω τόνους. Αυτή την φορά όμως όταν πατάω το ; μου δίνει απλά ένα ;.

 

Καμιά ιδέα;

 

Το greek-utf8 χρησιμεύει στο consoletools που χρησιμοποιεί το debian και είναι

νομίζω παλαιότερο. Δεν σου χρειάζεται για το kbd. Σε wide mode δεν παίζουν

τα dead keys. Παλαιότερα είχα βρει ένα patch που είχε γίνει rejected και έπαιζε

αλλά δεν ξέρω κατά πόσο μπορεί να μπει σε τωρινό πυρήνα.

 

Επίσης να χρησιμοποιείς τον gr map και όχι τον gr-pc.

 

Πιο distro-agnostic οδηγίες:

Βρίσκεις κάποιο translation table από 8859-7 σε utf8. Σε διαφορετικές διανομές μπορεί να παρέχεται από διαφορετικό πακέτο και να έχει διαφορετικό όνομα. Στο Gentoo π.χ. παρέχεται από το kbd και βρίσκεται στο /usr/share/consoletrans/8859-7_to_uni.trans. Αν δε το βρίσκεις μπορείς να το κατεβάσεις από εδώ.

 

Ομοίως για κάποιο font iso8859-7 (συνήθως iso07.*.*, όπου * οτιδήποτε). Στο Gentoo π.χ. είναι στο /usr/share/consolefonts/iso07.16.gz. Αν δεν το βρίσκεις μπορείς να το κατεβάσεις από εδώ.

 

># [color="Green"]setfont [color="Orange"] /path/to/font[/color] -u [color="Orange"]/path/to/translation_table[/color][/color]
[/quote]

Πολύ καλός οδηγός.

Στο Slackware είναι στο /usr/share/kbd/consoletrans. Εκτός από αυτή τη λύση όμως
μπορεί να χρησιμοποιηθεί το font iso07u-16 το οποίο έχει ενσωματωμένο unicode
mapping οπότε δεν χρειάζεται unimap.

[quote name='nske']
Βάζεις τον keyboard driver σε Unicode mode (πιθανότατα τον έχει βάλει ήδη κάποιο script της διανομής):
[code]# [color="Green"]kbd_mode -u[/color]

 

Λες στο terminal ότι θα χρησιμοποιείς UTF-8 encoding (πιθανότατα του το έχει πει ήδη κάποιο script της διανομής):

># [color="Green"]echo -ne "\033%G" > `tty`[/color]

 

Από 2.6.24 πυρήνα και έπειτα, η μανίσια κατάσταση είναι utf8 οπότε αν δεν

έχει επιλεγεί στον lilo/grub vt.default_utf8=0, τότε τα παραπάνω δύο δεν χρειάζονται.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εκτέλεσα όλες τις εντολές που μου πρότεινες με ένα script. Την πρώτη φορά χρησιμοποίησα τα αρχεία από που είχε η διανομή μου:

 

>#!/bin/sh

export LC_CTYPE="el_GR.utf8"
export LC_NUMERIC="el_GR.utf8"
export LC_TIME="el_GR.utf8"
export LC_COLLATE="el_GR.utf8"
export LC_MONETARY="el_GR.utf8"
export LC_MESSAGES="en_US.utf8"
export LC_PAPER="el_GR.utf8"
export LC_NAME="el_GR.utf8"
export LC_ADDRESS="el_GR.utf8"
export LC_TELEPHONE="el_GR.utf8"
export LC_MEASUREMENT="el_GR.utf8"
export LC_IDENTIFICATION="el_GR.utf8"

kbd_mode -u

echo -ne "\033%G" > `tty`

setfont /usr/share/kbd/consolefonts/iso07.16.gz -u /usr/share/kbd/consoletrans/8859-7_to_uni.trans

loadkeys gr.map.gz

 

και την δεύτερη φορά αυτά που μου έδωσες εσύ:

 

>#!/bin/sh

export LC_CTYPE="el_GR.utf8"
export LC_NUMERIC="el_GR.utf8"
export LC_TIME="el_GR.utf8"
export LC_COLLATE="el_GR.utf8"
export LC_MONETARY="el_GR.utf8"
export LC_MESSAGES="en_US.utf8"
export LC_PAPER="el_GR.utf8"
export LC_NAME="el_GR.utf8"
export LC_ADDRESS="el_GR.utf8"
export LC_TELEPHONE="el_GR.utf8"
export LC_MEASUREMENT="el_GR.utf8"
export LC_IDENTIFICATION="el_GR.utf8"

kbd_mode -u

echo -ne "\033%G" > `tty`

setfont  iso07.16.gz -u 8859-7_to_uni.trans

loadkeys gr.map.gz

 

Επίσης να χρησιμοποιείς τον gr map και όχι τον gr-pc.

 

Με κανέναν από τους δύο δεν μπόρεσα να βάλω τόνους.

 

imitheos, λες πως αλλιώς θα μπορούσα να το κάνω αλλά δεν καταλαβαίνω ακριβώς πως και τι. Εσύ, έτσι, μπορείς να βάλεις τόνους;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

 

Με κανέναν από τους δύο δεν μπόρεσα να βάλω τόνους.

 

imitheos, λες πως αλλιώς θα μπορούσα να το κάνω αλλά δεν καταλαβαίνω ακριβώς πως και τι. Εσύ, έτσι, μπορείς να βάλεις τόνους;

 

Όχι δεν μπορώ να βάλω.

 

Από όσο έχω προσέξει, όλα τα διαθέσιμα patch έχουν ενσωματωθεί στον

πυρήνα και στο πακέτο kbd.

 

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=759448f459234bfcf34b82471f0dba77a9aca498

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=04c71976500352d02f60616d2b960267d8c5fe24

Μια αρχική υποστήριξη που υπήρξε πρώτη φορά στον 2.6.23 και υποστήριξη

για τα διακριτικά που μπήκε στον 2.6.24

 

Αυτά όμως δεν παίζουν για multibyte πλήκτρα συνδυασμών. (Το αποτέλεσμα

μπορεί να είναι multibyte). Δηλαδή αν τα πλήκτρα που αποτελούν τον συνδυασμό

καταλαμβάνουν μόνο 1 byte (όπως τα latinX, τα γαλλικά, τα τσέχικα κτλ) τότε

λειτουργεί μια χαρά. Σε εμάς που τα πλήκτρα καταλαμβάνουν 2 bytes δεν λειτουργεί.

 

Το παράξενο είναι ότι αν βάλεις printf στον κώδικα του loadkeys θα δεις

ότι η μετατροπή σε unicode λειτουργεί κανονικά και στα πλήκτρα συνδυασμού

και στο πλήκτρο αποτέλεσμα.

 

Προφανώς, θα έχει αλλάξει κάτι από τότε που το κοίταξα τελευταία φορά, γιατί

ο nske αναφέρει ότι τα κατάφερε να γράψει.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αρχειοθετημένο

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

  • Δημιουργία νέου...