горячая клавиша для перехода в виртуальную машину?

горячая клавиша для перехода в виртуальную машину?

Я делаю большую часть своей работы в Ubuntu, но есть некоторые программы Windows, у которых нет хороших эквивалентов Linux и которые не работают в Wine, поэтому я запускаю их в виртуальной машине VirtualBox под управлением Windows 7. К сожалению, когда я работаю в программе Linux, я не знаю быстрого способа переключиться на виртуальную машину. В настоящее время самый быстрый способ — нажать Alt+Tab для двух окон VirtualBox, удерживать Alt, чтобы увидеть и VirtualBox Manager, и виртуальную машину, а затем снова нажать Alt+Tab, чтобы выбрать виртуальную машину.

Кто-нибудь знает, как запрограммировать горячую клавишу, которая будет переходить сразу к виртуальной машине?

решение1

Конечно, вот что вам следует сделать:

  1. Установитьwmctrl

    sudo apt-get install wmctrl
    
  2. Запустите свою виртуальную машину, запишитеточноимя окна, как оно отображается в строке заголовка. У меня, например:

    Windows 7 [Draaiend] - Oracle VM VirtualBox
    
  3. Команда для вывода окна виртуальной машины на передний план выглядит следующим образом:

    wmctrl <window_name>
    

    Примечание: если имя окна содержит пробелы, заключите его в кавычки.

    так что в моем случае это будет:

    wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
    
  4. Проверьте команду, запустив ее в окне терминала.

  5. Выберите: Системные настройки > «Клавиатура» > «Сочетания клавиш» > «Пользовательские сочетания клавиш». Нажмите «+» и добавьте команду:

    wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
    

на комбинацию клавиш по вашему выбору.

От man wmctrl:

   -a <WIN>
          Switch to the desktop containing the  window  <WIN>,  raise  the
          window, and give it focus.

В случае, если вы запускаете машину из разных снимков

или в любом другом случае, когда имя окна может быть расширено другими строками, как указано OP в комментарии: скопируйте скрипт ниже в пустой файл, сохраните его как run_vm.py. Запустите его командой:

python3 /path/to/run_vm.py <machine_name>

где, как и в первом примере, вам придется заключить имя машины в кавычки, если оно содержит пробелы.

Сценарий:

#!/usr/bin/env python3

import subprocess
import sys

machine = sys.argv[1]
command = "wmctrl -l"
wlist = [(" ").join(line.split(" ")[4:]) for line in subprocess.check_output(
    ["/bin/bash", "-c", command]
    ).decode("utf-8").split("\n") if machine in line][0]
command2 = "wmctrl -a "+"'"+wlist+"'"
subprocess.Popen(["/bin/bash", "-c", command2])

решение2

Нет никакой необходимости запускать VirtualBox Manager для запуска виртуальной машины Virtual Box. Каждая виртуальная машина может быть запущена в своем собственном окне в командной строке

VBoxManage startvm 'name of the machine'

или определив .desktopфайл, который можно запустить с помощью пользовательского ярлыка, с рабочего стола, панели задач или из панели запуска:

Затем окнами этой виртуальной машины можно удобно управлять с помощью Alt+ Tab.

Мы могли бы даже пойти дальше и легко интегрировать работающее приложение Windows в рабочий стол Ubuntu (однако при этом могут возникнуть некоторые помехи для Unity):

Связанный контент