{"id":45660994,"url":"https://github.com/cosmokud/rust-hover-preview","last_synced_at":"2026-04-29T13:01:32.717Z","repository":{"id":336224611,"uuid":"1140310026","full_name":"cosmokud/rust-hover-preview","owner":"cosmokud","description":"Windows 11 system tray application that shows image and video previews when hovering over files in Windows Explorer. Inspired by QTTabBar (QuizoApps) hover preview.","archived":false,"fork":false,"pushed_at":"2026-04-28T10:32:10.000Z","size":446,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-28T11:31:57.626Z","etag":null,"topics":["hover-preview","image-preview","image-viewer","photo-viewer","picture-preview","picture-viewer","qttabbar","quicklook","video-preview"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cosmokud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-23T05:18:05.000Z","updated_at":"2026-04-28T10:32:15.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cosmokud/rust-hover-preview","commit_stats":null,"previous_names":["cosmokud/rust-hover-preview"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/cosmokud/rust-hover-preview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmokud%2Frust-hover-preview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmokud%2Frust-hover-preview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmokud%2Frust-hover-preview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmokud%2Frust-hover-preview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cosmokud","download_url":"https://codeload.github.com/cosmokud/rust-hover-preview/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cosmokud%2Frust-hover-preview/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32426588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T12:24:25.982Z","status":"ssl_error","status_checked_at":"2026-04-29T12:24:24.439Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hover-preview","image-preview","image-viewer","photo-viewer","picture-preview","picture-viewer","qttabbar","quicklook","video-preview"],"created_at":"2026-02-24T09:10:38.452Z","updated_at":"2026-04-29T13:01:32.711Z","avatar_url":"https://github.com/cosmokud.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rust Hover Preview\n\n![Rust](https://img.shields.io/badge/Rust-1.70+-orange?logo=rust)\n![Windows](https://img.shields.io/badge/Platform-Windows-blue?logo=windows)\n![License](https://img.shields.io/badge/License-MIT-green)\n\nRust Hover Preview is a Windows 11 system tray app that shows instant image and video previews in File Explorer when you hover files with the mouse or navigate with the keyboard.\n\nInspired by QTTabBar (QuizoApps) hover preview.\n\n[Showcase.webm](https://github.com/user-attachments/assets/33ee1f35-d399-4226-8847-5bd50f867ebb)\n\n## Highlights\n\n- Mouse-hover and keyboard-navigation previews in Explorer\n- Static image previews plus animated GIF playback and libwebp-backed animated WebP playback\n- Video previews through FFmpeg (`ffplay` + `ffprobe`)\n- Tray controls for enable/disable, delay, positioning, startup, off-trigger key, and volume\n- Explorer Shell view detection, folder caching, and path normalization for reliable hover matching\n- Topmost, non-activating preview windows designed to avoid focus stealing\n\n## Supported Formats\n\n### Images\n\n`jpg`, `jpeg`, `png`, `gif`, `bmp`, `ico`, `tiff`, `tif`, `webp`\n\n### Videos (FFmpeg required)\n\n`mp4`, `webm`, `mkv`, `avi`, `mov`, `wmv`, `flv`, `m4v`\n\n## Installation (Recommended)\n\nDownload prebuilt assets from the repository **Releases** tab:\n\n1. Open [Releases](../../releases)\n2. Download one of the latest assets:\n   - `.msi` installer (recommended for most users)\n   - `.exe` portable build\n3. If you downloaded `.msi`, run the installer. It installs to `%LOCALAPPDATA%\\rust-hover-preview`. If you downloaded `.exe`, place it in any folder you prefer (for example: `C:\\Tools\\RustHoverPreview`)\n4. Launch Rust Hover Preview\n\nNo Rust toolchain is needed when installing from Releases.\n\n## Optional: Enable Video Preview (FFmpeg)\n\nVideo previews require `ffplay` and `ffprobe` available in `PATH`.\n\n### Option A: Install with winget\n\n```powershell\nwinget install --id Gyan.FFmpeg -e\n```\n\nThen reopen your terminal and verify:\n\n```powershell\nffplay -version\nffprobe -version\n```\n\n### Option B: Manual install\n\n1. Download a Windows FFmpeg build from https://ffmpeg.org/download.html\n2. Extract it to a location such as `C:\\ffmpeg`\n3. Add `C:\\ffmpeg\\bin` to your user `PATH`\n4. Open a new terminal and run:\n\n```powershell\nffplay -version\nffprobe -version\n```\n\n## Usage\n\n1. Start the app (tray icon appears)\n2. Hover media files in Explorer to preview them\n3. Use keyboard navigation in Explorer (arrow keys/tab) to trigger focused-item previews\n4. Right-click the tray icon to configure behavior\n\n## System Tray Menu\n\n- **Enable Preview**: Turn previews on or off\n- **Preview Delay**: `Instant (0 ms)`, `Fast (200 ms)`, `Medium (500 ms)`, `Relaxed (750 ms)`, `Slow (1000 ms)`\n- **Same File Rehover Delay**: delay before the same file can preview again after the preview self-dismisses\n- **Video Volume**: `Max (100%)`, `High (80%)`, `Medium (50%)`, `Low (25%)`, `Very Low (10%)`, `Mute (0%)`\n- **Preview Position**: `Follow Cursor` or `Best Position`\n- **Transparent Background**: `Transparent`, `Black`, `White`, or `Checkerboard`\n- **Enable Off Trigger Key**: Temporarily suppress previews while the displayed configured key is held\n- **Run at Startup**: Add/remove startup entry in Windows\n- **Edit Config.ini**: Open configuration file in your default editor\n- **Exit**: Close the application\n\n## Configuration\n\nSettings are stored at:\n\n```text\n%APPDATA%\\rust-hover-preview\\config.ini\n```\n\nExample:\n\n```ini\n[settings]\nrun_at_startup=true\nhover_delay_ms=0\nsame_file_rehover_delay_ms=750\npreview_enabled=true\nenable_off_trigger_key=true\noff_trigger_key=alt\nfollow_cursor=false\ntransparent_background=transparent\nvideo_volume=0\n```\n\nWhen `enable_off_trigger_key` is enabled, hold the configured `off_trigger_key` to keep previews hidden while browsing Explorer.\n\n## Build from Source\n\n### Requirements\n\n- Windows 11\n- Rust toolchain 1.70+\n- Visual Studio Build Tools (MSVC)\n- Windows SDK\n\n### Build Commands\n\n```bash\n# Debug\ncargo build\n\n# Release\ncargo build --release\n```\n\nRelease binary output:\n\n```text\ntarget/release/rust-hover-preview.exe\n```\n\n## Architecture Notes\n\n- Uses Windows accessibility APIs (MSAA + UI Automation) to resolve hovered/focused Explorer items\n- Uses Shell COM APIs to identify active Explorer windows and folders\n- Uses GDI for image rendering in a layered topmost preview window\n- Uses Google's libwebp through `webp-animation` for animated WebP decoding\n- Uses `directories` for Windows roaming configuration paths\n- Uses `ffprobe` for video dimensions and `ffplay` for video playback\n- Uses the registry (`HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run`) for startup control\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmokud%2Frust-hover-preview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcosmokud%2Frust-hover-preview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcosmokud%2Frust-hover-preview/lists"}