Forum bépo

Forum des utilisateurs du bépo

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

#1 Re : Coin des bidouilleurs » Adaptation BEPO sur un clavier ortho dactyl manuform 6x4 + 5 » 22/3/2023 13:39:41

j'avance dans mon apprentissage de la disposition :-)

je vise une précision de 98%  pour ne travailler la mémoire musculaire que sur des frappes correctes et pas sur des erreurs !
et en conséquence je ne m'impose aucun objectif de vitesse, je sais que cela viendra tout seul (d'après mon expérience de clavier sur... piano !!) => lentement et juste d'abord puis la vitesse arrive seule naturellement.

i.td                           11-mars    20 min           
i.pdtv                       12-mars    30min           
i.pdtv                       13-mars    20 min + 15 min           
i.pdtv as                   14-mars    35 min           
i.pdtv as                   15-mars    15 min + 15 min           
i.pdtv as                   16-mars    15 min + 15 min    91 cpm   
i.pdtv asèl                   17-mars    15 min + 15 min           
i.pdtv asèl                   18-mars    10 min + 10 min    79 cpm    98%   
i.pdtv asèl                   19-mars    15 min + 15 min    86 cpm    98%   
i.pdtv asèl hé           20-mars    15 min + 15 min            96%    changement v et d : je reviens sur la dispo proposée de FrGodox
i.pdtv asèl hé           21-mars    15 min + 15 min    82 cpm    98%   
i.pdtv asèl hé           22-mars    10 min                73 cpm    96%    changement é et è : idem je reviens sur la dispo proposée de FrGodoxpour roulement avec le point

Ces changements en parallèle de l'apprentissage proviennent du fait que je ressens physiquement le besoin et que d'autre part, je travaille sur des stats de lettre, de lettre de fin de mot, de début de mot, de ponctuation, de digrammes et trigrammes.
Clairement dans le cas des E accentués, je n'aurai jamais è. et d'autre part, tous mes é. auraient nécessité de la gymnastique index en bas et majeur en haut...

#2 Re : Coin des bidouilleurs » Adaptation BEPO sur un clavier ortho dactyl manuform 6x4 + 5 » 13/3/2023 20:21:31

J'ai tenu à utiliser le pouce pour taper la lettre E
et comme disposition applicable directement en 6x4 et 2x5 j'ai retenu la Fr Godox de @kawamashi https://bepo.fr/wiki/Utilisateur:Kawamashi
qui en plus me semblait plus esthétique que d'autres (oui ça compte !)

Et tant qu'à faire à programmer mon firmware, j'ai échangé quelques touches : en restant sur des touches équivalentes en terme de fréquence.
j'ai permuté è et é pour mettre les accents graves à et è sur la même rangée (et le é étant plus fréquent, je le préfère en bas qu'en haut)
j'ai permuté F et W parce que je tape du français principalement
et j'ai permuté Z et ç pour regrouper c et ç
j'ai permuté le H avec la flèche et au lieu de la flèche, j'ai mis la virgule (car la virgule est aussi à cet endroit sur ma couche de chiffres !)

p8yp.png

Pr%C3%A9sentation_FR-Godox.png

#4 Re : Coin des bidouilleurs » une disposition personnalisée diacritique AZERTY QMK sans droits admin » 1/3/2023 22:29:47

Il faut activer le pavé numérique pour pouvoir  taper Alt 0 2 0 1

Attention avec Windows, s'il y a plusieurs claviers ils rentrent en conflit : le Natural keyboard démarre en num_lock puis le splinky arrive, tape la touche num_lock : le pavé est désactivé
Par contre la LED du Natural reste cohérente et subit l'action du clavier Splinky...
The problem is that the num/caps/scroll lock state is not managed by the keyboard, so all you have to go on is whether the host has told the keyboard to turn on the LED, and the exact behaviour is inconsistent across OSes. On Windows, for example, the state is shared across all keyboards, but macOS treats each keyboard individually and doesn't recognise num lock as num lock anyway.

En attendant d'y voir plus clair, j'affecte un bouton NUM LOCK en plus de la procédure dans le keymap.

#5 Re : Coin des bidouilleurs » une disposition personnalisée diacritique AZERTY QMK sans droits admin » 28/2/2023 21:51:58

Bah le plus dur a été de creuser plusieurs pistes à la fois, de tester et de voir aussi les limitations.
C'est fou que ce sujet ne soit pas plus exposé : j'imagine un tableau avec les contraintes (windows, droits, ...) et les solutions possibles.. Il serait assez simple de faire les bons choix pour un débutant.

Ensuite 5 lettres ou 20, ça pas beaucoup plus compliqué :-)

#6 Re : Coin des bidouilleurs » une disposition personnalisée diacritique AZERTY QMK sans droits admin » 28/2/2023 21:49:54

► il y avait la possibilité native QMK d'utiliser la fonction XP(i, j) permettant de gérer la lettre de base et la lettre shiftée : très bien pour gérer les claviers avec lettres accentuées
https://github.com/qmk/qmk_firmware/blo … unicode.md
mais il y a des limites : il faut modifier une clef de registre Windows

peut-être un contournement ici ? https://www.reddit.com/r/olkb/comments/ … _function/

► un très bon article sur les possibilités Custom Shift Keys avec les avantages et inconvénients versus Key Overrides
https://getreuer.info/posts/keyboards/c … hift-keys/

► dans QMK et VIAL on peut utiliser le Key Override mais on ne peut pas y mettre de macro "Alt 0 2 0 1 Alt" donc pas bon dans mon cas.

Et vous ? :-)

#7 Coin des bidouilleurs » une disposition personnalisée diacritique AZERTY QMK sans droits admin » 28/2/2023 21:41:51

RacingMat
Réponses : 4

Bonjour,

voici ma situation :
- utilisation de mon clavier à la maison et au bureau
- sous Windows
- besoin bureautique et codage
- français et un peu anglais (codage)
- je ne suis pas un expert en typographie
- quelques majuscules accentuées pour écrire plus proprement, quelques unicodes (Ø, ►, ...)
- je compte sur Word ou Outlook pour me corriger boeuf en bœuf automatiquement
- pas de droits admins au bureau (pas d'install de driver, pas de modification de clef de registre, pas de logiciel même portable (PKL, autoHotKey...))
- utilisation avec un PC portable : je veux pouvoir me dépanner d'une touche ou d'un raccourci avec le clavier intégré

donc avec mon clavier custom sur base RP2040, voici ce à quoi je suis arrivé :
- conserver une langue AZERTY FR
- sans modif de registre Windows, pas d'envoi de caractère unicode possible
- je simulerai donc une succession de frappes Alt down, tap 0, tap2, tap 0, tap 1, Alt up pour une dizaine de codes
- le délai n'est pas discernable selon moi
- je peux utiliser mon clavier standard en //

J'ai codé sous QMK mais j'ai pris le chemin Vial-QMK car étant dans la phase d'ajustement de ma disposition et de mes couches, la facilité de mise à jour avec VIAL en temps réel sans recompiler est géniale.

Voici un conseil si vous avez un clavier splitté : prévoir en test une touche du côté maître (É) ça permet de ne flasher qu'un côté ! c'est plus rapide que de déposer le fichier .uf2 de chaque côté, brancher, débrancher, rebrancher...
quand tout est stabilisé (majuscules diacritiques, tap mod, Smart shift ...), on peut flasher les 2 côtés :-)

Le code :
► rules.mk
rien

► vial.json : personnalisation des étiquettes des USER DEFINED

{
    "name": "Scylla",
    "vendorId": "0xA8F8",
    "productId": "0x1829",
   [color=#ed5821] "customKeycodes": [
    {
     "name": "EAcnA",
     "title": "E accent aigü",
     "shortName": "EACUTE"
    },
	{
     "name": "EAcnG",
     "title": "E accent grave",
     "shortName": "EAGRAV"
    },  
	{
     "name": "AAcnG",
     "title": "A accent grave",
     "shortName": "AAGRAV"
    },
  	{
     "name": "Ccedi",
     "title": "C cédille",
     "shortName": "CCEDIL"
    },  
    {
     "name": "Puce 1",
     "title": "Puce triangle 1",
     "shortName": "PUCE1"
    }
	],[/color]
    "lighting": "vialrgb",
    "matrix": {
        "rows": 10,
        "cols": 6
    },

► config.h
pas besoin de définir un #define TAP_CODE_DELAY pour ralentir la succession des frappes

► keymap.c

#include <keymap_french.h>

enum custom_keycodes {
#if defined(VIAL_ENABLED)
    EACUTE = USER00,  
	EAGRAV,
	AAGRAV,
	CCEDIL,
	PUCE1 
#else
    EACUTE = SAFE_RANGE,  
	EAGRAV ,  
	AAGRAV ,
	CCEDIL ,
	PUCE1  
#endif
}; 

dans la disposition saisir ces codes :

    KC_TAB,  AAGRAV, FR_B, EAGRAV, FR_DOT, FR_MINS,

puis

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    switch (keycode) {
        case EACUTE:
            if (record->event.pressed) {
                if (get_mods() & MOD_MASK_SHIFT) {
                    register_code(KC_LALT);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_2);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_1);
                    unregister_code(KC_LALT);
                } else {
                    tap_code(FR_EACU);
                }
			}
            break;
        case EAGRAV:
            if (record->event.pressed) {
                if (get_mods() & MOD_MASK_SHIFT) {
                    register_code(KC_LALT);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_2);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_0);
                    unregister_code(KC_LALT);
                } else {
                    tap_code(FR_EGRV);
                }
			}
            break;
       case AAGRAV:
            if (record->event.pressed) {
                if (get_mods() & MOD_MASK_SHIFT) {
                    register_code(KC_LALT);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_1);
                    tap_code(KC_KP_9);
                    tap_code(KC_KP_2);
                    unregister_code(KC_LALT);
                } else {
                    tap_code(FR_AGRV);
                }
			}
            break;
        case CCEDIL:
            if (record->event.pressed) {
                if (get_mods() & MOD_MASK_SHIFT) {
                    register_code(KC_LALT);
                    tap_code(KC_KP_0);
                    tap_code(KC_KP_1);
                    tap_code(KC_KP_9);
                    tap_code(KC_KP_9);
                    unregister_code(KC_LALT);
                } else {
                    tap_code(FR_CCED);
                }
			}
            break;
        case PUCE1: // insère l'unicode ► fdans les deux cas : shift ou pas shift
            if (record->event.pressed) {
                    register_code(KC_LALT);
                    tap_code(KC_KP_1);
                    tap_code(KC_KP_6);
                    unregister_code(KC_LALT);
                }
            break;
    }
    return true;
};

et activer le NUM LOCK au démarrage du clavier sinon cela ne fonctionne pas

// Turn on/off NUM LOCK if current state is different
void activate_numlock(bool turn_on) {
    if (host_keyboard_led_state().num_lock != turn_on) {
        tap_code(KC_NUM_LOCK);
    }
}


// INITIAL STARTUP
void keyboard_post_init_user(void) {
    // turn on Num lock by default so that the numpad layer always has predictable results#ifdef STARTUP_NUMLOCK_ON
        activate_numlock(true); 
}

Voilà ! :-)
Si on n'a pas trop de touches UNICODE ça se fait bien !

#8 Re : Coin des bidouilleurs » Accents et Keycode, Scancode, Virtualcode, Driver, layout, langue... » 21/1/2023 11:55:33

► des infos intéressantes sur le fonctionnement d'un driver de clavier sous Windows :

The layout DLL is loaded by the window manager when needed. One of the examples is the logon. The default set of the input locales is set in the HKCU registry, according to user's preference, which can be customized by the Regional and Language Options application in Control Panel. The window manager reads the HKCU registry and loads the keyboard layouts accordingly.

The driver package contains these files:
Kmdfsamples.cat : a signed catalog file, which serves as the signature for the entire package
kbfiltr.inf : an information (INF) file that contains information needed to install the driver
WdfCoinstaller010xx.dll : the coinstaller for version 1.xx of KMDF
kbfiltr.sys : the driver file

On peut même filtrer un modèle de clavier particulier : intéressant si on a un mécanique avec un Splinky par exemple et un clavier standard et que l'on veut un lyaout différent selon le clavier (pour prêter son ordi par exemple).
Keyboard Input WDF Filter Driver (Kbfiltr)
This driver filters input for a particular keyboard on the system.
Set the hardware ID in the kbfiltr.inx file (located with the driver source files)
If you want to filter keyboard inputs from all the keyboards plugged into the system, you can install this driver as a class filter below the KbdClass filter driver by adding the service name of this filter driver before the KbdClass filter in the registry at:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96B-E325-11CE-BFC1-08002BE10318}\UpperFilters


https://kbdlayout.info/

Windows distinguishes
* input languages,
* keyboard layouts
* keyboard drivers.

Input language informs the system what language is the typed text supposedly in, which is used for features like spellchecking.
Technically any keyboard layout can be used for any input language, but recent Windows versions started limiting which layouts can be selected for a given language in the user interface.

All supported keyboard layouts are defined in the registry, under HKLM\SYSTEM\CurrentControlSet\Control\Keyboard Layouts.
The subkeys identify the keyboard layouts (using KLID) and contain layout names as seen by the user, as well as references to the keyboard driver that defines which keys produce which characters.
Several keyboard layouts can share one keyboard driver.

#9 Re : Coin des bidouilleurs » Aide-mémoire pop-up par AutoHotkey » 15/1/2023 20:28:17

J'envisage une version 2 qui écouterait en permanence les touches modificatrices : une fois que l'aide-mémoire est lancé par la touche, la couche se mettrait à jour selon l'appui en cours de frappe des touches modificatrices.

Ce serait plus simple à l'usage : un appui sur la touche "aide-mémoire" pour commencer et un autre pour arrêter. Tout le reste du temps, la couche se modifie selon le contexte.
A voir si j'arriverai le coder. smile

#10 Re : Coin des bidouilleurs » Aide-mémoire pop-up par AutoHotkey » 15/1/2023 16:58:34

Merci smile
En effet c'est plus simple d'utiliser une image pré-existante que de générer à la volée un clavier miniature interactif.
Je n'ai pas pu faire tourner le code malheureusement...
Je vais devoir me pencher sur le sujet.

/////////////////////////

édit :
J'ai finalement codé quelque chose qui répond à mon besoin selon cette approche simplifiée (pas de clavier généré à la volée et pas de mise en couleur des touches lors de la saisie) :

installation sur le poste de travail :
- sous Win 10
- installer AutoHotKey version 2.0
- coller le code ci-dessous dans un fichier txt et renommer l'extension en .ahk
- déposer les images des couches sur votre disque dur (exemples fournis en bas du post)
- éditer le code (transparence, choix du moniteur en cas de multi-écran et emplacement et nom des images des couches)
- lancer le code en double-cliquant le fichier .ahk
(vous verrez une icône dans le Tray Menu)
- une seule touche pour afficher l'aide-mémoire et selon l'état des touches de changement de couche, l'image est contextuelle. C'est plus ergonomique et il suffit d'une seule touche "aide-mémoire".
Dans l'exemple du code ci-dessous c'est la touche F12

utilisation
un appui sur F12 et la disposition du clavier s'affiche
un nouvel appui sur F12 et elle disparaît

si une touche (Shift, Alt, Ctrl ou AltrGr) est appuyée au moment où l'on appuie sur la touche aide-mémoire, alors on verra l'image de la disposition de la couche selon le modifier
si l'image est à l'écran et que l'on appelle l'aide-mémoire mais avec une autre touche de modification, l'image est mise à jour : cela permet de circuler dans les couches.
Pour la faire disparaître (si c'est la couche Ctrl), il faut retaper la même combinaison Ctrl + aide-mémoire

Voilà
j'espère que cela vous aidera aussi smile
La partie de code complexe qui gère la transparence et l'affichage provient de l'exemple sur le site autoHoKey (dernier lien du post précédent).

Que c'est pénible de coder dans notepad sans mise en forme ni coloration syntaxique...
Voici le code après avoir passé un petit coup de mise en forme par ici http://sl5.it/SL5_preg_contentFinder/ex … e_code.php
et en-dessous les images à déposer dans C: pour que l'exemple fonctionne directement sans adaptation de votre part



/*
aide-mémoire pop-up 
choix du niveau de transparence 
choix du moniteur d'affichage (si multi-écrans)
*/

   ;   0 makes the window invisible while 255 makes it opaque.
   global niveauTransparence := 200

   ; Put "1" to set the keyboard on second monitor, "2" on third monitor, etc... (blank = primary monitor):
   global k_Monitor = 1

   ; chemin des fichiers image des 5 couches
   global CheminLayer        := "C:\Optimot_Ergo_layer.jpg"
   global CheminLayerShift   := "C:\Optimot_Ergo_layerShift.jpg"
   global CheminLayerAlt     := "C:\Optimot_Ergo_layerAlt.jpg"
   global CheminLayerCtrl    := "C:\Optimot_Ergo_layerCtrl.jpg"
   global CheminLayerAltGr   := "C:\Optimot_Ergo_layerAltGr.jpg"

/* 
fin des paramétrages 
*/

#SingleInstance Force   ; C'est pratique en phase de développement : en relançant le nouveau script, on écrase l'ancien qui tournait. Sinon on obtient une fenêtre qu'il faut acquitter.

aide :=0       ; touche aide-mémoire seule
aideShift :=0  ; touche aide-mémoire et Shift - symbole +
aideAlt :=0    ; touche aide-mémoire et Alt - symbole !
aideCtrl :=0   ; touche aide-mémoire et Ctrl - symbole ^
aideAltGr :=0  ; touche aide-mémoire et AltGr - symbole <^>! 

; on combine la touche "aide-mémoire" avec les touches de couche (Alt, Shift, ...) pour sélectionner l'image de la couche correspondante

F12::   ; touche Aide-mémoire seule
{
   if (aideShift+aideAlt+aideCtrl+aideAltGr > 0)   ; on vérifie si une image est déjà affichée
   {
      ; dans ce cas, on l'efface
   Gui, Destroy  
   aideShift :=0  
   aideAlt :=0    
   aideCtrl :=0   
   aideAltGr :=0  
   }
   if (aide=0) {
      AffichageImage(CheminLayer)
      aide :=1
   }else  {
      Gui, Destroy
      aide :=0
   }
   return
}

+F12::  ; touche Aide-mémoire avec Shift
{
   if (aide+aideAlt+aideCtrl+aideAltGr > 0)   ; on vérifie si une image est déjà affichée
   {
      ; dans ce cas, on l'efface
   Gui, Destroy  
   aide :=0  
   aideAlt :=0    
   aideCtrl :=0   
   aideAltGr :=0  
   }
   if (aideShift=0) {
      AffichageImage(CheminLayerShift)
      aideShift :=1
   }else  {
      Gui, Destroy
      aideShift :=0
   }
   return
}

!F12::  ; touche Aide-mémoire avec Alt
{
   if (aide+aideShift+aideCtrl+aideAltGr > 0)   ; on vérifie si une image est déjà affichée
   {
      ; dans ce cas, on l'efface
   Gui, Destroy  
   aide :=0  
   aideShift :=0    
   aideCtrl :=0   
   aideAltGr :=0  
   }
   if (aideAlt=0) {
      AffichageImage(CheminLayerAlt)
      aideAlt :=1
   }else  {
      Gui, Destroy
      aideAlt :=0
   }
   return
}

^F12::  ; touche Aide-mémoire avec Ctrl
{
   if (aide+aideShift+aideAlt+aideAltGr > 0)   ; on vérifie si une image est déjà affichée
   {
      ; dans ce cas, on l'efface
   Gui, Destroy  
   aide :=0  
   aideShift :=0    
   aideAlt :=0   
   aideAltGr :=0  
   }
   if (aideCtrl=0) {
      AffichageImage(CheminLayerCtrl)
      aideCtrl :=1
   }else  {
      Gui, Destroy
      aideCtrl :=0
   }
   return
}


<^>!F12::  ; touche Aide-mémoire avec AltGr
{
   if (aide+aideShift+aideAlt+aideCtrl > 0)   ; on vérifie si une autre image est déjà affichée
   {
      ; dans ce cas, on l'efface
   Gui, Destroy  
   aide :=0  
   aideShift :=0    
   aideAlt :=0   
   aideCtrl :=0  
   }
   if (aideAltGr=0) {
      AffichageImage(CheminLayerAltGr)
      aideAltGr:=1
   }else  {
      Gui, Destroy
      aideAltGr:=0
   }
   return
}


AffichageImage(CheminDuFichier)
{
 
   Gui, Add, Picture,,%CheminDuFichier%
   ;---- Show the keyboard centered but not active (to maintain the current window's focus):
   Gui, Show, xCenter NoActivate, Virtual Keyboard View
   Gui.Opt(AlwaysOnTop)
   
   ;    Get the window's Width and Height through the GUI's name.
   WinGetPos,,, k_WindowWidth, k_WindowHeight, Virtual Keyboard View
   
   ;---- Position the keyboard at the bottom of the screen while avoiding the taskbar:
   SysGet, k_WorkArea, MonitorWorkArea, %k_Monitor%
   
   ; Calculate window's X-position:
   k_WindowX = %k_WorkAreaRight%
   k_WindowX -= %k_WorkAreaLeft%  ; Now k_WindowX contains the width of this monitor.
   k_WindowX -= %k_WindowWidth%
   k_WindowX /= 2  ; Calculate position to center it horizontally.
   ; The following is done in case the window will be on a non-primary monitor
   ; or if the taskbar is anchored on the left side of the screen: 
   k_WindowX += %k_WorkAreaLeft%
   
   ; Calculate window's Y-position:
   k_WindowY = %k_WorkAreaBottom%
   k_WindowY -= %k_WindowHeight%
   
   ;   Move the window to the bottom-center position of the monitor.
   WinMove, Virtual Keyboard View,, %k_WindowX%, %k_WindowY%
   
   ;   Make the window transparent (the number regulates the transparency).
   WinSet, Transparent, %niveauTransparence%, Virtual Keyboard View
   Return
}              

https://zupimages.net/up/23/02/lt75.jpg
https://zupimages.net/up/23/02/2m9o.jpg
https://zupimages.net/up/23/02/rf1h.jpg
https://zupimages.net/up/23/02/t2c8.jpg
https://zupimages.net/up/23/02/qj2h.jpg

#11 Re : Coin des bidouilleurs » Aide-mémoire pop-up par AutoHotkey » 14/1/2023 11:36:18

j'ai trouvé des exemples de code avec cette recherche Google : "AutoHotkey on screen keyboard touch typing"
mais ce n'est pas aussi élégant que le fonctionnement décrit par Fabien.

Ces exemples sont parfois exclusivement QWERTY ou bien ne gèrent pas les couches ce qui est rédhibitoire.

https://github.com/marius-sucan/KeyPress-OSD - 2022

https://documentation.help/AHK_H-2.0/Ke … Screen.htm by jon - 2006 ?

https://www.autohotkey.com/boards/viewt … =6&t=48485 by x32

https://www.autohotkey.com/board/topic/ … -keyboard/

https://www.autohotkey.com/board/topic/ … -keyboard/

https://github.com/xcv58/AHK/blob/maste … yboard.ahk by xcv58 - 2014

https://www.autohotkey.com/docs/v1/scri … rdOnScreen
mais il est conçu pour les claviers QWERTY et ne prends pas en charge des dispositions non standard

#12 Re : Coin des bidouilleurs » Adaptation BEPO sur un clavier ortho dactyl manuform 6x4 + 5 » 14/1/2023 10:56:13

@Bibidibop : merci pour les références, c'est très intéressant quand la logique est expliquée et encore plus quand on peut voir les étapes successives !
je suis bien tenté par ta disposition cœur !
dispoition_coeur


@Pyjam : merci pour la carte d'Optimot au format ergo
p307.jpg

déjà que j'ai du mal à choisir une couleur de peinture pour un mur, alors là je vous dis pas comme je suis mal devant la multiplicité de propositions bepo.fr/Variantes_du_bépo

#13 Coin des bidouilleurs » Aide-mémoire pop-up par AutoHotkey » 13/1/2023 18:57:34

RacingMat
Réponses : 4

Bonjour à tous,

Avec le projet en cours de changer de disposition sur mon nouveau clavier à des touches vierges, je me prépare quelques questionnements en cours de frappe...

J'ai lu avec intérêt un post de Fabien sur un affichage aide-mémoire pop-up :
► En appuyant sur une touche dédiée "aide-mémoire", une image de ma disposition s'affiche à l'écran.
► La disposition est générée à partir du txt stockant les correspondances de touches
► Les étiquettes des touches se modifient quand j'appuie sur une touche modificatrice (Shift, Alt, Ctrl...) et se rétablissent dès qu'on la relâche.
► L'image disparaît quand on ré-appuie sur la touche "aide-mémoire".

C'est très pratique pour retrouver l'emplacement d'un symbole dont on se sert rarement ou quand on commence à apprendre !

J'ai contacté Fabien par email mais il n'a plus sous la main le code...
L'un d'entre vous aurait-il un équivalent SVP ? car les fonctionnalités ne sont pas triviales à coder

merci !!
smile
@Kawamashi ? @Fork Bomb ?

aide-mémoire pop up

#14 Re : Coin des bidouilleurs » Accents et Keycode, Scancode, Virtualcode, Driver, layout, langue... » 11/1/2023 16:36:45

merci Pyjam pour l'invitation smile bien que je sois toujours perdu avec Discord

>en raison des limitations sévères de Windows concernant la création de pilotes
justement j'aimerai bien savoir lesquelles elles sont STP smile

PowerToysKeyboard Manager
Dans PowerToys de Microsoft (que j'utilise avec mon triple screen), il y a le PowerToysKeyboard Manager

- PowerToys doit tourner en arrière-plan
- on peut remapper touches et raccourcis (sauf ceux réservés par le système d'exploitation https://learn.microsoft.com/fr-fr/windo … -remapped) et raccourcis en 1 seule touche
- le remapping est instantané
- pas de possibilité de mappage différents pour 2 claviers en même temps (clavier portable + clavier externe) (il n'y a pas d'API qui agit en fonction du clavier détecté).
- le remappage continue à fonctionner comme prévu même si la langue du système est changée.

#16 Coin des bidouilleurs » Adaptation BEPO sur un clavier ortho dactyl manuform 6x4 + 5 » 10/1/2023 19:32:32

RacingMat
Réponses : 7

Bonjour à tous,

j'ouvre ce post pour partager l'avancement de mes réflexions sur le layout pour mon clavier Scylla en kit DIY
et faire appel à votre expertise !! cool

Mon souhait est de :
- limiter les contraintes physiologiques (douleurs au poignet)
- gagner en rapidité
en rapprochant les é è à pour mes textes et puis les symboles utilisés lorsque je code (Delphi, arduino).
- optimiser l'usage des doigts par des astuces rendues possibles par les claviers programmables (home row modifier, ...)
- et exploiter tout le potentiel du pouce avec 5 boutons dédiés.

Le Scylla est un clavier ortho et 6x4 avec 5 touches à chaque pouce.
y9ai.jpg

Déjà, existe-t-il un layout BEPO déjà adapté ?
merci smile
Mat

#17 Re : Coin des bidouilleurs » Accents et Keycode, Scancode, Virtualcode, Driver, layout, langue... » 9/1/2023 11:01:30

L'idée ensuite est de déterminer le contexte de l'utilisateur

* clavier programmable ?
* droits admins sur le poste de travail ?
* plusieurs utilisateurs ?

pour ensuite trouver la meilleure approche :
* firmware compilé sur mesure
* driver spécifique
* autoHotkey
* ...

#18 Coin des bidouilleurs » Accents et Keycode, Scancode, Virtualcode, Driver, layout, langue... » 8/1/2023 20:45:42

RacingMat
Réponses : 5

Bonjour à tous,

me voilà avec un clavier en cours de fabrication (format dactyl manuform ortho) pour lequel il va me falloir une disposition BEPO adaptée big_smile
https://forum.bepo.fr/viewtopic.php?pid=18314
L'objectif pour moi en abandonnant l'AZERTY est d'éviter la gymnastique pour taper les lettres accentuées
et avec un clavier ergonomique et programmable optimiser l'usage des doigts (home row modifier) et surtout du pouce (5 boutons dédiés).

Mais avant de me lancer dans la modif de dispositions et de me poser toutes les questions (le "e" sous le pouce ? home row modifier, ...),
je voudrai être sûr de bien comprendre tous les endroits où l'on peut adapter la disposition et en particulier obtenir les lettres accentuées.
Sachant qu'il y a toujours des inconvénients et des avantages (modifications applicables dès le boot ? applicables à tous les users ? perte des raccourcis clavier dans les logiciels ?...)

Jusqu'ici voici ma compréhension des choses :
KBID : identifiant du clavier USB qui permet à l'ordinateur de reconnaître le modèle du clavier (QWERTY, AZERTY, 84, 101 ou 104 touches, ...)

keycode = emplacement des touches du QWERTY standard américain (aucune lettre accentuée dans la liste)
    le keycode n'est pas influencé par les touches mortes
    microsoft.com/keycode-constants
    table-of-all-keycodes

scancode = conversion de l'emplacement en "lettre" mais pas toutes (aucune lettre accentuée dans la liste)
    il y a 3 sets de scancodes
    Common Keyboard Scan Codes
    ryx2.png

virtualcode = pas de lettres accentuées dans la liste kbdlayout.info/kbduk/virtualkeys
   z3gg.png

Firmware du clavier (compilé par QMK) :
    keycodes.h : déclaration des keycodes avec une lettre KC_W = 0x001A pour les manipuler plus facilement dans les fichiers de config
    keymap.c : va traduire les emplacements keycode en scancode ? É (e acute) : #define BP_EACU  KC_W
   on peut intercepter les scancodes et les permuter avant de les envoyer à l'ordinateur.

Driver OS : basé sur un layout .klc et compilé en kbdxxx.dll par Microsoft Keyboard Layout Creator dans C:\Windows\System32\
    c'est enfin ici que l'on obtient les lettres acentuées
    Layout = fichiers kbdxxxxx.dll dont les Propriétés affichent "Keyboard Layout"
    Driver Pilote = kbdclass.sys "Pilote de la classe Clavier"
    The keyboard driver reads the key registry it when it starts up. So killing Explorer has no effect, you'll have to reboot to make changes effective.

Registre :
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout\ : liste des claviers qui peuvent être installés sur l'appareil
    how to remap keys
    technewstoday.com/how-to-remap-keyboard-keys/
    isenselabs.com/keyboard-key-kills-and-remaps-for-windows-users
"The mappings stored in the registry work at system level and apply to all users. These mappings cannot be set to work differently depending on the current user."
    manipulations manuelles dans le registre : tuto détaillé https://www.lkhrs.com/blog/2022/03/rema … y-to-ctrl/

https://winaero.com/change-what-extra-a … 0-8-and-7/
How to Change What App Keys Do for the Keyboard in Windows 10, 8 and 7
Some keyboards contain a number of additional keys that you can use to launch a Windows application or perform a specific action. The most common keys are Calculator, Web Browser, Mail, Search. Microsoft keyboards are known for having these keys, but not only MS keyboards have them. Other manufacturers also have many models of multimedia keyboards with application keys.

The keys have a reference in Windows registry. There is a Registry branch for that:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\<KEY_NUMBER>
Under such subkey, you can create two string (REG_SZ) values.
    Association = ".txt" - open the default app that is set to open text files. By default it is Notepad.
    ShellExecute="C:\windows\notepad.exe". Run the specified app. In my case it is notepad.exe from the system folder.

Langue : c'est aussi ici que l'on a une correspondance avec des lettres accentuées

interception logicielle :
* On peut intercepter et modifier en aval du driver (AutoHotkey, ...)
single keys or key-combos?
Microsoft PowerToys For Windows 10 : allows remapping to multiple key combos
SharpKeys
MapKeyboard (nécessite .NET Framework v3)
Keytweak (abandonware) portable
RemapKeyboard


* Voir intercepter dans le logiciel final : ex dans Word (fonctionnalité de correction automatique en cours de frappe).


Q1 : Le firmware du clavier envoie-t-il les 3 codes (Keycode, Scancode, Virtualcode)? Déjà les 2 derniers car on trouve des utilitaires qui affichent scancode et virtualcode
https://lateralus138.github.io/Key-ScanCode/
uyyf.png

Q2 : comment cela se passe entre le driver noyau (au moment du boot) et le driver de l'OS ?
est-ce que c'est chaîné et l'un passe les infos à l'autre ?
ou bien est-ce que le second prend la place et le premier n'est plus actif quand l'OS est lancé ?

Q3 : comment cela se passe entre driver / registre / langue (préférences régionales) ?
Tout se retrouve dans le registre au final ?

* You can change the keyboard layout using the keyboard control panel applet (start - settings - control panel - keyboard - Input Locales) however this does not affect the layout used during logon (which is by default English (United States)).



795k.png

Merci pour vos réponses et vos corrections smile
Mat

#19 Re : Périphériques et ergonomie » Clavier Scylla 6x4 ortho concave et 5 touches au pouce par BastardKB » 8/1/2023 17:54:15

>chiche
bigre, j'ai des supers pouvoirs désormais cool
la main de l'admin est passée sur mon profil !!
photo ajoutée au-dessus

pour le layout, je vais aller poster dans le coin des bidouilleurs ! wink

@geob : j'en profite au passage pour te dire que j'aime bien ton blog !! merci pour ces partages

#20 Re : Périphériques et ergonomie » Clavier Scylla 6x4 ortho concave et 5 touches au pouce par BastardKB » 8/1/2023 15:30:09

merci pour le lien ! :-)
on voit pleins de modèles différents : sa gamme est très large
il y en a avec trackball ou trackpad aussi, mais j'avoue que ce n'est pas mon truc...

Pour les touches j'ai acheté des touches aux profils OEM vierges, sans marquage, en PBT.

La disposition est de type "dactyl manuform", je vais maintenant chercher des layouts...

#21 Re : Périphériques et ergonomie » Clavier Scylla 6x4 ortho concave et 5 touches au pouce par BastardKB » 8/1/2023 11:09:39

Pour les interrupteurs, j'ai choisi des Tecsee Tactile Snowglobe linéaires progressifs
ils sont plus souples que les touches de mon Natural.

These switches have a two-stage spring and have a moderately tactile stem.
Available in one weight: 55g (actuation);
Tactile feel with a 1.9mm actuation and a total travel of 3.8mm;
63.5g gold-plated progressive spring;
Lightly lubed from the factory;
UHMWPE material long stem, with a polycarbonate glitter housing;

de chez splikb.com de Hollande aussi

Voici la première étape de soudure terminée :
neqo.jpg

Ensuite ce sera la soudure des interrupteurs en prenant en sandwich le boîtier 3D avec la PCB !

#22 Périphériques et ergonomie » Clavier Scylla 6x4 ortho concave et 5 touches au pouce par BastardKB » 8/1/2023 10:58:53

RacingMat
Réponses : 8

Bonjour à tous,

Je vous présente le clavier Scylla conçu en open-source par le hollandais Quentin Lebastard
https://bastardkb.com/wp-content/uploads/2021/04/IMG_0591-2048x1540.jpg

J'ai acheté le kit à monter soi-même.

https://bastardkb.com/scylla/
kit complet électronique  + pièces 3D = 180€ HT

Pourquoi maintenant ?
Il y a 15 ans j'ai appris à taper en Azerty en aveugle sur mon Microsoft Natural 4000 (un à la maison et un au bureau)
pour être plus efficace et pour une position un peu plus ergonomique.
En 2022, je cherche toujours plus d'ergonomie (quelques douleurs au poignet que je n'avais pas avant) et d'efficacité.
La bonne nouvelle, le marché des claviers a clairement explosé et il y a dorénavant de très nombreuses solutions.
Et puis c'est un projet sympa !

Pourquoi choisir ce clavier ?
je voulais :
- un clavier en deux parties qui puisse s'écarter vraiment à la largeur de mes épaules
- pas de pavé numérique qui m'éloigne de la souris
- exploiter tout le potentiel du pouce (5 touches)
- moins de gymnastique digitale pour taper les lettres fréquentes comme "é" "à" et autres parenthèses
une forme vraiment ergonomique :
- disposition en ortho
- concave en 3D
- potentiellement inclinable (il existe un support) mais pas forcément (car il y a quelques années, j'ai testé bcp de modèles de souris verticale, cela ne me soulage pas au contraire)
- pouvoir créer une disposition personnelle (je tape du français et je programme).
- Pratique les splinky RP2040 sont livrés flashé pour QMK avec l'interface graphique VIAL
- pas de problèmes de douane (donc pas de UK ou US)

pour le budget :

- 115€ PCB, diodes, prises jacks, inserts, vis, pieds anti-dérapants et 2 splinky (code -10% à Noël) chez bastardkb
- 24€ les 60 switches (fin de série -30%) chez Splitkb
- 14€ les 108 touches chez "Jean Valjean QC Electron Store" sur Aliexpress
- 6€ cable jack TRRS gainé en métal 70cm chez Splitkb
- 5€ câble USB C data sur Aliexpress
TOTAL
180 € + impression des pièces

C'est soudé, ça fonctionne, il me reste à imprimer les pièces et souder les interrupteurs !
J'ajouterai les photos quand j'aurai les droits smile

Mat

Pied de page des forums

Propulsé par FluxBB