Skip to content

Extend PC load with macOS memory, swap, optional GPU readings and metric visibility #3214

Open

Description

@odfalik

Problem

PC load (#1671, added in #3038) shows CPU, memory and disks, but macOS omits memory and neither platform reports swap or GPU use. With one PC connected, load is off by default and easy to miss. Users also cannot choose which figures appear.

Proposal

Extend the existing /api/system sampling and PC details:

  • Add a documented macOS physical-memory estimate from vm_stat: anonymous pages + wired pages + pages physically occupied by the compressor, multiplied by the reported page size. This is not exact Activity Monitor parity or a memory-pressure reading. Linux keeps its current total-minus-MemAvailable estimate.
  • Add swap used / total from Linux meminfo and macOS vm.swapusage. Zero configured swap differs from an unavailable reading; macOS total means currently allocated swap, not a fixed maximum.
  • Optionally report supported GPUs separately. Read Apple accelerator device utilization when the driver exposes it, and NVIDIA utilization/VRAM through an already-installed nvidia-smi on Linux. Missing or failed readings say Not measured, not 0%. No GPU tool or driver installation, and no dedicated-VRAM claim for Apple unified memory.
  • Add device-only Settings controls for CPU, Memory, Swap, GPU and Disk visibility. Keep the existing overall sidebar switch and two-connected-PC default, but make enabling readings for one PC easy from Settings. Keep individual GPUs separate in expanded details rather than average them into one misleading figure.

Would you prefer per-metric controls in the existing PC-load Settings area, or resource details there with fewer controls? The requested behavior is per-metric visibility. I would confirm a smaller scope before dropping it. The sidebar should remain compact, with expanded details for readings that do not fit.

Read-only collectors would have command deadlines and output caps. They would share the existing on-demand samples and visible-only polling. No sudo, new dependency, configuration change, history, charts, alerts or network statistics.

Where and alternatives

Sidebar PC load and Settings → Devices and PCs. The workaround is a separate system monitor or shell commands. This extends Ovis's existing multi-PC load UI rather than copying an interaction from a single-machine coding app. No code would be borrowed from another client.

Checks planned

Compare actual macOS commands with the collector; test page-size and compressor semantics, zero swap, missing commands, malformed output and multiple GPUs. Cover the HTTP contract and real isolated-app Settings/sidebar behavior at phone and desktop widths, including single-PC enablement and per-metric choices. Linux/NVIDIA hardware checks would be reported separately from parser coverage.

Does this fit the PC-load feature? I will wait for maintainer approval before writing code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions