Outil d'insertion unicode

Message 1, par Elzen

§ Posté le 01/01/2015 à 18h 52m 51

Pour taper des caractères unicodes qui ne sont pas, ou pas facilement, accessibles avec la disposition clavier active, les applications en GTK (ou qui utilisent GTK pour s'afficher) proposent une combinaison spéciale, ctrl+shift+u+numéro unicode, permettant d'obtenir n'importe quel caractère.

Cependant, ce comportement est spécifique à GTK : les applications en Qt, par exemple, ne le proposent pas. Or, je m'en servais beaucoup jusque là, et comme je projette de passer à Qt pour la prochaine version de Touhy, ça m'embêtait un peu.


J'ai donc décidé d'essayer de mettre en place une autre solution pour parvenir au même résultat, et voici tinsert. Cet utilitaire consiste en une popup permettant de choisir des caractères unicodes par plusieurs moyens, pour pouvoir ensuite les insérer dans les autres applications.


Capture d'écran


Les boutons, dont le contenu est configurable, servent à contenir les caractères, ou combinaisons de caractères, que vous utilisez fréquemment. Le champ de saisie numérique permet d'entrer le numéro de caractère unicode, comme dans le raccourcis clavier d'origine.

L'autre champ de saisie du bas, avec la petite loupe, permet de chercher des caractères unicodes par nom. Pour cela, il est nécessaire de disposer de la liste des caractères unicodes.

Je n'ai pas réussi à l'obtenir directement, donc l'application, lors de la première recherche, télécharge le fichier sur le site officiel (ftp.unicode.org). Cela prend un peu de temps (et nécessite une connexion) la première fois, mais le fichier est enregistré dans la configuration de Touhy, pour un usage plus immédiat ensuite.

Une fois le ou les caractère(s) désiré(s) sélectionné(s), le champ de saisie du haut prend le focus, et vous n'avez plus qu'à valider (au clavier ou en cliquant sur l'icône) pour que la fenêtre se ferme et que l'insertion se fasse.


Utilisez votre gestionnaire de raccourcis clavier habituel pour associer cet utilitaire au raccourcis de votre choix (par exemple, ctrl+shift+u) et, sous réserve que vous ayez le module pyatspi installé, vous pourrez normalement insérer des caractères unicodes arbitraires dans toutes les applications 😊 (la popup apparaîtra juste sous la souris, donc pensez à éloigner celle-ci du bord de l'écran).

Comme pour toutes les popups (celles de Touhy, du moins), si vous changez d'avis, vous n'avez qu'à appuyer sur échap ou cliquer en dehors de la fenêtre pour qu'elle se referme sans rien faire de fâcheux.


Note : il semble que certains caractères aient du mal à passer quand ils sont en première position dans la chaîne insérée. Du coup, histoire de s'assurer que tout sera correctement inséré, j'ai fais en sorte que ladite chaîne commence systématiquement par une espace.

Message 2, par PPdM

§ Posté le 01/01/2015 à 19h 45m 20

Salut

intéressant mais on l'installe comment ?

StP Merci

Message 3, par Elzen

§ Posté le 01/01/2015 à 21h 50m 29

Dans l'état actuel des choses, tu clones le dépôt de Touhy (cf ici), et l'exécutable est dans le répertoire python2 (tu peux aussi utiliser le script shell présent dans le répertoire cython2 pour te faire plutôt un binaire).


Ce sera peut-être packagé, un jour, on verra ^^

Message 4, par Elzen

§ Posté le 20/07/2015 à 15h 49m 58

Cet outil n'était pas particulièrement pratique à utiliser, aussi l'ai-je quelque peu remanié.


Il se décompose maintenant en plusieurs fonctionnalités différentes, que l'on peut obtenir en précisant une option à la ligne de commande.


L'option « hexcode » se focalise sur le remplacement de la fameuse combinaison ctrl+shift+u : il ouvre une popup contenant deux champs de saisie, l'un destiné à contenir le code hexa du caractère unicode que vous désirez, l'autre destiné à afficher ce caractère, pour vérifier que c'est bien ce que vous voulez.

Vous avez directement le focus au bon endroit, il n'y a qu'à taper le code. Un appui sur la touche de retour à la ligne, une fois le code tapé, le valide et l'ajoute au 2e champ de saisie. Vous pouvez alors soit taper un autre code hexa pour insérer un second caractère à la suite du premier (et ainsi de suite), soit réappuyer une seconde fois sur la touche de retour à la ligne, pour valider et tout insérer d'un coup.


L'option « search » se focalise sur la recherche : une popup apparaît avec une liste qui contiendra les caractères utiles, et vous pouvez taper des éléments de description dans le champ de saisie pour chercher les caractères qui vous intéressent (j'ai légèrement amélioré la recherche par rapport à la version précédente).

Si vous voyez le caractère qui vous intéresse dans les résultats, activez-le dans la liste (double-clic à la souris ou sélection + retour à la ligne au clavier) et appuyez sur la touche de retour à la ligne pour l'insérer. Si la description tapée ne correspond pas exactement, mais qu'il n'y a qu'un seul résultat, ça marchera aussi.


L'option « suggest » affiche la liste des caractères enregistrés dans la configuration pour vous permettre de les insérer directement. Elle est très vraisemblablement améliorable dans l'immédiat, n'hésitez pas à faire des retours.


En supplément, deux nouvelles fonctionnalités sont apparues : les options « strike » et « underline » permettent d'insérer du texte barré ou souligné, grâce aux caractères d'overlay (il semble cependant que ça ait tendance à ne pas marcher si le texte à barrer/souligner contient des caractères spéciaux).

Puisque des caractères de ce genre existent aussi en Unicode, je rajouterai peut-être plus tard des options pour passer en gras et/ou en italique, voire en inversé, mais il ne s'agit pas d'overlay, donc ça risque d'être un poil plus complexe à faire, on verra.


Pour la recherche et pour les nouvelles fonctionnalités, où il est nécessaire de taper du texte, le programme commencera par vérifier le contenu du presse-papier PRIMARY (celui correspondant à la sélection actuelle, qui permet les copier-coller avec le clic milieu) : si du texte s'y trouve, celui-ci sera utilisé.

(J'aurais aimé faire en sorte, pour barrer/souligner, que la popup de choix s'affiche dans tous les cas, permettant à l'utilisateur de vérifier que le texte est bien ce qu'il désire. Cependant, GTK a, dans ce cas, tendance à sélectionner le contenu du champ de saisie, ce qui fait que la sélection d'origine est perdue et que l'insertion ne peut donc pas remplacer le texte d'origine. J'ai donc désactivé la popup dans ce cas).


Pour chacune des options, les tirets préalables sont optionnels, et un texte de départ peut être fourni directement dans la ligne de commande (il a alors priorité y compris sur le presse-papier).


Quelques exemples d'utilisation :


Comme précédemment, le programme utilise python-pyatspi pour insérer le texte, avec les bugs que ceci comprend (nécessité d'une espace au début du texte inséré pour que ça ait une chance de marcher, et encore, certains caractères ont un peu de mal à passer. Toute suggestion d'amélioration bienvenue).

Oh, et pour les gens n'utilisant pas Touhy, je propose également une version indépendante, un peu plus limitée, mais qui devrait couvrir la plupart des usages.

(Suite au décès inopiné de mon précédent serveur, je profite de mettre en place une nouvelle machine pour essayer de refaire un outil de blog digne de ce nom. J'en profiterai d'ailleurs aussi pour repasser un peu sur certains articles, qui commencent à être particulièrement datés. En attendant, le système de commentaires de ce blog n'est plus fonctionnel, et a donc été désactivé. Désolé ! Vous pouvez néanmoins me contacter si besoin par mail (« mon login at ma machine, comme les gens normaux »), ou d'ailleurs par n'importe quel autre moyen. En espérant remettre les choses en place assez vite, tout plein de datalove sur vous !)