Forum bépo

Forum des utilisateurs du bépo

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

#1 Re : Coin des bidouilleurs » [sujet technique] Adapter le bépo à l’ergodox » 10/1/2015 14:04:42

yeKcim a écrit :

chincha, un immense merci pour tes explications. Maintenant j’ai des touches multimedia, des raccourcis vers couper copier coller, une touche menu,… tout semble fonctionnel, je vais même certainement ajouter encore plein de choses du coup (genre KC_MAIL, KC_CALC, KC_MYCM ou annuler, sauvegarder,…). Comme tu dis ne pas trouver très lisible les dispos en une seule image j’ai mis ma nouvelle dispo en 2 dessins. Note : Dans ta dispo, il manque . et , dans le pavé num, ça ne te manque pas trop ?
Dites bonjour à 39 que j’utilise actuellement (c’est laborieux quand on déplace espace backspace entrée…) :

De rien, il n'y avait rien de compliqué non ?
Pour ma part, ça m'avait pris une journée environ pour comprendre et avoir un clavier fonctionnel et une autre pour le customiser à mon goût.
Maintenant, je fais mes modifs à la volée smile suivant les nouveaux besoins...

J'ai bien ajouté le  . et la , dans le pavé num mais l'aperçu de la disposition n'était pas à jour.

yeKcim a écrit :

Je n’ai pas encore regardé comment faire fonctionner find, undo et redo.

Le find ne fonctionne effectivement pas. J'ai donc remplacé le keycode par le raccourci Ctrl F.
Je n'ai pas essayé les undo et redo, mais ça doit être la même chose. Le développeur a du juger que ces codes étaient inutiles vu que la plupart des gens utilisent les raccourcis CtrlF  CtrlZ et CtrlY.

Pour ma config actuelle, je me suis ajouté des couches de raccourcis dédiées à mes éditeurs et applis CAD pro (je suis rédacteur technique freelance) et c'est un vrai gain de productivité et de confort !
Je ne me sers presque plus de mon G13, un keypad programmable, sauf en 3D type Catia à cause du joystick sous le pouce gauche.

http://mcv78.free.fr//ergodox/v1.2/couche%201.png

#2 Re : Coin des bidouilleurs » [sujet technique] Adapter le bépo à l’ergodox » 26/12/2014 14:18:45

yeKcim a écrit :

Pour les LED franchement vu le peu de visibilité qu’elles ont, ce n’est pas le plus urgent.

Pas si sûr, je verrai bien celles de gauche en indicateur de layers...

yeKcim a écrit :

Tu n’as pas répondu pour :

+: la position de Num, Caps, Home, End, Page Up/Dwn en retrait
- : la position de Fn et Win à gauche, mais il me faut la même à droite. Le AltGr trop accessible à droite.


yeKcim a écrit :

Dans ton cas, j’aurais bien inversé tab et caps lock car à l’usage je trouve la touche du haut plus accessible, or tab est vraiment plus utile que caps lock.

Bonne remarque, je vais les permuter.

yeKcim a écrit :

Je suis sous linux, du coup, quand tu dis que tout fonctionne (vol+, vol-, mute, couper, copier, coller) c’est sous windows ?

Oui, je suis sous Windows pour des raisons professiionnelles car je travaille chez moi, mais j'ai plusieurs distribs Linux sous VirtualBox et je n'ai pas encore testé.

#3 Re : Coin des bidouilleurs » [sujet technique] Adapter le bépo à l’ergodox » 26/12/2014 09:50:44

rat bière sé a écrit :

Rebienvenu parmi nous chincha. Au nom de l'équipe d'administration je te présente mes plus sincères excuses pour ce désagrément. Il me semble ne pas avoir vu passer ton pseudo lors de mes suppressions manuelles des comptes dormants sans aucun message dont nous suspections qu'ils ne soient pas du spam, c'est donc avant cela que le mal a été fait, par un script automatique à la justice aveugle hmm
En tout cas, maintenant que tu as au moins posté un message ce genre de péripétie ne t'arrivera plus smile

Pas de soucis wink


c4software a écrit :

Les touches Fn+1 et Fn+2 change de qu'elle manière le layer? Persistant ou jusqu'au relâchement de la touche?

Oui, les touches +Fn1 et +Fn2 sont des push persistants, mais je vais modifier encore les 2 couches pour avoir une permanente (numpad et souris), et une temporaire+permanente (fonctions et raccourcis).

yeKcim a écrit :

En fait, dans ta disposition ce que je n’aimais pas c’est un peu le peu d’accessibilité du alt et/ou ~L1.

Je trouve le Alt très accessible pour ma part, et pour le ~L1, je verrai à l'usage.
L'espace sous le pouce gauche est indispensable (raccourci logiciels 2D et 3D), et il faut dans tous les cas au moins 2 autres touches de modification sous chaque pouce et la troisième en accès facile.

yeKcim a écrit :

J’avais hésité à mettre les F1, F2 comme toi, ça ne fait pas trop bizarre que les chiffres ne correspondent pas au numéro de F ?

Non et c'est plutôt l'inverse qui me semble incohérent.

yeKcim a écrit :

Pour le driver que tu as utilisé, tu as un tuto ? ou tu pourrais expliquer comment tu as procédé peut-être ? Je suis très très très fortement intéressé. (pour les liens si tu n’as pas le droit pour le moment tu peux toujours les mettre sans http, un modo pourra éventuellement arranger ça.

Tu peux trouver le driver à l'adresse suivante : https://github.com/cub-uanic/tmk_keyboard
Il faut modifier tes couches dans le fichier tmk_keyboard-cub_layout\keyboard\ergodox\keymap.c.
Pour cela, tu as des exemples et de la doc dans le dossier mk_keyboard-cub_layout\doc\ (voir keycode.txt, keymap.md et build.md).

Si tu es sous Windows :
Supprime le fichier  tmk_keyboard-cub_layout\keyboard\ergodox\Makefile.pjrc, c'est une variante de compilation, on utilise la seconde Makefile.lufa.
Télécharge un compilateur GCC, par exemple : http://sourceforge.net/project/showfile … p_id=68108
Ouvre une fenêtre de commande, déplace toi dans le dossier tmk_keyboard-cub_layout\keyboard\ergodox\ avec la commande "cd".
Tape "Make" et tu pourra récupérer ton fichier .hex dans le même répertoire.

Si tu es sous linux, je pense que ce n'est pas la peine de t'expliquer comment compiler...

Voilà ma keymap si ça peut t'aider :

/*
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdint.h>
#include <stdbool.h>
#include <avr/pgmspace.h>
#include <util/delay.h>
#include "keycode.h"
#include "action.h"
#include "action_util.h"
#include "action_code.h"
#include "action_macro.h"
#include "action_layer.h"
#include "bootloader.h"
#include "report.h"
#include "host.h"
#include "print.h"
#include "debug.h"
#include "keymap.h"
#include "ergodox.h"


/* ErgoDox keymap definition macro */
#define KEYMAP(                                                 \
                                                                \
    /* left hand, spatial positions */                          \
    k00,k01,k02,k03,k04,k05,k06,                                \
    k10,k11,k12,k13,k14,k15,k16,                                \
    k20,k21,k22,k23,k24,k25,                                    \
    k30,k31,k32,k33,k34,k35,k36,                                \
    k40,k41,k42,k43,k44,                                        \
                            k55,k56,                            \
                                k54,                            \
                        k53,k52,k51,                            \
                                                                \
    /* right hand, spatial positions */                         \
        k07,k08,k09,k0A,k0B,k0C,k0D,                            \
        k17,k18,k19,k1A,k1B,k1C,k1D,                            \
            k28,k29,k2A,k2B,k2C,k2D,                            \
        k37,k38,k39,k3A,k3B,k3C,k3D,                            \
                k49,k4A,k4B,k4C,k4D,                            \
    k57,k58,                                                    \
    k59,                                                        \
    k5C,k5B,k5A )                                               \
                                                                \
   /* matrix positions */                                       \
   {                                                            \
    { KC_##k00,KC_##k10,KC_##k20,KC_##k30,KC_##k40,KC_NO   },   \
    { KC_##k01,KC_##k11,KC_##k21,KC_##k31,KC_##k41,KC_##k51},   \
    { KC_##k02,KC_##k12,KC_##k22,KC_##k32,KC_##k42,KC_##k52},   \
    { KC_##k03,KC_##k13,KC_##k23,KC_##k33,KC_##k43,KC_##k53},   \
    { KC_##k04,KC_##k14,KC_##k24,KC_##k34,KC_##k44,KC_##k54},   \
    { KC_##k05,KC_##k15,KC_##k25,KC_##k35,KC_NO,   KC_##k55},   \
    { KC_##k06,KC_##k16,KC_NO,   KC_##k36,KC_NO,   KC_##k56},   \
                                                                \
    { KC_##k07,KC_##k17,KC_NO,   KC_##k37,KC_NO,   KC_##k57},   \
    { KC_##k08,KC_##k18,KC_##k28,KC_##k38,KC_NO,   KC_##k58},   \
    { KC_##k09,KC_##k19,KC_##k29,KC_##k39,KC_##k49,KC_##k59},   \
    { KC_##k0A,KC_##k1A,KC_##k2A,KC_##k3A,KC_##k4A,KC_##k5A},   \
    { KC_##k0B,KC_##k1B,KC_##k2B,KC_##k3B,KC_##k4B,KC_##k5B},   \
    { KC_##k0C,KC_##k1C,KC_##k2C,KC_##k3C,KC_##k4C,KC_##k5C},   \
    { KC_##k0D,KC_##k1D,KC_##k2D,KC_##k3D,KC_##k4D,KC_NO   }    \
   }


  #if defined(KEYMAP_DVORAK)
  #include "keymap_dvorak.h"
  #elif defined(KEYMAP_BEPO)
  #include "keymap_bepo.h"
  #elif defined(KEYMAP_COLEMAK)
  #include "keymap_colemak.h"
  #elif defined(KEYMAP_WORKMAN)
  #include "keymap_workman.h"
  #elif defined(KEYMAP_MICRO)
  #include "keymap_micro.h"
  #elif defined(KEYMAP_CUB)
  #include "keymap_cub.h"
  #else


static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    KEYMAP(  // layer 0 : default
        // left hand
        ESC, 1,   2,   3,   4,   5,   GRV,
        RBRC,Q,   W,   E,   R,   T,   BSPC,
        BSLS,A,   S,   D,   F,   G,
        LCTL,Z,   X,   C,   V,   B,   DEL,
        HOME,PGUP,PGDN,END, RALT,
                                      FN3, LGUI,
                                           FN1,
                                 SPC, LSFT,LALT,
        // right hand
             EQL, 6,   7,   8,   9,   0,   MINS,
             CAPS,Y,   U,   I,   O,   P,   LBRC,
                  H,   J,   K,   L,   SCLN,QUOT,
             TAB, N,   M,   COMM,DOT, SLSH,RCTL,
                       RALT,LEFT,UP,  DOWN,RGHT,
        RGUI, FN2,
        FN1,
        LALT,LSFT, ENT
    ),

    KEYMAP(  // layer 1 : function, numpad and mouse
        // left hand
        TRNS,F1,  F2,  F3,  F4,  F5,  F6,
        PSLS,PAST,P7,  P8,  P9,  PDOT,TRNS,
        PPLS,PMNS,P4,  P5,  P6,  PEQL,
        TRNS,P0,  P1,  P2,  P3,  PENT,TRNS,  
        NO,  NO,  NO,  NO,  TRNS,
                                      FN3, TRNS,
                                           TRNS,
                                 TRNS,TRNS,TRNS,
        // right hand
             F7,  F8,  F9,  F10, F11, F12, PSCR,
             NLCK,NO,  NO,  MS_U,WH_U,NO,  SLCK,
                  BTN1,MS_L,BTN3,MS_R,BTN2,PAUS,
             TRNS,NO,  NO,  MS_D,WH_D,NO,  TRNS ,
                       TRNS,TRNS,TRNS,TRNS,TRNS,
        TRNS,FN4,
        TRNS,
        TRNS,TRNS,TRNS  
    ),

    KEYMAP(  // layer 2 : keyboard functions
        // left hand
        TRNS,CALC,MYCM,MAIL,NO , NO,NO,  
        FN11,NO,  FN5, FN7, FN9, NO,TRNS,  
        NO,  NO,  FN6, FN12,FN13,NO,  
        TRNS,NO,  NO,  FN14,NO , NO,TRNS,  
        VOLD,VOLU,MUTE,NO,  TRNS,
                                      FN4, TRNS,
                                           TRNS,
                                 TRNS,TRNS,TRNS,
        // right hand
             NO,  NO,  NO,  NO,  NO,  NO,  NO,  
             TRNS,NO,  NO,  NO,  NO,  NO,  NO,  
                  NO,  NO,  NO,  NO,  NO,  NO,  
             TRNS,NO,  NO,  NO,  NO,  NO,  NO,  
                       TRNS,TRNS,TRNS,TRNS,TRNS,  
        TRNS,FN4,
        TRNS,
        TRNS,TRNS,TRNS   
    ),

/*
    KEYMAP(  // layer 3: 
        // left hand
        NO,  NO,  NO,  NO,  NO,  NO,  NO,  
        NO,  NO,  NO,  NO,  NO,  NO,  NO,  
        NO,  NO,  NO,  NO,  NO,  NO,  
        NO,  NO,  NO,  NO,  NO,  NO,  NO,  
        NO,  NO,  NO,  NO,  NO,  
                                      NO,  NO,  
                                           NO,  
                                 NO,  NO,  NO,  
        // right hand
             NO,  NO,  NO,  NO,  NO,  NO,  NO,  
             NO,  NO,  NO,  NO,  NO,  NO,  NO,  
                  NO,  NO,  NO,  NO,  NO,  NO,  
             NO,  NO,  NO,  NO,  NO,  NO,  NO,  
                       NO,  NO,  NO,  NO,  NO,  
        NO,  NO,  
        NO,  
        NO,  NO,  NO 
    ),
*/

};

/* id for user defined functions */
enum function_id {
    TEENSY_KEY,
};

/*
 * Fn action definition
 */
static const uint16_t PROGMEM fn_actions[] = {
    ACTION_FUNCTION(TEENSY_KEY),                 // FN0 - Teensy key
    ACTION_LAYER_MOMENTARY(1),                   // FN1 - switch to Layer1
    ACTION_LAYER_SET(1, ON_PRESS),               // FN2 - Set Layer1
    ACTION_LAYER_SET(2, ON_PRESS),               // FN3 - Set Layer2 
    ACTION_LAYER_SET(0, ON_PRESS),               // FN4 - Set Layer0
    ACTION_MODS_KEY(MOD_LCTL, KC_A),             // FN5 - Ctrl A
    ACTION_MODS_KEY(MOD_LCTL, KC_H),             // FN6 - Ctrl C
    ACTION_MODS_KEY(MOD_LCTL, KC_SLSH),          // FN7 - Ctrl F
    ACTION_MODS_KEY(MOD_LCTL, KC_COMM),          // FN8 - Ctrl G
    ACTION_MODS_KEY(MOD_LCTL, KC_DOT),           // FN9 - Ctrl H
    ACTION_MODS_KEY(MOD_LCTL, KC_E),             // FN10 - Ctrl P
    ACTION_MODS_KEY(MOD_LCTL, KC_K),             // FN11 - Ctrl S
    ACTION_MODS_KEY(MOD_LCTL, KC_C),             // FN12 - Ctrl X
    ACTION_MODS_KEY(MOD_LCTL, KC_U),             // FN13 - Ctrl V    
    ACTION_MODS_KEY(MOD_LGUI, KC_I),             // FN14 - Win D
};

void action_function(keyrecord_t *event, uint8_t id, uint8_t opt)
{
    if (id == TEENSY_KEY) {
        clear_keyboard();
        print("\n\nJump to bootloader... ");
        _delay_ms(250);
        bootloader_jump(); // should not return
        print("not supported.\n");
    }
}

#endif


#define KEYMAPS_SIZE    (sizeof(keymaps) / sizeof(keymaps[0]))
#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))

/* translates key to keycode */
uint8_t keymap_key_to_keycode(uint8_t layer, key_t key)
{
    if (layer < KEYMAPS_SIZE) {
        return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
    } else {
        // fall back to layer 0
        return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
    }
}


#else
/* translates Fn keycode to action */
action_t keymap_fn_to_action(uint8_t keycode)
{
    action_t action;
    if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) {
        action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
    } else {
        action.code = ACTION_NO;
    }
    return action;
}
#endif

Il y a moyen de bricoler les LED également mais j'ai pas eu le temps de m'y pencher.

#4 Re : Coin des bidouilleurs » [sujet technique] Adapter le bépo à l’ergodox » 25/12/2014 14:31:55

Salut,

Possesseur d'un Ergodox depuis 1 mois, j'ai suivi avec intérêt ce post depuis qq semaines, et je me suis largement inspiré de vos expériences pour faire ma propre config avec le driver de cub-uanic.
Je ne peux malheureusement pas mettre le lien car j'ai du me réinscrire sur le forum suite à la vraisemblable suppression de mon compte.

Voila les 3 layers :

http://mcv78.free.fr/images/couche%201.jpg

http://mcv78.free.fr/images/couche%202.jpg

http://mcv78.free.fr/images/couche%203.jpg


Toutes les touches sont fonctionnelles (volumes, raccourcis et souris sur la main droite).
La couche raccourcis sera complétée par la suite suivant besoins.

Merci pour votre retour si vous avez des suggestions.

edit mimoza : Je t'ai passé en tant que membre pour que tu puisse poster des liens et tout

Pied de page des forums

Propulsé par FluxBB