Получение хоста для захвата определенных нажатий клавиш в VirtualBox

48

Я использую VirtualBox на Ubuntu 9.10 с Windows XP в качестве гостевой ОС.

Это довольно раздражает, когда я в гостевой ОС - я не могу переключать виртуальные рабочие столы (рабочие пространства) на хосте (Ubuntu), нажимая Control+ Alt+ ( Left| Right| Up| Down), потому что VirtualBox захватывает эти комбинации клавиш.

Можно ли отключить захват клавиатуры для некоторых комбинаций клавиш?

Александр Смирнов
источник

Ответы:

27

Хотя есть некоторые сочетания клавиш Host Key, которые активируют определенные функции VirtualBox (например, Host Key+, Pкоторый останавливает гостя), я не знаю ни одного способа настройки VirtualBox для отправки сочетаний клавиш Host в ОС хоста.

Однако, поскольку VirtualBox имеет версию с открытым исходным кодом , возможно, можно изменить исходный код, чтобы добавить эту функцию. Вы можете получить доступ к исходному коду VirtualBox по ссылке Скачать .

В то же время, вы можете использовать Host Key, чтобы освободить клавиатуру от гостевого элемента управления VirtualBox. По умолчанию ключ хоста установлен на Right Ctrl. Вы можете увидеть текущий ключ хоста в окне виртуальной машины:

альтернативный текст

Просто нажмите клавишу Host один раз, чтобы освободить захват клавиатуры. После этого ваша хост-ОС увидит ваши нажатия клавиш. Итак, вот ваш рабочий процесс:

  1. Нажмите и отпустите клавишу хоста. Ваша гостевая ОС больше не фиксирует нажатия клавиш.
  2. Нажмите Ctrl+ Alt+ (клавиша со стрелкой) для переключения рабочих пространств или любых других клавиш, которые вы хотите отправить в ОС хоста.
шарлатан
источник
Было бы неплохо ... Но [Left Ctrl] + [Alt] тоже не работает ... Это вообще не зависит от клавиши хоста, VBox фиксирует все нажатия клавиш.
Александр Смирнов
извините, я неправильно понял ваш вопрос; я думал, что у вас есть гость Ubuntu на хосте XP. обновил ответ.
шарлатан-кихот
1
Хорошо, спасибо, надеюсь, я найду время для небольшого расследования, чтобы добавить эту функцию
Александр Смирнов
@quack Gaff Если один, где настроить исходный код. Было бы легко перестроить VMware, чтобы использовать его? на макосе?
Момомо
15

Этот вопрос старый, но я нашел лучшее решение, которого, вероятно, тогда не было.

Вы можете отключить «Автосъемка клавиатуры» в окне «Менеджер» -> «Файл» -> «Настройки» -> «Ввод»:

введите описание изображения здесь

Это полностью отключает автоматический захват клавиатуры, поэтому привязки клавиш менеджера окон передаются непосредственно ему.

В этом режиме ключ «хост» имеет противоположный эффект - он позволяет захватывать вместо того, чтобы отключить его.

dequis
источник
9
Недостатком этого является то, что теперь вы должны помнить, чтобы включить захват клавиатуры, прежде чем использовать такие вещи, как Alt + Tab. Virtualbox действительно нуждается в способе сопоставления и отключения сочетаний клавиш внутри гостя.
стек
1
Работает отлично! Я не понимаю, почему этот параметр не зависит от конкретной машины.
Франк Дернонкур
Оказывается, это на самом деле довольно хорошее решение, если вы используете гостевую машину для запуска кода, который вы разрабатываете на хост-машине, даже код GUI. Если вы не максимизируете GUI на гостевой машине и оставляете термин / cmd для запуска кода открытым, вы можете навести / щелкнуть по окнам, которые хотите ввести, как обычно для окон хоста (щелчок для фокусировки) можно отключить в Windows!). Alt + Tab переключает между VirtualBox и окнами хоста, и сочетания клавиш для переключения рабочих областей, вероятно, будут работать (у меня настроены как Super + стрелка и Super + номер, поэтому я не могу проверить Ctrl + Alt + стрелка).
Майкл Шепер
5

Нажатие клавиши хоста (правая клавиша Ctrl) один раз появится, чтобы позволить следующей комбинации клавиш перейти на хост-компьютер.

Для меня это означает, что я могу нажать правую-Ctrl, отпустить, а затем нажать Windows + левую-Ctrl + влево для переключения рабочих столов

Curtis
источник
1
Это на самом деле не отключает захват клавиатуры для некоторых комбинаций клавиш, этот ответ будет лучше в качестве комментария.
Не рутируйте здесь, плз ...
Подтверждено, что работает для противоположной комбинации: хост Windows 7 + гостевая Ubuntu 16.04.
jpaugh
1

Я справился с этим очень эффективно, установив ключ хоста в качестве Winключа! В Windows 10 вам нужно Ctrl+ Win+ Arrowsдля переключения рабочих столов, а установка Winв качестве ключа хоста позволяет вам выполнять комбинацию непосредственно в хост-ОС, но при этом захватывать на ВМ другую комбинацию, такую ​​как Ctrl+ Cи т. Д.

Andrea
источник
0

В Windows 10 Pro 1803 (с виртуальной машиной Windows 7 в VirtualBox) нажатие клавиши хоста, а затем любого сочетания клавиш «хост» также работает для меня. Это позволяет мне минимальное количество действий только с клавиатуры для переключения рабочих столов, начиная с «захваченной» виртуальной машины, согласно предложению Кертиса.

Похоже, что если в ключе хоста есть клавиша Windows, это вызывает всплывающее меню «Пуск» Windows 7 перед переходом в режим клавиатуры «хоста», поэтому я изменил свой ключ хоста на Ctrl-Shift-Alt, который удобен для работы одной рукой. затем я могу использовать две комбинации клавиш для переключения между рабочими столами.

Дональд Клоппер
источник
0

У меня была такая же проблема, и я мог решить ее только

  • сначала отключив Auto Capture Keyboard(который был включен по умолчанию), в File / Preferences / Inputменю VirtualBox
  • перезагрузка виртуальной машины
  • снова включить Auto Capture Keyboard
  • перезагрузка виртуальной машины

Я предполагаю, что в VirtualBox есть ошибка, которая игнорирует начальные настройки.

Примечание: я перезагрузил компьютер после отключения опции, когда я впервые попытался решить проблему, думая, что это было решением (так как это часто предлагается). Это не сработало, поэтому я включил его снова, и это было хорошо. Так что я не уверен, что этот первый шаг перезагрузки совершенно необходим.

RedGlyph
источник