Ich möchte in einem bash-Skript abfragen, ob eine der Tasten Shift, Strg, Alt, AltGr gedrückt ist.
Gibt es dafür ein fertiges Kommandozeilen-Programm?
|
Anzeige
|
Linux/bash: wie kann man in einem Skript Tasten abfragen?Ich möchte in einem bash-Skript abfragen, ob eine der Tasten Shift, Strg, Alt, AltGr gedrückt ist. Gibt es dafür ein fertiges Kommandozeilen-Programm?
Gast
#7629277
https://superuser.com/questions/248517/show-keys-pressed-in-linux War das jetzt so schwer zu ergooglen?
Hast du nicht mitbekommen, dass xev und showkey nur unter X, nicht aber in einem Terminal oder Skript funktioniert? Aber dummfreche Bemerkungen scheinst du genug auf lager zu haben… Ohne jetzt dummfrech rüberkommen zu wollen: Bei mir funktioniert showkey auf der Konsole und im Terminal, letzteres mit sudo. Gelassen bleiben, auch am Freitag!
Aber das Fenster, das dabei auf geht, in dem die Tasten landen, hast du nicht bemerkt? Wenn man ins Terminal tippt, in dem showkey läuft, passiert gar nichts. sudo geht in meinem Fall nicht: Es ist ein Skript, das über ein Icon gestartet wird und ich würde gern abfragen können, ob beim Klick auf das Icon Shift o.Ä. gedrückt war.
Gilt auch für dich ;-) Moriz möchte Moriz schrieb im Beitrag #7629142:
showkey -a zeigt bei mir nur etwas an, wenn ich eine der Tasten Shift, Strg, Alt, AltGr zusammen mit einem Buchstaben, einer Ziffer oder Sonderzeichen drücke. Shift, Strg, Alt, AltGr entsprechen ja keinen Zeichen, sondern sind "Umschalt-Tasten". Ich bin mir gar nicht sicher, ob die Tastatur ein Signal sendet, wenn man nur Ctrl alleine drückt. Also wenn Moriz wirklich bereits das Drücken der einzelnen Tasten Shift, Strg, Alt, AltGr detektieren will, helfen die bisherigen Antworten nicht viel. Showkey ist kein X11-Programm - im Gegenteil, wenn X11 läuft, funktioniert es u.U. nicht:
Ist trotzdem nicht hilfreich, da es nichts hat, um den aktuellen Status der Modifier-Keys abzufragen. Ich hab sowas auch mal gebraucht, und nichts passendes gefunden. Hab dann ein eigenes Programm geschrieben, dass den X11-Server fragt, welche Modifier er meint, gerade aktiv zu haben.
Beitrag #7629411 wurde von einem Moderator gelöscht.
Macht sie! Die Tastatur sendet Make (Drücken) und Break (Loslassen) Werte. Sie macht keinerlei Unterschied zwischen den Tasten und ihren Funktionen. Erst der Tastaturtreiber des BS macht dann etwas Sinnvolles daraus.
Die Tastatur sendet den Scancode der Taste, wenn sie gedrückt oder losgelassen wird. Es muss also irgend "jemand" darüber Buch führen und den müsste man "fragen", wie der aktuelle Status ist. Bei GUI-Programmen ist das X. Wer das bei Skripten macht? Keine Ahnung. Eigentlich kommt da nur der Tastaturtreiber in Frage. Dazu kommt noch, dass das Skript per Mausklick ja von einem GUI angekickt wird – da ändert sich also so einiges auf unterer Ebene, bis das Skript die Kontrolle hat
Tastatur Hardware -> Kernel module -> Tastaturtreiber -> Event Daemon -> X Moritz schrieb:
Genau so was war auch meine Anwendung (im mplayer wrapper bei Ctrl oder AltGr software volume control statt mixer benutzen). Ich hab das Programm mal angehängt. Beispiel:
zum Testen: while sleep .2; do xmodifiers; done PS: das Programm ist ein quick hack - mehr verdient die Aufgabe nicht ;-)
Bei mir geht da kein Fenster auf. Sicher, dass du es nicht mit xev verwechselst?
Bei mir funktioniert es. Wenn ich im Terminal die linke Shift-Taste drücke, gibt showkey aus:
Bei der recheten ist es stattdessen 54. Das funktioniert bei mir sowohl in xterm, als auch im KDE-tool "Konsole".
Ach so, es geht nicht um ein Skript, das in einem Terminal läuft? Wo kommt denn das Icon her? Warum kann das Programm, das dieses Anzeigt, nicht einfach erkennen, ob beim Klick shift gedrückt wurde? Eventuell könntest du das Script per Tastenkombination starten. Dabei 2 hinterlegen, eine mit, eine ohne shift. Und je nachdem einen anderen Parameter mitgeben. Die meisten DEs haben Einstellungen für sowas. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|