¿Tecla de acceso rápido para saltar a una máquina virtual?

¿Tecla de acceso rápido para saltar a una máquina virtual?

Hago la mayor parte de mi trabajo en Ubuntu, pero hay algunos programas de Windows que no tienen buenos equivalentes de Linux y no funcionan en Wine, así que los ejecuto en una máquina virtual VirtualBox que ejecuta Windows 7. Desafortunadamente, cuando estoy en un Programa Linux, que yo sepa, no existe una forma rápida de cambiar a la máquina virtual. Actualmente, la forma más rápida es presionar Alt+Tab para las dos ventanas de VirtualBox, seguir presionando Alt para ver tanto el VirtualBox Manager como la máquina virtual, y luego Alt+Tab una vez más para seleccionar la máquina virtual.

¿Alguien sabe cómo programar una tecla de acceso rápido que salte directamente a la máquina virtual?

Respuesta1

Claro, esto es lo que debes hacer:

  1. Instalarwmctrl

    sudo apt-get install wmctrl
    
  2. Inicie su máquina virtual, anoteexactamenteel nombre de la ventana tal como aparece en la barra de título. El mío es por ejemplo:

    Windows 7 [Draaiend] - Oracle VM VirtualBox
    
  3. El comando para traer la ventana de la VM al frente es entonces:

    wmctrl <window_name>
    

    NB: si el nombre de la ventana contiene espacios, utilice comillas alrededor del nombre.

    entonces en mi caso sería:

    wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
    
  4. Pruebe el comando ejecutándolo en una ventana de terminal

  5. Elija: Configuración del sistema > "Teclado" > "Atajos" > "Atajos personalizados". Haga clic en "+" y agregue el comando:

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

a una combinación clave de su elección.

De man wmctrl:

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

En caso de que ejecute la máquina desde diferentes instantáneas

o en cualquier otro caso cuando el nombre de la ventana pueda extenderse con otras cadenas, como lo menciona OP en un comentario: copie el siguiente script en un archivo vacío, guárdelo como run_vm.py. Ejecútelo con el comando:

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

donde, como en el primer ejemplo, debes poner el nombre de la máquina entre comillas si contiene espacios.

La secuencia de comandos:

#!/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])

Respuesta2

No es absolutamente necesario ejecutar VirtualBox Manager para iniciar una máquina virtual Virtual Box. Cada VM también se puede iniciar en su propia ventana en la línea de comando

VBoxManage startvm 'name of the machine'

o definiendo un .desktoparchivo que se puede iniciar con un acceso directo personalizado, desde el escritorio, el tablero o desde el iniciador:

Las ventanas de esta máquina virtual se pueden controlar cómodamente con Alt+ Tab.

Incluso podríamos ir un paso más allá e integrar sin problemas una aplicación de Windows en ejecución en el escritorio de Ubuntu (sin embargo, puede haber alguna interferencia con Unity al hacerlo):

información relacionada