Ich habe also die gleiche Frage auf 5 verschiedenen Stackexchange-Sites gesehen und alle Antworten besagen, dass nur der Hotkey entfernt werden soll, was zwar funktioniert, aber nicht die Wurzel des Problems ist (zumindest war es nicht für mich). Das eigentliche Problem ist, dass der Windows-Superschlüssel nicht richtig zugeordnet ist, wie hier beschrieben:
i3 ignoriert mod4 (Windows-Taste) in einer VNC-Sitzung
Führen Sie einfach diese beiden Befehle aus
xmodmap -e "clear mod4"
xmodmap -e "add Mod4 = Super_L"
Das sollte es tun. Jetzt sollte der Desktop nur angezeigt werden, wenn Sie auch die Super-Taste (Windows) gedrückt halten. Die Taste "d" (und andere Tasten mit Super-Verknüpfungen) sollten jetzt wie erwartet funktionieren.
Abhängig von Ihrer Tastatur müssen Sie möglicherweise Super_L durch etwas anderes ersetzen. Weitere Informationen finden Sie unter dem obigen Link.
Bearbeiten: Ich bin über diese Antwort gestolpert und da ich nicht sicher bin, ob der Link sehr lange gültig sein wird, habe ich den Beitrag in einen Block unten kopiert, damit Sie darauf verweisen können, wenn der Link nicht funktioniert.
Stellen Sie zunächst sicher, dass Ihre lokale Sitzung die Verknüpfungen aus Ihrer Remotesitzung nicht erfasst. Ich verwende diesen Trick gerne: faq.i3wm.org/question/1679/toggle-i3s-listening-behavior/ in meiner lokalen Sitzung, aber Sie können auch die von Ihrem vnc-Client bereitgestellte Methode verwenden (z. B. Remmina hat ein Tastatursymbol, das beim Drücken angezeigt wird) Senden Sie alle Schlüssel direkt an Ihre Remote-Sitzung.
Stellen Sie dann auf dem Remote-Server sicher, dass xev wichtige Ereignisse meldet, wenn Sie die Windows-Taste drücken und loslassen. Führen Sie xev
von einem Terminal aus, stellen Sie sicher, dass Ihr Mauszeiger auf dem Fenster von xev ruht, und drücken Sie die Windows- / Super-Taste. Sie sollten so etwas sehen:
KeyPress event, serial 27, synthetic NO, window 0x2000001,
root 0x25, subw 0x0, time 378034015, (-1,97), root:(515,117),
state 0x0, keycode 89 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
Beachten Sie die Beschreibung des Schlüssels neben seinem Schlüsselsymbol: Super_L
in diesem Fall.
Als nächstes laufe xmodmap -pm
und schau dir die Zeile an, die mit mod4 beginnt. Neben mod4 wird gedruckt, welcher Schlüssel an mod4 gebunden ist. Wenn alles in Ordnung ist, sollte diese Zeile in der Ausgabe angezeigt werden:
mod4 Super_L (0x59)
Aber da Sie diese Zeilen lesen, wird wahrscheinlich nichts neben mod4 oder ein anderer Schlüssel (z. B. Meta_L) angezeigt. Führen Sie die beiden folgenden Befehle aus, um das Problem zu beheben:
xmodmap -e "clear mod4" # un-bind mod4 from what ever other key
xmodmap -e "add Mod4 = Super_L" # <--- again replace Super_L with whatever xev gave you