Forum bépo

Forum des utilisateurs du bépo

Vous n'êtes pas identifié(e).

#1 28/1/2016 13:11:30

pedrogaza
Membres
Inscription : 16/11/2011
Messages : 4

Séparateur décimale sur le pavé numérique

Bonjour,

Je suis en bépo depuis quelques années maintenant, et je suis assez satisfait de cette disposition, sauf peut-être pour les raccourcis claviers, et pour le séparateur décimale.
En effet la touche à côté du zéro sur le pavé numérique inscrit un point, au lieu d'une virgule. Sur un clavier français c'est un comble.
Y a-t-il moyen de changer cela ?
C'est très pénible lorsque on fait de la saisie numérique dans un tableur, il faut aller chercher la virgule en plein milieu du clavier.
Évidemment, il est hors de question pour moi d'utiliser le point comme séparateur décimal...

Merci de vos astuces.

Hors ligne

#2 28/1/2016 23:57:22

bobo38
Membres
Inscription : 10/4/2013
Messages : 164

Re : Séparateur décimale sur le pavé numérique

ton soucis c'est pour windows ou linux ?

En tout cas, j'étais persuadé que ça pouvait se régler (sous Linux) dans les paramètres linguistiques de libreoffice… et bah non ! Tu m'en apprends… Après fouille j'arrive à faire des virgules en faisant « AltGr + Séparateur du pavé numérique ».

Ma démarche de fouille

Je fouille dans les symbols de xkb. Sur ma distrib linux c'est /usr/share/X11/xkb/symbols/fr

$ grep -A 3 bepo /usr/share/X11/xkb/symbols/fr
xkb_symbols "bepo" {

    include "level3(ralt_switch)"
    include "keypad(oss)"
--
xkb_symbols "bepo_latin9" {

    // Restricts the fr(bepo) layout to latin9 symbols

    include "fr(bepo)"
    include "keypad(oss_latin9)"

    name[Group1]="French (Bepo, ergonomic, Dvorak way, Latin-9 only)";

On voit le include « keypad(oss) ». Partons la recherche de « oss ».

$ grep -A 6 '"oss"' /usr/share/X11/xkb/symbols/keypad
xkb_symbols "oss" {

    include "keypad(core)"
    include "keypad(ossmath)"
    include "keypad(ossnumber)"
    include "kpdl(dotoss)"
};

Dans ce fichier /usr/share/X11/xkb/keypad on a l'air de trouver pas mal de merdier pour la gestion des pavés numériques.

$ grep -A 9 '"ossmath"' /usr/share/X11/xkb/symbols/keypad
xkb_symbols "ossmath" {

    key.type[Group1]="CTRL+ALT" ;

    key <KPDV> { [   KP_Divide, 0x1002215, 0x10000F7, VoidSymbol,     XF86_Ungrab ] }; // / ∕ ÷     <XF86_Ungrab>
    key <KPMU> { [ KP_Multiply, 0x10022C5, 0x10000D7, VoidSymbol,  XF86_ClearGrab ] }; // * ⋅ ×  <XF86_ClearGrab>
    key <KPSU> { [ KP_Subtract, 0x1002212, 0x1002212, VoidSymbol, XF86_Prev_VMode ] }; // - − − <XF86_Prev_VMode>

    key <KPAD> { [      KP_Add, 0x100002B, 0x100002B, VoidSymbol, XF86_Next_VMode ] }; // + + + <XF86_Next_VMode>
};

On se rapproche : on voit ici que 2 autres symboles de divisision sont accessibles avec les modificateurs Shift et AltGr. Pas de symbole pour « Shift+AltGr ». Ça c'est pour les opérations, pas pour les séparateurs. La dernière ligne « include "kpdl(dotoss)" » a l'air prometteuse, c'est dans un autre fichier.

$ grep -A 5 '"dotoss"' /usr/share/X11/xkb/symbols/kpdl
xkb_symbols "dotoss" {

    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;

    key <KPDL> { [ KP_Delete, period, comma, 0x100202F ] }; // <delete> . , ⍽ (narrow no-break space)
};
Là où ça se passe dans xkb

On touche au but, la syntaxe est tout de même étrange. Après avoir vu ça j'arrive à faire des virgules avec le séparateur du clavier numérique en faisant « AltGr + Séparateur ». En examinant plus en détail le fichier on trouve ce passage au tout début:

$ head -n 13 /usr/share/X11/xkb/symbols/kpdl
// The <KPDL> key is a mess.
// It was probably originally meant to be a decimal separator.
// Except since it was declared by USA people it didn't use the original
// SI separator "," but a "." (since then the USA managed to f-up the SI
// by making "." an accepted alternative, but standards still use "," as
// default)
// As a result users of SI-abiding countries expect either a "." or a ","
// or a "decimal_separator" which may or may not be translated in one of the
// above depending on applications.
// It's not possible to define a default per-country since user expectations
// depend on the conflicting choices of their most-used applications,
// operating system, etc. Therefore it needs to be a configuration setting
// Copyright © 2007 Nicolas Mailhot <nicolas.mailhot @ laposte.net>

Ça apporte pas mal d'infos sur l'historique des séparateurs décimaux en informatique. Le soucis étant que le pour les langages de programmation le séparateur décimal c'est le point. Effectivement tout dépend du contexte. Ma foi si la virgule est accessible en faisant « AltGr + Séparateur » ça me va.

Un bout de solution

Si tu utilises une distrib linux, ou quoique ce soit utilisant X, tu peux te bricoler une config BÉPO inversant le comportement. Tu peux même t'appuyer sur l'infrastructure en place:

$ grep -A 5 '"commaoss"' /usr/share/X11/xkb/symbols/kpdl
xkb_symbols "commaoss" {

    key.type[Group1]="FOUR_LEVEL_MIXED_KEYPAD" ;

    key <KPDL> { [ KP_Delete, comma, period, 0x100202F ] }; // <delete> , . ⍽ (narrow no-break space)
};

Basé là-dessus, il serait possible de faire une variante de BÉPO « commaoss », avec xkbcomp.

Dernière modification par bobo38 (29/1/2016 00:00:27)


pour la frappe à l'aveugle, l'idéal c'est de poser ça sur son bureau : l'aide mémoire BÉPO (à plier en 3)

Hors ligne

#3 29/1/2016 01:41:20

bobo38
Membres
Inscription : 10/4/2013
Messages : 164

Re : Séparateur décimale sur le pavé numérique

Je suis parvenu à faire la manip' avec xkbcomp, je documente ça demain.


pour la frappe à l'aveugle, l'idéal c'est de poser ça sur son bureau : l'aide mémoire BÉPO (à plier en 3)

Hors ligne

#4 29/1/2016 13:04:42

tazzon
Maître du Dactylotest
Inscription : 8/12/2009
Messages : 159

Re : Séparateur décimale sur le pavé numérique

Je m'en accommode au quotidien mais c'est vrai que ce serait plus pratique.
C'est une idée comme ça qui me passe par la tête, mais on peut peut-être aussi demander le support de cette fonctionnalité dans libreoffice.
Je l'utilise au boulot sur Windows et à la maison sur Archlinux. Sur Arch, ta solution est bonne mais sur Win c'est mort.

---

Il y a fort longtemps, du temps où j'utilisais openoffice, il y avait une extension qui s'appelait Oovirg (ou un truc du genre) qui permettait de faire ça.

Dernière modification par tazzon (29/1/2016 13:06:44)


Des outils pour apprendre, se perfectionner et se tester en dactylographie.
Dactylotest - Trydactyl - Bépodactyl

Hors ligne

#5 29/1/2016 13:26:19

Fork Bomb
Admin
Inscription : 12/8/2009
Messages : 232

Re : Séparateur décimale sur le pavé numérique


Message tapé en Bépo avec un TypeMatrix 2030 USB smile
They see me trollin', they hatin'

Hors ligne

#6 29/1/2016 13:54:09

bobo38
Membres
Inscription : 10/4/2013
Messages : 164

Re : Séparateur décimale sur le pavé numérique

Ça n'aide pas, car celà ne change pas l'interprétation de la touche « séparateur décimal » sad Je pense que X de toute façon renvoie un truc hardcodé soit « point » soit « virgule » (je ne suis pas sûr).

Inversement, pour avoir le point comme séparateur décimal, avec des paramètres locaux « Français (France) » c'est impossible. Il faudrait changer les « paramètres locaux » à un truc Anglais(qqch), du coup tu te tapes les dates en dates MM/JJ/AAAA (ce qui est une horreur si tu dois bosser avec des dates).

Pour obtenir ce comportement pour Windows, il est possible d'utiliser ce sujet épinglé : http://forum.bepo.fr/viewtopic.php?id=32 Je ne sais pas si c'est bricolé le keypad est possible avec ça.


Marche à suivre avec xkbcomp:

– modifier à votre guise, le comportement des dispositions de clavier avec son environnement de bureau ou sa méthode favorite (on part du principe que ce n'est pas une version préhistorique)
– créer un répertoire travail et copier le fichier qui contient la disposition bépo et le modifier

mkdir <repertoire>
cd <repertoire>
mkdir symbols
cp /usr/share/X11/symbols/fr symbols
<editeur_favori> symbols/fr 

– récupérer la config xkb actuelle

setxkbmap -print > monxkb

– utiliser xkbcomp

xkbcomp -w 0 -I<repertoire> monxkb $DISPLAY

ou

xkbcomp -w 0 -I. monxkb $DISPLAY

On peut obtenir l'effet escompté par l'ajout de « include kpdl(commaoss) » après de « include keypad… » fonctionne :

$ grep -C 4 'kpdl(commaoss)' xkb_mod/symbols/fr
xkb_symbols "bepo" {

    include "level3(ralt_switch)"
    include "keypad(oss)"
    include "kpdl(commaoss)"

    name[Group1]= "French (Bepo, ergonomic, Dvorak way)";

    // First row
À lancer à chaque démarrage

Pour que cela soit persistant, il faut lancer la dernière ligne xkbcomp à chaque démarrage (gare aux chemins de fichiers). L'alternative étant de figer le truc dans un .xkm (même commande sans « $DISPLAY » et de lancer « xkbcomp monxkb.xkm ».

Dernière modification par bobo38 (29/1/2016 13:55:39)


pour la frappe à l'aveugle, l'idéal c'est de poser ça sur son bureau : l'aide mémoire BÉPO (à plier en 3)

Hors ligne

#7 29/1/2016 14:06:20

pedrogaza
Membres
Inscription : 16/11/2011
Messages : 4

Re : Séparateur décimale sur le pavé numérique

Un grand merci pour votre réactivité ! Je suis en effet sous Linux, et je vais essayer ça ce soir. Ça m'a l'air un peu compliqué quand même pour un truc « de base »...

Hors ligne

#8 29/1/2016 15:30:49

Laurent
Membres
Inscription : 9/8/2009
Messages : 708
Site Web

Re : Séparateur décimale sur le pavé numérique

Bonjour,

pedrogaza a écrit :

Ça m'a l'air un peu compliqué quand même pour un truc « de base »...

En effet…

En me basant sur les informations récoltées méthodiquement par bobo38, je te propose :

setxkbmap fr bepo kpdl:comma

S’il te fallait d’autres options (que t’affiches la commande setxkbmap -print actuellement ?), il te faudrait les séparer par des virgules (mais pas d’espace) :

setxkbmap fr bepo kpdl:comma,terminate:ctrl_alt_bksp
bobo38 a écrit :
À lancer à chaque démarrage

À lancer à chaque ouverture de session.

Et là, on tombe sur le souci de comment lancer une commande à l’ouverture de session.
Les environnements graphiques décents permettent de spécifier des logiciels à lancer à chaque session (encore faut-il trouver où ça se règle). Il suffit alors de mettre la commande dans un fichier nommé par exemple clavier_numerique :

#!/bin/sh
setxkbmap fr bepo kpdl:comma

de le rendre exécutable :

chmod +x clavier_numerique

et de l’ajouter dans les logiciels à lancer.

Cependant, si tu es le seul utilisateur de la machine, tu peux ajouter directement l’option là où est définie la disposition clavier générale (sauf erreur, /etc/default/keyboard sur Debian et Ubuntu, dans un des fichiers de /etc/X11/xorg.conf.d ou dans /etc/X11/xorg.conf pour les autres Linux).

Je peux peut-être te donner des indications plus précises si de ton côté, tu précises ta distribution Linux et ton environnement graphique.

Dernière modification par Laurent (29/1/2016 18:23:57)

Hors ligne

#9 29/1/2016 16:04:50

Fork Bomb
Admin
Inscription : 12/8/2009
Messages : 232

Re : Séparateur décimale sur le pavé numérique

$HOME/.profile ?


Message tapé en Bépo avec un TypeMatrix 2030 USB smile
They see me trollin', they hatin'

Hors ligne

#10 29/1/2016 17:18:48

Laurent
Membres
Inscription : 9/8/2009
Messages : 708
Site Web

Re : Séparateur décimale sur le pavé numérique

Fork Bomb a écrit :

$HOME/.profile ?

C’est lancé à l’ouverture de session (pour peu que l’utilisateur ait un shell de type Bourne Shell, pas csh ou tcsh, sinon il faut utiliser $HOME/.login)… mais pas spécialement graphique.

Je verrais deux soucis possibles.

– Si on ouvre une session en mode texte (sur une des consoles texte, comme Ctrl-Alt-F2 ou par ssh), ça causera une erreur. Ce n’est pas hyper grave et ça peut s’éviter avec un test approprié :

[ -n "$DISPLAY" ] && setxkbmap fr bepo kpdl:comma

– Si on lance l’interface graphique depuis une session texte avec startx, il y a de bonnes chances que le .profile ne soit pas réexécuté après le démarrage de l’interface graphique, donc soit inopérant ; mais bon, peu de personnes procèdent ainsi de nos jours.

Bon, je n’ai pas essayé, mais s’il n’y a pas de possibilité au niveau de l’environnement graphique, c’est à tenter.

Par contre, mieux vaut ne pas faire d’erreur dans le .profile, sous peine de ne plus pouvoir du tout ouvrir de session !

Hors ligne

#11 29/1/2016 22:19:06

damien thiriet
Membres
Lieu : Varsovie
Inscription : 2/9/2010
Messages : 143
Site Web

Re : Séparateur décimale sur le pavé numérique

@Pedrogaza: l’information clef, c’est surtout de savoir quel est ton gestionnaire de connexion. En général, ils lisent le fichier .xinitrc à l’ouverture, mais ce n’est pas toujours le cas (apparemment pour GDM, le gestionnaire de bureau de GNOME, c’est .xprofile, il faut donc faire au cas par cas). Le mieux est que tu regardes dans tes fichiers cachés si tu as un fichier de type .xinitrc, .xprofile etc. Je suppose que tu n’as rien créé à la main.
C’est là que tu devras rajouter la ligne

setxkbmap fr bepo kpdl:comma

Pas besoin donc de créér un script et de le rendre executable. Avant de modifier ce fichier, prends tes précautions en lisant dans un bon wiki (par exemple Arch ou Gentoo) l’article sur ton gestionnaire de fenêtre


TM 2030, bépo depuis 2010
Open BSD - pdksh - ratpoison + dmenu + tmux + st - Vim - zathura ou mupdf - imv ou sxiv - keynav
ma page du wiki

Hors ligne

#12 30/1/2016 01:08:14

Laurent
Membres
Inscription : 9/8/2009
Messages : 708
Site Web

Re : Séparateur décimale sur le pavé numérique

Laurent a écrit :

En me basant sur les informations récoltées méthodiquement par bobo38, je te propose :

setxkbmap fr bepo kpdl:comma

En fait, il y a mieux. Pour changer uniquement le séparateur décimal du pavé numérique, sans affecter les autres réglages :

setxkbmap -option kpdl:commaoss

commaoss, par rapport à comma tout court, permet d’avoir le point en AltGr, en cas de besoin, et l’espace insécable fine en Maj+AltGr, si on veut écrire des nombres avec les milliers séparés par des espaces.

Et pour revenir à la normale (c’est-à-dire, pour la disposition Bépo, le point en verrouillage numérique, la virgule en AltGr et l’espace insécable fine en Maj+AltGr) :

setxkbmap -option

Avec le défaut que cette commande efface toutes les options.
Si on en avait une autre avant (voir avec setxkbmap -print), il faut pour la remettre faire par exemple :

setxkbmap -option -option terminate:ctrl_alt_bksp
damien thiriet a écrit :

@Pedrogaza: l’information clef, c’est surtout de savoir quel est ton gestionnaire de connexion. En général, ils lisent le fichier .xinitrc à l’ouverture, mais ce n’est pas toujours le cas (apparemment pour GDM, le gestionnaire de bureau de GNOME, c’est .xprofile, il faut donc faire au cas par cas).

Bonne idée, c’est surtout ce qui devrait être proposé sur le wiki pour les problèmes de composition de caractères.

Par contre, .xinitrc, c’est plutôt pour les sessions complètes, y compris le gestionnaire de fenêtres. Certains gestionnaires de connexion proposent une session utilisateur en plus des environnements graphiques, et c’est normalement si on fait ce choix qu’ils exécutent ce fichier.

.xprofile est plutôt utilisé pour lancer quelques commandes avant un environnement graphique, donc c’est normalement lui qu’il faut utiliser.

Par contre, du coup, un environnement graphique intrusif comme Gnome, qui charge systématiquement ses propres réglages clavier, écrasera sûrement les modifications faites auparavant.
Donc il peut être nécessaire de lancer la modification du clavier en tâche de fond avec une temporisation (j’ai mis cinq secondes au pif ; à tester) :

{ sleep 5; setxkbmap fr bepo kpdl:comma; } &
damien thiriet a écrit :

Le mieux est que tu regardes dans tes fichiers cachés si tu as un fichier de type .xinitrc, .xprofile etc.

.xprofile n’est pas forcément créé s’il est absent.
L’idée est donc de le créer si nécessaire et de voir à l’essai s’il est pris en compte.

Dernière modification par Laurent (30/1/2016 12:01:06)

Hors ligne

#13 1/2/2016 17:07:00

pedrogaza
Membres
Inscription : 16/11/2011
Messages : 4

Re : Séparateur décimale sur le pavé numérique

Bon ben merci @Laurent pour la petite commande

setxkbmap fr bepo kpdl:comma

J'utilise Mate, donc il y a un outil pour lancer des commandes au démarrage, et celle-ci à rapidement trouvé sa place.

Je me demandais quand même, quelle est la logique d'avoir laissé un point sur cette touche plutôt qu'une virgule ? Est-ce pour limiter les changements ?

pierre

Hors ligne

#14 1/2/2016 17:09:51

bobo38
Membres
Inscription : 10/4/2013
Messages : 164

Re : Séparateur décimale sur le pavé numérique

Je suppose qu'il s'agit d'un truc de programmeur… Mais c'est vrai qu'avec le point sous l'index, je n'utilise plus le séparateur de décimal (tiens donc, maintenant que j'y pense, est-ce que j'utilise le pavé numérique ?)

Ensuite au vu du code dans les fichiers XKB, il s'agit d'un réutilisation de la gestion du keypad de fr(oss) qui a été un gros progrès par rapport à l'accessibilité.

Dernière modification par bobo38 (1/2/2016 17:11:14)


pour la frappe à l'aveugle, l'idéal c'est de poser ça sur son bureau : l'aide mémoire BÉPO (à plier en 3)

Hors ligne

Pied de page des forums