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

23

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

Patrick
quelle
Es ist spät, aber können Sie bitte näher auf die Funktionen eingehen, die Sie für Ubuntu implementieren möchten?
Harshit
1
@Harshit, klar: Mit der Google-Tastatur ist es unter Android möglich, die Fähigkeit auszuwählen, Tasten auf der -oft-Tastatur gedrückt zu halten, um Satzzeichen einzugeben, ohne in ein separates Menü wechseln zu müssen. Dies würde idealerweise als Option in Ubuntu implementiert, wobei Sie beispielsweise die Taste '2' für 100ms gedrückt halten, ein '@' eingeben, '-' types '_' gedrückt halten und so weiter.
Patrick

Antworten:

3

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 für das Komponieren . Ich finde sie schneller und intuitiver als die mobile Langdruckauswahl (♥). Wenn Sie jedoch Zeit und Entschlossenheit haben, können Sie möglicherweise die Slowkeys- Option in der Standard-Universal Access- Kernanwendung huckepack nehmen , um etwas zu erstellen, das der mobilen Option ähnelt.

XKB scheint mit der Kontrolle von Slowkeys in Verbindung zu stehen. Sie können XKB verwenden, um Ubuntus Tastaturbelegungen zu konfigurieren und zu verbessern. Soweit ich das beurteilen kann, enthält dieser Abschnitt alles, was Sie benötigen. Es sollte also nicht so (relativ) schwierig sein, einen alternativen Zeichendruck zu haben, wenn eine Taste lange gedrückt wird.

Wenn es kompliziert wird, weisen Sie einem Tastendruck 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 langsamen Tasten können Sie auch die Option " Repeatkeys " verwenden, um durch mehrmaliges Antippen einer Taste ein Sonderzeichen zu erhalten: beispielsweise 3 "a" für à. 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. ☺

Boxbot
quelle
1
Wenn Sie sich Ihren Link ansehen, ist es möglicherweise möglich, jede Taste mit einer Verzögerung als Modifikationstaste für eine Interpunktion festzulegen, was genau das ist, wonach ich suche! Ich muss später versuchen, daran zu basteln.
Patrick
0

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 finden Sie 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 Geschwindigkeit, mit der es wiederholt wird, 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 den 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.

dbkeys
quelle
0

Da das Touchpad mit dem Touchscreen von Android vergleichbar ist, 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 Stück Kuchen für Programmierer ein zusätzliches Stück Code zu messen Touch drücken Länge hinzufügen und ein kontextsensitives Menü für bringen select, copy, paste, etc. wie die Smartphones heute tun.

Ich denke, Ihre Frage ist eine großartige Idee, die Software und Tastaturen mit eingebauten Touchpads auf ein völlig neues Niveau bringen kann. 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!

WinEunuuchs2Unix
quelle
Spüre ich Sarkasmus oder ist das echt?
Amit Gold
Ich denke, es ist eine großartige Idee. Bringen Sie einige der Vorteile des Smartphones nach Hause auf den Desktop.
WinEunuuchs2Unix