ergosteur / cf-keylayout

Clavier Canadien-Français pour Mac OS X
175 stars 31 forks source link

Comportement avec les accents #29

Closed simoncouture closed 3 years ago

simoncouture commented 3 years ago

Bonjour, d'abord merci pour le repo, je commence à utiliser un mac, et c'est surprenant que le clavier canadien français ne soit pas disponible d'entrée de jeu. J'utilise toujours le clavier canadien français, je l'utilise sur Windows où il apparait sous le nom "French (Canada) - Canadian French" ainsi que sur différentes distributions Linux (Centos, Ubuntu) où il apparait sous le nom "French (Canada)". Une différence que je remarque avec ce layout pour Macos est que lorsque on entre un accent, par exemple "^", avec ce clavier macOS on obtient tout de suite le caractère "^", qui se transforme par exemple en "ê" si on appuie sur la touche "e". Or sur Windows et Linux, le comportement est de ne pas générer de caractère si on appuie sur "^", et de seulement générer un caractère lorsqu'on appuie sur un touche subséquente, par exemple "ê" si la touche subséquente est "e", "^f" si la touche subséquente est f, ou "^" si la touche subséquente est espace. Avec ce layout Macos, si j'appuie sur "^" suivi de la touch espace, j'obtiens "^ ", ce qui est différent du "^" attendu. J'utilise souvent "^" comme shortcut, et je suis habitué à faire "^" + espace pour l'obtenir.

Une façon d'obtenir ce comportement est d'enlever la section "terminators" dans cf.keylayout et d'ajouter une action pour la touche espace, par exemple:

        <action id="space">
             <when state="none" output=" " />
                     <when state="grave" output="&#x60;" />
                     <when state="circumflex" output="&#x5e;" />
                     <when state="trema" output="&#xa8;" />
                     <when state="cedille" output="&#xb8;" />
                </action>

mais ça ne règle pas le problème du cas "^" + n'importe quelle autre touche, par exemple "^" + "f", qui devrait donner "^f" après avoir appuyé sur "f" et rien après avoir appuyé sur "^". Personnellement je n'utilise pas ce genre de combinaison et mon problème était uniquement avec la combinaison "^" + espace.

joallard commented 3 years ago

Complètement d'accord, je faisais circonflèxe-espace-backspace avant aussi, et justement j'ai ajouté le raccourci Shift+^ (qui produit le caractère ^ simplement) pour l'usage. (Tu l'as peut-être vu, c'est dans le Readme 😉)

Du côté de la touche disons "préliminaire", je pense qu'il s'agit d'un comportement plateforme-spécifique d'afficher l'accent souligné pour indiquer visiblement que c'est l'état dans lequel on se trouve. Je suis pas au courant que ça soit possible de composer ex. ê sans ce comportement. (Ça s'appelle en anglais les dead keys il me semble)

Si je tape ^, f, chez moi, j'obtiens: ^f.

Finalement, l'idée du accent+espace pour donner simplement l'accent est intéressante, parce qu'effectivement, si on modifiait une espace avec un accent circonflèxe, on obtiendrait ^. J'accepterais une PR en ce sens.

simoncouture commented 3 years ago

Intéressant ce comportement d'afficher l'accent souligné, est-ce que c'est propre à macOS, ça existe pour d'autres languages de clavier? Parce que sur Linux et windows, je n'ai jamais vu ça.

Je vais préparer une PR pour le comportement accent + espace

simoncouture commented 3 years ago

J'ai créé une PR avec l'action "space", tout en conservant la section "Terminators". Personnellement je n'aime pas voir les accents soulignés entre la frappe de l'accent et la frappe suivante, donc j'ai viré la section Terminators dans mon fork et je vis avec le fait que le comportement n'est pas identique à Linux et Windows lorsque je fais par exemple '^' + 'f' (sur Linux / Windows donne '^f', avec mon fork donne 'f').