Jak ponownie przypisać klawisz Super (lewy) do klawisza sterującego

26

Czy ktoś mógłby mi powiedzieć, jak ponownie przypisać mój Super(lewy) klucz do Ctrlklucza?

Mam na myśli Super(po lewej) powinien działać jako Ctrlklucz.

Piaszczysty
źródło
Czy chcesz, aby tylko lewy klawisz Super działał jako Ctrl? Łatwo jest odwzorować oba ustawienia naraz z Układu klawiatury, ale zmiana tylko jednego z nich musiałaby zostać wykonana za pomocą plików konfiguracyjnych.
pconley
Tak, chcę tylko pozostawić klawisz Super, aby działał jako Ctrl.
Sandy
Czy superklucz odnosi się do klawisza na mojej klawiaturze, który ma logo MS Windows i leży między lewym klawiszem Ctrl a lewym alt / prawym alt gr i klawiszem z innym dziwnym logo?
René Nyffenegger,
1
@ RenéNyffenegger Klawisz Super jest Windowsklawiszem na klawiaturze komputera i Commandklawiszem na klawiaturze Apple. Nie jestem pewien, co entirly drugi klucz można opisać to
nhed

Odpowiedzi:

28

Aby dokonać poważnych zmian na klawiaturze, w tym odwzorować znaki i zmienić modyfikatory, musisz użyć narzędzia xmodmap - patrz man xmodmap . Istnieje kilka sposobów wprowadzenia zmian:

  • albo z wiersza poleceń

    xmodmap -e "your commands"
    
  • lub napisz polecenia do pliku takiego jak .xmodmaprc, a następnie uruchom go w elementach logowania lub .bashrc za pomocą

    xmodmap .xmodmaprc
    

    Jeśli nazwiesz plik ~/.xmodmap, zostanie on automatycznie wykonany przy logowaniu.

Teraz polecenia

To, co chcesz zrobić, to dwuetapowy proces. Najpierw odklejasz Super od jego modyfikatora, a następnie odwzorowujesz go na sterowanie.

  1. Uruchom xmodmap -pmw oknie terminala, aby uzyskać listę powiązanych modyfikatorów. Na mojej maszynie (i prawdopodobnie twojej) Super jest nazywany mod4.Super_Li Super_Rsą osobnymi klawiszami, które generują ten sam modyfikator.

    Teraz możesz cofnąć mapowanie modyfikatora. Uruchom komendę xmodmap (używając jednej z powyższych metod)

    remove mod4 = Super_L
    

    Teraz klucz fizyczny jest nadal wewnętrznie nazywany Super_L, ale nic nie robi.

  2. Teraz po prostu zmień mapowanie. Uruchom polecenie xmodmap:

    add control = Super_L
    

Jeśli chcesz to później cofnąć, po prostu uruchom te same polecenia z odpowiednimi argumentami.

Nie masz Super_R?

Dane wyjściowe xmodmap -pm mogą dać ci kilka kluczy o nazwie Super_L, ale żaden o nazwie Super_R). Jeśli tak, masz teraz kilka dodatkowych kluczy przypisanych do Kontroli, ale żaden nie jest przypisany do Super. Musisz zmienić nazwę jednego klucza. (Uwaga: może dać ci kilka Super_L i przynajmniej jeden Super_R. W porządku.)

Wszystkie nazwy kluczy w tabeli mają obok siebie numer szesnastkowy w nawiasach. Ta liczba to fizyczny kod klawisza na klawiaturze (może się różnić w zależności od modelu). Jeśli chcesz zmienić jeden Super_L na Super_R, najpierw znajdź kod klucza, który chcesz powiązać z Super_R (nie jesteś pewien, który jest prawidłowy? Uruchom, xeva następnie stuknij kilka razy w prawo Super. Gdzieś w labiryncie wyników jest „ keycode = 133 "(z innym numerem). Uruchom polecenie xmodmap

keycode 133 = Super_R

zmienić nazwę klucza

add mod4 = Super_R

przypisać to do Super.

pconley
źródło
Przede wszystkim dziękuję za poświęcenie mi czasu. Kiedy wpisałem „remove mod4 = Super_L” w terminalu, otrzymałem następujący komunikat: remove mod4 = Super_L: polecenie nie zostało znalezione . Zrzut ekranu: i.imgur.com/fbvEA.png
Sandy
1
To polecenie dla narzędzia xmodmap. Musisz uruchomić go jedną z metod, które podałem w pierwszej części. Zredagowałem swoją odpowiedź, aby wyjaśnić to bardziej.
pconley
Czy możesz mi również powiedzieć, jak uruchamiać te polecenia podczas uruchamiania?
Sandy
Po zalogowaniu lub po uruchomieniu systemu? Jeśli to pierwsze, po prostu umieść polecenia w pliku „.xmodmap” w katalogu domowym; to drugie byłoby bardziej odpowiednie dla osobnego pytania w stylu „jak wykonać skrypt podczas uruchamiania” (takie pytania były prawdopodobnie zadawane wcześniej).
pconley
Dla mnie nie działał bez keyum . keysym Super_L = Control_L
Aliaksandr Sushkevich,
19

Wiersz poleceń:

xmodmap -e "remove mod4 = Super_L"
xmodmap -e "add control = Super_L"

Lub włóż, ~/.Xmodmapaby aktywować przy starcie:

remove mod4 = Super_L
add control = Super_L
Coc
źródło
4

W Ubuntu możesz edytować /etc/default/keyboardi ustawiać:

XKBOPTIONS = "altwin: ctrl_win"

Który:

Ctrl jest odwzorowany na klawisze Win (i zwykłe klawisze Ctrl)

Przeczytaj, man 5 keyboardaby uzyskać więcej informacji. Możesz znaleźć wszystkie możliwe kombinacje opcji w swoim systemie, wykonując:

grep alt /usr/share/X11/xkb/rules/evdev.lst | grep win
Mitar
źródło
2

Jeśli chcesz zrobić z GUI:

  1. Zainstaluj / otwórz Gnome Tweaks
  2. Kliknij Keyboard & Mouse
  3. Kliknij Additional Layout Options
  4. Rozszerzać Ctrl position
  5. Wybierz Swap Left Win with Left Ctrl
Bogaty
źródło
1

Spróbuj tego:

clear Control
clear mod4
remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Super_L

Umieść powyższe linie w swoim ~/.Xmodmapi wykonaj xmodmap ~/.Xmodmap.

rendon
źródło