PulseBar

0
0
0
Makefile
public

PulseBar

PulseBar is a compact macOS menu bar utility for watching system vitals and temporarily locking input while cleaning your keyboard or display.

Features

  • Live CPU and memory usage in the menu bar and popover.
  • Optional temperature, disk, and network vitals.
  • Per-vital display modes: overview, graph, or compact gauges.
  • Hoverable graph details for recent samples.
  • Process detail panels for CPU, memory, temperature, disk, and network views.
  • Keyboard Cleaner mode that blocks keyboard input until disabled from the UI.
  • Monitor Cleaner mode that sleeps the display after confirmation and only accepts Esc or a trackpad click to wake.
  • Settings window for refresh interval, menu bar details, per-vital view mode, strong cleaner warnings, and launch at login.

Permissions

Keyboard Cleaner and Monitor Cleaner use macOS Accessibility permissions to intercept input safely while cleaning. If permission is missing, PulseBar prompts through System Settings and shows a user-facing status message.

PulseBar does not permanently change system keyboard settings.

Process Details

The process list is sampled locally. PulseBar reads /bin/ps output for CPU and memory values, uses native process resource counters for disk activity, and asks nettop for network activity when macOS makes that data available. Temperature is system-level, so its process panel shows CPU-heavy processes as the closest useful signal.

Build

Open PulseBar.xcodeproj in Xcode, or build from Terminal:

xcodebuild -project PulseBar.xcodeproj -scheme PulseBar -configuration Debug -derivedDataPath /private/tmp/PulseBarDerivedData build

Run

Launch the PulseBar scheme from Xcode. The app appears as a menu bar item rather than a normal dock app window.

Use the three-dot menu or Command + , to open Settings. Use the menu item to quit PulseBar.

Project Structure

  • PulseBar/ContentView.swift - main menu bar popover UI.
  • PulseBar/PulseBarModel.swift - app state, settings persistence, sampling timer, and process detail loading.
  • PulseBar/SystemMonitor.swift - CPU, memory, temperature, disk, and network snapshots.
  • PulseBar/StatusBarController.swift - menu bar item, fixed-width status rendering, and popover behavior.
  • PulseBar/KeyboardCleaner.swift - keyboard event tap for cleaning mode.
  • PulseBar/MonitorCleaner.swift - display sleep and restricted wake input handling.
  • PulseBar/SettingsWindowController.swift - compact settings window.
v0.3.3[beta]