Page 1 sur 8 12345 ... DernièreDernière
Affichage des résultats 1 à 15 sur 112

Discussion: Laurent2o1o Keyboard

  1. #1
    Archosien expert Avatar de laurent2o1o
    Date d'inscription
    décembre 2010
    Âge
    40
    Messages
    531
    Je possède : sens de l'humour

    Laurent2o1o Keyboard

    Hello, les choses avançant, je me suis dit que je communiquerais bien un peu sur mon p'tit bidule.

    A quoi ressemblé-ce ?
    Spoiler
    A rien
    Mais notez l'effort : le clavier n'a que trois lignes en mode paysage pour laisser plus d'air au contenu.
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		fb-20110621-222351.png 
Affichages :	70 
Taille :		126,6 Ko 
ID : 			4412 Cliquez sur l'image pour la voir en taille réelle 

Nom : 		fb-20110621-222508.png 
Affichages :	46 
Taille :		112,7 Ko 
ID : 			4413

    Pour comparer, le clavier par défaut ressemble à ceci :
    Cliquez sur l'image pour la voir en taille réelle 

Nom : 		fb-20110621-222429.png 
Affichages :	51 
Taille :		112,7 Ko 
ID : 			4414 Cliquez sur l'image pour la voir en taille réelle 

Nom : 		fb-20110621-222442.png 
Affichages :	29 
Taille :		105,6 Ko 
ID : 			4415

    Les petites features qui font bien du plaisir...
    Spoiler

    Softkeyboard :
    • Multitap sur les lettres produit les accents correspondants
    • Certaines touches de ponctuation utilisent aussi ce principe
    • Format compact en horizontal
    • Il est escamotable (touche en bas à gauche)
    • Fonctionnement similaire au clavier par défaut pour le reste (popup de lettres et symboles, ...)


    Clavier externe :
    • Permet le réarrangement des touches du clavier (azerty/qwerty/qwertz ou même ezrjhoh si ça vous chante) entièrement configurable (avec un sale fichier de config bien geek)
    • Modification des "Glyphs" des touches à volonté (4 glyphs : frappe normale, shift, alt et sym)


    Fonctionnement du remapping du clavier
    Spoiler

    La théorie pour bien comprendre la pratique :
    Spoiler
    Pour bien commencer il faut comprendre que les touches d'un clavier physique émettent des codes (nombres) qu'on appellera scancodes
    Le noyau android traduit ces scancodes en leur équivalent logique : les keycodes.

    Prenons l'exemple de la touche "&/1" sur un clavier AZERTY.
    Lorsqu'on presse cette touche, le système reçoit un scancode qui signifie 'deuxième touche de la première rangée'.
    Suivent deux étapes :
    - scancode to keycode
    Cette touche passe à travers le filtre de la disposition externe du clavier Archos qui l'associe au keycode 'KEYCODE_1' (en gros la touche logique 1).

    - keycode to glyph
    Si on est sur une zone de texte, la touche repasse à travers un autre filtre Archos qui transforme le keycode 'KEYCODE_1' en '&' ou '1' en fonction de l'état du shift. (si ça n'est pas une zone de texte modifiable, cette étape n'a pas lieu et le destinateur reçoit simplement le keycode).


    Fichiers pour le remapping des touches
    Spoiler
    On choisit d'abord la configuration du clavier externe la plus proche de ce qu'on souhaite, puis on crée un répertoire contenant deux fichiers de configuration qui contiendront les changements par rapport au mapping.

    - créer le répertoire /mnt/storage/keyremap (ou directement keyremap à la racine de l'archos en USB sous windows)
    - créer le fichier texte /mnt/storage/keyremap/s2k.cfg (ou keyremap\s2k.cfg sous windows)
    - créer le fichier texte /mnt/storage/keyremap/k2g.cfg (ou keyremap\k2g.cfg sous windows)

    Procédure pour le remapping d'une touche :
    Spoiler
    - Echange de deux touches (sans modification des glyphs qu'elles produisent)
    Spoiler
    exemple : on veut échanger A et Q (clavier AZERTY)
    on écrit dans le fichier s2k.cfg les deux lignes suivantes :

    30 => 45
    16 => 29

    Où 30 et 16 sont les scancodes (voir la théorie plus haut) des touches physiques A et Q et
    45 et 29 sont les keycodes pour les touches 'Q' et 'A'

    On sauve, on redémarre le clavier et ça fonctionne. Les deux touches ont été échangées.

    - Résurrection d'une touche morte
    Spoiler

    exemple : on a une touche volume up sur notre clavier externe : on souhaite qu'android la prenne en compte
    On a déterminé que la dite touche avait le scancode 114 (voir Comment connaître le scancode de telle ou telle touche ? ci-dessous)
    On s'est rendu compte qu'android possédait une touche logique KEYCODE_VOLUME_DOWN ayant pour keycode 25 dans le tableau des touches logiques android.

    On ajoute donc la ligne suivante dans le fichier s2k.cfg
    114 => 25
    Et c'est fini.


    - Changement des lettres associées aux touches

    1) produire 'ç' en appuyant sur alt+C
    Spoiler

    exemple: on souhaite changer le comportement de la touche C pour qu'elle produise 'c' en normal 'C' avec shift 'ç' avec alt et '©' avec sym
    Cette fois-ci ça se passe dans le fichier k2g.cfg.
    Chaque ligne de ce fichier comporte 5 éléments séparés par des espaces, dans l'ordre :

    [keycode] [normal] [shift] [alt] [sym]

    Le reste de la ligne est ignoré.
    Sachant que le keycode (attention pas le scancode!) de la touche C est KEYCODE_C = 31 (en consultant le tableau des touches logiques android ou en utilisant la méthode Comment connaître le scancode de telle ou telle touche ? plus bas, il suffit d'écrire la ligne suivante dans le fichier k2g.cfg.

    31 c C ç ©

    Mais attention de bien le sauver en UTF8!


    2) Affecter le vrai comportement à la touche 'circonflexe/tréma'
    Spoiler

    Ça se passe dans dans k2g.cfg, voir le 1) pour le format.
    On a repéré que le keycode de cette touche est 71 (pour le mapping archos azerty).
    On veut lui affecter le caractère dead-circonflexe en normal, dead-trema en shift, et pourquoi pas '♥' avec alt
    On écrit la ligne suivante dans le fichier k2g.cfg

    71 0302 0308 ♥ 0000

    Nouvelle astuce : lorsqu'il ne s'agit pas d'un caractère unique (comme ♥) une séquence de 4 chiffres hexadécimaux sert à coder le caractère unicode correspondant.
    On l'a utilisé ici pour définir les caractères unicode
    0302 : combining circomflex accent
    0308 : combining diaeresis
    qui sont utilisés par android pour représenter les touches 'mortes' correspondantes
    Voir la page des accents unicode : http://www.unicode.org/charts/PDF/U0300.pdf pour d'autres exemples possibles.





    Comment connaître le scancode de telle ou telle touche ?
    Spoiler
    Appui long sur la touche "clavier" en bas à gauche du clavier à l'écran (le mien!) fait apparaître un menu : sélectionner "Enable key notification".
    Dès lors à chaque appui sur les touches du clavier externe, on a une petite notification qui le précise. Par exemple, pour la touche 'A' :

    Physical(Scancode): 30
    Logical(Keycode): 29 'A' key

    Ca signifie que le scancode de la touche 'A' est 30 et qu'elle est associée au keycode 29 qui signifie 'A' (sans le remapping archos, on aurait le keycode 'Q').

    On redésactive la notification par le même menu.

    Comment connaître les keycodes possible sous android ?
    Spoiler
    La liste exhaustive des keycodes peut être trouvée ici
    On peut également aussi les trouver avec la même méthode que pour les scancodes ci-dessus.


    Développements prévus ...
    Spoiler

    Une liste d'idées à réaliser
    • Support de la touche caps lock
    • Une véritable interface pour configurer le remapping des touches
    • ... tant de choses (voir les items retenus dans la langue de Shakespeare).



    Se procurer ce keyboard
    Désolé, il est trop alpha pour que je me risque à vous filer une apk
    Les plus curieux et téméraires iront jeter un coup d'oeil aux sources.
    Cependant ATTENTION, un clavier n'est pas une appli comme les autres :
    • Vous l'utilisez pour taper vos mots de passes
    • Il est parfois votre seule interface avec le système : que se passe t'il s'il devient fou ? Normalement ça se règle par un reboot mais vous pouvez potentiellement vous retrouver avec un système inutilisable...


    l'APK du clavier...
    Spoiler
    Voici le clavier dans sa version très alpha...
    Attention, c'est un tout petit peu dangereux d'installer ça! Réfléchissez et ne me pourrissez pas si ça plante
    (notez que la version release n'est pas construite tout à fait pareil que la version debug, il peut y avoir de nouveaux soucis et des erreurs de jeunesse)



    Un clavier ne s'installe pas pareil qu'une autre appli : il faut en plus :
    - l'activer dans Parametres/langue et clavier
    - l'activer en touchant longtemps une zone de texte puis "mode de saisie" pour enfin le sélectionner.

    Enfin : pas de grand intérêt pour les petits devices en mode paysage : les touches seront trop petites.

    Si vous avez bien lu :
    Dernière modification par laurent2o1o ; 18/08/2011 à 11:02:11.

  2. #2
    Archosien suspendu
    Date d'inscription
    octobre 2009
    Messages
    8 482
    Quand Laurent2o1o n'est pas sur le forum, c'est qu'il travaille pour le forum !

    Très très sympa l'ergonomie des trois lignes et de la touche pour escamoter.

  3. #3
    Ce serait sympa d'avoir possibilité de choix du clavier externe standard et non devoir tout reconfigurer soi même ...
    L'avenir est un long passé
    Archos possédé : Archos 70 IT, Archos 2 Vision . ordinateur principal MacBook , tablettes possédées : iPad , Mpman MP824 et quelques Archos ...

  4. #4
    Archosien illustre Avatar de lsjduejd
    Date d'inscription
    décembre 2010
    Âge
    19
    Messages
    3 114
    Wow super trop bien !

  5. #5
    Archosien expert Avatar de laurent2o1o
    Date d'inscription
    décembre 2010
    Âge
    40
    Messages
    531
    Je possède : sens de l'humour
    Citation Envoyé par switcheremac Voir le message
    Ce serait sympa d'avoir possibilité de choix du clavier externe standard et non devoir tout reconfigurer soi même ...
    En fait on choisit le layout archos, puis on ne fait que les modifs qu'on souhaite. La touche ^ pour avoir les vrais circomflexes par exemple.

    Edit:
    Ça sera surtout utile à ceux à qui Archos n'a pas pensé : nos cousins canadiens par exemple.
    Dernière modification par laurent2o1o ; 21/06/2011 à 23:23:02.

  6. #6
    Archosien expert Avatar de twinxeon
    Date d'inscription
    janvier 2011
    Âge
    41
    Messages
    821
    Je possède : 605 WiFi 80 Go
    Super intéressant,

    Et tu n'envisage pas d'en partager le code par hasard ?
    Envie de s'y mettre ? le développement d'APK Android, c'est ici !

  7. #7
    Archosien expert Avatar de laurent2o1o
    Date d'inscription
    décembre 2010
    Âge
    40
    Messages
    531
    Je possède : sens de l'humour
    Si si

    Quand il sera nettoyé
    Dernière modification par laurent2o1o ; 21/06/2011 à 23:44:32.

  8. #8
    Archosien suspendu
    Date d'inscription
    octobre 2009
    Messages
    8 482
    Les grands esprits se rencontrent.

  9. #9
    Archosien expert Avatar de twinxeon
    Date d'inscription
    janvier 2011
    Âge
    41
    Messages
    821
    Je possède : 605 WiFi 80 Go
    Et de leur rencontre peuvent naître des étincelles !
    Envie de s'y mettre ? le développement d'APK Android, c'est ici !

  10. #10
    Archosien expert Avatar de laurent2o1o
    Date d'inscription
    décembre 2010
    Âge
    40
    Messages
    531
    Je possède : sens de l'humour
    Ne vous attendez pas à des choses fantastiques !

    Je suis parti d'un exemple google déjà fonctionnel : Softkeyboard présent dans les samples du SDK
    Dernière modification par laurent2o1o ; 22/06/2011 à 07:21:12.

  11. #11
    Archosien expert Avatar de twinxeon
    Date d'inscription
    janvier 2011
    Âge
    41
    Messages
    821
    Je possède : 605 WiFi 80 Go
    Citation Envoyé par laurent2o1o Voir le message
    Je suis parti d'un exemple google déjà fonctionnel
    Il n'y a pas de mal à s'inspirer de ce qui marche . Et il faut bien partir de quelque chose...
    Envie de s'y mettre ? le développement d'APK Android, c'est ici !

  12. #12
    Archosien illustre
    Date d'inscription
    avril 2011
    Messages
    2 229
    Entrées dans le blog
    3
    Super sympa le clavier, bon boulot !!
    "Qui donne ne doit jamais s'en souvenir, qui reçoit ne doit jamais l'oublier."

  13. #13
    Archosien illustre Avatar de lsjduejd
    Date d'inscription
    décembre 2010
    Âge
    19
    Messages
    3 114
    Citation Envoyé par twinxeon Voir le message
    Il n'y a pas de mal à s'inspirer de ce qui marche . Et il faut bien partir de quelque chose...
    Et puis tant que ça marche, les utilisateurs ne demandent que ça :)

  14. #14
    Archosien expert Avatar de twinxeon
    Date d'inscription
    janvier 2011
    Âge
    41
    Messages
    821
    Je possède : 605 WiFi 80 Go
    Un beau code, clair et 'nettoyé' recèle en général moins de bugs. Sur ce plan là, je ne peux qu'approuver la démarche de laurent2o1o
    Envie de s'y mettre ? le développement d'APK Android, c'est ici !

  15. #15
    Archosien expert Avatar de laurent2o1o
    Date d'inscription
    décembre 2010
    Âge
    40
    Messages
    531
    Je possède : sens de l'humour
    Bon ben en fait, pourquoi attendre ?
    Je viens de commiter les sources sur googlecode. Les plus curieux pourront y jeter un oeil et je créerai un tag idoine quand les sources seront propres. Après tout svn est là pour ça

    Pour info, la révision 2 contient le code dont je suis parti (l'exemple SoftKeyboard de google qui est simplement renommé)

Informations de la discussion

Utilisateur(s) sur cette discussion

Il y a actuellement 1 utilisateur(s) naviguant sur cette discussion. (0 utilisateur(s) et 1 invité(s))

Discussions similaires

  1. Présentation de laurent2o1o
    Par laurent2o1o dans le forum Présentation des membres
    Réponses: 31
    Dernier message: 21/05/2011, 22:01:58
  2. microsoft bluetooth mobile keyboard 6000 & number pad
    Par ira glop dans le forum PC Tablet
    Réponses: 3
    Dernier message: 13/10/2010, 23:15:57
  3. Obtenir Touch IT Keyboard Pro gratuitement
    Par Zegreatclan dans le forum PC Tablet
    Réponses: 1
    Dernier message: 15/07/2010, 23:43:54
  4. Better Keyboard avec pack langage
    Par vartan dans le forum Applications & Jeux Android
    Réponses: 26
    Dernier message: 22/03/2010, 15:36:54

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •