Uzyskiwanie hosta do przechwytywania niektórych naciśnięć klawiszy w VirtualBox

48

Używam VirtualBox na Ubuntu 9.10 z Windows XP jako systemem-gościem.

To dość denerwujące, że kiedy jestem w systemie gościa - nie mogę przełączać wirtualnych pulpitów (obszarów roboczych) na hoście (Ubuntu), naciskając Control+ Alt+ ( Left| Right| Up| Down), ponieważ VirtualBox przechwytuje te kombinacje klawiszy.

Czy można wyłączyć przechwytywanie klawiatury dla niektórych kombinacji klawiszy?

Aleksander Smirnow
źródło

Odpowiedzi:

27

Chociaż istnieją pewne skróty klucza hosta, które aktywują niektóre funkcje VirtualBox (np. Host Key+, PKtóry wstrzymuje gościa), nie znam żadnego sposobu skonfigurowania VirtualBox do wysyłania skrótów klucza hosta do systemu operacyjnego hosta.

Ponieważ jednak VirtualBox ma wersję open source , może być możliwa modyfikacja kodu źródłowego w celu dodania tej funkcji. Możesz uzyskać dostęp do kodu źródłowego VirtualBox pod linkiem Pobierz .

W międzyczasie możesz użyć klucza hosta, aby zwolnić klawiaturę spod kontroli gościa VirtualBox. Domyślnie klucz hosta jest ustawiony na Right Ctrl. Aktualny klucz hosta możesz zobaczyć w oknie maszyny wirtualnej:

alternatywny tekst

Wystarczy nacisnąć klawisz Host jeden raz, aby zwolnić przechwytywanie klawiatury. Następnie system operacyjny hosta zobaczy naciśnięcia klawiszy. Oto Twój przepływ pracy:

  1. Naciśnij i zwolnij klawisz hosta. System operacyjny gościa nie rejestruje już naciśnięć klawiszy.
  2. Naciśnij Ctrl+ Alt+ (klawisz strzałki), aby przełączyć obszary robocze lub dowolne inne klucze, które chcesz wysłać do systemu operacyjnego hosta.
quack quixote
źródło
Byłoby miło ... Ale [Left Ctrl] + [Alt] też nie działa ... To wcale nie zależy od klawisza hosta, VBox przechwytuje wszystkie naciśnięcia klawiszy.
Alexander Smirnov
przepraszam, źle odczytałem twoje pytanie; myślałem, że masz gościa Ubuntu na hoście XP. zaktualizowałem odpowiedź.
quack quixote
1
Ok, dziękuję, mam nadzieję, że znajdę czas na małe dochodzenie w celu dodania tej funkcji
Alexander Smirnov
@quack Gaff Jeśli jeden, w którym można dostosować kod źródłowy. czy łatwo byłoby odbudować vmware, aby z niego korzystać? na macosie?
momomo
15

To pytanie jest stare, ale znalazłem lepsze rozwiązanie, które prawdopodobnie wtedy nie istniało.

Możesz wyłączyć opcję „Automatyczne przechwytywanie klawiatury” w oknie Menedżera -> menu Plik -> Preferencje -> Dane wejściowe:

wprowadź opis zdjęcia tutaj

Powoduje to całkowite wyłączenie automatycznego chwytania klawiatury, więc skróty klawiszowe menedżera okien są przekazywane bezpośrednio do niego.

W tym trybie klucz „hosta” ma odwrotny skutek - umożliwia pobieranie zamiast wyłączania.

zasłużony
źródło
9
Minusem tego jest to, że teraz musisz pamiętać, aby włączyć przechwytywanie klawiatury przed użyciem rzeczy takich jak Alt + Tab. Virtualbox naprawdę potrzebuje sposobu mapowania i wyłączania skrótów klawiaturowych w gościu.
sztaplowane
1
Działa świetnie! Nie rozumiem jednak, dlaczego to ustawienie nie jest specyficzne dla komputera.
Franck Dernoncourt
Okazuje się, że jest to całkiem dobre rozwiązanie, jeśli używasz maszyny gościa do uruchamiania kodu, który tworzysz na maszynie hosta, nawet kodu GUI. Jeśli nie zmaksymalizujesz GUI na maszynie gościa i nie otworzysz terminu / cmd do uruchomienia kodu, możesz najechać kursorem myszy / kliknąć okna, które chcesz wpisać, tak jak zwykle w przypadku okien hosta (kliknij, aby ustawić ostrość można wyłączyć w systemie Windows!). Alt + Tab przełącza się między VirtualBox i oknami hosta, a skróty klawiaturowe do przełączania obszarów roboczych prawdopodobnie będą działać (moje są skonfigurowane jako strzałka Super + i liczba Super +, więc nie mogę przetestować Ctrl + Alt + strzałka).
Michael
5

Jednokrotne naciśnięcie klawisza hosta (prawy klawisz Ctrl) umożliwia przejście kolejnej kombinacji klawiszy na maszynę hosta.

Dla mnie oznacza to, że mogę nacisnąć prawy-Ctrl, zwolnić, a następnie nacisnąć Windows + lewy-Ctrl + lewy, aby przełączyć pulpit

Curtis
źródło
1
To tak naprawdę nie wyłącza przechwytywania klawiatury dla niektórych kombinacji klawiszy, ta odpowiedź byłaby lepsza jako komentarz.
Nie rootuj tutaj, proszę ...
Potwierdzono działanie dla przeciwnej kombinacji: host systemu Windows 7 + gość Ubuntu 16.04.
jpaugh
1

Udało mi się to bardzo skutecznie, ustawiając klucz hosta jako Winklucz! W systemie Windows 10 potrzebujesz Ctrl+ Win+ Arrowsdo przełączania komputerów stacjonarnych, a ustawienie Winjako klucza hosta umożliwia wykonanie kombinacji bezpośrednio w systemie operacyjnym hosta, ale nadal przechwytywanie na maszynie wirtualnej innej kombinacji, takiej jak Ctrl+ Citp.

Andrea
źródło
0

W Windows 10 Pro 1803 (z maszyną wirtualną Windows 7 w VirtualBox) naciśnięcie klawisza hosta, a następnie dowolnego skrótu klawiaturowego „host” również dla mnie działa. To pozwala mi na minimalną liczbę akcji tylko z klawiatury do przełączania komputerów, zaczynając od „przechwyconej” maszyny wirtualnej, zgodnie z sugestią Curtisa.

Wygląda na to, że jeśli klucz hosta zawiera klawisz Windows, który zwykle wyświetla menu startowe systemu Windows 7 przed przejściem do trybu klawiatury „host”, więc zmieniłem klawisz hosta na Ctrl-Shift-Alt, który jest przyjazny dla jednej ręki , a następnie mogę używać dwóch skrótów ręcznych do przełączania komputerów stacjonarnych.

Donald Klopper
źródło
0

Miałem ten sam problem i mogłem go rozwiązać tylko

  • najpierw wyłącz Auto Capture Keyboard((domyślnie włączony)), w File / Preferences / Inputmenu VirtualBox
  • ponowne uruchomienie maszyny wirtualnej
  • włączenie ponownie Auto Capture Keyboard
  • ponowne uruchomienie maszyny wirtualnej

Podejrzewam, że w VirtualBox jest błąd, który ignoruje początkowe ustawienia.

Uwaga: zrestartowałem się po wyłączeniu opcji, za pierwszym razem, gdy próbowałem rozwiązać problem, myśląc, że to jest rozwiązanie (ponieważ często jest to sugerowane). Nie działało, więc włączyłem go ponownie i było w porządku. Nie jestem więc pewien, czy ten pierwszy krok ponownego uruchomienia jest całkowicie konieczny.

RedGlyph
źródło