xbindkeys ..
sudo apt-get install xbindkeys
Xbindkeys ist ein sehr vielseitiges Programm, mit dem Sie Schlüssel sehr einfach neu zuordnen können. Es verwendet eine Konfigurationsdatei, die sich standardmäßig in Ihrem Home-Verzeichnis befindet, um die Tastenzuordnungen in bestimmte Befehle zu ändern.
Um eine Standard-Konfigurationsdatei zu erstellen, verwenden Sie den Befehl:
xbindkeys --defaults
Welches druckt die Standard-Konfigurationsdatei. Wenn Sie also die Datei mit den Standardwerten erstellen möchten, verwenden Sie Folgendes:
xbindkeys --defaults > $HOME/.xbindkeysrc
Damit werden die Standardwerte in eine versteckte Datei mit dem Namen .xbindkeysrc
in home ( ~
) gedruckt .
Um nun die Tastenzuordnungen tatsächlich zu ändern, müssen wir zunächst den Namen oder das Tastensymbol dieser Tasten kennen. xbindkeys
Ermöglicht es uns, den -k
Handle zu verwenden, um den Namen eines Schlüssels oder einer Tastenkombination zu finden. Lauf:
xbindkeys -k
Und drücken Sie eine Taste oder Tastenkombination. Ihre Ausgabe sieht ungefähr so aus (wenn Sie drücken space):
"NoCommand"
m:0x10 + c:65
Mod2 + space
"No Command"
teilt uns mit, dass der SpaceTaste derzeit kein Befehl zugeordnet ist .
m:0x10 + c:65
Mod2 + space
Ist der Name des Schlüssels / der Tastenkombination.
die Konfigurationsdatei ..
Öffnen Sie die zuvor erstellte Konfigurationsdatei:
gedit .xbindkeysrc
Hier ist ein Auszug aus der Standard-Konfigurationsdatei:
#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
# Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
# Mod3 (CapsLock), Mod4, Mod5 (Scroll).
#
# The release modifier is not a standard X modifier, but you can
# use it if you want to catch release events instead of press events
# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.
#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable
# Examples of commands:
"xbindkeys_show"
control+shift + q
Jede Zeile, die mit beginnt, #
ist ein Kommentar und wird nicht gelesen oder ausgeführt xbindkeys
.
Bisher ist die einzige Zeile, die nicht auskommentiert ist:
"xbindkeys_show"
control+shift + q
Dieser Auszug zeigt die grundlegende Syntax von xbindkeys
Befehlen:
"Command to run (in quotes)"
key to associate with command (no quotes)
Wie Sie sehen können:
"xbindkeys_show"
control+shift + q
Führt den Befehl aus, xbindkeys_show
wenn Sie Ctrl+ Shift+ drücken q.
Schlüssel an Befehle binden
Versuchen wir nun, ein paar Schlüssel zu binden. Ich empfehle, die gesamte Standarddatei zu löschen, damit sie leer ist. Es enthält voreingestellte Tastenkombinationen, die Sie wahrscheinlich nicht möchten.
Nehmen wir nun an, Sie möchten Ctrl+ verwenden b, um Ihren Browser zu öffnen. Zuerst müssen Sie wissen, wie der Name oder das Schlüsselwort von Ctrl+ blautet. Wie bereits erwähnt, können Sie mithilfe xbindkeys -k
von den Namen eines Schlüssels oder von Schlüsseln suchen, aber es gibt einen einfacheren Weg. Für einfache Kombinationen wie Ctrl+ können bSie einfach verwenden:
Control+b
Viel einfacher ist es nicht!
Suchen Sie nun den Befehl für Ihren bevorzugten Browser:
Erinnern Sie sich an die Syntax von früher? Der xbindkeys
Befehl zum Starten von Firefox (oder Ihres anderen bevorzugten Browsers), wenn Sie Ctrl+ drücken, blautet:
"firefox"
Control+b
Nun lege das in deine Konfigurationsdatei und speichere sie. Jetzt stellen Sie möglicherweise fest, dass Ihr Befehl noch nicht funktioniert, weil er xbindkeys
nicht ausgeführt wird. Zum Starten einfach xbindkeys
von einem Terminal aus starten . Ihr Ctrl+ bsollte jetzt Ihren Browser starten!
Schlüssel an andere Schlüssel binden
Wenn Sie möchten, dass eine Taste auf Ihrer Tastatur eine andere Taste auf Ihrer Tastatur aufruft, benötigen Sie eine zusätzliche Software, die xbindkeys
dies nicht unterstützt. Ich kenne zwei Programme, die wir verwenden können, xdotool
und xte
. Ich bevorzuge, xte
also werde ich das benutzen.
Es installieren:
sudo apt-get install xautomation
Die Syntax für xte
lautet wie folgt:
xte 'command key/mousebutton/xyCoordinates'
Beispiele:
So rufen Sie einen einzelnen Tastendruck auf: xte 'key keyName'
So rufen Sie eine Tastenkombination auf: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName
So rufen Sie eine Maustaste auf: xte 'mouseclick buttonNumber'
(Wir werden das Finden von Tastennummern etwas später erörtern.)
So bewegen Sie die Maus: xte 'mousemove xCoordinate yCoordinate'
Und mehr! Lesenman xte
Nachdem Sie den Befehl zum Simulieren von Tastendrücken kennen, können Sie ihn wie folgt aus Ihrem xbindkeys
Skript aufrufen :
"xte 'key b'"
Control+b
Wie Sie vielleicht erraten haben, wird dies aufgerufen, xte 'key b'
wenn wir Ctrl+ drücken b, wodurch ein Eintrag in ein bDokument eingegeben wird, an dem Sie gerade arbeiten.
Ich , was zu beachten ist jedoch, dass xbindkeys
und xte
nicht immer sehr gut zusammenarbeiten. Manchmal muss man die Tasten genau zur selben Zeit drücken , um ausgegeben zu werden, manchmal funktioniert es einwandfrei. Dies kann oder kann nicht mit Systemkonfiguration und / oder Hardware zu tun haben .. Ich bin nicht sicher. Siehe MaggotBrain Antwort für eine zuverlässigere Art und Weise Schlüssel zu anderen Tasten zu binden.
Binden von Maustasten an Befehle
Sie können auch xbindkeys
Maustasten an Befehle binden (und von dort aus Tastaturkürzel, siehe oben). Das Grundformat für Maustasten sollte Ihnen jetzt bekannt sein:
" [command to run] "
b:n
Wo [command to run]
ist der Befehl, den Sie ausführen möchten, und n
die Nummer der Maustaste, die Sie für diesen Befehl verwenden möchten.
Wenn Sie die Nummer Ihrer Maustaste nicht kennen, können Sie xev
herausfinden, um was es sich handelt:
xev | grep button
Die Ausgabe wird ungefähr so aussehen:
user@host:~$ xev | grep button
state 0x10, button 1, same_screen YES
state 0x110, button 1, same_screen YES
state 0x10, button 2, same_screen YES
state 0x210, button 2, same_screen YES
state 0x10, button 3, same_screen YES
state 0x410, button 3, same_screen YES
Wenn ich jede meiner Maustasten drücke.
Zum Beispiel:
" firefox "
b:2
Startet Firefox, wenn ich die mittlere Maustaste drücke.