Σάββατο 24 Νοεμβρίου 2007

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


Ένα από τα σπαστικά του Leopard είναι η κατάργηση της επιλογής "Allow a different input source for each document" ή κάπως έτσι τέλωσπαντων. Τι έκανε αυτό το μπαρμπαδέλι; Σου επέτρεπε π.χ. να γράφεις το mail σου στα Ελληνικά και παράλληλα να απαντάς σε ένα forum στο Safari στα Αγγλικά, χωρίς να αλλάζεις τη γλώσσα εσύ. Η διαδικασία αυτή γινόταν αυτόματα.
Εγώ χρησιμοποιώ τα Αγγλικά στο 90% των περιπτώσεων, ενώ έχω μια βάση δεδομένων στο Filemaker στα Ελληνικά, που ανανεώνω σε καθημερινή βάση. Όποτε πολλές φορές εναλλάσω στο Ελληνικό πληκτρολόγιο για να γράψω μια πρόταση και μετά ξεχνάω τα Ελληνικά και όταν πάω να γράψω π.χ. μια URL στο Safari, γράφω Ελληνικά και μέχρι να το καταλάβω είναι αργά.
Έφαγα το διαδίκτυο να βρώ μια λύση γιατί αυτό το πράγμα μου συμβαίνει συνέχεια τώρα τελευταία. Η μόνη λύση είναι η Applescript και ο κώδικας που μου ψιλοέλυσε το πρόβλημα είναι αυτός:

on switch_keyboard to keyboard_layout at menu_position
tell application "System Events" to tell menu bar item menu_position of ¬
menu bar 1 of application process "SystemUIServer" to if exists then
click (* open menu *)
tell menu item keyboard_layout of menu 1 to if exists then return click
cancel (* operation failed: close menu *)
end if
beep (* indicate that a failure occurred *)
error number -128 (* cancel script execution *)
end switch_keyboard
repeat
set menu_position to 3 (* η θέση του text input εικονιδίου στο μενού bar, αλλάξτε το με το δικό σας νούμερο, ξεκινώντας από αριστερά προς τα δεξιά*)
switch_keyboard at menu_position to "U.S."
delay 120 (* η διαδικασία αλλαγής στα Αγγλικά ανανεώνεται κάθε 120 δευτερόλεπτα. Βάλτε εσείς τον δικό σας χρόνο *)
end repeat

Για να δουλέψει αυτή η Applescript, πρέπει να ενεργοποιήσετε το Enable Access for Assistive Devices στο System Preferences / Universal Access. Μετά ανοίξτε το Script Editor στο /Applications/Applescript φάκελο και κάντε τον παραπάνω κώδικα copy paste (προσέξτε τα page breaks). Τρέξτε το να δείτε ότι δουλεύει, παραμετροποιήστε τον χρόνο επανάληψης και την θέση του text input εικονιδίου στο μενού bar (δείτε στα comments του κώδικα) και σώστε το σαν Application Bundle με όποιο όνομα σας αρέσει. Το αποτέλεσμα είναι μια εφαρμογή που μπορείτε να την έχετε να τρέχει μονίμως και να σας αλλάζει τη γλώσσα αυτόματα πίσω στα Αγγλικά.
Υπόψιν ότι το μεγαλύτερο μέρος του κώδικα δεν είναι δικό μου, μιας και από Applescript δεν σκαμπάζω και πολλά. Ξέρω επίσης ότι αυτό που μόλις έγραψα είναι πολύ geeky και δύσκολα να ενδιαφέρει κάποιον, αλλά εμένα μου έλυσε μια ανάγκη / πρόβλημα.

[ΕΝΗΜΕΡΩΣΗ]: Τελικά βρήκα μια καλύτερη λύση στο πρόσωπο μιας εφαρμογής που κάνει περίπου αυτό που θέλω. Είναι δωρεάν και λέγεται SwitchToUS και σας επιτρέπει να ορίζετε ποιές εφαρμογές θέτε default να γυρνάνε στο Αγγλικό πληκτρολόγιο (π.χ. Safari). Τα καλά νέα είναι ότι δουλεύει μια χαρά. Τα άσχημα νέα είναι ότι για να δουλέψει στο Leopard χρειάζεται να εγκαταστήσετε μια άλλη εφαρμογή πρώτα, επίσης δωρεάν, το Plugsuit, που στην ουσία ενεργοποιεί όλους τους Input Managers που σας απενεργοποίησε το Leopard. Επίσης το SwitchToUS δουλεύει μόνο σε εφαρμογές γραμμένες σε Cocoa και όχι σε carbon (όπως Finder, Firefox κλπ). Πάντως είναι μια πιο καθαρή λύση από την παραπάνω Applescript και σας την συνιστώ. Παραδείγματος χάριν μου 'λυσε τα χέρια στην περίπτωση του Quicksilver που αν έχεις Ελληνικό πληκτρολόγιο και το καλέσεις, δυσκολεύεσαι να το γυρίσεις στο Αγγλικό πληκτρολόγιο.

Δεν υπάρχουν σχόλια: