Jak zmienić mapowanie skrótów klawiaturowych Ubuntu, aby pasowały do ​​OSX?

28

Używam Ubuntu w VirtualBox na Macu. Ponieważ często się zmieniam, chciałbym używać tych samych skrótów. Czy ktoś wie, jak mieć takie same skróty na Ubuntu, jak na Macu? W szczególności chciałbym skopiować, wkleić, zaznaczyć wszystko, ... pracować z Cmd + C, Cmd + V, Cmd + A, ... (nawet w terminalu - bez Ctrl + Shift, tylko Ctrl).

Próbowałem zmienić układ klawiatury na Apple Laptop, ale to nie pomogło.

użytkownik209499
źródło
Czy klucz Cmd jest alternatywą dla Ctrl lub Alt?
Seth
Jeśli dobrze pamiętam, Cmd jest równy ctrl.
Kaz Wolfe
2
cmd jest równy klawiszowi funkcji systemu Windows (podczas gdy klawisz cmd znajduje się obok spacji). Najczęściej między ctrl a alt.
velop,

Odpowiedzi:

8

nie możesz dodać niestandardowych skrótów? Jeśli to nie było możliwe lub nie działało, możesz chcieć zmienić skróty klawiszowe w vmbox. Musisz wykonać następujące czynności:

Zainstaluj xbindkeys

sudo apt-get install xbindkeys

Xbindkeys to bardzo wszechstronny program, który pozwala bardzo łatwo mapować klucze. Używa pliku konfiguracyjnego, domyślnie znajdującego się w twoim katalogu domowym, do zmiany przypisania klawiszy na określone polecenia.

Aby utworzyć domyślny plik konfiguracyjny, użyj polecenia:

xbindkeys --defaults

Który drukuje domyślny plik konfiguracyjny. Więc jeśli chcesz utworzyć plik zawierający wartości domyślne, którego byś użył:

xbindkeys --defaults > $HOME/.xbindkeysrc

Który drukuje wartości domyślne w ukrytym pliku o nazwie .xbindkeysrc znajdującym się w domu.

Teraz, aby faktycznie zmienić powiązania klawiszy, najpierw musimy wiedzieć, jak brzmi nazwa lub skrót kluczy. xbindkeys pozwala nam użyć uchwytu -k do znalezienia nazwy klucza lub kombinacji klawiszy. Biegać:

xbindkeys -k

Teraz naciśnij ctrl (z cmd) i sprawdź dane wyjściowe

Spróbuj nacisnąć ctrl + c (po wyłączeniu tego skrótu w terminalu, korzystając z drugiej części tego wyjaśnienia)

Poda ci nazwę klucza / kombinacji klawiszy.

Teraz musimy powiedzieć linuxowi, aby wywoływał cmd po naciśnięciu ctrl.

do tego potrzebujemy dodatkowego oprogramowania, ponieważ xbindkeys nie obsługuje tego samodzielnie. Znam dwa programy, których możemy użyć, xdotool i xte. Wolę xte, więc zamierzam go użyć.

Zainstaluj to:

sudo apt-get install xautomation

(Aby połączyć się z jednym klawiszem, naciśnij: xte 'key keyName'

Aby wywołać kombinację klawiszy: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

Aby uzyskać więcej informacji, przeczytaj instrukcję man xte )

Pozwala otworzyć wcześniej utworzony plik konfiguracyjny: (ten, który utworzyłeś xbindkeys --defaults > $HOME/.xbindkeysrc)

gedit .xbindkeysrc

Otrzymasz coś takiego:

#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll). 
#

# The release modifier is not a standard X modifier, but you can  
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

Wcześniej wyodrębniono kombinację klucz / klucz. teraz, gdy znasz polecenie symulacji naciśnięć klawiszy, możesz je wywołać ze skryptu xbindkeys, w następujący sposób:

„xte 'ctrl'” Cmd (lub coś takiego zależało od nazwy nadanej ci przez xbindkeys)

Dodaj to do skryptu xbindkeys i zapisz.

Zauważysz, że to jeszcze nie działa. To dlatego, że xbindkeys jeszcze nie działa. uruchom go za pomocą następującego polecenia.

xbindkeys

Twoje polecenia powinny teraz działać. Jeśli to nie działa, możesz spróbować dodać polecenia do kombinacji klawiszy, takie jak kopiuj i wklej. Jeśli to nie zadziała, istnieje alternatywa, ale to dość dużo pisania. Możesz także wypróbować xmodmap lub xkeycaps.

Chciałbym zauważyć, że xbindkeys i xte nie zawsze działają dobrze razem.

Jeśli chodzi o skróty terminalu: Możesz je zmienić WSZYSTKO, otwierając terminal i klikając edytuj na górnym pasku. Następnie kliknij skróty klawiaturowe i zmień wartość kopiowania i wklej pod nagłówkiem „edytuj” na ctrl (lub w twoim przypadku cmd) + c i ctrl + v

Akisame
źródło
2
są to rozwiązania, które pomogą rozwiązać problem WEWNĄTRZ vmbox. Możesz być w stanie wymieniać niektóre keyscodes przez utworzenie tabeli wymiany-kod w swoim vmbox ale nie mam żadnego doświadczenia z vmboxes
Akisame
Jest to tak blisko, jak nigdy dotąd, aby uzyskać wiązania Mac na Linuksie. Wydaje się jednak, że xte 'key Home'nie działa po powiązaniu z dowolnym naciśnięciem klawisza w pliku .xbindkeysrc. Próbowałem różnych odmian, takich jak „Shift + i”. Widziałem też, jak działa, wykonując klawisz „spać 15 i&xte” Dom ”(przejście do gedit i praca w domu). Najwięcej informacji zwrotnych, jakie otrzymuję, gdy mam konfigurację z„ Alt + Left ”dla domu, to flash kursora. Jakakolwiek pomoc na ten temat? gist.github.com/Kikketer/658d89661a044121279afbba04a511fa
Chris
8

Nie ma potrzeby korzystania xbindkeysz mapowania klawiatury podobnego do OSX na Ubuntu. To jest wbudowana opcja:

  1. Przejdź do ustawień Ubuntu
  2. Przejdź do KlawiaturaUstawienia układu klawiatury
  3. dodaj angielski (Macintosh)
boulder_ruby
źródło
7
Nie widzę Keyboard Layout Settingsna Ubuntu 14.0.4
chovy
To nie działa w VirtualBox. Wszystko, co dostałem, to skurczone okno, gdy próbowałem skopiować / wkleić.
chovy
lol, po tylu latach wypróbowania wszystkich innych rozwiązań, to jest takie proste i działało natychmiast. (Ubuntu 14.04.3 LTS 64bit w VirtualBox 5.0.4). Dzięki
Allisone
To nie działa dla mnie na virtualbox.
Peter Brooks,
3
Ta odpowiedź wyraźnie nie działa już w przypadku nowszych wersji Ubuntu. Niezależnie od najnowszej wersji Ubuntu w 2014 roku, zadziałało.
boulder_ruby
3

To jest zaktualizowana odpowiedź dla każdego, kto zmaga się z tym problemem w nowszych wersjach Ubuntu.

Właśnie zainstalowałem Ubuntu 16.04.1 przez VirtualBox i nie byłem w stanie uzyskać ustawień klawiatury pasujących do mojego MacBooka.

Oto, co zrobiłem, aby to naprawić:

  1. Przejdź do Ustawień systemu .
  2. Wybierz Wpis tekstu (tj. Nie Klawiatura ).
  3. Pod listą z nagłówkiem Źródła wejściowe do użycia: jest znak plus i minus - kliknij znak plus.
  4. W polu tekstowym w obszarze Wybierz typ źródła wejściowego w wymaganym układzie klawiatury (w moim przypadku wybieram angielski (brytyjski, Macintosh).
  5. Użyj strzałki w górę, aby ustawić domyślny układ klawiatury w systemie Ubuntu.
  6. Usuń inne układy klawiatury. Dopiero po usunięciu innych układów zmiany zaczęły obowiązywać.
David Brower
źródło
1
Jaki jest tego efekt? Na przykład klawisz sterujący na komputerze Macintosh znajduje się w tym samym miejscu, co na zwykłej klawiaturze. Ponieważ ctrl-c / v nadal są domyślnymi systemowymi poleceniami kopiowania i wklejania, nie odpowie to na pierwotne pytanie dotyczące zmiany mapowania tego rodzaju skrótów systemowych, aby naśladować komputer Mac.
Coljac
2

Używam Ubuntu 16.04, VirtualBox 5.1.22 i żadna z tych odpowiedzi nie działała dla mnie - w tym niestety Davida Browera .

Oto, co zrobiłem, aby mój lewy klawisz polecenia OSX działał (trwale!):

  1. Najpierw musisz się upewnić, że VirtualBox nie używa Left ⌘ jako klucza Hosta
    • Na górnym pasku menu okna VM wybierz Input > Keyboard > Keyboard Settings..
    • Na liście ustawień znajdź kombinację klawiszy hosta i zmień skrót na inny niż lewy ⌘ (właśnie użyłem prawego ⌘, ponieważ nigdy go nie używam).
  2. Teraz, gdy możesz zdecydowanie użyć Lewego ⌘ w środowisku VM, ponownie mapuj klucze za pomocą XKB:
    • Otwórz i (ostrożnie) edytuj: /usr/share/X11/xkb/symbols/pc
    • Po prostu zamieniłem się <LCTL>i <LWIN>dookoła, więc wygląda to tak:
    • key <LCTL> { [ Super_L ] };
    • key <LWIN> { [ Control_L ] };
  3. Teraz wyczyść stare mapowania z pamięci podręcznej xkb:
    • rm -rf /var/lib/xkb/*
  4. Uruchom ponownie ubuntu, aby zmiany zostały wprowadzone.

Słowo ostrzeżenia: Unikałbym dokonywania więcej niż jednej zmiany na raz za pomocą xkb, chyba że naprawdę wiesz, co robisz, kilka niepoprawnie odwzorowanych klawiszy w tym samym czasie może być prawdziwym bólem głowy!

Pełne uznanie dla Radu Cotescu za instrukcje zmiany mapowania xkb - dotyczyły one Ubuntu 14.04, ale działają dobrze dla Ubuntu 16.04.

Danwild
źródło
Zanim to zrobisz, wykonaj migawkę! Na szczęście miałem inny cel i po zrobieniu tego Ubuntu nie uruchomił się poprawnie. Cofnąłem się i znów zaczęło działać. Używam 18,04 do tego, co warto.
tom
2

Szukając innych pytań, znalazłem to narzędzie do mapowania Ctrl na klawiaturę Macbooka CMD Left, aby zrobić CMD + C lub CMD + V lub coś innego:

Zainstaluj aplikację gnome-tweaks:

sudo apt-get install gnome-tweaks

Otwórz aplikację Applications -> Gnome Tweaksi zamapuj CTRL na WIN (tak samo jak CMD na Macu), robiąc to:

  1. Klawiatura i mysz
  2. Dodatkowe opcje układu (lewy super)
  3. Działanie klawisza Alt / Win
  4. Ctrl jest mapowany na Win i zwykłe klawisze Ctrl`

Ciesz się CMD + C or CMD + Vw swoim OSX VirtualBox za pomocą VM Ubuntu-18.

Hemã Vidal
źródło
Pracował <filler>
skwny
Utraciło mnie to możliwość korzystania z klawisza Win / Apple. Zamiast Zrobiłem następujące do kroku 3 i 4: (3) Ctrl position, (4) Swap Left Win with Left Ctrl.
Turgs
0

Nadal używam Ubuntu 12.04 z różnych powodów, więc nie mogę mówić o późniejszych iteracjach, ale spróbuj tego:

Dobra, po pierwsze, możesz chcieć ustawić klucz hosta VB na coś konkretnego, takiego jak właściwe polecenie lub prawy klawisz alt ... coś, czego nie używasz normalnie. Myślę, że domyślnie jest to lewy klawisz polecenia, który będzie zakłócał operacje większości ludzi.

Można to zrobić w preferencjach dla samego VirtualBox (zamiast w maszynie gościa lub w dowolnym ustawieniu specyficznym dla maszyny). Przy otwartej aplikacji VB (nie w oknie VM) wybierz VirtualBox-> Preferencje-> Dane wejściowe, a następnie wybierz klucz hosta na początku pola / listy mapowania „Maszyna wirtualna”.

Dobrze, potem w samej maszynie gościa Ubuntu:

  1. Otwórz ustawienia systemowe i wybierz Układ klawiatury.
  2. Otwórz kartę Układy.
  3. Prawdopodobnie będziesz mieć tylko jeden wpis - angielski (amerykański) lub coś takiego. Zaznacz to i kliknij przycisk „Opcje” w prawym dolnym rogu.
  4. Otwórz ekspander „Alt / Win Key Behaviour”.
  5. Wybierz „Sterowanie jest mapowane na klawisze Win (i zwykłe klawisze Ctrl)”.

Powinieneś zauważyć, że twój klawisz poleceń Mac działa teraz tak, jak chcesz dla Command-C, Command-V itp.

Kaitain
źródło
0

W przypadku Kubuntu 18.04 z plazmą 5 działało dla mnie (w Ustawieniach systemu / urządzeniach wejściowych / klawiaturach) ustawienie sprzętu jako „104-klawiszowy rodzajowy” i układu jako „angielskiego (Macintosh)”

lurscher
źródło
-1

Będzie to zależeć od oprogramowania używanego do uruchamiania maszyny wirtualnej. Na przykład używam VMWare Fusion, aby uruchomić Ubuntu na moim komputerze Mac i aby osiągnąć to, czego chcesz, poszedłem do „Ustawień” VMWare Fusion i skonfigurowałem mapowanie klawiszy, które chciałem wewnątrz tej konkretnej maszyny wirtualnej (mogę mieć wiele ustawień, jeden dla każdej maszyny wirtualnej).

Nigdy nie korzystałem z VirtualBox, ale jestem pewien, że możesz to zrobić w Ustawieniach VirtualBox.

David Lopes
źródło