Bonjour

Je viens de tilter sur le fait que dans LibreOffice Calc, lorsque j'entre un séparateur du pavé numérique, un point s'affiche.

Or l'aide de Libreoffice indique:Touche séparateur de décimales - Identique à l'environnement linguistique
Spécifie que la touche séparateur de décimales définie dans votre système sera utilisée lorsque vous appuierez sur la touche correspondante du clavier numérique.

Si cette option est cochée, le caractère qui s'affiche après "Identique à l'environnement linguistique" est inséré lorsque vous appuyez sur la touche du clavier numérique. Si cette option n'est pas cochée, le caractère inséré est celui que fournit le logiciel de votre pilote de clavier.
Chez moi cette option est bien cochée et d'origine. J'ai donc vérifié les indications de "locale":
$ locale -k LC_NUMERIC
decimal_point=","
thousands_sep=""
grouping=3
numeric-decimal-point-wc=44
numeric-thousands-sep-wc=8239
numeric-codeset="UTF-8"
Le séparateur décimal prévu est bien la virgule.

Éventuellement je peux mapper le caractère, mais je ne sais pas faire. Quelqu'un aurait-il déjà réglé ce détail ?

Merci
Bonjour,

Chez moi c'est aussi un point, mais dans le pays où je suis c'est normal.

Par contre, je viens d'essayer de mettre en: Français - Français (azerty)
Et j'ai toujours un point comme séparateur décimal, dans tous les programmes où j'ai regardé.

Ayant plutôt une tendance à devoir changer la "," en "." sur les systèmes que j'utilise ou configure (va savoir pourquoi sur certains systèmes, ils pensent ou font pression pour faire croire que c'est la virgule que nous utilisons comme séparateur),
je ne sais pas si sur un clavier azerty c'est marqué comme symbole un "." ou une ","

(en tout cas sur une image dans le GUI, c'est un "." 🙂 )

EDIT:


En faite, même en prenant en_DK.utf8, qui a une "," pour les décimales aussi, cela me met un point depuis le pad num (en changeant LC_NUMERIC).
https://lh.2xlibre.net/values/decimal_point/

Peut-être que si avec toutes les config de langues, cela met un ".", qu'il y a peut-être une possibilité que cela ait été mis dans le code du pilote ou autre ?
Vérification faite, le séparateur décimal du pavé numérique renvoie bien le code 59. C'est vrai dans toutes les applis graphiques mais aussi dans les consoles virtuelles ce que je viens de tester.

Je vais remonter le bug à tout hasard.
Chez moi j'ai un keycode 91 ("."), si je mets en fr_FR, depuis le séparateur décimal du pad num.
Oui le numéro de la touche est bien 91 et elle renvoie le code ascii 59 le point.

xev me renvoie ça. En tous cas ce n'est pas la virgule qui a la code 44.
    state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES,
    XKeysymToKeycode returns keycode: 129
    XLookupString gives 1 bytes: (2e) "."
je patauge et en plus précédemment la même commande me renvoyait le code 59 qui est aussi un point.
C'est intéressant et bizarre 🙂

Chez moi:

fr_CH:
KeyPress event, serial 38, synthetic NO, window 0x3400001,
    root 0x4e4, subw 0x3400002, time 408393451, (62,50), root:(933,513),
    state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES,
    XKeysymToKeycode returns keycode: 129
    XLookupString gives 1 bytes: (2e) "."
    XmbLookupString gives 1 bytes: (2e) "."
    XFilterEvent returns: False
fr_FR:
KeyPress event, serial 38, synthetic NO, window 0x3400001,
    root 0x4e4, subw 0x3400002, time 408230919, (41,37), root:(912,500),
    state 0x10, keycode 91 (keysym 0xffae, KP_Decimal), same_screen YES,
    XKeysymToKeycode returns keycode: 129
    XLookupString gives 1 bytes: (2e) "."
    XmbLookupString gives 1 bytes: (2e) "."
    XFilterEvent returns: False
Et chez moi, en fr_FR et fr_CH (bien que sur une touche différente), j'ai le keycode 58 pour la ",":
KeyPress event, serial 38, synthetic NO, window 0x3400001,
    root 0x4e4, subw 0x3400002, time 408600841, (51,33), root:(922,496),
    state 0x10, keycode 58 (keysym 0x2c, comma), same_screen YES,
    XLookupString gives 1 bytes: (2c) ","
    XmbLookupString gives 1 bytes: (2c) ","
    XFilterEvent returns: False
Mais ça ne vient peut-être pas du pilote comme je le pensais, car la touche est mappé sur: KP_Decimal
(et en faite, le keycode 91 ne semble pas être pour le ".", qui a le keycode 60, mais pour le séparateur décimal)

Donc c'est le système qui devrait appliquer le "." ou la ",", en fonction de la locale, mais je ne connais pas trop bien son fonctionnement (XKeysymToKeycode, XLookupString , XmbLookupString ?)
Ca ressemble à une recherche de quel caractère metttre à KP_Decimal, et XKeysymToKeycode semble seulement visible sur un Kxxxx.

EDIT:

Si je lance cette commande, la touche me met bien une "," :
setxkbmap -option '' -option kpdl:comma
et un "." avec:
setxkbmap -option '' -option kpdl:dot
On peut remarquer qu'avec kpdl:comma,le Kxxxx change de KP_Decimal à KP_Separator qui a toujours le keycode 91, mais 0xffac à la place de 0xffae (et donc 2c à la place de 2e dans les lookup), et le state 0x2010 ?:
KeyPress event, serial 38, synthetic NO, window 0x3400001,
    root 0x4e4, subw 0x3400002, time 410856603, (48,49), root:(919,512),
    state 0x2010, keycode 91 (keysym 0xffac, KP_Separator), same_screen YES,
    XLookupString gives 1 bytes: (2c) ","
    XmbLookupString gives 1 bytes: (2c) ","
    XFilterEvent returns: False
qui n'a pas non plus la ligne: XKeysymToKeycode returns keycode: 129
Et comme les 2 ont le keycode 91, c'est pas ça le problème ? (je ne connais pas le lien avec le keycode 129)

Il faudrait déterminer ce qui place le "keysym 0xffae, KP_Decimal" ou le "keysym 0xffac, KP_Separator" avec les commandes plus haut.

EDIT2:


Et en faite, j'ai pas trop regardé les autres touches, mais il n'y a peut-être que KP_Decimal qui fait un XKeysymToKeycode
Je sais pas si ça peut aider:

Si dans les options linguistique (outils > options > langues) je decoche la case "identique au paramètre de la locale" (qui d'ailleurs présente bien le virgule). Et que je saisis au clavier normale "=21,5*2" (avec la virgule du clavier normal), ça donne une erreur (car pour cacl, c'est pas un nombre). Si je met "=21.5*2" là ça comprend. Donc je suppose que l'option fonctionne bien. Bref je recoche la case pour bien qu'il comprenne la virgule comme le séparateur décimal, et je cherche à faire comprendre à l'interface graphique que le "." du pavé numérique doit donner une virgule.

Du coup je trouve ça dans Gnome Tweak, "Clavier & Souris" > Options supplémentaires d'agencement puis "Comportement de la touche de Suppr. du pavé numérique" et je choisis Touche obsolète avec virgule. Maintenant le . du pavé numérique me donne bien une virgule. (ce qui doit correspondre au xetxkbmap du kpdl:comma mais ici en persistent).
Sur Mate, il y a aussi ce genre de possibilité, mais par défaut (le choix défaut), cela fait ce problème.
(qui ne semble pas avoir de: identique au paramètre de la locale")

Mais merci d'avoir spécifié que c'était mis sous "Suppr." et pas "séparateur décimal".
(c'est vrai qu'il y a un "Del" en dessous du point sur le pad num)

EDIT:

Et il faut déjà savoir ce que c'est une touche à 3 ou 4 niveaux 🙂
(ou séparateur décimal momayyez ou abstrait)

Ah... combinaison avec [Shift] ou [Alt Gr]
Ce qui fait que les autres choix fonctionnent aussi, mais différemment.

La "touche à 4 niveaux avec virgule", donne une "," par défaut, et "." avec [Alt Gr] + touche Decimal, sur tous les agencements il semblerait.
Et l'inverse avec: "touche à 4 niveaux avec point"
Qui a touché à ma machine ??

Je sors dîner, donc je n'ai touché à rien et au retour ce ¹{#`|`@ de point numérique est bien compris comme virgule par Calc alors que ce matin j'y ai passé 2 heures ? J'ai juste rajouté une disposition de clavier que je n'ai même pas activée.

Pour info oui cf post #1 j'ai commencé par vérifier les réglages Options de LibreOffice. Donc à présent Calc interprète bien le séparateur décimal mais celui-ci reste un point ailleurs que dans Libreoffice.
J'ai toujours eu ce problème de point avec mon clavier numérique. Si tu as une solution, je la prend.
winmandrake wrote:J'ai toujours eu ce problème de point avec mon clavier numérique. Si tu as une solution, je la prend.
Post #7 ?
Heldwin wrote:
winmandrake wrote:J'ai toujours eu ce problème de point avec mon clavier numérique. Si tu as une solution, je la prend.
Post #7 ?
C'est ce que j'ai fait, via ajustements : touche obsolète.
7 jours plus tard
Je confirme la solution de modification d'agencement du clavier par le choix de la version "obsolète" (Cette solution était déjà la plus simple sous ubuntu il y a longtemps)


http://brenta.free.fr/IMG/png/calc55.png
J'ai abandonné la version obsolète car je n'avais plus le œ
Sous kde j'ai modifié un peu le clavier.
locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC=cv_RU.UTF-8
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
Ainsi j'ai le point dans la calculette. Mais ça pose un problème dans calc de Loo car le point n'est pas reconnu comme séparateur décimal.
J'ai, en ce qui me concerne sous Gnome :
uname -rv
5.1.6-300.fc30.x86_64 #1 SMP Fri May 31 17:43:23 UTC 2019

locale
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY=fr_FR.UTF-8
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER=fr_FR.UTF-8
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT=fr_FR.UTF-8
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=
et, dans Utilitaires/Ajustements/Clavier&souris/Options supplémentaires
Comportement de la touche de Suppr. du pavé numérique réglée sur « Touche à quatre niveaux avec le séparateur décimal abstrait ».

Résultats :
LibreOffice avec « Touche de séparateur décimal » sur Identique au paramètre de la locale qui donne la virgule dans tous les modules ;
Utilitaires/Calculatrice utilise la virgule ;
emacs utilise le point.

Cordialement,
Jean-Charles