Nein, es gibt keinen einzigen Ort, an dem alle Verknüpfungen gespeichert sind. Anwendungen können ihre Konfigurationen beliebig speichern.
Das heißt, Sie suchen hauptsächlich nach zwei Ebenen: der Anwendungsebene (wie Strg-C zum Kopieren in Firefox) und der Fenstermanagerebene (wie Win + D zum Anzeigen des Desktops). Compiz verwendet gconf, um seine Konfiguration zu speichern .
Bei Anwendungen können Sie diese grob nach ihren Toolkits unterteilen. GTK-Apps verwenden nämlich auch gconf.
Sicherlich muss Ubuntu dies irgendwo speichern, damit die auf der Tastatur gedrückte Tastenkombination darauf verweist, womit sie verbunden ist.
Nicht ganz. Die fokussierte Anwendung erhält bei einem X-Tastaturereignis den ersten Kick. Wenn dies nicht der Fall ist, sprudelt sie in andere Anwendungen, nämlich den Fenstermanager. Sie können also ein Spiel haben, das Alt + F4 erfasst und das Fenster nicht schließt (verdammt, Jamestown!). Ich glaube, Sie denken, es geht zu einem zentralen Ereignis-Router, der dann mit einer Datenbank abgeglichen und an sein Ziel geleitet wird. Es ist eher so, als würde man eine Flasche mit einem Getränk herumreichen: Pass, nimm einen Schluck, wenn du willst, und pass den Rest, oder nimm das Ganze und sei gierig.
Die Linux / FOSS-Umgebung ist (wie Sie vielleicht bemerkt haben) ziemlich demokratisch, und alle Anwendungen dazu zu bringen, sich auf ein einziges zentrales Tastaturkonfigurations-Repository zu einigen, ist ein Kinderspiel. Zum einen haben Sie nicht verwaltete Anwendungen, die vor langer Zeit geschrieben wurden und nichts davon wissen.
Update: Laut den Xlib-Dokumenten zum Thema :
Beginnend mit dem Quellfenster durchsucht der X-Server die Fensterhierarchie, bis er das erste Fenster findet, das von einem Client als an diesen Ereignissen interessiert angegeben wurde. Wenn für eines der dazwischenliegenden Fenster die Option "Nicht weitergeben" festgelegt ist, um die Generierung des Ereignistyps zu verhindern, werden die Ereignisse dieser Typen unterdrückt.
Ebenfalls,
Um KeyPress-, KeyRelease-, ButtonPress- und ButtonRelease-Ereignisse zu empfangen, legen Sie die Bits KeyPressMask, KeyReleaseMask, ButtonPressMask und ButtonReleaseMask im Ereignismaskenattribut des Fensters fest.
Und Sie können ein Attribut zu deaktivieren Ausbreitung gesetzt .
Das Problem ist, dass Sie X nicht mitteilen, auf welche Schlüssel Sie achten sollen, sodass Sie niemals a priori angeben können, auf welche Schlüssel die Anwendung wartet (geschweige denn, was sie tun) oder ob sie tatsächlich beabsichtigen, sie zu verbreiten darauf hören. Daher ist eine zentrale Registrierung auf X-Ebene nicht möglich, sodass Sie sie auf Toolkit-Ebene ausführen müssen, was praktisch unmöglich ist. : D