C'est mon premier message!!
J'ai le même problème de clavier donc j'ai regardé ce que je pouvais faire avec AppleScript. Voilà ma solution qui supprime les claviers indésirables et remet donc le clavier dans notre langue.
Se script sera à enregistrer en tant que application et sera à mettre dans l'ouverture au démarrage pour qu'il s'éxécute à l'ouverture la session.
Il ne semble pas possible de joindre un fichier AppleScript alors voici le contenu de mon script à mettre manuellement dans un nouveau script dans "éditeur de script" (du dossier "AppleScript" du dossier "Applications") + quelques infos à la fin:
------------------------Début du script:
set mesLanguesIndesirables to {"Américain", "Allemand"} --Ajouter des langues si besoin. N'oubliez pas les espaces si besoin et les guillemets et la virgule de séparation (majuscules/minuscules sans importance). EXEMPLE: {"Américain", "Allemand","Français - numérique","Palette de caractères","Visualiseur clavier"}
tell application "System Events" --application spéciale permettant de gérer des éléments du système
activate
if UI elements enabled then --Vérification de l'option "Activer l'accès pour les périphériques d'aide" située dans les préférences "Accès universel" des "Préférences système
".
tell application "System Preferences"
set current pane to pane "com.apple.Localization" --les préférences "International"
end tell
tell tab group 1 of window 1 of process "System Preferences" --on active ce groupe pour plus de clarté dans le script. Evite d'avoir ensuite à dire où se trouve l'élément sur lequel on agît à chaque fois.
click radio button 3 -- On click sur le bouton (ici, un onglet en fait), à savoir "Menu saisie"
--if value of checkbox 1 = 1 then click checkbox 1 --ACTIVER cette ligne si on ne veut pas «Afficher le menu saisie dans la barre de menus». (ce désactive automatiquement si une seule langue est sélectionnée, c'est pourquoi je n'ai pas mis cette ligne par défaut)
end tell
tell table 1 of scroll area 1 of tab group 1 of window 1 of process "System Preferences" --le tableau affichant toutes les configurations de clavier
repeat with i from 1 to 50 --augmenter le chiffre "50" si on utilise énormément de langues!!! Mais me semble déjà bien trop élevé!!!
if (value of checkbox of row i = {1}) then --si la case est cochée
if (title of UI element 2 of row i is in mesLanguesIndesirables) then --si le nom de la langue fait partie des mes langue indésirables, on la décoche:
set selected of row i to true --Sélection de la ligne à changer
click checkbox of row 0 --Click sur la case à cocher concernée.
end if
else --Arrêt car pas d'autre langue sélectionnée (si l'utilisateur a bien trié le tableau sur la colonne "Active")
exit repeat
end if
end repeat
end tell
quit application "System Preferences" --Fermeture des "préférences système
"
else --L'option n'est pas active donc affichage de l'erreur à l'utilisateur:
display dialog "Pour que ce script fonctionne, il est nécessaire d'activer la fonction \"Activer l'accès pour les périphériques d'aide\" située dans les préférences \"Accès universel\" des \"Préférences système
\". " & return & return & "Il vous faudra relancer ce script" with icon stop buttons {"Ouvrir \"Accès universel\"", "OK"} default button 2
if the button returned of the result is "Ouvrir \"Accès universel\"" then
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.universalaccess"
display dialog "Cochez la case \"Activer l'accès pour les périphériques d'aide\" (en bas de la fenêtre) et relancez le script." buttons {"OK"} default button 1
end tell
end if
end if
end tell
---------------------Fin du script
Description:
"Fait pour" et "testé uniquement sur" Panther (Mac OS 10.3.9), le 2 avril 2006, par JC002 (Julien Chassaing)
Fonction: Supprime les langues du clavier indésirables, pour palier au bug qui fait que "aléatoirement" le clavier se met en "Américain", ou autre. Par défaut, j'ai mis "Américain" et "Allemand".
Attention: Dans l'onglet "Menu saisie" des préférences "International" de "Préférences système
", la liste des «configurations de clavier» doit être triée sur la colonne "Activité", les cases cochées en premier. (Le script regarde les lignes une à une, et cesse de s'exécuter dès qu'une case n'est pas cochée pour éviter de vérifier tout le contenu et donc de ralentir le script).
Procédure: Ajouter ce script à «ouverture automatique à l'ouverture de session» dans onglet "Démarrage" de la préférence "Comptes" de "Préférences système
".
Avantages: évite à l'utilisateur de le faire à la main.
Inconvénients:
- Lent à s'exécuter car ouvre réellement la préférence "International" et décoche une à une les langues non désirées par l'utilisateur.
- De plus, je n'ai pas trouvé (ni même vraiment cherché) un moyen de vérifier si le clavier actuellement sélectionné est correct ou pas. S'il l'était, il n'y aurait alors pas besoin d'ouvrir les préférences, d'exécuter entièrement le script.
- Désactive les langues non désirées et ne fait pas que re-sélectionner le français. (pas trouver comment faire!!)
Info fonctions:
set selected of row i to true --Sélection de la ligne à changer. Obligatoire pour agir sur cette ligne!!! Un peu bizarre!
click checkbox of row 0 --Click sur la case à cocher concernée. Peu importe le n° de ligne; c'est la ligne sélectionnée qui est concernée (mais on doit tout de même préciser un n° de ligne sinon ça ne fonctionne pas!).
Pour enregistrer le script en tant que application: Faire "Enregistrer sous..." du menu fichier puis choisir le format "Application", et veiller à ce qu'aucune case ne soit cochée. Il s'éxécutera ainsi imméditement en double-cliquant dessus et vous pourrez rééditer le script en l'ouvrant via l'éditeur de script.
Info sur mon mac: Je n'ai ce bug qu'avec mes autres session (pas ma session principale). Je n'utilise pas d'autres langues que le clavier en français.
Si certains d'entre vous sont motivés, ils peuvents trouver une solutions pour que le script soit plus rapide. Je ne suis pas un expert des scripts alors ??? Amoins que la lenteur soit dû à mon Mac pas tout jeune!
Si vous avez des remarques...