Wie kann man dafür sorgen, dass Hyper- und Super-Tasten nicht dasselbe tun?


8

Ich habe xkb verwendet, um den rechten Windows-Schlüssel (RWIN) Hyper_R neu zuzuordnen, da ich ihn mit AutoKey für einige spezielle Verknüpfungen verwenden möchte. Ich habe es durch Bearbeiten gemacht

/usr/share/X11/xkb/symbols/pc

Ändern der RWIN-Zeile:

  key <RWIN> {  [ Hyper_R   ]   };

( Hier ist die Antwort, die mich geführt hat )

Soweit ich das beurteilen kann, funktioniert dies und der richtige Windows-Schlüssel löst jetzt Hyper_R aus. Es scheint jedoch, dass Hyper und Super in Ubuntu (genauer gesagt Xubuntu) irgendwie dasselbe tun. So startet Super + e den Editor und Hyper + e auch.

Ich bin mir nicht sicher, warum dies so ist oder wo ich dieses Verhalten ändern kann. Ich möchte, dass Hyper und Super unterschiedliche Modifikatoren sind.


Hier war etwas dran , obwohl ich nicht glaube, dass der Dialog jetzt in 13.10 existiert ...
Wilf

Aber das muss irgendwo konfigurierbar sein, oder?
Alexander Rechsteiner

Sie können sie möglicherweise indconf-editor
Wilf

1
Danke, aber kein Glück da. Verdammt, diese ganze Tastatur-Remapping-Sache unter Linux gibt mir Diabetes.
Alexander Rechsteiner

+1: Übereinstimmung (im Diabetes-Teil). Ich konnte keine schöne, umfassende und detaillierte Anleitung zur Verwaltung der Tastatur in Ubuntu finden. Es gibt eine Reihe von Interaktionen zwischen Gnome-Control-Center, Gnome-Tweak-Tool, xkbd und xmodmap, die recht komplex und im schlimmsten Fall nicht dokumentiert sind. Wenn Sie einen Link finden, teilen Sie ihn bitte! (Obwohl ich vermute, dass fast niemand es wirklich weiß. Sehen Sie sich nur die Unfixierbarkeit von bugs.launchpad.net/ubuntu/+source/gnome-settings-daemon/+bug/… an. )
Rmano

Antworten:


10

Aus irgendeinem Grund weist Ubuntu Mod4 derzeit sowohl Super als auch Hyper zu. Sie können dies in / usr / share / X11 / xkb / symbole / pc sehen:

 key <SUPR> {   [ NoSymbol, Super_L ]   };
 modifier_map Mod4   { <SUPR> };

 key <HYPR> {   [ NoSymbol, Hyper_L ]   };
 modifier_map Mod4   { <HYPR> };

Ich konnte dies ändern, um separate Modifikatoren mit Super und Hyper zu versehen, ohne dass ich root sein oder Systemdateien ändern musste. Ich bin mir nicht sicher, ob dies der beste Weg ist, da ich definitiv kein xkb-Experte bin, aber es ist ein Weg, der für mich zuverlässig war.

Erstellen Sie zunächst eine lokale Symboldatei. Ich habe meine in $ {HOME} /. Config / xkb / symbole / local. Dies weist Mod3 Super und Mod4 Hyper zu.

default  partial modifier_keys
xkb_symbols "superhyper" {

    modifier_map Mod3 { Super_L, Super_R };

    key <SUPR> {    [ NoSymbol, Super_L ]   };
    modifier_map Mod3   { <SUPR> };

    key <HYPR> {    [ NoSymbol, Hyper_L ]   };
    modifier_map Mod4   { <HYPR> };
};

Kompilieren Sie dann die vorhandene Karte neu, um eine "lokale" Karte hinzuzufügen:

setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.config/xkb - ${DISPLAY}

Fügen Sie dies in ein Skript ein, das beim Anmelden ausgeführt werden soll. Sie können es als normaler Benutzer ausführen.


Ist es möglich, diese Datei einfach zu bearbeiten, um HYPR in Mod3 zu ändern?
Alex Moore-Niemi

3
Du kannst das. Der Vorteil einer nicht vorhandenen Bearbeitung besteht darin, dass ein Systemupdate Ihre Änderungen nicht überschreibt.
Ergosys

Für mich selbst hatte ich es kurz mit raw.githubusercontent.com/jabbalaci/dotfiles/master/.Xmodmap arbeiten lassen, obwohl es auf mysteriöse Weise immer wieder aufhört ...
Alex Moore-Niemi

Ein Nachteil der von mir gefundenen Methode meiner Antwort ist auch, dass das Skript erneut ausgeführt werden muss, wenn Ihre Tastatur nicht angeschlossen ist oder die USB-Kommunikation aufgrund eines zufälligen Fehlers verliert. Es gibt wahrscheinlich eine Möglichkeit, es automatisch erneut auszuführen, aber ich habe es nicht untersucht. Glücklicherweise passiert die zufällige Panne für mich nur einmal im Monat. Wenn Sie die Systemdateien bearbeiten, sollte dies kein Problem sein. Es gibt also Vor- und Nachteile.
Ergosys

1
Ich benutze das auch. Es gibt bereits ein Dosen-Setup dafür, also benutze ich: setxkbmap -option 'caps: hyper'
ergosys

3

Mit können xmodmapSie dieses Verhalten mit 2 Befehlen ändern:

## Hyper_L is mod4 by default, we will "move" it to Mod3
xmodmap -e "remove mod4 = Hyper_L"
xmodmap -e "add mod3 = Hyper_L"

0

Seit dem letzten Update, zumindest auf Wayland, hat dies für mich funktioniert:

setxkbmap -option caps:hyper
setxkbmap -option caps:none

Ich habe es in meiner .bashrc und es wurde durch ein CLI-Apt-Update sudo apt update && sudo apt upgrade , das Anwendungsupdate "Software Updater" und einige Neustarts beibehalten.

Ich habe immer noch Gnome Tweak Tools installiert, aber ich habe keine Einstellungen konfiguriert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.