it-swarm.com.de

Halten Sie die Tasten für den Modifikator gedrückt

Ich habe mich in die Möglichkeit verliebt, eine Taste auf Android etwa 100 ms lang gedrückt zu halten, um eine Interpunktionstaste "darunter" zu erhalten (sonst im Menü zu finden), und ich hätte sie gerne die gleiche Fähigkeit für Ubuntu. Ich muss keine Zeichen wiederholen, damit mir nichts entgeht. Ist das möglich und wenn ja, wie? Dankeschön :)

22
Patrick

Es gibt derzeit keine schnelle und einfache Möglichkeit, diese Art von Funktionalität auf der Desktop-Version von Ubuntu zu aktivieren.

Persönlich bin ich ein großer Fan der Standard Tastenkombinationen erstellen ; Ich finde sie schneller und intuitiver als die mobile Langdruckauswahl (♥). Wenn Sie jedoch Zeit und Entschlossenheit haben, können Sie möglicherweise die Option slowkeys in der Standardkernanwendung von Universal Access verwenden, um etwas Ähnliches zu erstellen die mobile Option.

Indem ich mich damit beschäftige, scheint XKB mit der Steuerung von Slowkeys verbunden zu sein. Sie können XKB verwenden, um Ubuntus Tastaturbelegungen zu konfigurieren und zu verbessern. Soweit ich das beurteilen kann, hat dieser Abschnitt das, was Sie brauchen. Es sollte also nicht so (relativ) schwierig sein, einen alternativen Zeichendruck zu haben, wenn eine Taste lange gedrückt wird.

Wenn die Dinge kompliziert werden, weisen Sie einem Tastenanschlag mehrere Sonderzeichen zu (Beispiel: Halten Sie "a" gedrückt und rufen Sie Optionen für ä, à, á, â usw. ab). Wie radeln Sie durch die Optionen? Haben Sie die Zeichen in einem Dialogfenster eingeblendet und wählen Sie sie mit der Maus, der Tabulatortaste oder den Pfeiltasten aus? Scheint zeitaufwändig.

Sie können auch verschiedenen Zeichen unterschiedliche Haltezeiten zuweisen. 100ms halten für à, 200ms halten für á, 300ms für ... Aber sich daran zu erinnern, wie viele Sekunden es dauert, für welche Zeichen es schwierig werden könnte, und nicht zu vergessen, alle einzeln zuzuweisen, würde Kopfschmerzen bereiten. Und wenn Sie in längere Listen mit Charakteren geraten, können Sie gut 3-4 Sekunden lang mit einem Schlüssel da sitzen. Scheint noch zeitaufwendiger.

Anstelle von Slowkeys können Sie auch die Option repeatkeys verwenden, um durch mehrmaliges Drücken einer Taste ein Sonderzeichen zu erhalten: 3 Tasten "a" für à, zum Beispiel. Aber dann besteht die Gefahr, dass unerwünschte Sonderzeichen auftauchen, wenn Sie etwas wie "gut", "unheimlich" oder "aaaaaahhh!" Eingeben.

Möglicherweise haben Sie sich eine andere, effizientere Implementierungsmethode ausgedacht, an die ich nicht denke. In diesem Fall müssen Sie Änderungen vornehmen! Ich empfehle jedoch, in der Zwischenzeit Tastenkombinationen zu erstellen. ☺

2
Boxbot

Ich bin mir sicher, dass dies durch Modifizieren der Tastatur-Interrupt-Service-Routine (ISR) möglich ist. Bei jedem Tastendruck wird ein Interrupt-Signal an die CPU gesendet. Die CPU bedient dann diesen Interrupt, indem sie den Tastatur-ISR ausführt.

ISRs sind Low-Level-Programme, die in der Regel in Assemblersprache codiert sind, da sie sich direkt mit Hardware befassen und schnell sein müssen. Hier gibt weitere Informationen zu Hardware-Interrupts auf den Intel-Prozessoren und deren Verwendung.

Tastaturen haben seit den Tagen des ursprünglichen IBM-PCs eigene Prozessoren und können Zeichen sehr schnell generieren, wenn eine Taste gedrückt wird.

Hier könnten einige Definitionen nützlich sein:

Wiederholungsverzögerung : Die Zeit zwischen dem Drücken der Taste und dem Beginn der Wiederholung.

Wiederholrate : Nachdem eine Taste gedrückt wurde, wiederholt die Tastatur diese Taste. Die Wiederholungsgeschwindigkeit ist die Wiederholungsrate. Wird manchmal als typematische Rate bezeichnet.

Die Tastatur-ISR-Routine müsste modifiziert werden, um die Wiederholungsverzögerungsfunktion durch eine 'Alternative Character'-Funktion zu ersetzen. Das Timing des Tastendrucks und der Freigabe ist das Wesentliche davon. Durch Messen der Dauer des Tastendrucks kann der ISR (oder Interrupt-Handler) entweder das normale Zeichen des alternativen Zeichens (die Taste "darunter") weitergeben.

Im Wesentlichen würden Sie das Gerätetreiber für die Tastatur ändern oder neu schreiben.

Dies ist nur eine allgemeine Ansicht des Ansatzes, den ich für erforderlich halte, um das zu erreichen, was Sie wollen.

0
dbkeys

Da das Touchpad dem Touchscreen in Android ähnelt, bietet es eine bessere Benutzeroberfläche als die Tastatur. In der Tat könnte ein ganz neuer Satz von Routinen implementiert werden, um durch Bewegen von Daumen und Zeigefinger zusammen zu zoomen, und um durch Umkehren der Richtung herauszuzoomen.

Das Touchpad kann bereits Ein-Finger-, Zwei-Finger- und sogar Handflächen erkennen, die sich versehentlich gegen das Touchpad bewegen und daher ignoriert werden. Beschleunigungs- und Verzögerungsgeschwindigkeiten werden erkannt. Es steuert bereits den Mauszeiger für den Text, den Sie durch langes Drücken hervorheben möchten.

Es sollte ein Kinderspiel für Programmierer sein, ein zusätzliches Stück Code hinzuzufügen, um die Länge des Tastendrucks zu messen und ein kontextsensitives Menü für select, copy, paste usw. wie das aufzurufen Smartphones tun heute.

Ich denke, Ihre Frage ist eine großartige Idee, mit der sich Software und Tastaturen mit integrierten Touchpads auf ein völlig neues Niveau bringen lassen. Ich möchte darauf hinweisen, dass einige Touchpads, die in Tastaturen eingebaut sind, einen LCD-Farbbildschirm haben, der Ihre Idee noch weiter vertiefen könnte. Das heißt, hervorgehobener Bildschirmtext kann auf den LCD-Bildschirm des Touchpads gespiegelt und für feine Bewegungen vergrößert werden.

Apple, Google, Microsoft und Linus könnten von Ihrer Idee begeistert sein. Es hat sicherlich mein Interesse geweckt!

0