saisie semi-automatique au niveau du bureau


11

Je tape souvent les mêmes mots dans plusieurs applications:

  • Éditeur (emacs, vi)
  • Navigateur Web
  • Coquilles

Ce serait formidable d'avoir une saisie semi-automatique des mots que j'ai tapés au cours de la dernière semaine disponible dans toutes les applications ci-dessus.

Chacun d'eux a un moyen d'améliorer la vitesse de frappe. Mais quelque chose au niveau du bureau serait le meilleur.

Exemple: "Intégration continue". Je veux un moyen rapide de taper ce mot sans changer le programme qui reçoit l'entrée.

Y a-t-il déjà quelque chose comme ça?


Soetihng comme Synapse ( lifehacker.com/5704221/… )?
Salem

Je pense qu'ils signifient quelque chose comme la saisie semi-automatique de LibreOffice. Il enregistre les mots que vous tapez (qui répondent à une exigence de longueur personnalisable). Lorsque vous tapez les premières lettres d'un mot qu'il a enregistré, il vous proposera de taper le reste, et vous pouvez appuyer sur tab pour le taper, ou continuer à taper pour le refuser.
Andy Castille

Réponses:


7

La solution à votre demande est la méthode de saisie.

Ce que vous avez décrit est quelque chose de familier à la plupart des utilisateurs du langage CJK. Passons en revue le fonctionnement de la méthode d'entrée dans les systèmes Linux actuels.

Le système de méthode d'entrée

Voici une architecture simple pour un système de méthode d'entrée commun:

NOTE: Je SNaPshot cette image du Protocole de méthode d' entrée X . Certaines flèches ne sont pas pertinentes pour la suite de la discussion.

Historiquement, XIM (le protocole X Input Method) était le seul protocole. Il est trop complexe et manque de certaines fonctionnalités souhaitées. Il est donc principalement abandonné, bien que la compatibilité soit toujours fournie par des boîtes à outils populaires comme GTK, Qt.

Un système de méthode d'entrée moderne comprend plusieurs parties:

  1. Prise en charge de la bibliothèque côté client

    • généralement implémenté comme un module chargé par des boîtes à outils (par exemple pour GTK, voir /usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/)
  2. Serveur de méthode d'entrée
  3. Serveur X

Comment ces pièces s'assemblent-elles?

Un utilisateur tape une clé. Le serveur X reçoit l'événement matériel de l'interface evdev, compose un XEvent et l'envoie à l'application sous le focus clavier. Le module de méthode d'entrée de la boîte à outils d'application (GTK, Qt) intercepte l'événement et transmet les informations au serveur de méthode d'entrée. Le serveur de méthode d'entrée détermine ce que l'utilisateur peut souhaiter et transmet du texte au module de messagerie instantanée.

Parlons maintenant de l'architecture du serveur de messagerie instantanée.
Un serveur de messagerie instantanée se compose généralement de deux parties:

  1. Un cadre de messagerie instantanée qui gère les subtilités spécifiques à la plate-forme et fournit une interface agréable aux moteurs de messagerie instantanée et aux modules de messagerie instantanée. Il fournit les mécanismes IPC utilisés par le module IM, le serveur et le moteur.
  2. Divers moteurs de messagerie instantanée effectuent le travail réel de transformation des clés saisies par l'utilisateur en texte souhaité. Les moteurs de messagerie instantanée peuvent être des bibliothèques partagées chargées par le serveur de messagerie instantanée ou des processus indépendants communiquant avec le serveur de messagerie instantanée.
  3. Les programmes de configuration de la méthode d'entrée auxiliaire fournissent une interface utilisateur conviviale pour personnaliser le serveur IM et les comportements du moteur.

Dans l'ensemble, ce qu'un MI fait est de transformer ce que vous tapez en quelque chose de différent et de fournir éventuellement des prédictions.

Un exemple

Nous utilisons ibus-pinyinici pour taper quelques caractères chinois.

La romanisation de 汉语拼音 est han yu pin yin. Au début, vous devez taper toutes ces lettres pour obtenir les quatre caractères chinois. Mais après quelques fois, il vous suffit de taper les quatre caractères initiaux h y p ypour obtenir le caractère chinois.

Dans le ibus-pinyincas, han yu pin yinest raccourci à h y p y.
Des moteurs de messagerie instantanée plus avancés utilisent des techniques d'apprentissage statistique pour fournir une meilleure prédiction. Rien ne peut vous empêcher d'écrire un moteur de méthode de saisie en anglais pour vous donner un coup de fouet.

En prime, tous les kits d'outils prennent en charge les méthodes de saisie, à l'exception de certains anciens programmes X simples. C'est donc une solution assez universelle.


Merci à Anders FU Kiær. Fonctionnalités / Typing-Booster | Fedora Project Wiki devrait être la réponse


1
le cadre de messagerie instantanée le plus couramment utilisé est ibus . si j'ai le temps, je vais travailler sur l'écriture d'un moteur de messagerie instantanée pour le faire. tout le monde peut l'essayer et laisser un lien si vous avez un code de preuve de concept.
sgx1



Votre réponse est la meilleure. Je vous donne la prime :-)
guettli

3

Jetez un oeil à mon script, TextSuggest .

En action:

Imgur

Installation:

Installez les packages suivants:

  • xdotool
  • xclip
  • suckless-tools(pour dmenu)

Attribuez ensuite 2 raccourcis clavier:

  • un pour `python3 /path/to/TextSuggest.py --noselect
  • l'autre à python3 /path/to/TextSuggest.py

Le premier fournira simplement une liste consultable de tous les mots. Utilisez le second lorsque vous avez du texte sélectionné et que vous souhaitez obtenir des suggestions / compléments pour celui-ci.

Les suggestions acceptées sont enregistrées en tant qu'historique (et sont ensuite suggérées en premier) dans le fichier ~/.textsuggest_history.txt.

Vous pouvez définir des mots et des extensions / alias personnalisés sur ~/.Custom_Words.txt.


0

Jetez un oeil à Autokey . Cela pourrait répondre à vos besoins. C / P de leur site:

AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11. Il vous permet de gérer la collection de scripts et de phrases, et de leur attribuer des abréviations et des raccourcis clavier. Cela vous permet d'exécuter un script ou d'insérer du texte à la demande dans n'importe quel programme que vous utilisez.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.