Claro, isso é o que você deve fazer:
-
Instale
wmctrl
sudo apt-get install wmctrl
-
Inicialize sua máquina virtual, anote exatamente o nome da janela como aparece na barra de título. O meu é por exemplo:
Windows 7 [Draaiend] - Oracle VM VirtualBox
-
O comando para trazer a janela da VM para a frente é:
wmctrl <window_name>
NB: se o nome da janela contiver espaços, use aspas ao redor do nome
então, no meu caso, seria:
wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
-
Teste o comando executando-o em uma janela de terminal
-
Escolha: Configurações do sistema > "Teclado" > "Shortcust" > "Atalhos personalizados". Clique no botão "+" e adicione o comando:
wmctrl -a "Windows 7 [Draaiend] - Oracle VM VirtualBox"
para uma combinação de teclas de sua escolha.
De man wmctrl
:
-a <WIN>
Switch to the desktop containing the window <WIN>, raise the
window, and give it focus.
Caso você execute a máquina a partir de diferentes instantâneos
ou em qualquer outro caso em que o nome da janela possa ser estendido por outras strings, conforme mencionado por OP em um comentário: copie o script abaixo em um arquivo vazio, salve-o como run_vm.py
. Execute-o pelo comando:
python3 /path/to/run_vm.py <machine_name>
onde, como no primeiro exemplo, você precisa colocar o nome da máquina entre aspas, se contiver espaços.
O script:
#!/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])