Skip to content

Releases: debeski/laptest

v0.2.1

Choose a tag to compare

@github-actions github-actions released this 16 Jun 17:01

Added

  • CI/CD pipeline: GitHub Actions builds and packages on Windows (PyInstaller onedir + Inno Setup installer) and macOS (.app bundle). Tag-driven (v*) releases attach LapTest-Setup-<ver>.exe and LapTest-<ver>-macos.zip to a GitHub Release, with notes pulled from this changelog.

Changed

  • macOS bundle version: CFBundleShortVersionString/CFBundleVersion in laptest.spec now read from the VERSION file instead of a hardcoded 0.2.0.

Fixed — macOS polish

  • Keyboard test layout: Mac now shows the correct keyboard map — Cmd/Option/Ctrl bottom row, Delete/Return labels, and arrow keys ( ). Key events map correctly: Key_Meta → Cmd, Key_Alt → Option, Key_Backspace → Delete. Duplicate keys (two Shift, two Cmd, two Option) tracked independently.
  • Audio tones: speaker test now uses sounddevice directly (cross-platform, no subprocess). Falls back to afplay on macOS / aplay on Linux / winsound on Windows. Previously fell through to aplay on macOS (Linux-only tool), producing silence.
  • Audio mic recording: added error display if sounddevice raises (e.g., permission denied). Added macOS privacy hint pointing to System Settings → Privacy & Security → Microphone.
  • Audio checker: added macOS backend via system_profiler SPAudioDataType. Now detects built-in speakers and microphone by name (e.g., "MacBook Pro Speakers", "MacBook Pro Microphone"). Falls back to sounddevice.query_devices() if profiler returns nothing.
  • Battery health (Apple Silicon): MaxCapacity in ioreg returns 100 on M-series (a percentage scale, not mAh). Now reads AppleRawMaxCapacity first; falls back to MaxCapacity only when it looks like actual mAh (> 100). Prevents the "1.6% healthy" bug.
  • Wi-Fi display: card-type string from SPAirPortDataType included raw hex vendor IDs like (0x14E4, 0x4387). Now stripped with regex. Connected value shows Connected — "SSID" or <adapter> (not connected).
  • Settings icon too small: QPushButton[app-btn="icon"] now sets font-size: 18px explicitly so the ⚙ emoji renders at a readable size on macOS (previously inherited 13 px body font).
  • Webcam checker: added system_profiler SPCameraDataType macOS detection so the checker shows camera name (e.g., "FaceTime HD Camera (Built-in)") even without OpenCV installed.
  • Webcam test dialog: improved error messages — "opencv-python not installed — run: pip install opencv-python" and macOS-specific camera permission guidance.
  • laptest.spec: added NSMicrophoneUsageDescription + NSCameraUsageDescription to macOS Info.plist — without these keys the OS silently blocks mic/camera access even after the user grants permission in System Settings.

Beta Release

Choose a tag to compare

@debeski debeski released this 01 Jun 16:42

LapTest

A desktop diagnostic tool for evaluating second-hand laptops before purchase.
Built with PyQt6. Runs on Windows and macOS.

Features

  • 13 hardware test categories — Storage (SMART, speed, MBR/GPT), RAM (type, speed, dual-channel), CPU (model, generation, temp, throttling), GPU (VRAM, driver), Display (resolution, PPI, refresh rate), Battery (health, wear, cycles), Input Devices (keyboard, touchpad, fingerprint), Audio (speakers, mic), Camera (live preview), Network (Wi-Fi standard, Bluetooth), Ports & Slots (USB 2/3/C, HDMI, SD), System & BIOS (boot mode, Secure Boot, TPM, activation), Thermals & Fans
  • Interactive tests — keyboard key-map test, dead-pixel fullscreen color test, speaker tone generator, microphone record & playback, webcam live preview
  • Multilingual — English, Arabic (RTL), French — live switching, no restart needed
  • Dark / Light themes — hot-swapped at runtime
  • Accessibility — high contrast, large text, reduce motion
  • JSON report export

See CHANGELOG for latest changes and updates.