64 lines
4.1 KiB
Markdown
64 lines
4.1 KiB
Markdown
# Mac Task Manager
|
|
|
|
A native macOS system monitor written in SwiftUI and inspired by Windows 11 Task Manager.
|
|
|
|
Validated with automated tests, debug and release builds, packaged-app code-signature checks, and hands-on UI regression through macOS accessibility and screenshots.
|
|
|
|
## Features
|
|
|
|
- Live process list with CPU, memory, disk I/O, and network usage
|
|
- Cached native application icons throughout process groups, app history, startup apps, users, services, properties, and dependency views
|
|
- Search and sortable process columns, including live Disk and Network rates
|
|
- Column sorting automatically flattens process categories for a true global order; the header menu can restore Group by type
|
|
- Expandable application groups plus an advanced Details table with persisted optional columns for threads, open handles, architecture, priority/nice, parent PID, CPU time, and other diagnostics
|
|
- Collapsible Windows-style Apps, Background processes, and macOS processes categories
|
|
- Native process sampling reports from the Inspect submenu, with save-location memory and completion feedback
|
|
- Persistent preferences for the default start page, Performance selection and CPU graph mode, update speed, always-on-top behavior, and process/detail table layouts
|
|
- Expandable application groups with aggregate metrics and individual child processes
|
|
- Group-wide right-click controls for ending, pausing, resuming, reprioritizing, copying, and inspecting related processes
|
|
- Nested right-click menus for process control, priority, copying, inspection, and properties
|
|
- Graceful termination, force quit, process-tree termination, pause, and resume actions
|
|
- CPU and memory history charts
|
|
- Right-click CPU graph switching between summary and live per-core views
|
|
- Live network receive/send throughput with an auto-scaling 60-second chart
|
|
- Persistent per-app history with cumulative CPU time, network totals, download/upload breakdowns, and reset confirmation
|
|
- Disk, uptime, process, and thread statistics
|
|
- One live Performance entry per available removable volume, with capacity, availability, filesystem, mount point, and ejectable status; disconnected volumes are hidden
|
|
- Detailed memory telemetry for active, cached, wired, compressed, and swap usage plus hardware type, manufacturer, and reported speed/frequency
|
|
- Native disk read/write throughput, IOPS, active time, and response-time histories
|
|
- Live Apple GPU utilization with overall, renderer, and tiler histories plus GPU memory and core statistics
|
|
- User, detail, service, persistent app history, and startup views covering native login items plus LaunchAgents
|
|
- Estimated live startup impact with Low, Medium, and High classifications and detailed CPU/memory/disk evidence
|
|
- Combined user and system launchd Services registry with scope filtering, running/stopped state, safe Start/Stop/Restart controls, protected-system labeling, configuration reveal, Details, and Properties actions
|
|
- Process dependency inspector with relationship chains, network/local sockets, canonical framework dependencies, open files, and handle totals
|
|
- Persistent Resource values submenu for switching memory, disk, and network cells between values and percentages
|
|
- Signed-in Users sessions with active-state and aggregate resources plus Lock, home-folder, account-management, Copy, Details, and Properties actions
|
|
- Configurable 1/5/10-second diagnostic samples with remembered folders and optional automatic timestamped output
|
|
- Run New Task sheet and persistent update-speed settings
|
|
- WinUI-style expanded and compact navigation rail controlled by the native title-bar sidebar button, with persisted state, balanced spacing, tooltips, and accessibility labels
|
|
- Native macOS menus, toolbar, light/dark mode, and accessibility behavior
|
|
|
|
## Run
|
|
|
|
Open `Package.swift` in Xcode and press Run, or use:
|
|
|
|
```sh
|
|
swift run
|
|
```
|
|
|
|
To create a standard double-clickable app bundle:
|
|
|
|
```sh
|
|
./scripts/build-app.sh
|
|
open "dist/Task Manager.app"
|
|
```
|
|
|
|
To create a drag-to-install disk image containing the app and an Applications shortcut:
|
|
|
|
```sh
|
|
./scripts/build-app.sh
|
|
./scripts/build-dmg.sh
|
|
```
|
|
|
|
The app refreshes every two seconds. Some system-owned processes cannot be ended without elevated permissions.
|