Clavier à cinq boutons

Les interfaces graphiques sont pratiques, mais elles font parfois défaut. Créer une interface conviviale est un art et un gaspillage de ressources. Par conséquent, la plupart des programmes ne sont accessibles que via le shell de commande.



L'interface de ligne de commande est facile et pratique à créer, étendez les fonctionnalités sans vous soucier de l'utilisateur.



Si vous avez besoin de configurer quelque chose, mais qu'il n'y a pas d'élément nécessaire dans le menu, vous pouvez entrer dans la configuration avec vos mains. S'il n'y a pas d'accès à la configuration, vous devez en souffrir.



C'est ce que j'apporte au fait que même en ayant une interface graphique, un texte peut être très utile, surtout si quelque chose n'était pas prévu lors du développement.



Les réflexions sur le clavier dans Flipper Zero ont déclenché une discussion lente sur l'optimisation des méthodes de saisie. J'adore aussi les vélos, alors voici quelques idées folles.



Défilement de tri intelligent



Nous commencerons par un simple défilement des symboles.



Il y a du texte tapé, navigation dans le texte - flèches gauche / droite. Pour sélectionner un symbole, faites défiler vers le haut / bas une liste linéaire de tous les symboles.



C'est assez gênant, apportons quelques améliorations.



Sur la base du texte saisi par l'utilisateur, nous collecterons des statistiques sur les n-grammes de caractères. Dans le cas le plus simple, nous prenons les 4 symboles précédents, trions la table des symboles par fréquence d'utilisation avec ce tétragramme. L'utilisateur commence à faire défiler vers le bas et trouve rapidement le symbole souhaité. Lors du défilement vers le haut, il existe un ensemble fixe de commandes de service, telles que l'espace, la suppression du caractère précédent, la casse et la mise en page.



Pour une gamme restreinte de tâches, cette méthode conviendrait, mais pour une personne, elle est encore trop difficile. Il faut se concentrer pour ne pas rater le signe souhaité, et c'est fatiguant.



image



Système ternaire



Et si vous vous souvenez simplement de l'emplacement des plages de caractères Unicode souhaitées?

Nous tapons le code du symbole, confirmons, nous tapons le suivant.



Nous avons 5 boutons. Si nous en utilisons un pour confirmer l'entrée, le second pour effacer le dernier chiffre, il y a 3 boutons par numéro. Disons haut - 0, vers la droite - 1, bas - 2.



Il suffit de s'habituer au système ternaire et d'apprendre les plages des codes requis. La commodité est discutable, mais s'habituer à cette méthode d'entrée est beaucoup plus facile que de bourrer du code Morse. Il y a une certaine redondance, il est possible de tout saisir, des caractères de contrôle aux emojis, mais presque personne n'aura besoin d'utiliser plus d'une centaine de lettres et de signes de ponctuation.



image



Défilement 2D



Étendons le défilement à plusieurs rangées de symboles, triés par fréquence d'utilisation, de sorte que la distance de Manhattan entre le point de départ et le symbole est d'autant plus grande qu'elle est utilisée.



image



Cela s'avère beaucoup plus pratique, aucune préparation n'est requise. Mauvaise interface intuitive, tout à fait adaptée à un petit écran. Dans les téléphones à bouton-poussoir, vous pouvez composer toutes sortes de caractères spéciaux de la même manière. Mais en réduisant la taille à une ligne, vous pouvez le faire sur de très petits écrans.



image



L'entrée doit être contrôlée visuellement, puis une longue formation n'est pas nécessaire (bonjour le code Morse) et la disposition des caractères doit être statique, sinon la numérotation rapide ne fonctionnera pas. Bien que ce soit peut-être une question d'habitude, si nos boutons fréquemment utilisés sautaient sous nos doigts, le cerveau pourrait s'adapter, mais nous avons ce que nous avons.

Vous pouvez également proposer toutes sortes de codes Huffman, mais ce sont des complications inutiles, en plus de l'impossibilité de s'étendre, le code Morse en est un exemple.



Voici un lien vers le code de la démo utilisé dans le post



Incluse en tant que bibliothèque Python, la fonction ternaire accepte éventuellement une chaîne pour l'édition. Pour quitter le mode de navigation, appuyez sur la flèche vers le haut. En mode édition, un code de caractère ternaire est saisi (haut - 0, droite - 1, bas - 2, gauche - efface le dernier chiffre, Enter - confirme). Pour quitter, appuyez sur Entrée, la fonction retournera la ligne modifiée.



Dans la fonction de roulis, tout est beaucoup plus simple - sélectionnez un symbole avec les flèches, confirmez avec le bouton Entrée. Dans la première ligne du haut: Insérer Tab, Shift, Backspace, Space, Line Feed, Delete et Caps Lock.



All Articles