17 Commits
Author SHA1 Message Date
osy e50840634f apple: allow sound input and output to be enabled separately
Since the input and output streams were merged into a single
virtio-sound device, playing audio in the guest also opens the host
microphone, which switches Bluetooth headphones into headset mode.
Replace the "Enable Sound" toggle with a choice of input only, output
only, or both so users can avoid opening the microphone.

The existing "Audio" key keeps meaning output and a new "AudioInput"
key is added. When "AudioInput" is missing it defaults to "Audio", so
existing configs keep both streams and new configs still load on older
versions of UTM.

Resolves #7875

Assisted-by: Claude:claude-opus-5-5
2026-09-22 15:03:12 -05:00
osy f3645d5018 project: remove code for versions below the new minimum
Now that the deployment targets are iOS 15 and macOS 12, every guard,
fallback and workaround for an older release is dead code that only
obscures what the supported path is. Remove them:

- Drop the `@available` attributes for iOS 15, macOS 11 and macOS 12, and
  unwrap the matching `#available`/`#unavailable` guards in Swift and the
  `@available`/`API_AVAILABLE`/`NS_AVAILABLE_IOS` ones in Objective-C.
- Delete the legacy-only views and helpers left unreachable by that:
  NumberTextFieldOld, VMConfigNetworkPortForwardLegacyView,
  VMContextMenuModifier.bodyBigSur, the nonbrokenSheet, uniqued,
  customBadge, borderedList and legacySettingsToolbar shims, the
  .unsupported BootloaderSelection case, and the iOS 14 sacrificial
  version Section in the QEMU settings list.
- jb_has_cs_execseg_allow_unsigned() has returned false for every host
  since iOS 14.4, so drop it along with the is_device_A12_or_newer()
  helper that only it used. The entitlement parser no longer needs to
  copy the blob either, since that copy existed only so the psychic paper
  needle could be blanked in place.
- VMDisplayTerminalViewController tracked the keyboard frame by hand for
  iOS 14. `useAutoLayout` is a constant that cannot be overridden, so
  nothing ever registered the notification observers and only the
  keyboardLayoutGuide path is reachable.
- VMConfigQEMUView's additionalArguments is now referenced on iOS only,
  which leaves its macOS branch, and the macOS 11 ForEach crash
  workaround inside it, unreachable.
- Raise the Cydia package floor and the postinst/prerm helpers to match
  the new minimum.

Two of the removed guards dropped an error path rather than just a
branch. The shared directory `featureNotSupported` throw covered
VZVirtioFileSystemDeviceConfiguration and friends being macOS 12+, which
no longer applies to any supported host. The macOS guest
`platformUnsupported` throw when decoding a boot config on Intel only
fired on macOS 11; the Apple Silicon requirement it really guards is
enforced unconditionally in
UTMAppleConfigurationSystem.fillVZConfiguration, which both the start and
the save path go through.

Assisted-by: Claude:claude-opus-5
2026-09-16 04:48:37 +02:00
matapo 47840263de use single VZVirtioSoundDeviceConfiguration for Apple VM audio 2026-05-03 22:29:34 +02:00
osy a3273db6a3 config(apple): enable clipboard sharing console device for macOS guests 2024-11-19 22:30:13 -08:00
osy 46180a9d7c config(apple): support legacy keyboard configurations
Determine from the wizard which keyboard configuration to use.

Fixes #5810
2023-10-20 15:58:00 -07:00
osy 954e422c5f config(apple): enable Rosetta caching if supported 2023-08-25 10:51:30 -07:00
osy 180c67e585 config(apple): do not create devices that does not support snapshots for macOS guests 2023-08-24 12:04:14 -07:00
osy b33abd0c37 config(apple): save trackpad setting
Fixes #5369
2023-07-02 21:47:41 -05:00
osy 9a5a58bb67 config(apple): make trackpad usage a configurable option
Previously, we implemented both the USB pointer and trackpad device but it
introduced double-clicking and scrolling issues (#4636, #4645). After
setting the default to trackpad for macOS, it turns out that Monterey guests
do not have the right driver for it and does not work.

Now, we will attempt to detect Monterey on new installs and enable the
trackpad when it is not Monterey (no earlier macOS versions are supported).
Existing VMs will default to trackpad off for compatibility and will require
manual setting to enable it.

Fixes #5237
2023-04-23 20:55:11 -07:00
osy ae8cce8b38 config(apple): switch to trackpad when macOS guest is used on macOS 13+ host
This is the second attempt to fix #4636 and #4645
2023-03-10 18:19:58 -08:00
osy 4a8ddf9849 config(apple): generate two audio devices for input/output
Comment from #4409 says one device does not work on Intel.
2022-10-10 13:26:55 -05:00
osy 0e36a65b3d config(apple): create Linux virtio devices on Intel virtualization
Fixes #4409
2022-10-10 13:06:20 -05:00
osy a5f3b77747 config(apple): make sure defaults are supported on macOS 11 2022-09-17 23:51:48 +03:00
osy 5df15150a5 config(apple): revert pointer config to boolean 2022-09-17 23:51:48 +03:00
osy c9583973b7 vm(apple): perform compatibility checks on launch 2022-09-17 23:51:48 +03:00
osy 17cfc11674 vm(apple): support clipboard sharing on Linux guests 2022-09-17 21:19:24 +03:00
osy e2148dd840 config(apple): rename Devices to Virtualization 2022-08-04 17:48:59 -07:00