Skip to content

Commit 1c4f56f

Browse files
fabi1cazenaveNuclear-Squidgagbocypriani
authored
Article: layout analyzers. (#202)
Co-authored-by: Léo Cazenave <[email protected]> Co-authored-by: Gerry Agbobada <[email protected]> Co-authored-by: Matteo Cypriani <[email protected]>
1 parent a35bb87 commit 1c4f56f

21 files changed

+1097
-96
lines changed

code/layout-analyzer.js

+22-22
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ window.addEventListener('DOMContentLoaded', () => {
3535
'skb', // Same Key Bigram
3636
'lsb', // Lateral Strech Bigram
3737
'handChange', // Two keys typed by different hands
38-
'scisor', // Roll with uncomfortable height difference between the keys
39-
'extendedScisor', // scisor + lsb
38+
'scissor', // Roll with uncomfortable height difference between the keys
39+
'extendedScissor', // scissor + lsb
4040
'inwardRoll', // Roll in the pinky -> index direction
4141
'outwardRoll', // Roll in the index -> pinky direction
4242

@@ -353,8 +353,8 @@ window.addEventListener('DOMContentLoaded', () => {
353353

354354
if (isScisor(currKeyCode, prevKeyCode, currFinger, prevFinger))
355355
return [prevKeyCode, currKeyCode].some(requiresExtension)
356-
? 'extendedScisor'
357-
: 'scisor';
356+
? 'extendedScissor'
357+
: 'scissor';
358358

359359
if ([prevKeyCode, currKeyCode].some(requiresExtension)) return 'lsb';
360360
return currFinger[1] < prevFinger[1] ? 'inwardRoll' : 'outwardRoll';
@@ -428,33 +428,33 @@ window.addEventListener('DOMContentLoaded', () => {
428428
showPercent('#sfu-all', sum(ngrams.sfb), 2);
429429
showPercent('#sku-all', sum(ngrams.skb), 2);
430430

431-
showPercent('#sfu-all', sum(ngrams.sfb), 2, '#Achoppements');
432-
showPercent('#extensions-all', sum(ngrams.lsb), 2, '#Achoppements');
433-
showPercent('#scisors-all', sum(ngrams.scisor), 2, '#Achoppements');
431+
showPercent('#sfu-all', sum(ngrams.sfb), 2, '#Achoppements');
432+
showPercent('#extensions-all', sum(ngrams.lsb), 2, '#Achoppements');
433+
showPercent('#scissors-all', sum(ngrams.scissor), 2, '#Achoppements');
434434

435-
showPercent('#inward-all', sum(ngrams.inwardRoll), 1, '#Digrammes');
436-
showPercent('#outward-all', sum(ngrams.outwardRoll), 1, '#Digrammes');
437-
showPercent('#sku-all', sum(ngrams.skb), 2, '#Digrammes');
435+
showPercent('#inward-all', sum(ngrams.inwardRoll), 1, '#Bigrammes');
436+
showPercent('#outward-all', sum(ngrams.outwardRoll), 1, '#Bigrammes');
437+
showPercent('#sku-all', sum(ngrams.skb), 2, '#Bigrammes');
438438

439439
const achoppements = document.getElementById('Achoppements');
440-
achoppements.updateTableData('#sfu-digrams', 'SFU', ngrams.sfb, 2);
441-
achoppements.updateTableData('#extended-rolls', 'extensions', ngrams.lsb, 2,);
442-
achoppements.updateTableData('#scisors', 'ciseaux', ngrams.scisor, 2);
440+
achoppements.updateTableData('#sfu-digrams', 'SFU', ngrams.sfb, 2);
441+
achoppements.updateTableData('#extended-rolls', 'LSB', ngrams.lsb, 2,);
442+
achoppements.updateTableData('#scissors', 'ciseaux', ngrams.scissor, 2);
443443

444-
const digrammes = document.getElementById('Digrammes');
445-
digrammes.updateTableData('#sku-digrams', 'SKU', ngrams.skb, 2);
446-
digrammes.updateTableData('#inward', 'rolls intérieur', ngrams.inwardRoll, 2);
447-
digrammes.updateTableData('#outward', 'rolls extérieur', ngrams.outwardRoll, 2);
444+
const bigrammes = document.getElementById('Bigrammes');
445+
bigrammes.updateTableData('#sku-digrams', 'SKU', ngrams.skb, 2);
446+
bigrammes.updateTableData('#inward', 'roulements intérieurs', ngrams.inwardRoll, 2);
447+
bigrammes.updateTableData('#outward', 'roulements extérieurs', ngrams.outwardRoll, 2);
448448

449449
// Display trigrams
450-
showPercent('#almost-skb-all', sum(ngrams.sks), 1, '#Trigrammes');
451-
showPercent('#almost-sfb-all', sum(ngrams.sfs), 1, '#Trigrammes');
452-
showPercent('#redirect-all', sum(ngrams.redirect), 1, '#Trigrammes');
450+
showPercent('#sks-all', sum(ngrams.sks), 1, '#Trigrammes');
451+
showPercent('#sfs-all', sum(ngrams.sfs), 1, '#Trigrammes');
452+
showPercent('#redirect-all', sum(ngrams.redirect), 1, '#Trigrammes');
453453
showPercent('#bad-redirect-all', sum(ngrams.badRedirect), 2, '#Trigrammes');
454454

455455
const trigrammes = document.getElementById('Trigrammes');
456-
trigrammes.updateTableData('#almost-skbs', 'presque SKBs', ngrams.sks, 2);
457-
trigrammes.updateTableData('#almost-sfbs', 'presque SFBs', ngrams.sfs, 2);
456+
trigrammes.updateTableData('#sks', 'SKS', ngrams.sks, 2);
457+
trigrammes.updateTableData('#sfs', 'SFS', ngrams.sfs, 2);
458458
trigrammes.updateTableData('#redirect', 'redirections', ngrams.redirect, 2);
459459
trigrammes.updateTableData(
460460
'#bad-redirect',

www/content/alternatives/_index.md

+31-20
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ soit devenir insupportables.
4646
+===============+:=====:+:=====:+:=====:+:=====:+:=====:+=============================================+
4747
| [Azerty][] | · | oui | · | · | · | - (fr) mauvais support typographique |
4848
| | | | | | | - charge de l’auriculaire gauche > 10 % |
49-
| | | | | | | - digrammes de même doigt > 6 % |
49+
| | | | | | | - bigrammes de même doigt > 6 % |
5050
| | | | | | | - chiffres en Shift |
5151
+---------------+-------+-------+-------+-------+-------+---------------------------------------------+
5252
| [Lafayette][] | oui | oui | · | · | oui | - charge déséquilibrée |
53-
| | | | | | | - digrammes de même doigt > 6 % |
53+
| | | | | | | - bigrammes de même doigt > 6 % |
5454
+---------------+-------+-------+-------+-------+-------+---------------------------------------------+
5555
| [Ergo‑L][] | oui | oui | oui | oui | oui | - (fr) `tui`, `bo` |
5656
| | | | | | | - (en) `eas`, `we` |
@@ -63,13 +63,13 @@ soit devenir insupportables.
6363
| | | | | | | - (en) `you`, `was`, `ho` |
6464
+---------------+-------+-------+-------+-------+-------+---------------------------------------------+
6565
| [Bépolar][] | oui | · | oui | · | oui | - charge de l’index gauche |
66-
| | | | | | | - (fr) digrammes de même doigt > 2 % |
67-
| | | | | | | - (en) digrammes de même doigt > 4 % |
66+
| | | | | | | - (fr) bigrammes de même doigt > 2 % |
67+
| | | | | | | - (en) bigrammes de même doigt > 4 % |
6868
+---------------+-------+-------+-------+-------+-------+---------------------------------------------+
6969
| [Bépo][] | · | · | oui | · | · | - déviations ulnaires |
7070
| | | | | | | - charge de l’auriculaire droit > 10 % |
7171
| | | | | | | - charge de l’index gauche > 20 % |
72-
| | | | | | | - digrammes de même doigt > 2 % |
72+
| | | | | | | - bigrammes de même doigt > 2 % |
7373
| | | | | | | - (en) rédhibitoire (`wh`) |
7474
| | | | | | | - chiffres en Shift |
7575
+---------------+-------+-------+-------+-------+-------+---------------------------------------------+
@@ -151,8 +151,8 @@ l’anglais. Ergo‑L a la palme du confort.
151151
Bépo et toutes ses variantes présentent les mêmes [défauts d’ergonomie][] :
152152

153153
- placement de lettres excentrées sur les 6<sup>e</sup> et 7<sup>e</sup>
154-
colonnes :
155-
- compatibilité délicate avec la plupart des claviers ergonomiques ;
154+
colonnes :
155+
- [compatibilité délicate][] avec la plupart des claviers ergonomiques ;
156156
- déviations ulnaires pouvant devenir douloureuses ;
157157
- charge importante de l’auriculaire droit (> 11 % en français).
158158

@@ -170,24 +170,30 @@ serait une permutation `h,’`, pour faire passer le `h` de [>] à [O].
170170
- 2024-02-03
171171
https://discord.com/channels/794732334879473684/1202877504822579240/1203391939009847357
172172
On s’en branle du H.
173-
- 2024-01-27
174-
https://discord.com/channels/794732334879473684/794734985122152478/1200680341363494972
175-
Moi aussi, je peux modifier légèrement Optimot pour optimiser un peu plus pour
176-
l’anglais (mais au détriment du français). Mais ce n’est pas mon choix parce
177-
que nous sommes en France et que je m’adresse à des personnes qui écrivent
178-
d’abord en français
179173
-->
180174

181175
[Note]{id="optimot_en"} : l’auteur d’Optimot considère que sa disposition est
182-
optimisée pour l’anglais au motif qu’elle obtiendrait une bonne note globale sur
183-
KLAnext ; mais pour nous, [la heatmap est inadaptée][1] (lettres fréquentes sur
184-
la rangée inférieure) et de nombreux digrammes courants sont trop inconfortables
185-
pour pouvoir parler réellement d’optimisation (`th`, `yo`, `ay`, `by`, `ok`,
186-
`ak`, `ki`/`ik`/`ike`). Elle est *utilisable*, mais pas *optimisée* pour ça.
176+
optimisée pour l’anglais au motif qu’elle obtiendrait une bonne [note globale
177+
sur KLAnext][] ; mais pour nous, [la heatmap est inadaptée][heatmap] (lettres
178+
fréquentes sur la rangée inférieure) et de nombreux bigrammes courants sont trop
179+
inconfortables pour pouvoir parler réellement d’optimisation (`th`, `yo`, `ay`,
180+
`by`, `ok`, `ak`, `ki`/`ik`/`ike`). Elle est *utilisable*, mais pas *optimisée*
181+
pour ça. Et d’ailleurs, son auteur reconnait que l’anglais n’est qu’un objectif
182+
secondaire :
183+
184+
> Moi aussi, je peux modifier légèrement Optimot pour optimiser un peu plus pour
185+
> l’anglais (mais au détriment du français). Mais ce n’est pas mon choix parce
186+
> que nous sommes en France et que je m’adresse à des personnes qui écrivent
187+
> d’abord en français.
188+
189+
<!--
190+
- 2024-01-27
191+
https://discord.com/channels/794732334879473684/794734985122152478/1200680341363494972
192+
-->
187193

188194
[(?)]: #optimot_en
189195
[optimot]: ./optimot_fr.png
190-
[1]: ./optimot_en.png
196+
[heatmap]: ./optimot_en.png
191197

192198
**De notre point de vue :**
193199

@@ -196,7 +202,9 @@ pour pouvoir parler réellement d’optimisation (`th`, `yo`, `ay`, `by`, `ok`,
196202
- pour les Bépoètes qui n’ont pas de douleurs, Optimot apporte une optimisation
197203
*très* supérieure en français et est bien plus utilisable en anglais ;
198204
- pour les Bépoètes qui ont des douleurs ou qui souhaitent tenter l’expérience
199-
[1DFH][], [Bépolar][] sera une alternative intéressante et très vite apprise.
205+
1DFH, [Bépolar][] sera une alternative intéressante et très vite apprise ; et
206+
[Erglace][] n’aura que des avantages sur Optimot, y compris sur ses propres
207+
métriques.
200208

201209
[ergo‑l]: /
202210
[bépo]: /bepo
@@ -210,3 +218,6 @@ pour pouvoir parler réellement d’optimisation (`th`, `yo`, `ay`, `by`, `ok`,
210218
[touche morte]: /presentation#caractères-accentués
211219
[symboles]: /presentation#couche-symboles
212220
[défauts d’ergonomie]: /bepo/#ergonomie
221+
222+
[compatibilité délicate]: /claviers/#les-limitations-de-bépo-béopy-optimot
223+
[note globale sur KLAnext]: /articles/analyse_et_optimisation/#lapproche-optimot

www/content/alternatives/bepo/index.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ qui ne proposent que 6 colonnes de touches par main pour respecter le principe
4040
Par ailleurs, la charge des doigts est mal répartie :
4141

4242
- la charge de l’index gauche est très élevée (> 23 % en français), et c’est
43-
d’autant plus gênant que ce doigt gère à lui seul la moitié des [digrammes de
43+
d’autant plus gênant que ce doigt gère à lui seul la moitié des [bigrammes de
4444
même doigt](#optimisation) ;
4545
- plus grave, la charge de l’auriculaire droit (> 11 % en français) est bien
4646
plus élevée que dans toutes les dispositions de clavier francophones,
@@ -165,18 +165,18 @@ Optimisation
165165
- maximisation de l’alternance des mains lors de la frappe ;
166166
- répartition des touches de façon équitable sur les deux mains ;
167167
- utilisation en priorité de la rangée centrale, puis haute, puis inférieure ;
168-
- en cas de non-alternance des mains sur un digramme, direction de la frappe vers le
168+
- en cas de non-alternance des mains sur un bigramme, direction de la frappe vers le
169169
centre du clavier, ce qui sollicite davantage les doigts les plus habiles, à
170170
savoir l’index et le majeur.
171171

172-
Bépo cherche également à minimiser le taux de digrammes de même doigt, que nous
172+
Bépo cherche également à minimiser le taux de bigrammes de même doigt, que nous
173173
mesurons à 2.6 % en français contre 8.0 % pour l’AZERTY. C’est un score très
174174
proche de celui obtenu par Dvorak en anglais, là où QWERTY est à 7.2 %.
175175

176176
Cette optimisation est faite au détriment de l’anglais :
177177

178178
- la charge de l’auriculaire droit grimpe à 13.7 % ;
179-
- certains digrammes, notamment `wh`, sont rédhibitoires.
179+
- certains bigrammes, notamment `wh`, sont rédhibitoires.
180180

181181

182182
### Ergo‑L {id="optimisation-ergol"}
@@ -200,7 +200,7 @@ et [Workman][] :
200200

201201
Malgré ces compromis et le fait qu’il soit optimisé pour les **deux** langues,
202202
français **et** anglais, Ergo‑L affiche de meilleures métriques d’optimisation,
203-
tant sur la charge des doigts (voir § précédent) que sur le taux de digrammes de
203+
tant sur la charge des doigts (voir § précédent) que sur le taux de bigrammes de
204204
même doigt :
205205

206206
<style>
@@ -217,7 +217,7 @@ même doigt :
217217
| -:|:-----------------------------:|:---------------------------:|:----------------------------:|:-----------------------------:|:-----------------------------:|
218218
|**fr**| [7.97 %](/stats/#/azerty//fr) | [2.55 %](/stats/#/bepo//fr) | [1.22 %](/stats/#/ergol//fr) | [3.31 %](/stats/#/dvorak//fr) | [7.16 %](/stats/#/qwerty//fr) |
219219
|**en**| [6.31 %](/stats/#/azerty//en) | [3.01 %](/stats/#/bepo//en) | [1.20 %](/stats/#/ergol//en) | [2.62 %](/stats/#/dvorak//en) | [5.76 %](/stats/#/qwerty//en) |
220-
: Taux de digrammes de même doigt en français et anglais.
220+
: Taux de bigrammes de même doigt en français et anglais.
221221
:::
222222

223223
**De notre point de vue** : l’optimisation de Bépo est faite au détriment de
@@ -312,7 +312,7 @@ Et, très logiquement, ces variantes présentent les mêmes défauts d’ergonom
312312
- perte des raccourcis claviers positionnels.
313313

314314
[Optimot][] est une variante non-libre de Bépo qui l’optimise très nettement :
315-
le taux de digrammes de même doigt est divisé par deux en anglais et par trois
315+
le taux de bigrammes de même doigt est divisé par deux en anglais et par trois
316316
en français ! Mais les défauts d’ergonomie restent les mêmes, ou ne sont
317317
atténués que très marginalement :
318318

Loading
Loading
Loading
Loading
Loading

0 commit comments

Comments
 (0)