rozwiązanie xmodmap
Myślę, że możesz to zrobić za pomocą xmodmap , narzędzia do modyfikacji map klawiszy. Ponieważ moja klawiatura nie ma odpowiedniego Superklawisza, nie mogę potwierdzić tego rozwiązania, więc proszę zostawić komentarz, jeśli nie działa.
Wszystkie kroki są wykonywane w terminalu
Wydrukuj aktualną mapę modyfikatora
Uruchom
xmodmap
Powinno to wydrukować aktualną mapę modyfikatora, która powinna polubić coś takiego
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
Ważną linią jest mod4linia, ta linia pokazuje, które kody kluczy są mapowane na symbole kluczy Super_L i Super_R.
Utwórz
kopię zapasową mapy kluczy Zanim cokolwiek zmienimy, dobrym pomysłem jest wykonanie kopii zapasowej bieżącej mapy kluczy, możemy to zrobić za pomocą
xmodmap -pke > ~/.xmodmap.orig
Teraz, jeśli coś pójdzie nie tak, możesz po prostu pisać
xmodmap ~/.xmodmap.orig
aby przywrócić oryginalną mapę kluczy. (Jeśli popełniłeś poważne błędy i nie możesz już poprawnie pisać, działa również restart)
Sprawdź aktualną mapę kluczy dla Super kluczy
Zakładając, że Superklucze mają kolejne kody kluczy (w tym przypadku 0x85 i 0x86), możemy sprawdzić bieżące mapowanie, uruchamiając
xmodmap -pke | grep -wA1 $((0x85))
oczywiście, że powinieneś zmienić 0x85 za pomocą kodu klucza z mapy modyfikatora. To powinno ci dać
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R
( $((0x85))konwertuje liczbę szesnastkową na dziesiętną)
Skopiuj zachowanie lewej Super do prawej Super
Jak widać z poprzedniego kroku po prawejSuper klawisz ma kod klucza 134, ale chcemy, aby zachowywał się tak, jak lewy Superklawisz, który ma kod 133. Możemy to zrobić poprzez ponowne przypisanie klucza za pomocą
xmodmap -e "keycode 134 = Super_L NoSymbol Super_L"
Sprawdzanie, czy to działa
Jeśli teraz robisz
xmodmap -pke | grep -wA1 $((0x85))
powinieneś zobaczyć
keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_L NoSymbol Super_L
co oznacza, że oba klucze mają teraz takie samo zachowanie. Również mapa modyfikatora powinna się zmienić na linii zmod4 , możemy to sprawdzić, uruchamiając
xmodmap | grep 'mod4'
co powinno dać
mod4 Super_L (0x85), Super_L (0x86), Super_L (0xce), Hyper_L (0xcf)
I oczywiście skróty, o których wspomniałeś, powinny również działać!
Zachowaj trwałe mapowanie
Jeśli to działa, możesz upewnić się, że ustawienia te zostaną automatycznie zastosowane podczas uruchamiania. Biegać
echo 'keycode 134 = Super_L NoSymbol Super_L' >> ~/.xmodmaprc
aby zapisać niestandardowe mapowanie kluczy w pliku ~/.xmodmaprc. Biegać
echo 'xmodmap ~/.xmodmaprc' >> ~/.xsessionrc
aby upewnić się, że niestandardowa mapa kluczy jest wykonywana podczas ładowania menedżera okien.
Settings Manager -> Keyboard, czy jest jak opcjaexo-open --launch TerminalEmulator? Jeśli tak, co mówi druga kolumna, skrót?