Maintenez les touches du modificateur

23

Je suis tombé amoureux de pouvoir maintenir une touche sur Android pendant environ 100 ms pour obtenir une touche de ponctuation `` en dessous '' (sinon trouvée dans le menu), et j'aimerais avoir cette même capacité pour Ubuntu. Je n'ai pas besoin de répéter les caractères, donc je ne manquerais de rien. Est-ce possible, et si oui comment? Je vous remercie :)

Patrick
la source
Il est tard, mais pouvez-vous nous en dire plus sur les fonctionnalités que vous souhaitez implémenter pour Ubuntu.?
Harshit
1
@Harshit, bien sûr: En utilisant le clavier Google, sur Android, il est possible de sélectionner la possibilité de maintenir les touches du clavier -oft pour saisir la ponctuation, sans avoir à aller dans un menu séparé. Idéalement, cela serait implémenté comme une option dans Ubuntu, en maintenant enfoncée, disons, la touche '2' pour 100 ms tape a '@', en maintenant enfoncée '-' types '_', etc.
Patrick

Réponses:

3

Il n'existe actuellement aucun moyen rapide et facile d'activer ce type de fonctionnalité sur la version de bureau d'Ubuntu.

Personnellement, je suis un grand fan des raccourcis clavier de composition par défaut ; Je les trouve plus rapides et beaucoup plus intuitifs que la sélection longue pression de type mobile (♥). Cela dit, si vous avez le temps et la détermination, vous pourrez peut-être utiliser l' option slowkeys dans l'application principale par défaut de Universal Access pour créer quelque chose de similaire à l'option mobile.

En fouillant moi-même, XKB semble être associé au contrôle des touches lentes. Vous pouvez utiliser XKB pour configurer et améliorer les liaisons de clavier d'Ubuntu, et pour autant que je sache, cette section a ce dont vous avez besoin. Il ne devrait donc pas être (relativement) difficile d'avoir un caractère alternatif quand une touche est maintenue longtemps.

Lorsque les choses se compliquent, il faut affecter plusieurs caractères spéciaux à une frappe (exemple: maintenez la touche "a" et obtenez les options pour ä, à, á, â, etc.). Comment parcourez-vous les options? Avez-vous des personnages qui apparaissent dans une fenêtre de dialogue, puis utilisez la souris, l'onglet ou les touches fléchées pour en sélectionner un? Semble long.

Ou vous pouvez attribuer différentes longueurs de maintien à différents personnages. 100ms d'attente pour à, 200ms d'attente pour á, 300ms pour â ... Mais se souvenir du nombre de secondes pendant lesquelles les personnages pourraient devenir délicats, sans parler de les assigner tous individuellement serait un casse-tête. De plus, lorsque vous entrez dans des listes de personnages plus longues, vous pouvez rester assis avec une clé pendant 3 à 4 secondes. Semble encore plus de temps.

Plutôt que de ralentir, vous pouvez essayer l' option de répétition à la place pour que plusieurs pressions sur une touche fournissent un caractère spécial: 3 pressions sur "a" pour à, par exemple. Mais vous courez le risque de voir apparaître des caractères spéciaux indésirables lorsque vous tapez quelque chose comme "bon", ou "étrange", ou "aaaaaaahhh!"

Vous avez peut-être trouvé une autre méthode de mise en œuvre plus efficace à laquelle je ne pense pas, auquel cas allez-y et modifiez! Mais je recommanderai toujours de composer des combinaisons de touches en attendant. ☺

Boxbot
la source
1
En jetant un œil à votre lien, il peut alors être possible de définir chaque touche comme touche de modification à une ponctuation, avec un délai, ce qui est exactement ce que je recherche! Je vais devoir essayer de bricoler avec ça, plus tard.
Patrick
0

Je suis certain que cela est possible en modifiant la routine de service d'interruption du clavier (ISR). Chaque fois qu'une touche est enfoncée, un signal d'interruption est envoyé à la CPU. Le CPU réparera alors cette interruption en exécutant le clavier ISR.

Les ISR sont des programmes de bas niveau, généralement codés en langage assembleur, car ils traitent directement du matériel et doivent être rapides. Voici plus d'informations sur les interruptions matérielles sur les processeurs Intel et comment les utiliser.

Les claviers ont leurs propres processeurs depuis l'époque de l'IBM-PC d'origine et peuvent générer des caractères très rapidement si une touche est maintenue enfoncée.

Quelques définitions pourraient être utiles ici:

Délai de répétition : le temps s'est écoulé entre la pression de la touche et le moment où elle commence à se répéter.

Taux de répétition : après avoir appuyé sur une touche, le clavier répète cette touche. La vitesse à laquelle il se répète est le taux de répétition. Parfois appelé taux typique.

La routine ISR du clavier devrait être modifiée pour remplacer la fonction de délai de répétition par une fonction de «caractère alternatif». Le moment où vous appuyez et relâchez la touche en est l'essence. En mesurant la durée de l'appui sur la touche, l'ISR (ou le gestionnaire d'interruption) saurait transmettre soit le caractère normal du caractère alternatif (la touche "en dessous")

Essentiellement, vous modifiez ou réécrivez le pilote de périphérique du clavier.

Ce n'est qu'une vue d'ensemble de l'approche qui, je pense, serait nécessaire pour atteindre ce que vous voulez.

dbkeys
la source
0

Parce que le pavé tactile fonctionne de manière similaire à l'écran tactile sous Android, il offrirait une meilleure interface que le clavier. En effet, un tout nouvel ensemble de routines pourrait être implémenté pour zoomer en rapprochant le pouce et l'index et effectuer un zoom arrière en inversant la direction.

Le pavé tactile peut déjà détecter un doigt, deux doigts, même des paumes se déplaçant accidentellement contre le pavé tactile et donc ignoré. Les vitesses d'accélération et de décélération sont reconnues. Il contrôle déjà le pointeur de la souris pour le texte que vous souhaitez mettre en surbrillance en appuyant longuement.

Il devrait être un morceau de gâteau pour les programmeurs d'ajouter un peu de code supplémentaire pour mesurer la longueur de la presse tactile et faire apparaître un menu contextuel pour select, copy, paste, etc comme les smartphones font aujourd'hui.

Je pense que votre question est une excellente idée qui peut faire évoluer les logiciels et les claviers avec des pavés tactiles intégrés à un tout nouveau niveau. Je dois souligner que certains pavés tactiles intégrés aux claviers ont un écran LCD couleur qui pourrait pousser votre idée encore plus loin. c'est-à-dire que le texte de l'écran mis en surbrillance peut être mis en miroir sur l'écran tactile du pavé tactile et zoomé pour des mouvements fins.

Apple, Google, Microsoft et Linus pourraient tous être ravis de votre idée. C'est certainement piqué mon intérêt!

WinEunuuchs2Unix
la source
Est-ce que je ressens du sarcasme ou est-ce authentique?
Amit Gold du
Je pense que c'est une excellente idée. Ramener certains des avantages du smartphone à la maison sur le bureau.
WinEunuuchs2Unix