Skip to content

IbrahimHosseini/SystemState

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SystemState

macOS system monitor.

Features

SystemState is an application that allows you to monitor your macOS system.

  • CPU utilization
  • Memory usage
  • Storage utilization
  • Battery level
  • Sensors information (Temperature, Voltage, Power)
  • Device info (os name, os version, memory type, GPU type, storage type, storage size, ...)
  • Network usage
  • GPU utilization

Installation

  • File > Swift Packages > Add Package Dependency
  • Add https://gitlab.sibgmbh.com/trio/mac-os/systemstate.git
  • Select "Up to Next Major" with "0.1.0"

If you encounter any problem or have a question on adding the package to an Xcode project, I suggest reading the Adding Package Dependencies to Your App guide article from Apple.

Requirements

  • macOS 12.0+
  • Swift 5.8+

Usage

systemstate

import systemstate

// CPU information
let cpu = CPU()

/// - Returns: an object that include the ``CPULoad`` data
let cpuLoad: CPULoad = cpu.getCPULoad()

/// - Returns: a list of applications that have most used from CPU
let topProcess = cpu.getTopProcess()


/// - Returns: a number that shown temperature and a string that shown readable string
///     ``Double`` -> 23.0000
///     ``String`` ==> 23 ℃
let temperature = cpu.getTemperature()

//================================================================

// Battery information
let battery = Battery()

/// - Returns: a ``BatteryInfoModel`` that include ,
/// the ``BatteryInfoModel/level``, ``BatteryInfoModel/cycles``, and ``BatteryInfoModel/health``.
let batteryInfo: BatteryInfoModel = battery.getBatteryInfo()

/// - Returns: a ``TopProcess`` list of applications that have most use from Battery
let topProcess = battery.getTopProcess()

//================================================================

// DeviceInfo information

/// mac os name
let osName = DeviceInfo.osName

/// mac os version
let osFullVersion = DeviceInfo.osFullVersion

/// CPU Model
let cpuName = DeviceInfo.cpuName

/// Memory size
let memory = DeviceInfo.memory

/// GPU model
let gpu = DeviceInfo.gpu

/// Storage Model
let storageModel = DeviceInfo.storageModel

/// Storage size
let storageSize = DeviceInfo.storageSize

/// CPU Uptime
let uptime = DeviceInfo.uptime

/// CPU uptime with readable format
let uptimeDayHourMinuteFormat = DeviceInfo.uptimeDayHourMinuteFormat

/// Device serial number
let serialNumber = DeviceInfo.serialNumber

//================================================================

// Memory information
let memory = Memory()

/// - Returns: an object the shown memory information. ``MemoryUsage``
let memoryUsage: MemoryUsage = memory.getMemoryUsage()

/// - Returns: a list of application that most use the memory. 
let topProcess = memory.getTopProcess()

//================================================================

// Sensors information
let type: ModuleType = .Storage
let sensors = Sensors()

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let diskTemperature = sensors.getStorageTemperature().0 
let diskTemperatureWithFormat = sensors.getStorageTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let networkTemperature = sensors.getNetworkTemperature().0 
let networkTemperatureWithFormat = sensors.getNetworkTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let batteryTemperature = sensors.getBatteryTemperature().0 
let batteryTemperatureWithFormat = sensors.getBatteryTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let systemTemperature = sensors.getSystemTemperature().0 
let systemTemperatureWithFormat = sensors.getSystemTemperature().1

//================================================================

// Storage information
let storage = Storage()

/// - Returns: an ``StorageModel`` object that shown storage information.
let storageInfo: StorageModel = storage.getStorageInfo()

/// - Returns: a list of ``StorageProcess`` that shown which application most use the storage.
let topProcess = storage.topProcess()

/// - Returns: a readable string format for speed
let readSpeed = storage.getReadSpeed()

/// - Returns: a readable string format for speed
let writeSpeed = storage.getWriteSpeed()

//================================================================

// Network information
let network = NetworkInfo()

/// - Returns: an object the include the ``NetworkUsage`` information.
let networkInfo = network.getNetworkInfo()

/// - Return: an object the shown ``NetworkConnectivity`` information
let connectivity = network.getNetworkConnectivity()

/// - Returns: a number that shown network upload speed
let uploadSpeed = network.getUploadSpeed()

/// - Returns: a number that shown network download speed
let downloadSpeed = network.getDownloadSpeed()

/// - Returns: a list of ``NetworkProcess`` that shown which application use most from network.
let topProcess = network.getTopProcess()

CPU

import CPU

// CPU information
let cpu = CPU()

/// - Returns: an object that include the ``CPULoad`` data
let cpuLoad: CPULoad = cpu.getCPULoad()

/// - Returns: a list of applications that have most used from CPU
let topProcess = cpu.getTopProcess()


/// - Returns: a number that shown temperature and a string that shown readable string
///     ``Double`` -> 23.0000
///     ``String`` ==> 23 ℃
let temperature = cpu.getTemperature()

Battery

import Battery

// Battery information
let battery = Battery()

/// - Returns: a ``BatteryInfoModel`` that include  the ``BatteryInfoModel/level``, ``BatteryInfoModel/cycles``, and ``BatteryInfoModel/health``.
let batteryInfo: BatteryInfoModel = battery.getBatteryInfo()

/// - Returns: a ``TopProcess`` list of applications that have most use from Battery
let topProcess = battery.getTopProcess()

DeviceInfo

import DeviceInfo

/// mac os name
let osName = DeviceInfo.osName

/// mac os version
let osFullVersion = DeviceInfo.osFullVersion

/// CPU Model
let cpuName = DeviceInfo.cpuName

/// Memory size
let memory = DeviceInfo.memory

/// GPU model
let gpu = DeviceInfo.gpu

/// Storage Model
let storageModel = DeviceInfo.storageModel

/// Storage size
let storageSize = DeviceInfo.storageSize

/// CPU Uptime
let uptime = DeviceInfo.uptime

/// CPU uptime with readable format
let uptimeDayHourMinuteFormat = DeviceInfo.uptimeDayHourMinuteFormat

/// Device serial number
let serialNumber = DeviceInfo.serialNumber

Memory

import Memory

// Memory information
let memory = Memory()

/// - Returns: an object the shown memory information. ``MemoryUsage``
let memoryUsage: MemoryUsage = memory.getMemoryUsage()

/// - Returns: a list of application that most use the memory. 
let topProcess = memory.getTopProcess()

Sensors

import Sensors

// Sensors information
let type: ModuleType = .Storage
let sensors = Sensors()

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let diskTemperature = sensors.getStorageTemperature().0 
let diskTemperatureWithFormat = sensors.getStorageTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let networkTemperature = sensors.getNetworkTemperature().0 
let networkTemperatureWithFormat = sensors.getNetworkTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let batteryTemperature = sensors.getBatteryTemperature().0 
let batteryTemperatureWithFormat = sensors.getBatteryTemperature().1

/// - Returns: a number shown the temperature, and a string that shown the temperature in user friendly format
let systemTemperature = sensors.getSystemTemperature().0 
let systemTemperatureWithFormat = sensors.getSystemTemperature().1

Storage

import Storage

// Storage information
let storage = Storage()

/// - Returns: an ``StorageModel`` object that shown storage information.
let storageInfo: StorageModel = storage.getStorageInfo()

/// - Returns: a list of ``StorageProcess`` that shown which application most use the storage.
let topProcess = storage.topProcess()

/// - Returns: a readable string format for speed
let readSpeed = storage.getReadSpeed()

/// - Returns: a readable string format for speed
let writeSpeed = storage.getWriteSpeed()

Network

import NetworkInfo

// Network information
let network = NetworkInfo()

/// - Returns: an object the include the ``NetworkUsage`` information.
let networkInfo = network.getNetworkInfo()

/// - Return: an object the shown ``NetworkConnectivity`` information
let connectivity = network.getNetworkConnectivity()

/// - Returns: a number that shown network upload speed
let uploadSpeed = network.getUploadSpeed()

/// - Returns: a number that shown network download speed
let downloadSpeed = network.getDownloadSpeed()

/// - Returns: a list of ``NetworkProcess`` that shown which application use most from network.
let topProcess = network.getTopProcess()

About

macOS system monitor.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages