Skip to content

A beautiful, highly customizable macOS app that displays rich file information when hovering over files in Finder, similar to Windows file preview behavior.

License

Notifications You must be signed in to change notification settings

KoukeNeko/FinderHover

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

FinderHover

A beautiful, highly customizable macOS app that displays rich file information when hovering over files in Finder, similar to Windows file preview behavior.

Icon-256

macOS 14.0+ Swift 5.0 SwiftUI Combine Accessibility API License MIT

Feature Overview

๐Ÿš€ Technical Highlights & Implementation Details

FinderHover isn't just a UI wrapper; it's a deep dive into macOS system integration. Here is how we built it:

๐Ÿ›ก๏ธ Privacy-First Architecture

We prioritize user privacy and system performance by utilizing the macOS Accessibility API directly (Core/FinderInteraction.swift). Unlike legacy tools that rely on slow, invasive AppleScript polling, FinderHover listens to the system's accessibility event stream.

  • Zero Network Access: All processing happens locally.
  • High Performance: Direct API calls minimize overhead.
  • Context Awareness: Intelligently detects if you are renaming a file to avoid interrupting your workflow.

โšก๏ธ Robust Metadata Engine

Built on top of Apple's native frameworks (AVFoundation, PDFKit, QuickLookThumbnailing), our metadata engine (Core/FileInfo.swift) is a lightweight powerhouse. It supports over 50 file formatsโ€”from analyzing raw EXIF data in images to counting lines of code in source filesโ€”without external heavyweight dependencies.

๐ŸŒŠ Reactive UI Updates

A smooth user experience is paramount. We leverage Combine (App/HoverManager.swift) to manage the stream of mouse events. By applying reactive operators like debounce, we ensure the UI updates fluidly only when you intend to hover, eliminating visual jitter and keeping CPU usage negligible.

โœจ Features

๐Ÿ” Smart Detection

  • Instant Preview: Smart hover preview with adjustable delay (0.1s - 2.0s).
  • QuickLook Integration: Native thumbnails for PDFs, images, and documents.
  • Intelligent Context: Auto-hides when renaming files or dragging items.

๐Ÿ“Š Rich Metadata

  • Photography (EXIF): Camera model, lens, ISO, aperture, shutter speed, GPS.
  • Multimedia: Video codec, resolution, bitrate; Audio sample rate, channels.
  • Development: Line counts for 25+ code languages, file encoding.
  • Typography & Design: Font family/glyphs, Vector graphics (SVG/AI) dimensions.
  • System: Permissions, owner, file paths, disk image compression ratios.

๐ŸŽจ Customizable UI

  • Dual Personalities: Choose between a rich macOS style or a minimal Windows tooltip style.
  • Full Control: Adjustable window size, opacity (70-100%), and font scaling.
  • Layout Editor: Drag-to-reorder metadata fields and toggle visibility per category.
  • Localization: Native support for English, Traditional Chinese (็น้ซ”ไธญๆ–‡), and Japanese (ๆ—ฅๆœฌ่ชž).

๐Ÿ› ๏ธ For Developers

Interested in the code? Here is how the project is structured:

  • App/: Application lifecycle and coordination (FinderHoverApp, HoverManager).
  • Core/: The engine room. Contains MouseTracker for event monitoring, FinderInteraction for Accessibility API logic, and FileInfo for metadata extraction.
  • UI/: Pure SwiftUI views.
    • Windows/: The floating hover window and main settings container.
    • Settings/: Modular, component-based settings pages.
  • Utilities/: Shared helpers for localization, logging, and formatting.

We follow Clean Code principles and SOLID architecture to ensure maintainability.

๐Ÿ“ฆ Installation

Homebrew (Recommended)

brew install koukeneko/tap/finderhover

Download Release

  1. Download FinderHover.dmg.zip from Releases
  2. Extract and move to Applications folder
  3. Launch FinderHover

Build from Source

git clone https://github.com/KoukeNeko/FinderHover.git
cd FinderHover
./scripts/build-dmg.sh

โš™๏ธ Setup & Usage

Permission Required: On first launch, you must grant Accessibility permission (System Settings > Privacy & Security > Accessibility). This is required to detect the file under your mouse cursor.

Settings: Press Cmd+, to access the configuration panel.

๐Ÿ“ธ Screenshots

๐Ÿ“ What's New (v1.3.2)

  • Localization Improvements: Optimized label lengths for better layout consistency in compact modes.
  • Performance: Fixed scrolling freeze in Settings view.
  • Refactoring: Massive cleanup of Settings code for better stability.

View Full Changelog

๐Ÿค Contributing

Contributions are welcome! Please check out the Core/ directory if you're interested in the file detection logic, or UI/ for visual improvements.

๐Ÿ“„ License

MIT License - see LICENSE file for details.


Made with โค๏ธ and Swift

About

A beautiful, highly customizable macOS app that displays rich file information when hovering over files in Finder, similar to Windows file preview behavior.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published