Guest Tools
The guest tools are a small agent that runs inside a virtual machine. It talks to SwiftVM over the machine's own socket device, so it works even when the guest has no network.
What they add#
| Linux | macOS | |
|---|---|---|
| SwiftVM knows the guest's system, kernel, and address | Yes | Yes |
| The clock is set the moment the guest resumes | Yes | Yes |
| Shut Down works at once, without a question on the guest's screen | Yes | Yes |
| SwiftVM shows what a setup script is doing | Yes | No |
| Shared folders are mounted | Yes | macOS mounts them by itself |
| Shared clipboard | Uses spice-vdagent instead |
Yes |
| The time zone follows your Mac's, once | No | Yes |
| SSH without a network on older systems | Yes | No |
swiftvm runs commands and copies files in the guest |
Yes | Yes |
swiftvm sees the screen and uses the mouse and keyboard |
Yes | Yes, once macOS allows it |
Which machines have them#
Machines that SwiftVM sets up come with the guest tools:
- Linux machines made with Quick Create.
- macOS 27 or newer, created with Sign in over SSH with my key on.
swiftvm info <machine> shows the installed version.
Installing#
For any other running guest, choose Install Guest Tools… in the machine's
menu, or use swiftvm install-tools. The same command updates them when
SwiftVM brings a newer version.
Linux#
swiftvm install-tools web-server # over SSH
swiftvm install-tools web-server --disc # from a disc, inside the guest- Over SSH works when your key can sign in and
sudoasks for no password. - Otherwise SwiftVM plugs in a disc and shows one command to run in the guest.
- The guest needs systemd and Python 3. Ubuntu and Debian have both; other distributions haven't been tried.
- Reading the screen as a tree also
takes
python3-giandgir1.2-atspi-2.0, which a desktop brings.
macOS#
macOS asks for the account's password before installing:
swiftvm install-tools build-mac --password 'the account password'Or choose Install Guest Tools…, which plugs in a disc. In the guest's Terminal, run:
sudo sh /Volumes/SWIFTVM/install.shmacOS then says that a background item was added: that is the agent. The guest needs macOS 27 or newer.
Removing#
In the guest, Linux or macOS:
sudo sh /usr/local/lib/swiftvm/install.sh --removeWhat is installed#
| Guest | What |
|---|---|
| Linux | One Python script and its systemd units |
| macOS | One program, swiftvm-agent, and two launchd jobs: one runs as root, one in the session of whoever is logged in, for the clipboard, the screen, the mouse, and the keyboard |
The agent only takes orders from your Mac, and only over the machine's socket
device. What swiftvm may have it do in a guest can be
turned off for each machine.