« Utilisateur:Laurent » : différence entre les versions
(→« et » en accès indirect '''mais directement avec espace insécable''' : Solution plus simple au niveau utilisateur) |
m (→'''«''' et '''»''' en accès indirect '''mais directement avec espace insécable''' : détail sémantique) |
||
Ligne 95 : | Ligne 95 : | ||
<Ufbcc> : " »" | <Ufbcc> : " »" | ||
* Une solution simple | * Une solution simple au niveau utilisateur qui fonctionne pour toutes les cartes clavier | ||
Comme fichier .XCompose de l'utilisateur : | Comme fichier .XCompose de l'utilisateur : |
Version du 15 février 2008 à 16:46
Après avoir été développeur, je suis administrateur système sous Unix (uniquement GNU/Linux depuis quelques années) et Windows (accessoirement des années d'administration système Windows (c'est contradictoire) et l'évolution de celui-ci m'en ont dégoûté).
Mes usages principaux du clavier :
- le français,
- l'informatique (notamment shell, Perl),
- l'espéranto,
- l'anglais.
Je milite pour la sauvegarde des caractères utilisés en informatique sur le bépo.
Caractères utilisés en informatique
N'hésitez pas à me faire part des manques de cette rubrique (je ne connais pas tout et j'ai aussi probablement oublié des choses que je connais) dans ma page de discussion, voire à ajouter directement.
- ; : séparateur d'instructions dans de nombreux langages (C/C++, Perl, shell)
- , : séparateur pour les arguments d'une fonction dans de nombreux langages, séparateur d'éléments de liste en Perl
- ' : constantes caractères en C/C++; chaînes de caractères en shell, Perl...; italique et gras en Wiki
- " : chaînes de caractères dans la plupart des langages (C/C++, shell, Perl...)
- # : commentaires en shell, Perl... et dans la plupart des fichiers de configuration sous Unix
- $ : préfixe d'une variable en shell et en Perl, borne dans les expressions rationnelles
- ^ : borne d'une expression rationnelle
- ~ : accès au répertoire utilisateur sous Unix et dans les URL
- @ : adresses de courriel, préfixe d'un tableau en Perl
- : : suffixe du protocole dans les URL, partie de l'opérateur ternaire en C/C++, terminateur des instructions conditionnelles et de boucles en Python
- ? : joker en shell; expressions rationnelles; préfixe les paramètres d'une requète de type get dans les URL, partie de l'opérateur ternaire en C/C++
- % : opérateur modulo, préfixe d'un tableau associatif en Perl
- ( et ) : paramètres de fonctions dans la plupart des langages de programmation, définition de priorités dans une expression, listes en Lisp et en Perl; expressions rationnelles
- { et } : blocs de commandes en C/C++, Perl, shell...; indices des tableaux associatifs en Perl
- [ et ] : indices des tableaux dans de nombreux langages de programmation; expressions rationnelles
- < et >: éléments HTML et XML, redirection des entrées/sorties en shell, comparaison numérique en programmation
- = : affectation et comparaison (doublé ou accompagné d'un autre signe dans l'un des deux cas) dans de nombreux langages
- - : options des commandes en shell Unix, opérateur moins
- + : addition; expressions rationnelles
- * : multiplication dans la plupart des langages; joker en shell; expressions rationnelles; éléments de liste en Wiki
- / : séparateur des éléments de chemin sous Unix et dans les URL, options de commandes en DOS, division dans la plupart des langages, délimiteur habituel des expressions rationnelles en Perl
- \ : séparateur des éléments de chemin sous DOS; caractères spéciaux dans les chaînes de caractères en C/C++, Perl...; désactivation de l'interprétation d'un caractère spécial dans les expressions rationnelles et en shell; catégories dans les expressions rationnelles Perl
- ! : négation logique dans certains langages;
- & : lancement d'une commande en tâche de fond en shell, “et” arithmétique et/ou logique dans de nombreux langages
- | : chaînage de deux commandes (la sortie de la première étant l'entrée de la seconde) en shell, “ou” arithmétique et/ou logique dans de nombreux langages
- ` : exécute une commande et retourne sa sortie en shell et en Perl;
- . : accès aux membres d'une structures, ou aux méthodes ou attributs d'un objet en C/C++, concaténation en Perl
- _ : sert de séparateur dans les noms de variables ou de constantes
Accessibilité des caractères utilisés en informatique
AZERTY (pour référence)
- 12 en accès direct : & " ' ( _ ) = , ; : ! <
- 3 en accès direct sur des touches mal placées : - $ *
- 8 accessibles avec un modificateur : ~ # { [ % > ? . /
- 1 accessible avec un modificateur sur une touche mal placée : |
- 7 accessibles avec un modificateur uniquement du mauvais côté : ` \ ^ @ ] + }
BÉPO 0.6.4
- 12 en accès direct : " ( ) + - / * = % , . '
- 2 en accès direct sur des touches mal placées : $ _
- 16 accessibles avec un modificateur : < > [ ] @ | & ` ! ? ~ \ { : } ;
- 1 accessible avec un modificateur sur une touche mal placée : #
- 0 accessible avec un modificateur uniquement du mauvais côté
On constate une amélioration par rapport à l'AZERTY, grâce au placement préférentiel du côté opposé à AltGr.
BÉPO 0.6.5 (estimation en l'état actuel des votes, le 2008-02-09)
- 12 en accès direct : " ( ) + - / * = % , . '
- 2 en accès direct sur des touches mal placées : $ _
- 14 accessibles avec un modificateur : < > [ ] @ | & ! ? ~ \ { : } ;
- 2 accessibles avec un modificateur et une double frappe ! : ` ~
- 1 accessible avec un modificateur sur une touche mal placée : #
- 0 accessible avec un modificateur uniquement du mauvais côté
On constate une dégradation par rapport au BÉPO 0.6.4 (concernant ` et ~).
- Une légère dégradation, mais une nette amélioration pour ceux qui ont besoin de lettres avec accent grave ou avec tilde. Tohuvabohuo 9 février 2008 à 20:13 (CET)
- Oui, mais autant ` non mort sert un peu, autant ~ non mort sert beaucoup dès qu'on utilise le shell. Cela dit, rien n'empêcherait de mettre ˜ mort et ~ non mort en AltGr... sur deux touches différentes. Enfin surtout quand on aura l'AltGr symétrique. (Bon, si on continue à discuter sur cette page, ça va la rendre fouillis, je vais peut-être déplacer ma remarque initiale et la discussion sur la page “discussion”.) --Laurent 11 février 2008 à 03:15 (CET)
« et » en accès indirect mais directement avec espace insécable
L'argument le plus fort contre < et > en accès direct (bien pratiques pour du HTML ou du XML), c'est que si « et » étaient en AltGr, leur enchaînement avec l'espace insécable serait pénible. Pourquoi ne pas tout simplement les coupler avec l'espace insécable ? AltGr-[2] serait plus léger que Maj-Espace [2] !
Ci-dessous deux solutions pour Xorg :
- Une solution globale qui n'impacte que les cartes clavier qui l'utilisent explicitement
Dans le fichier xkb :
key <AE02> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ less, 2, Ufbcb, twosuperior ] }; // < 2 « ² key <AE03> { type[group1] = "FOUR_LEVEL_SEMIALPHABETIC", [ greater, 3, Ufbcc, threesuperior ] }; // > 3 » ³
Dans le fichier Compose général :
<Ufbcb> : "« " <Ufbcc> : " »"
- Une solution simple au niveau utilisateur qui fonctionne pour toutes les cartes clavier
Comme fichier .XCompose de l'utilisateur :
include "%L" <guillemotleft> : "« " <guillemotright> : " »"
(Note : si vous faites un copier-coller, vous aurez certainement intérêt à remettre des espaces insécables “à la main”, parce qu'il est probable que votre navigateur les ait remplacées par des espaces normales.)
Reste la question, quand le clavier “bépo” sera inclus dans les distributions, de savoir si la modification a sa place dans le Compose général où si le clavier devrait être lié à un Compose spécifique, ce qui serait moins simple. Dans la mesure où c'est une séquence typique en typographie française, je pense que ça aurait aussi bien sa place dans le Compose général que les digraphes arabes ou kurdes. À charge pour les claviers français (“bépo” ou pas) de l'utiliser, les autres l'ignorant simplement.
Sous Windows, dans la mesure où le pilote clavier est monolithique, ça ne doit pas poser de problème.
Pour l'espéranto
ˆ mort + v → ŭ
Solution pour Xorg et sur le compte utilisateur : créer un fichier .XCompose avec comme contenu :
include "%L" <dead_circumflex> <v> : "ŭ" U016D <dead_circumflex> <V> : "Ŭ" U016C