我需要一个终端到我的 osx 安装中的 Linux 虚拟机。它是一个下拉终端,在 vm 中我可以使用 F12 作为全局热键来切换显示/隐藏。
下拉终端的名称是 yakuake,我知道有一个可以与 osx 配合使用的下拉终端,但是由于各种原因,我需要一个 Linux 终端并且可以轻松访问它。
有几件事使这变得困难。
- VMware fusion 没有任何好的 applescript 支持
- 我需要能够同时运行多个虚拟机。
- 速度
- 隐藏应用程序。
我正在使用 iKey 将我的 mac 上的全局热键绑定到一个小 oneliner:
- /Library/Application\ Support/VMware\ Fusion/vmrun -T fusion -gu 用户名 -gp 密码 runScriptInGuest "/Users/username/Documents/Virtual Machines.localized/Ubuntu.vmwarevm/Ubuntu.vmx" -interactive "/bin/bash " "/home/用户名/bin/toggle_yakuake"
/home/username/bin/toggle_yakuake 脚本只是一个:
- /usr/bin/xdotool key Control+Shift+Y #这是我绑定到yakuake的
这可行,除了它需要大约 1-2 秒,并且 yakuake 将显示在每隔一个窗口下方。因此,如果 yakuake 没有运行,我将使用逻辑来执行此操作,然后我可以在 osx 中隐藏/显示它以立即切换它。但是,我可以使用简单的“告诉应用程序“Yakuake - Ubuntu”来激活来显示 yakuake。如果不隐藏属于同一 vm 的所有其他应用程序,我就无法隐藏它。
似乎由 vmware 生成的每个应用程序都紧密联系在一起。即使我在我的 osx 安装中找到了 yakuake 的 pid,并像这样使用它:
tell application "System Events"
set yakuakeproc to every process whose unix id is 58518
repeat with proc in yakuakeproc
set the frontmost of proc to true
end repeat
end tell
它将隐藏属于该虚拟机的每个应用程序。
几天来,我一直试图找出解决方案。有没有人有任何提示或任何东西?如何让 applescript 隐藏我的 vm 中的一个特定应用程序?