Hotkey zum Springen in eine virtuelle Maschine?

Hotkey zum Springen in eine virtuelle Maschine?

Ich erledige die meiste Arbeit mit Ubuntu, aber es gibt einige Windows-Programme, die keine guten Linux-Äquivalente haben und nicht mit Wine funktionieren. Daher führe ich diese in einer VirtualBox-VM mit Windows 7 aus. Wenn ich mich in einem Linux-Programm befinde, kenne ich leider keine Möglichkeit, schnell zur virtuellen Maschine zu wechseln. Derzeit ist der schnellste Weg, mit Alt+Tab zu den beiden VirtualBox-Fenstern zu wechseln, Alt gedrückt zu halten, um sowohl den VirtualBox-Manager als auch die virtuelle Maschine anzuzeigen, und dann erneut Alt+Tab, um die virtuelle Maschine auszuwählen.

Weiß jemand, wie man einen Hotkey programmiert, mit dem man direkt zur virtuellen Maschine springt?

Antwort1

Klar, das sollten Sie tun:

  1. Installierenwmctrl

    sudo apt-get install wmctrl
    
  2. Starten Sie Ihre virtuelle Maschine, notieren Siegenauder Fenstername, wie er in der Titelleiste erscheint. Meiner ist zum Beispiel:

    Windows 7 [Draaiend] - Oracle VM VirtualBox
    
  3. Der Befehl, um das Fenster der VM in den Vordergrund zu bringen lautet dann:

    wmctrl <window_name>
    

    NB: Wenn der Name des Fensters Leerzeichen enthält, setzen Sie Anführungszeichen um den Namen

    also in meinem Fall wäre es:

    wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
    
  4. Testen Sie den Befehl, indem Sie ihn in einem Terminalfenster ausführen

  5. Wählen Sie: Systemeinstellungen > „Tastatur“ > „Tastenkombinationen“ > „Benutzerdefinierte Tastenkombinationen“. Klicken Sie auf das „+“ und fügen Sie den Befehl hinzu:

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

zu einer Tastenkombination Ihrer Wahl.

Aus man wmctrl:

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

Falls Sie die Maschine von verschiedenen Snapshots aus betreiben

oder in jedem anderen Fall, wenn der Fenstername durch andere Zeichenfolgen erweitert werden könnte, wie von OP in einem Kommentar erwähnt: Kopieren Sie das folgende Skript in eine leere Datei und speichern Sie es als run_vm.py. Führen Sie es mit dem folgenden Befehl aus:

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

wobei Sie, wie im ersten Beispiel, den Maschinennamen in Anführungszeichen setzen müssen, wenn er Leerzeichen enthält.

Das Skript:

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

Antwort2

Es ist absolut nicht notwendig, VirtualBox Manager auszuführen, um eine virtuelle Maschine mit Virtual Box zu starten. Jede VM kann auch in einem eigenen Fenster in der Befehlszeile gestartet werden.

VBoxManage startvm 'name of the machine'

oder indem Sie eine .desktopDatei definieren, die mit einer benutzerdefinierten Verknüpfung vom Desktop, dem Dashboard oder vom Launcher aus gestartet werden kann:

AltDie Fenster dieser virtuellen Maschine können dann bequem über + gesteuert werden Tab.

Wir könnten sogar noch einen Schritt weitergehen und eine laufende Windows-Anwendung nahtlos in den Ubuntu-Desktop integrieren (dabei kann es jedoch zu Interferenzen mit Unity kommen):

verwandte Informationen