Gibt es eine Möglichkeit, Tastaturkürzel in der virtuellen Linux-Konsole zu konfigurieren?
Wenn ich zum Beispiel zu tty1 gehe und dann die Tastenkombination Ctrl+ Alt+ drücke H, möchte ich, dass das Skript /usr/bin/hello.shausgeführt wird.
Im Idealfall ist die Verknüpfung bereits vor dem Anmelden verfügbar (in diesem Fall wird sie mit den von mir angegebenen Berechtigungen eines Benutzers ausgeführt). Es macht mir auch nichts aus, den Kernel zu modifizieren, wenn dies der einzige Weg ist, dies zu erreichen. Es muss auch kein Shell-Skript sein, es kann auch eine normale ELF-Binärdatei oder sogar ein Kernelmodul sein, das Systemaufrufe ausführt.
Beispielanwendungsfälle
- Ich bin in der Konsole und surfe mit so etwas im Internet
linksund möchte die Bildschirmhelligkeit verringern. Ich drücke Fn+ End, was zufällig die Helligkeitstaste ist und einen einzelnen Schlüsselcode erzeugt, und ein Programm wird ausgeführt, das die Helligkeit reduziert, indem etwas in eine/sysDatei geschrieben wird. - Ich bin in einem Konsolentexteditor und höre Musik im Hintergrund, die von abgespielt wird
mpd. Ich drücke die ⏯Taste (Wiedergabe / Pause), die wiederum einen einzelnen Schlüsselcode erzeugt, und bewirkt, dass ein Programm ausgeführt wird, das ein Signal sendet,mpdum das aktuelle Lied anzuhalten.
Lösung
Nach der Idee von dirkt habe/dev/input ich zu diesem Zweck evd (event daemon) erstellt. Die Anwendung kann im Hintergrund gestartet werden und übernimmt die Tastatur, wo immer Sie sich befinden, auch vor dem Anmelden und innerhalb von X.
/usr/bin/hello.shin den Tastaturpuffer eingegeben wird, als hätten Sie sie an der Shell-Eingabeaufforderung eingegeben?
readlineLösung. Ich denke, es ist das Nächste, was Sie in bestehenden Implementierungen finden werden. Multitasking-Desktop-ähnliche gettyErsetzungen sind mir nicht bekannt .
readlineMakros sind möglicherweise das, wonach Sie suchen, und sobald sie konfiguriert sind, funktionieren sie überall dort, wo Sie bash (oder eine ähnlich readline-fähige Shell) verwenden, und nicht nur in der Konsole. siehe wiki.archlinux.org/index.php/readline#Macros