Hotkeys: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
MacWolf (Diskussion | Beiträge)
K kategorie t+t hinzu
RoundCube (Diskussion | Beiträge)
K correct link
 
(24 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
==Einleitung==
Viele Tastaturen (hauptsächlich die von Laptops) besitzen einige Spezialtasten, die sogenannten Hotkeys, die dazu vorgesehen sind Anwendungen zu starten bzw. zu steuern oder spezielle Zeichen darzustellen, die nicht Bestandteil der Standard Keymaps sind. Auf einem Linux-Rechner funktionieren diese Tasten meist nicht „out-of-the-box“. Aber, wie so oft, gibt Linux einem die Freiheit diese Tasten so zu konfigurieren, dass sie genau das tun was man will. Nur wenige Hotkeys werden gar nicht vom Linux-Kernel erkannt und können deshalb nicht genutzt werden.
Viele Tastaturen (hauptsächlich die von Laptops) besitzen einige spezial Tasten, die sogenannten Hotkeys, die dazu vorgesehen sind Anwendungen zu starten bzw. zu steuern oder spezielle Zeichen darzustellen, die nicht Bestandteil der standard keymaps sind. Auf einem Linux Rechner funktionieren diese Tasten meist nicht "out-of-the-box". Aber, wie so oft, gibt Linux einem die Freihet diese Tasten so zu konfigurieren, dass sie genau das tun was man will. Nur wenige Hotkeys werden gar nicht vom Linux Kernel erkannt und können deshalb nicht genutzt werden.


Es gibt viele Möglichkeiten unter Linux mit Hotkeys umzugehen. Die Lösungen auf dieser Seite erlauben es die Hotkeys unabhängig vom verwendeten Window Manager bzw. der verwendeten Desktop Umgebung zu benutzen. Es werden drei verschiedene Möglichkeiten erklärt.  
Es gibt viele Möglichkeiten unter Linux mit Hotkeys umzugehen. Die Lösungen auf dieser Seite erlauben es die Hotkeys unabhängig vom verwendeten Window Manager bzw. der verwendeten Desktop-Umgebung zu benutzen. Es werden drei verschiedene Möglichkeiten gezeigt.  
   
   


# ein Zeichen in der Konsole ausgeben
# ein Zeichen in der Konsole ausgeben
# ein Zeichen in [[X]] ausgeben
# ein Zeichen in [[X]] ausgeben
# eine Anwendung in [[X]] starten / steuern
# eine Anwendung in [[X]] starten bzw. steuern




In [[X]] kann eine Hotkey entweder zum ausgeben eines Zeichens oder zum starten / steuern einer Anwendung genutzt werden. Beides gleichzeitig funktioniert nicht. Es gibt auch noch eine vierte Möglichkeit (eine Anwendung in der Konsole starten), die durch einen Work-Around realisiert werden kann, auf den später, bei der Erklärung der ersten Methode, kurz eingegangen wird.
In [[X]] kann eine Hotkey entweder zum ausgeben eines Zeichens oder zum starten/steuern einer Anwendung genutzt werden. Beides gleichzeitig funktioniert nicht. Es gibt auch noch eine vierte Möglichkeit (eine Anwendung in der Konsole starten), die durch einen Work-Around realisiert werden kann, auf den später, bei der Erklärung der ersten Methode, kurz eingegangen wird.


Eine andere Methode die Hotkeys zu nutzen ist der Einsatz umfangreicherer Anwendungen wie z.B. [[Keytouch]] oder Lineak. Diese Anwendungen greifen normalerweise auf die Daten bekannter Tastaturen zurück. Da es aber immer neue Tastaturen geben wird und längst nicht alle existierenden erfasst sind, werden diese Daten wohl nie vollständig sein. Die hier beschriebene Methode erlaubt es dem Nutzer mit den System Internas zu arbeiten und eine auf sein System maßgeschneiderte Konfiguration zu erstellen. Außerdem gehen die anderen Lösungen davon aus, dass man die Hotkeys nur in [[X]] nutzen will, obwohl auch Liebhaber der Konsole von ihnen profitieren können.
Eine andere Methode die Hotkeys zu nutzen ist der Einsatz umfangreicherer Anwendungen wie z.B. [[Keytouch]] oder Lineak. Diese Anwendungen greifen normalerweise auf die Daten bekannter Tastaturen zurück. Da es aber immer neue Tastaturen geben wird und längst nicht alle existierenden erfasst sind, werden diese Daten wohl nie vollständig sein. Die hier beschriebene Methode erlaubt es dem Nutzer mit den System-Internas zu arbeiten und eine auf sein System maßgeschneiderte Konfiguration zu erstellen. Außerdem gehen die anderen Lösungen davon aus, dass man die Hotkeys nur in [[X]] nutzen will, obwohl auch Liebhaber der Konsole von ihnen profitieren können.
 
Alle Tasten die man unter Linux benutzen kann haben einen Scancode, dem ein Keycode zugeordnet ist. Diesem Keycode ist wiederum ein Zeichen der Konsolen_Keymap zugeordnet. Der Keycode wird unter [[X]] in einen anderen Code übersetzt, den die X Keymaps mit einem bestimmten Zeichen oder einem auszuführenden Kommando verknüpft. Wenn eine Hotkey nicht funktioniert, finden ein oder mehrer dieser Dinge nicht statt. Zuerst muss also herausgefunden werden wo das Problem liegt.  Diese Diagnose wird im [[Hotkeys#Diagnose|ersten Abschnitt]] beschrieben, die möglichen Szenarien werden dort zusammengefasst, so das man nach der Diagnose weiß mit welchem Abschnitt man weitermachen muss. Zuerst muss festgestellt werden ob die Taste einen Scancode hat. Ist dies nicht der Fall, sieht es schlecht aus und die Taste kann höchst wahrscheinlich nicht genutzt werden. (Für einige Acer-Modelle gibt es allerdings ein Kernel Modul, acerhk, mit dem evtl. auch solche Tasten erkannt werden). Falls sie einen Scancode, aber keinen Keycode hat muss dem Scancode ein Keycode zugeordnet werden; dies wird im [[Hotkeys#Scancodes_mit_Keycodes_assoziieren|zweiten Abschnitt]] beschrieben. Wenn die Taste bereits einen Keycode hat, oder ihr mit Hilfe des zweiten Abschnittes einer zugewiesen wurde, können der Taste eine oder mehrere der oben aufgelisteten Aufgaben zugewiesen werden. Wie das geht wird in den Abschnitten drei bis fünf erklärt. Der [[Hotkeys#Zeichen_auf_der_konsolo_darstellen|dritte Abschnit]]t erklärt wie man mit der Taste ein Zeichen auf in Konsole ausgibt, der [[Hotkeys#Zeichen_in_X_darstellen|vierte Abschnitt]] wie man per xmodmap ein Zeichen in [[X]] ausgibt, und der [[Hotkeys#Anwendungen_in_X_starten|fünfte Abschnitt]] wie man mittels xbindkeys eine Anwendung in [[X]] startet.


Alle Tasten die man unter Linux benutzen kann haben einen Scancode, dem ein Keycode zugeordnet ist. Diesem Keycode ist wiederum ein Zeichen der Konsolen_Keymap zugeordnet. Der Keycode wird unter [[X]] in einen anderen Code übersetzt, den die X Keymaps mit einem bestimmten Zeichen oder einem auszuführenden Kommando verknüpft. Wenn eine Hotkey nicht funktioniert, finden ein oder mehrerer dieser Dinge nicht statt. Zuerst muss also herausgefunden werden wo das Problem liegt.  Diese Diagnose wird im [[Hotkeys#Diagnose|ersten Abschnitt]] beschrieben, die möglichen Szenarien werden dort zusammengefasst, so das man nach der Diagnose weiß mit welchem Abschnitt man weitermachen muss. Zuerst muss festgestellt werden ob die Taste einen Scancode hat. Ist dies nicht der Fall, sieht es schlecht aus und die Taste kann höchst wahrscheinlich nicht genutzt werden. (Für einige Acer-Modelle gibt es allerdings ein Kernel Modul, [[acerhk]], mit dem evtl. auch solche Tasten erkannt werden). Falls sie einen Scancode, aber keinen Keycode hat muss dem Scancode ein Keycode zugeordnet werden; dies wird im [[Hotkeys#Scancodes_mit_Keycodes_assoziieren|zweiten Abschnitt]] beschrieben. Wenn die Taste bereits einen Keycode hat, oder ihr mit Hilfe des zweiten Abschnittes einer zugewiesen wurde, können der Taste eine oder mehrere der oben aufgelisteten Aufgaben zugewiesen werden. Wie das geht wird in den Abschnitten drei bis fünf erklärt. Der [[Hotkeys#Zeichen_auf_der_konsolo_darstellen|dritte Abschnit]]t erklärt wie man mit der Taste ein Zeichen auf in Konsole ausgibt, der [[Hotkeys#Zeichen_in_X_darstellen|vierte Abschnitt]] wie man per xmodmap ein Zeichen in [[X]] ausgibt, und der [[Hotkeys#Anwendungen_in_X_starten|fünfte Abschnitt]] wie man mittels xbindkeys eine Anwendung in [[X]] startet.


==Diagnose==
==Diagnose==
Zeile 21: Zeile 19:
Beachte: das Utility wird unter [[X]] nicht funktionieren!
Beachte: das Utility wird unter [[X]] nicht funktionieren!


als erstes wird showkey ausgeführt
als erstes wird showkey ausgeführt:
   $ showkey
   $ showkey


ohne Angabe von Optionen wartet 'showkey' zehn Sekunden das eine Taste gedrückt wird (nach zehn Sekunden beendet es sich automatisch) und gibt den Keycode der gedrückten Taste aus. Zwei Szenarien sind möglich:
Ohne Angabe von Optionen wartet 'showkey' zehn Sekunden lang auf eine Tastatureingabe (nach zehn Sekunden beendet es sich automatisch) und gibt den Keycode der gedrückten Taste aus. Zwei Szenarien sind möglich:


* Es wird nichts angezeigt: in diesem Falle hat die Taste keinen Keycode und dieser Abschnitt muss weiter gelesen werden.
* Es wird nichts angezeigt: in diesem Falle hat die Taste keinen Keycode und dieser Abschnitt muss weiter gelesen werden.
* einige Hexadezimal Zahlen werden angezeigt: in diesem Falle hat die Taste bereits einen keycode und es kann mit Abschnitt 3, 4 oder 5 weiter gemacht  werden. Je nach dem was mit der Taste gemacht werden soll
* Einige Hexadezimal-Zahlen werden angezeigt: in diesem Falle hat die Taste bereits einen Keycode und es kann mit Abschnitt 3, 4 oder 5 weiter gemacht  werden. Je nach dem was mit der Taste gemacht werden soll.


Trifft das erste Szenario zu, muss herausgefunden werden, ob die Taste wenigstens einen Scancode hat. Dabei hilft wieder 'showkey'.  
Trifft das erste Szenario zu, muss herausgefunden werden, ob die Taste wenigstens einen Scancode hat. Dabei hilft wieder 'showkey'.  
Zeile 36: Zeile 34:
Es sind wieder zwei Szenarien möglich:     
Es sind wieder zwei Szenarien möglich:     


* es wird nichts angezeigt: Die Taste wird gar nicht vom OS erkannt, nun könnte man [[keytouch]] oder ähnliches ausprobieren,
* Es wird nichts angezeigt: Die Taste wird gar nicht vom Kernel erkannt und kann nicht genutzt werden. Für einige Acer Modelle gibt es das {{AUR|acerhk|acerhk Kernel-Modul}} im [[AUR]], evtl. funktioniert die Taste damit.
* ein Dezimal Code wird angezeigt: Die Taste hat einen Scancode, dem ein Keycode zugewiesen werden muss. Wie das geht wird im folgenden Absatz beschrieben.
* Ein Dezimal-Code wird angezeigt: Die Taste hat einen Scancode, dem ein Keycode zugewiesen werden muss. Wie das geht wird im folgenden Absatz beschrieben.


==Scancodes mit Keycodes assoziieren==
==Scancodes mit Keycodes assoziieren==
Um Scancodes einen Keycode zuzuordnen brauchen man das Utility 'setkeycodes', das, wie man der man page entnehmen kann, Scancodes mit Keycodes assoziert. Setkeycodes braucht zwei Argumente; das erste ist der Scancode und das zwiete der Keycode. Es ist nicht immer ganz einfach die richtigen Werte für diese Argumente herauszufinden. Die Ausgabe von 'showkey -s', die im vorherigen Abschnitt benutzt wurde, ist nicht immer eindeutig, da manche Hotkeys (und auch normale Tasten) einen doppelten Scancode generieren. Im System Log nachzugucken ist der einfachste Weg den exakten Scancode herauszufinden. Jedesmal wenn eine Taste gedrückt wird, die einen Scancode aber keinen Keycode besitzt, wird vom kernel vorgeschlagen 'setkeycodes' zu benutzen um der Taste einen Keycode zuzuordnen. Der Scancode der Taste wird ebenfalls ausgegeben. Die Meldung findet man im System Log. Aber auch dieser Code ist nicht immer brauchbar so wie er ist. Wenn er aus vier Zeichen besteht und mit einem kleinen 'e' beginnt kann er als erstes Argument für 'setkeycodes' verwendet werden. Sollte er nur aus zwei Ziffern bestehen, muss man ihm '0x' voranstellen. Angenommen der kernel gibt 71 als Scancode aus, wäre das erste Argument für 'setkeycodes' 0x71.
Um Scancodes einen Keycode zuzuordnen brauchen man das Utility 'setkeycodes', das, wie man der man page entnehmen kann, Scancodes mit Keycodes assoziiert. Setkeycodes braucht zwei Argumente; das erste ist der Scancode und das zweite der Keycode. Es ist nicht immer ganz einfach die richtigen Werte für diese Argumente herauszufinden. Die Ausgabe von 'showkey -s', die im vorherigen Abschnitt benutzt wurde, ist nicht immer eindeutig, da manche Hotkeys (und auch normale Tasten) einen doppelten Scancode generieren. Im System Log nachzugucken ist der einfachste Weg den exakten Scancode herauszufinden. Jedes mal wenn eine Taste gedrückt wird, die einen Scancode aber keinen Keycode besitzt, wird vom Kernel vorgeschlagen 'setkeycodes' zu benutzen um der Taste einen Keycode zuzuordnen. Der Scancode der Taste wird ebenfalls ausgegeben. Die Meldung findet man im System Log. Aber auch dieser Code ist nicht immer brauchbar so wie er ist. Wenn er aus vier Zeichen besteht und mit einem kleinen 'e' beginnt kann er als erstes Argument für 'setkeycodes' verwendet werden. Sollte er nur aus zwei Ziffern bestehen, muss man ihm '0x' voranstellen. Angenommen der Kernel gibt 71 als Scancode aus, wäre das erste Argument für 'setkeycodes' 0x71.


Das zweite Argument muss folgende Bedingungen erfüllen:
Das zweite Argument muss folgende Bedingungen erfüllen:
Zeile 49: Zeile 47:
Um die zweite Bedingung erfüllen zu können, muss man einen Blick in die verwendete Keymap werfen. Welche Keymap verwendet wird kann man in der /etc/rc.conf sehen (KEYMAP="<gewählte-keymap>"). Die Keymaps sind in einem der Unterverzeichnisse unter /usr/share/kbd/keymaps/i386/ gespeichert.  Es sind gzip2 komprimierte Text Dateien. Im folgenden Beispiel wird angenommen es wird die "de-latin1-nodeadkeys" Keymap benutzt.  
Um die zweite Bedingung erfüllen zu können, muss man einen Blick in die verwendete Keymap werfen. Welche Keymap verwendet wird kann man in der /etc/rc.conf sehen (KEYMAP="<gewählte-keymap>"). Die Keymaps sind in einem der Unterverzeichnisse unter /usr/share/kbd/keymaps/i386/ gespeichert.  Es sind gzip2 komprimierte Text Dateien. Im folgenden Beispiel wird angenommen es wird die "de-latin1-nodeadkeys" Keymap benutzt.  


Zuerst muss die Datei entpacket werden.
Zuerst muss die Datei entpackt werden.


  # gunzip /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
  # gunzip /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
Zeile 74: Zeile 72:


==Zeichen auf der Konsole darstellen==
==Zeichen auf der Konsole darstellen==
Auf der Konsole kann man die Hotkey nutzen um ein bestimmtes Zeichen auszugeben. Außerdem kann man Zeichenfolgen und einige Escape Seguenzen ausgeben. Wenn die Zeichenfolge ein Kommando ist und danach das Escape Zeichen für eine neue Zeile steht, wird das Kommando ausgeführt.
Auf der Konsole kann man die Hotkey nutzen um ein bestimmtes Zeichen auszugeben. Außerdem kann man Zeichenfolgen und einige Escape-Sequenzen ausgeben. Wenn die Zeichenfolge ein Befehl ist und danach das Escape-Zeichen für eine neue Zeile steht, wird der Befehl ausgeführt.


Um dies zu realisieren, könnte man die verwndete Konsolen Keymap verändern. Dies ist allerdings nicht ratsam, da die Keymap eine wichtige Datei ist und jedesmal überschrieben wird wenn das Paket zu dem sie gehört aktualisiert wird. Es ist besser eine "persönliche" Keymap in die bestehende zu integrieren. Das geht mit 'loadkeys'.
Um dies zu realisieren, könnte man die verwendete Konsolen-Keymap verändern. Dies ist allerdings nicht ratsam, da die Keymap eine wichtige Datei ist und jedes mal überschrieben wird wenn das Paket zu dem sie gehört aktualisiert wird. Es ist besser eine "persönliche" Keymap in die bestehende zu integrieren. Das geht mit 'loadkeys'.


Zuerst muss die persönliche Keymap erstellt werden. Man kann sie speichern wo man will. Der Übersichtlichkeit wegen sollte man (teilweise) die Hirachie der default Keymaps unter /usr/local imitieren. Also:
Zuerst muss die persönliche Keymap erstellt werden. Man kann sie speichern wo man will. Der Übersichtlichkeit wegen sollte man (teilweise) die Hierarchie der default Keymaps unter /usr/local imitieren. Also:


  # mkdir -p /usr/share/kbd/keymaps
  # mkdir -p /usr/share/kbd/keymaps
Zeile 85: Zeile 83:
Mit einer persönlichen Keymap ist es auch möglich die Belegung von Tasten zu ändern die bereits in der default Keymap definiert sind. Beim Laden der persönlichen Keymap mit 'loadkeys' werden die Anweisungen der default Keymap mit denen der persönlichen überschrieben falls beide eine Anweisung für die selbe Taste beinhalten.
Mit einer persönlichen Keymap ist es auch möglich die Belegung von Tasten zu ändern die bereits in der default Keymap definiert sind. Beim Laden der persönlichen Keymap mit 'loadkeys' werden die Anweisungen der default Keymap mit denen der persönlichen überschrieben falls beide eine Anweisung für die selbe Taste beinhalten.


Man braucht zwei Anweisungen in der persönlichen Keymap. Zuerst die Keycode Anweisung, (mit dem Format das in der default keymap zu sehen ist).
Man braucht zwei Anweisungen in der persönlichen Keymap. Zuerst die Keycode-Anweisung, (mit dem Format, das in der default keymap zu sehen ist).
Diese Anweisung ordnet einem Keycode ein Keysym zu. Keysyms representieren Tastatur Aktionen wie zum Beispiel ausgeben von Zeichen oder Zeichenfolgen, wechseln von Konsolen oder Keymaps, den Rechner booten usw. Eine Komplette Liste kann mit 'dumpkeys' angezeigt werden.
Diese Anweisung ordnet einem Keycode ein Keysym zu. Keysyms repräsentieren Tastaturaktionen, wie zum Beispiel Ausgeben von Zeichen oder Zeichenfolgen, Wechseln von Konsolen oder Keymaps, den Rechner booten usw. Eine Komplette Liste kann mit 'dumpkeys' angezeigt werden.


  $ dumpkeys -l
  $ dumpkeys -l
Zeile 98: Zeile 96:
  keycode 112 = euro
  keycode 112 = euro


Einigen Keysyms sind keine Tastatur Aktionen zugeordnet. Besonders Keysyms die sich aus einem großen F gefolgt von einer zweistelligen Zahl größer 30 zusammensetzen sind immer frei. Das kann man sich zu nutze machen, wenn man mit der Hotkey eine Zeichenfolge ausgeben oder andere Aktionen ausführen will. Zuerst ordnet man dem Keycode solch ein Keysym zu:
Einigen Keysyms sind keine Tastaturaktionen zugeordnet. Besonders Keysyms die sich aus einem großen F gefolgt von einer zweistelligen Zahl größer 30 zusammensetzen sind immer frei. Das kann man sich zu nutze machen, wenn man mit der Hotkey eine Zeichenfolge ausgeben oder andere Aktionen ausführen will. Zuerst ordnet man dem Keycode solch ein Keysym zu:


  keycode 112 = F70
  keycode 112 = F70
Zeile 106: Zeile 104:
  string F70 = "Hallo"
  string F70 = "Hallo"


Das mag als nicht besonders nützlich erscheinen. Aber man kann auf diese Weise Kommandos in der Konsole ausgeben und ausführen. Um ein ausgegebenes Kommando auszuführen muss dem Kommando die Escape Sequenz für eine neue Zeile angehängt werden. Soll die Hotkey z.B. das hibernate Script ausführen sehen die Anweisungen in der persönlichen Keymap so aus:
Das mag als nicht besonders nützlich erscheinen. Aber man kann auf diese Weise Befehle in der Konsole ausgeben und ausführen. Um ein ausgegebenen Befehl auszuführen, muss dem Befehl die Escape-Sequenz für eine neue Zeile angehängt werden. Soll das Hotkey z.B. das „Hibernate“-Script ausführen sehen die Anweisungen in der persönlichen Keymap so aus:


  keycode 112 = F70
  keycode 112 = F70
  string F70 = "/usr/sbin/hibernate\n"
  string F70 = "/usr/sbin/hibernate\n"


Damit die persönliche Keymap auch benutzt wird muss sie mit 'loadkeys' geladen werden.
Damit die persönliche Keymap auch benutzt wird, muss sie mit 'loadkeys' geladen werden:


  loadkeys /usr/share/kbd/keymaps/personal.map
  loadkeys /usr/share/kbd/keymaps/personal.map


Auch in diesen Falle sind die Änderungen nur für die aktuelle Session gültig. Soll die persönliche Keymap bei jedem Booten des Rechners geladen werden muss eine weitere Zeile in /etc/rc.local geschrieben werden. Die loadkeys Zeile sollte nach der setkeycodes Zeile kommen, da die persönliche Keymap ja auf die Keycodes die mit 'setkeycodes' erzeugt werden zugreift.  
Auch in diesen Falle sind die Änderungen nur für die aktuelle Session gültig. Soll die persönliche Keymap bei jedem Booten des Rechners geladen werden, muss eine weitere Zeile in /etc/rc.local geschrieben werden. Die loadkeys-Zeile sollte nach der setkeycodes-Zeile kommen, da die persönliche Keymap ja auf die Keycodes die mit 'setkeycodes' erzeugt werden zugreift.  


  loadkeys -q /usr/share/kbd/keymaps/personal.map&
  loadkeys -q /usr/share/kbd/keymaps/personal.map&


Die '-q' Option unterbindet nur die Ausgabe einer Bestätigungs-Meldung während des Bootvorgangs.
Die Option '-q' unterbindet nur die Ausgabe einer Bestätigungsmeldung während des Bootvorgangs.
 


==Zeichen in X darstellen==
==Zeichen in X darstellen==
Wenn ein Zeichen einen Keycode im System hat, wird es auch in [[X]] erkannt. Der X Keycode ist allerdings NICHT gleich dem System Keycode.  
Wenn ein Zeichen einen Keycode im System hat, wird es auch in [[X]] erkannt. Der X-Keycode ist allerdings NICHT gleich dem System-Keycode.  
Falls man der Hotkey, wie im ersten Abschnitt beschrieben, einen Keycode zugeordnet hat, kann dieser nicht unter [[X]] verwendet werden. [[X]] vergibt einen eigenen Keycode. Aber die Taste muss aber dazu einen System Keycode haben. Die traditionelle Methode einer Taste ein Zeichen in [[X]] ausgeben zu lassen ist 'xmodmap'. Xmodmap ist grob gesagt das [[X]] Equivalent zu 'loadkeys' (siehe Abschnitt 3):
Falls man der Hotkey, wie im ersten Abschnitt beschrieben, einen Keycode zugeordnet hat, kann dieser nicht unter [[X]] verwendet werden. [[X]] vergibt einen eigenen Keycode. Aber die Taste muss aber dazu einen System Keycode haben. Die traditionelle Methode einer Taste ein Zeichen in [[X]] ausgeben zu lassen ist 'xmodmap'. Xmodmap ist grob gesagt das [[X]]-Equivalent zu 'loadkeys' (siehe Abschnitt 3).
Es liest eine Datei die einige Anweisungen enthält. Genau wie 'loadkeys' kann es genutzt werden um das Verhalten der Tastatur zu verändern. Es gint zahlreiche Dinge die verändert werden können. Dieser Artikel beschränkt sich jedoch auf die Anweisungen mit denen man einem Keycode ein Keysym zuordnet. Xmodmap ist Bestandteil des 'xorg-server-utils' Paketes.
 
# pacman -S xorg-server-utils
 
Zuerst muss der X Keycode der Taste herausgefunden werden. Dazu kann man 'xev' benutzen. Es ist Bestandteil des 'xorg-utils' Paketes.
 
# pacman -S xorg-utils
 
Wird 'xev' aus einem Terminal Fenster gestartet, öffnet es ein weißes Fenster und gibt im Terminal Fenster einige Codes und Informationen aus wenn eine Taste gedrückt (oder losgelassen), oder die Maus bewegt wird. Die Ausgabe ist etwas unübersichtlich, wichtig ist folgende Information:
 
keycode: <der X Keycode der gedrückten Taste>
 
Hat man die Keycodes herausgefunden, kann man die Datei mit den Anweisungen für 'xmodmap' erstellen. Es ist eigentlich egal wo sie gespeichert wird; da der Xserver aber normalerweise von einem User gestartet wird, ist es üblich sie als versteckte Datei im Home Verzeichnis des Users zu speichern.
 
  ~/.Xmodmap
 
In diese Datei kommen die Keycode Anweisungen für xmodmap; mit folgender Syntax:
 
  <keycode> <Xkeycode> = <keysym>
 
Eine Liste der X Keysyms findet man in /usr/include/X11/keysymdef.h. Die meisten sind aber auch hier intuitiv.
Hat die Hotkey z.B. den X Keycode 239 und es soll ein 'e' ausgegeben werden, lautet die Anweisung:
 
keycode 239 = e
 
Soll das Dollar Zeichen ausgegeben werden, lautet sie:
 
keycode 239 = dollar
 
Zu guter letzt muss die Datei noch mit xmodmap gesourced werden.
 
$ xmodmap ~/.Xmodmap
 
Dies funktioniert nur in der aktuellen Session. Es ist natürlich wünschenswert, dass die 'xmodmap ~/.Xmodmap' bei jedem starten von X ausgeführt wird.
Wie dies realisiert wird hängt davon ab, wie [[X]] gestartet wird. Nutzt man z.B. 'startx' muss die folgende Zeile in ~/.xinitrc geschrieben werden. (Vor die Zeile in der der Window Manager gestartet wird).
xmodmap ~/.Xmodmap &


Über die Einrichtung und Konfiguration von [[Xmodmap]] gibt der entsprechende Wiki-Artikel Auskunft.


==Anwendungen in X starten==
==Anwendungen in X starten==
Es gibt verschiedene Programme die das Ziel haben unter [[X]] Anwendungen bestimmten Tasten (oder Tastenkombinationen) zuzuordnen. Die Programme folgen zwei haupt Philisophien: einige nutzen Daten existierender Tastaturen. Wenn das Tastatur Modell definiert wurde, ordnen diese Programme den Hotkeys die 'richtigen' Aktionen zu (z. B. in Bezug auf icons auf den Tasten). Einige andere erlauben es einer beliebigen Taste (oder Tastenkombination) eine beliebeige Aktion zuzuordnen. Die Programme, die diese Philosophie verfolgen bieten mehr Flexibilität bei der Belegung der Tasten.   
Es gibt verschiedene Programme die das Ziel haben unter [[X]]-Anwendungen bestimmten Tasten (oder Tastenkombinationen) zuzuordnen. Die Programme folgen zwei Haupt-Philosophien: einige nutzen Daten existierender Tastaturen. Wenn das Tastatur-Modell definiert wurde, ordnen diese Programme den Hotkeys die 'richtigen' Aktionen zu (z. B. in Bezug auf Icons auf den Tasten). Einige andere erlauben es einer beliebigen Taste (oder Tastenkombination) eine beliebige Aktion zuzuordnen. Die Programme, die diese Philosophie verfolgen bieten mehr Flexibilität bei der Belegung der Tasten.   


Die Konfigurations Dateien des Window Managers zu nutzen ist eine weitere Option. Dies ist eine sehr gute Lösung, obwohl es oft nötig ist, dass die Taste (mit xmodmap) einem Keysym zugeordnet ist, den der Window Manager dann mit einer Aktion / Anwendung verknüpft. Das funktioniert bei jedem Window Manager etwas anders und wird deshalb in diesem Artikel nicht besprochen.
Die Konfigurations Dateien des Window Managers zu nutzen ist eine weitere Option. Dies ist eine sehr gute Lösung, obwohl es oft nötig ist, dass die Taste (mit xmodmap) einem Keysym zugeordnet ist, den der Window Manager dann mit einer Aktion/Anwendung verknüpft. Das funktioniert bei jedem Window Manager etwas anders und wird deshalb in diesem Artikel nicht besprochen.


Ich schlage vor xbindkeys zu benutzen. Es ist ein Programm das die zweite Philosophie verfolgt und kann mit jedem Window Manager benutzt werden, (allerdings kann es passieren, dass die definierten Tastenkombinationen mit denen des Window Managers in Konflikt stehen).
Ich schlage vor xbindkeys zu benutzen. Es ist ein Programm das die zweite Philosophie verfolgt und kann mit jedem Window Manager benutzt werden, (allerdings kann es passieren, dass die definierten Tastenkombinationen mit denen des Window Managers in Konflikt stehen).
Zeile 173: Zeile 134:
  # pacman -S xbindkeys
  # pacman -S xbindkeys


xbindkeys hat eine ausführliche man page:
xbindkeys hat eine ausführliche [[manpage]]:


  $ man xbindkeys
  $ man xbindkeys


Xbindkeys beinhaltet ein Utility das die X Keycodes von Tasten und Tastenkombinationen anzeigt, ohne auf 'xev' zurückzugreifen. Die Ausgabe ist wesentlich übersichtlicher als die von 'xev'
Xbindkeys beinhaltet ein Utility das die X-Keycodes von Tasten und Tastenkombinationen anzeigt, ohne auf 'xev' zurückzugreifen. Die Ausgabe ist wesentlich übersichtlicher als die von 'xev'


  $ xbindkeys -mk
  $ xbindkeys -mk


In der Konfigurations Datei können Kommandos sowohl X Keycodes als auch Keysyms zugeordnent werden. Falls die Htokeys noch nicht mit 'xmodmap' konfiguriert (siehe [[Hotkeys#Zeichen_in_X_darstellen|Abschnitt 4]]), sind sie nur durch einen X Keycode zu identifizieren. Die xbindkeys man page enthält ausführliche Informationen zur Syntax der Konfigurations Datei ~/.xbindkeysrc
In der Konfigurationsdatei können Befehle sowohl X-Keycodes als auch Keysyms zugeordnet werden. Falls die Hotkeys noch nicht mit 'xmodmap' konfiguriert wurden (siehe [[Hotkeys#Zeichen_in_X_darstellen|Abschnitt 4]]), sind sie nur durch einen X-Keycode zu identifizieren. Die xbindkeys manpage enthält ausführliche Informationen zur Syntax der Konfigurationsdatei ~/.xbindkeysrc


Nachdem xbindkeys Konfiguriert wurde kann es ausgeführt werden. Wird [[X]] per 'startx' gestartet, kann folgende Zeile in die ~/.xinitrc geschrieben werden.
Nachdem xbindkeys konfiguriert wurde, kann es ausgeführt werden. Wird [[X]] per 'startx' gestartet, kann folgende Zeile in die ~/.xinitrc geschrieben werden.


  xbindkeys &
  xbindkeys &


So wird xbindkeys beim starten von [[X]] im Hintergrund gestartet und führt beim drücken der Hotkeys (oder normalen Tasten bzw. Tastenkombinationen) die Kommandos aus, die in der Konfigurations Datei definiert sind.
So wird xbindkeys beim starten von [[X]] im Hintergrund gestartet und führt beim drücken der Hotkeys (oder normalen Tasten bzw. Tastenkombinationen) die Befehle aus, die in der Konfigurationsdatei definiert sind.


{{ÜberFDL||Seite=http://wiki.archlinux.org|Name=ArchLinux.org Wiki|Original=http://wiki.archlinux.org/index.php?title=Hotkeys}}


{| style="border:1px solid #8888aa; background-color:#f7f8ff;padding:5px;font-size:95%;"
[[Kategorie: X11]]
|
[[Kategorie: Konsole]]
Diese Seite ist eine Übersetzung bzw. basiert auf dem [http://wiki.archlinux.org/index.php/Hotkeys Hotkeys Artikel] aus dem [http://wiki.archlinux.org englischen Wiki].
|}


[[Kategorie: Konfiguration]]
[[en:Extra keyboard keys]]
[[Kategorie: Hardware]]
[[Kategorie: Tipps und Tricks]]

Aktuelle Version vom 13. Oktober 2020, 23:04 Uhr

Viele Tastaturen (hauptsächlich die von Laptops) besitzen einige Spezialtasten, die sogenannten Hotkeys, die dazu vorgesehen sind Anwendungen zu starten bzw. zu steuern oder spezielle Zeichen darzustellen, die nicht Bestandteil der Standard Keymaps sind. Auf einem Linux-Rechner funktionieren diese Tasten meist nicht „out-of-the-box“. Aber, wie so oft, gibt Linux einem die Freiheit diese Tasten so zu konfigurieren, dass sie genau das tun was man will. Nur wenige Hotkeys werden gar nicht vom Linux-Kernel erkannt und können deshalb nicht genutzt werden.

Es gibt viele Möglichkeiten unter Linux mit Hotkeys umzugehen. Die Lösungen auf dieser Seite erlauben es die Hotkeys unabhängig vom verwendeten Window Manager bzw. der verwendeten Desktop-Umgebung zu benutzen. Es werden drei verschiedene Möglichkeiten gezeigt.


  1. ein Zeichen in der Konsole ausgeben
  2. ein Zeichen in X ausgeben
  3. eine Anwendung in X starten bzw. steuern


In X kann eine Hotkey entweder zum ausgeben eines Zeichens oder zum starten/steuern einer Anwendung genutzt werden. Beides gleichzeitig funktioniert nicht. Es gibt auch noch eine vierte Möglichkeit (eine Anwendung in der Konsole starten), die durch einen Work-Around realisiert werden kann, auf den später, bei der Erklärung der ersten Methode, kurz eingegangen wird.

Eine andere Methode die Hotkeys zu nutzen ist der Einsatz umfangreicherer Anwendungen wie z.B. Keytouch oder Lineak. Diese Anwendungen greifen normalerweise auf die Daten bekannter Tastaturen zurück. Da es aber immer neue Tastaturen geben wird und längst nicht alle existierenden erfasst sind, werden diese Daten wohl nie vollständig sein. Die hier beschriebene Methode erlaubt es dem Nutzer mit den System-Internas zu arbeiten und eine auf sein System maßgeschneiderte Konfiguration zu erstellen. Außerdem gehen die anderen Lösungen davon aus, dass man die Hotkeys nur in X nutzen will, obwohl auch Liebhaber der Konsole von ihnen profitieren können.

Alle Tasten die man unter Linux benutzen kann haben einen Scancode, dem ein Keycode zugeordnet ist. Diesem Keycode ist wiederum ein Zeichen der Konsolen_Keymap zugeordnet. Der Keycode wird unter X in einen anderen Code übersetzt, den die X Keymaps mit einem bestimmten Zeichen oder einem auszuführenden Kommando verknüpft. Wenn eine Hotkey nicht funktioniert, finden ein oder mehrerer dieser Dinge nicht statt. Zuerst muss also herausgefunden werden wo das Problem liegt. Diese Diagnose wird im ersten Abschnitt beschrieben, die möglichen Szenarien werden dort zusammengefasst, so das man nach der Diagnose weiß mit welchem Abschnitt man weitermachen muss. Zuerst muss festgestellt werden ob die Taste einen Scancode hat. Ist dies nicht der Fall, sieht es schlecht aus und die Taste kann höchst wahrscheinlich nicht genutzt werden. (Für einige Acer-Modelle gibt es allerdings ein Kernel Modul, acerhk, mit dem evtl. auch solche Tasten erkannt werden). Falls sie einen Scancode, aber keinen Keycode hat muss dem Scancode ein Keycode zugeordnet werden; dies wird im zweiten Abschnitt beschrieben. Wenn die Taste bereits einen Keycode hat, oder ihr mit Hilfe des zweiten Abschnittes einer zugewiesen wurde, können der Taste eine oder mehrere der oben aufgelisteten Aufgaben zugewiesen werden. Wie das geht wird in den Abschnitten drei bis fünf erklärt. Der dritte Abschnitt erklärt wie man mit der Taste ein Zeichen auf in Konsole ausgibt, der vierte Abschnitt wie man per xmodmap ein Zeichen in X ausgibt, und der fünfte Abschnitt wie man mittels xbindkeys eine Anwendung in X startet.

Diagnose

Der allgemeinste Weg die Situation zu analysieren ist in die Konsole zu wechseln und das 'showkey' Utility zu benutzen. Beachte: das Utility wird unter X nicht funktionieren!

als erstes wird showkey ausgeführt:

 $ showkey

Ohne Angabe von Optionen wartet 'showkey' zehn Sekunden lang auf eine Tastatureingabe (nach zehn Sekunden beendet es sich automatisch) und gibt den Keycode der gedrückten Taste aus. Zwei Szenarien sind möglich:

  • Es wird nichts angezeigt: in diesem Falle hat die Taste keinen Keycode und dieser Abschnitt muss weiter gelesen werden.
  • Einige Hexadezimal-Zahlen werden angezeigt: in diesem Falle hat die Taste bereits einen Keycode und es kann mit Abschnitt 3, 4 oder 5 weiter gemacht werden. Je nach dem was mit der Taste gemacht werden soll.

Trifft das erste Szenario zu, muss herausgefunden werden, ob die Taste wenigstens einen Scancode hat. Dabei hilft wieder 'showkey'. Diesmal mit der Option '-s'.

 $ showkey -s

Es sind wieder zwei Szenarien möglich:

  • Es wird nichts angezeigt: Die Taste wird gar nicht vom Kernel erkannt und kann nicht genutzt werden. Für einige Acer Modelle gibt es das acerhk Kernel-ModulAUR im AUR, evtl. funktioniert die Taste damit.
  • Ein Dezimal-Code wird angezeigt: Die Taste hat einen Scancode, dem ein Keycode zugewiesen werden muss. Wie das geht wird im folgenden Absatz beschrieben.

Scancodes mit Keycodes assoziieren

Um Scancodes einen Keycode zuzuordnen brauchen man das Utility 'setkeycodes', das, wie man der man page entnehmen kann, Scancodes mit Keycodes assoziiert. Setkeycodes braucht zwei Argumente; das erste ist der Scancode und das zweite der Keycode. Es ist nicht immer ganz einfach die richtigen Werte für diese Argumente herauszufinden. Die Ausgabe von 'showkey -s', die im vorherigen Abschnitt benutzt wurde, ist nicht immer eindeutig, da manche Hotkeys (und auch normale Tasten) einen doppelten Scancode generieren. Im System Log nachzugucken ist der einfachste Weg den exakten Scancode herauszufinden. Jedes mal wenn eine Taste gedrückt wird, die einen Scancode aber keinen Keycode besitzt, wird vom Kernel vorgeschlagen 'setkeycodes' zu benutzen um der Taste einen Keycode zuzuordnen. Der Scancode der Taste wird ebenfalls ausgegeben. Die Meldung findet man im System Log. Aber auch dieser Code ist nicht immer brauchbar so wie er ist. Wenn er aus vier Zeichen besteht und mit einem kleinen 'e' beginnt kann er als erstes Argument für 'setkeycodes' verwendet werden. Sollte er nur aus zwei Ziffern bestehen, muss man ihm '0x' voranstellen. Angenommen der Kernel gibt 71 als Scancode aus, wäre das erste Argument für 'setkeycodes' 0x71.

Das zweite Argument muss folgende Bedingungen erfüllen:

  1. der Keycode muss im Bereich 1-127 liegen
  2. der Keycode muss noch frei sein, d.h. ihm darf noch kein Zeichen in der Kemap zugeordnet sein.

Um die zweite Bedingung erfüllen zu können, muss man einen Blick in die verwendete Keymap werfen. Welche Keymap verwendet wird kann man in der /etc/rc.conf sehen (KEYMAP="<gewählte-keymap>"). Die Keymaps sind in einem der Unterverzeichnisse unter /usr/share/kbd/keymaps/i386/ gespeichert. Es sind gzip2 komprimierte Text Dateien. Im folgenden Beispiel wird angenommen es wird die "de-latin1-nodeadkeys" Keymap benutzt.

Zuerst muss die Datei entpackt werden.

# gunzip /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz

Jetzt kann sie gelesen werden (manchmal kann less auch gzip Dateien lesen, in diesem Fall entfällt das Entpacken)

# less /usr/share/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz

Es muss ein Keycode gewählt werden der nicht mit einem der bereits verwendeten in Konflikt steht (2. Bedingung) Die meisten Zeilen haben folgendes Format:

keycode <keycode> = <keysym>

Die Zeilen sind nach den Keycode-Werten sortiert. Also ist es leicht den höchsten von der Keymap verwendeten Keycode zu finden. Das zweite Argument für 'setkeycodes' muss zwischen dem höchsten verwendeten Wert und 127 liegen.

Angenommen 112 liegt in diesem Bereich, so kann nun 'setkeycodes' verwendet werden:

# setkeycodes 0x71 112

Wenn man jetzt 'showkey' ausführt, sieht man, dass die Hotkey nun den Keycode 112 hat. Allerdings gilt das nur für die Dauer der aktuellen Session. Um der Hotkey bei jedem Booten den Keycode 112 zuzuordnen kann man folgende Zeile in /etc/rc.local schreiben:

setkeycodes 0x71 112 &

Zeichen auf der Konsole darstellen

Auf der Konsole kann man die Hotkey nutzen um ein bestimmtes Zeichen auszugeben. Außerdem kann man Zeichenfolgen und einige Escape-Sequenzen ausgeben. Wenn die Zeichenfolge ein Befehl ist und danach das Escape-Zeichen für eine neue Zeile steht, wird der Befehl ausgeführt.

Um dies zu realisieren, könnte man die verwendete Konsolen-Keymap verändern. Dies ist allerdings nicht ratsam, da die Keymap eine wichtige Datei ist und jedes mal überschrieben wird wenn das Paket zu dem sie gehört aktualisiert wird. Es ist besser eine "persönliche" Keymap in die bestehende zu integrieren. Das geht mit 'loadkeys'.

Zuerst muss die persönliche Keymap erstellt werden. Man kann sie speichern wo man will. Der Übersichtlichkeit wegen sollte man (teilweise) die Hierarchie der default Keymaps unter /usr/local imitieren. Also:

# mkdir -p /usr/share/kbd/keymaps
# touch  /usr/share/kbd/keymaps/personal.map

Mit einer persönlichen Keymap ist es auch möglich die Belegung von Tasten zu ändern die bereits in der default Keymap definiert sind. Beim Laden der persönlichen Keymap mit 'loadkeys' werden die Anweisungen der default Keymap mit denen der persönlichen überschrieben falls beide eine Anweisung für die selbe Taste beinhalten.

Man braucht zwei Anweisungen in der persönlichen Keymap. Zuerst die Keycode-Anweisung, (mit dem Format, das in der default keymap zu sehen ist). Diese Anweisung ordnet einem Keycode ein Keysym zu. Keysyms repräsentieren Tastaturaktionen, wie zum Beispiel Ausgeben von Zeichen oder Zeichenfolgen, Wechseln von Konsolen oder Keymaps, den Rechner booten usw. Eine Komplette Liste kann mit 'dumpkeys' angezeigt werden.

$ dumpkeys -l

Die Meisten sind jedoch intuitiv. Wenn die Hotkey ein 'e' ausgeben soll, lautet die Anweisung:

 keycode 112 = e

Soll die Hotkey das Euro Zeichen ausgeben, lautet die Anweisung:

keycode 112 = euro

Einigen Keysyms sind keine Tastaturaktionen zugeordnet. Besonders Keysyms die sich aus einem großen F gefolgt von einer zweistelligen Zahl größer 30 zusammensetzen sind immer frei. Das kann man sich zu nutze machen, wenn man mit der Hotkey eine Zeichenfolge ausgeben oder andere Aktionen ausführen will. Zuerst ordnet man dem Keycode solch ein Keysym zu:

keycode 112 = F70

Dann wird mit einer anderen Anweisung dem Keysym eine Aktion zugeordnet. Soll die Hotkey z.B. "Hallo" ausgeben, lautet die Anweisung:

string F70 = "Hallo"

Das mag als nicht besonders nützlich erscheinen. Aber man kann auf diese Weise Befehle in der Konsole ausgeben und ausführen. Um ein ausgegebenen Befehl auszuführen, muss dem Befehl die Escape-Sequenz für eine neue Zeile angehängt werden. Soll das Hotkey z.B. das „Hibernate“-Script ausführen sehen die Anweisungen in der persönlichen Keymap so aus:

keycode 112 = F70
string F70 = "/usr/sbin/hibernate\n"

Damit die persönliche Keymap auch benutzt wird, muss sie mit 'loadkeys' geladen werden:

loadkeys /usr/share/kbd/keymaps/personal.map

Auch in diesen Falle sind die Änderungen nur für die aktuelle Session gültig. Soll die persönliche Keymap bei jedem Booten des Rechners geladen werden, muss eine weitere Zeile in /etc/rc.local geschrieben werden. Die loadkeys-Zeile sollte nach der setkeycodes-Zeile kommen, da die persönliche Keymap ja auf die Keycodes die mit 'setkeycodes' erzeugt werden zugreift.

loadkeys -q /usr/share/kbd/keymaps/personal.map&

Die Option '-q' unterbindet nur die Ausgabe einer Bestätigungsmeldung während des Bootvorgangs.

Zeichen in X darstellen

Wenn ein Zeichen einen Keycode im System hat, wird es auch in X erkannt. Der X-Keycode ist allerdings NICHT gleich dem System-Keycode. Falls man der Hotkey, wie im ersten Abschnitt beschrieben, einen Keycode zugeordnet hat, kann dieser nicht unter X verwendet werden. X vergibt einen eigenen Keycode. Aber die Taste muss aber dazu einen System Keycode haben. Die traditionelle Methode einer Taste ein Zeichen in X ausgeben zu lassen ist 'xmodmap'. Xmodmap ist grob gesagt das X-Equivalent zu 'loadkeys' (siehe Abschnitt 3).

Über die Einrichtung und Konfiguration von Xmodmap gibt der entsprechende Wiki-Artikel Auskunft.

Anwendungen in X starten

Es gibt verschiedene Programme die das Ziel haben unter X-Anwendungen bestimmten Tasten (oder Tastenkombinationen) zuzuordnen. Die Programme folgen zwei Haupt-Philosophien: einige nutzen Daten existierender Tastaturen. Wenn das Tastatur-Modell definiert wurde, ordnen diese Programme den Hotkeys die 'richtigen' Aktionen zu (z. B. in Bezug auf Icons auf den Tasten). Einige andere erlauben es einer beliebigen Taste (oder Tastenkombination) eine beliebige Aktion zuzuordnen. Die Programme, die diese Philosophie verfolgen bieten mehr Flexibilität bei der Belegung der Tasten.

Die Konfigurations Dateien des Window Managers zu nutzen ist eine weitere Option. Dies ist eine sehr gute Lösung, obwohl es oft nötig ist, dass die Taste (mit xmodmap) einem Keysym zugeordnet ist, den der Window Manager dann mit einer Aktion/Anwendung verknüpft. Das funktioniert bei jedem Window Manager etwas anders und wird deshalb in diesem Artikel nicht besprochen.

Ich schlage vor xbindkeys zu benutzen. Es ist ein Programm das die zweite Philosophie verfolgt und kann mit jedem Window Manager benutzt werden, (allerdings kann es passieren, dass die definierten Tastenkombinationen mit denen des Window Managers in Konflikt stehen).

# pacman -S xbindkeys

xbindkeys hat eine ausführliche manpage:

$ man xbindkeys

Xbindkeys beinhaltet ein Utility das die X-Keycodes von Tasten und Tastenkombinationen anzeigt, ohne auf 'xev' zurückzugreifen. Die Ausgabe ist wesentlich übersichtlicher als die von 'xev'

$ xbindkeys -mk

In der Konfigurationsdatei können Befehle sowohl X-Keycodes als auch Keysyms zugeordnet werden. Falls die Hotkeys noch nicht mit 'xmodmap' konfiguriert wurden (siehe Abschnitt 4), sind sie nur durch einen X-Keycode zu identifizieren. Die xbindkeys manpage enthält ausführliche Informationen zur Syntax der Konfigurationsdatei ~/.xbindkeysrc

Nachdem xbindkeys konfiguriert wurde, kann es ausgeführt werden. Wird X per 'startx' gestartet, kann folgende Zeile in die ~/.xinitrc geschrieben werden.

xbindkeys &

So wird xbindkeys beim starten von X im Hintergrund gestartet und führt beim drücken der Hotkeys (oder normalen Tasten bzw. Tastenkombinationen) die Befehle aus, die in der Konfigurationsdatei definiert sind.


Dieser Artikel (oder Teile davon) steht unter GNU FDL (GNU Freie Dokumentationslizenz) und ist eine Übersetzung aus dem ArchLinux.org Wiki. Am Original-Artikel kann jeder Korrekturen und Ergänzungen vornehmen. Im ArchLinux.org Wiki ist eine Liste der Autoren verfügbar.