Profile
Back to NewsBack
GitHub Trending 4 min
Reader Mode
lingyired/status-trio: Status Trio — a native macOS menubar app that combines Wi-Fi, battery, and volume into one compact, configurable menu bar icon, inspired by the iPhone Duo combined status bar.

lingyired/status-trio: Status Trio — a native macOS menubar app that combines Wi-Fi, battery, and volume into one compact, configurable menu bar icon, inspired by the iPhone Duo combined status bar.

13 hours ago

Four Status Trio menu bar icon styles rendered from different settings

Status Trio

Status Trio app icon

Three system signals. One native macOS menu bar icon.

简体中文

Status Trio menu bar icon showing Wi-Fi, battery, and volume at a glance

Status Trio popover showing battery, Wi-Fi, and volume controls in the macOS menu bar

Status Trio is a native macOS menubar app that combines Wi-Fi, battery, and volume into one compact, configurable menu bar icon. It is inspired by the iPhone Duo's combined status bar icon for Wi-Fi, Battery, and Cellular Data, adapted for Mac with Volume instead of Cellular Data.

Status Trio is an independent project and is not affiliated with Apple.

Highlights

  • One combined status icon — keeps battery, Wi-Fi, and volume in a single menu bar item.
  • Configurable rendering — choose an icon size from 16–36 pt, with 28 pt as the default.
  • Connection icon choices — optionally use the standard Wi-Fi signal icon for Ethernet, Personal Hotspot, temporary connections, or Internet Sharing.
  • Detailed battery status — percentage, charging bolt, estimated time to full, Low Power Mode, and a Battery Settings shortcut.
  • Wi-Fi awareness — signal strength, current network name, and common connection states.
  • Volume at a glance — output level and mute state, with controls available from the popover.
  • macOS-native controls — left-click for a status popover and right-click for the standard menu.
  • Efficient updates — event-driven monitoring with a low-frequency polling fallback.
  • Twelve languages — follow the system language or choose one manually; changes apply immediately.
  • Launch at login — optional startup with guidance when macOS requires approval.

Requirements

  • macOS 15 or later
  • Swift 6 toolchain (Xcode 16 or later)

Run from source

git clone https://github.com/lingyired/status-trio.git
cd status-trio
swift run StatusTrio

Build a local app

Build an ad-hoc-signed app bundle and launch it:

bash scripts/build-app.sh release

The bundle is created at dist/StatusTrio.app. To build without quitting or launching an existing instance, run:

bash scripts/build-app.sh release no-open

The ad-hoc-signed bundle is intended for local personal use. Gatekeeper may reject it if the bundle is transferred with quarantine metadata.

Install a GitHub Release

Download the latest StatusTrio-*.dmg from the GitHub Releases page, open it, and copy Status Trio.app into /Applications.

The current public build is ad-hoc signed but is not notarized by Apple. macOS may show this warning on first launch:

Apple cannot verify “Status Trio” is free of malware that may harm your Mac or compromise your privacy.

This is a Gatekeeper warning caused by the missing Developer ID signature and Apple notarization. It does not by itself mean the app contains malware. Only bypass the warning when the DMG was downloaded from the official GitHub Releases page and its published SHA-256 checksum matches.

After copying the app into /Applications, remove the quarantine attribute and open it:

xattr -dr com.apple.quarantine "/Applications/Status Trio.app"
open "/Applications/Status Trio.app"

Alternatively, try to open the app once, then go to System Settings → Privacy & Security and choose Open Anyway.

Do not disable Gatekeeper globally. Subsequent Sparkle updates are authenticated with the app's EdDSA signing key; the xattr command is normally needed only for the first manual installation.

Usage

  • Left-click the menu bar icon to open the status popover.
  • Right-click it for the native menu, including version and quit actions.
  • Open Settings to change the icon size, connection icon style, battery display options, language, update checks, and launch-at-login behavior.
  • Enable the current Wi-Fi network name when prompted; macOS requests location access for this optional detail.

Languages

Status Trio follows the macOS preferred language by default and includes English, Simplified Chinese, Traditional Chinese, Japanese, Korean, Spanish, French, German, Italian, Brazilian Portuguese, Russian, and Arabic.

Privacy

Status Trio reads status through public macOS frameworks. It does not use App Sandbox or require a network entitlement, and it does not include telemetry or analytics. Location access is optional and requested only when you choose to display the current Wi-Fi network name.

Development

Run the test suite:

swift test

Run a focused XCTest filter through the helper:

bash scripts/test.sh BatteryMonitorTests

To build a worktree app alongside the main installation:

bash scripts/build-worktree.sh release

The helper derives a development bundle identifier and display name from the current branch. Both values can be overridden:

BUNDLE_ID=com.lingsmbp.StatusTrio.dev.settings-redesign \
APP_NAME="Status Trio (Settings Redesign)" \
bash scripts/build-worktree.sh release

The single-instance lock is scoped by bundle identifier, so differently identified builds can run at the same time.

Technical baseline

  • Swift 6
  • SwiftUI + AppKit
  • macOS 15+
  • LSUIElement menu bar app
  • Sparkle for update checks

Documentation

License

Copyright 2026 lingyired.

Licensed under the Apache License, Version 2.0. See LICENSE and NOTICE.

Author

Created and maintained by lingyired.
Website: https://statustrio.lingai.net/

Star History

Star History Chart

Our Related Projects
Farm Fresh Kikapu

An e-commerce platform for farm-fresh produce - an online st...

View Project
Chat with me