https://github.com/wflixu/Monet
macOS image view
https://github.com/wflixu/Monet
image-viewer imageviewer macos macos-app macos-application photo-viewer picasa picture-viewer swiftui
Last synced: 5 days ago
JSON representation
macOS image view
- Host: GitHub
- URL: https://github.com/wflixu/Monet
- Owner: wflixu
- License: gpl-3.0
- Created: 2024-09-06T10:15:58.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-05-27T12:31:48.000Z (29 days ago)
- Last Synced: 2026-05-27T14:13:51.331Z (29 days ago)
- Topics: image-viewer, imageviewer, macos, macos-app, macos-application, photo-viewer, picasa, picture-viewer, swiftui
- Language: Swift
- Homepage:
- Size: 14.2 MB
- Stars: 11
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-swift-macos-apps - iMonet - commit/wflixu/Monet?style=flat&label=" /> - Image viewer optimized for mouse users. (Images / Text)
README
[](https://swift.org/)
[](https://developer.apple.com/xcode/swiftui/)
[](https://www.apple.com/macos/)
# Monet
An image viewer for macOS optimized for mouse users. Built with SwiftUI.
[](https://apps.apple.com/cn/app/imonet/id6770070921?mt=12)
## Demo
https://github.com/user-attachments/assets/f9faccb3-531e-4000-bc7f-e58fb922e6da
## Screenshots
## Features
### Image Browsing
- **Folder Indexing**: Automatically scans and indexes all images in the same folder
- **Persistent Permissions**: Uses security-scoped bookmarks so you only grant folder access once
- **Supported Formats**: PNG, JPEG, GIF, WebP
- **Sidebar**: Thumbnail strip for quick navigation, auto-hides with single image
### Mouse & Keyboard
- **Arrow Keys**: ←/→/↑/↓ to navigate images
- **Cmd + Scroll**: Zoom in/out centered at mouse position
- **Mouse Drag**: Pan around zoomed images
- **Click to Reveal**: Click image area to show controls, auto-hide after 5s
### Floating UI
- **Title & Toolbar**: Appear on click, auto-hide after 5 seconds; hover toolbar to keep visible
- **Image Info Panel** (right): Pixel size, file size, format, modification date
- **Dark / Light Mode**: Full adaptive theme support
- **Menu Bar Extra**: Quick access from the menu bar
## Requirements
- macOS 15.0 or later
- Swift 6.0+
## Build & Run
```bash
git clone https://github.com/wflixu/Monet.git
cd Monet
swift run
```
For a Release `.app` bundle:
```bash
xcodebuild -scheme Monet -configuration Release -derivedDataPath build -destination "platform=macOS,arch=arm64" ARCHS=arm64 ENABLE_HARDENED_RUNTIME=YES build
```
## Project Structure
```
Monet/
├── Sources/Monet/
│ ├── MonetApp.swift # App entry point, scenes, AppDelegate
│ ├── AppState.swift # Global app state
│ ├── ContentView.swift # Main layout, chrome auto-hide logic
│ ├── NavigationIdentifier.swift # Settings navigation
│ ├── Views/
│ │ ├── ImagePreviewView.swift # Image display with keyboard events
│ │ ├── ImageThumbnailView.swift
│ │ ├── ThumbnailSidebar.swift # Left thumbnail strip
│ │ ├── ImageInfoPanel.swift # Right info panel (pixels, size, format)
│ │ ├── ToolbarView.swift # Bottom floating toolbar
│ │ └── ZoomableImageView.swift # Zoom & pan image view (AppKit)
│ ├── Settings/
│ │ ├── GeneralSettingsPane.swift
│ │ ├── AboutSettingsPane.swift
│ │ ├── SettingsView.swift
│ │ └── SettingsWindow.swift
│ ├── Permission/
│ │ └── PermissionsManager.swift
│ └── Shared/
│ ├── AppLogger.swift # @AppLog property wrapper
│ ├── Constants.swift
│ └── Util.swift # ObjectAssociation
├── Tests/
└── Package.swift
```
## Dependencies
- **[SwiftUITooltip](https://github.com/quassum/SwiftUI-Tooltip)** — tooltips
## Keyboard Shortcuts
| Key | Action |
|-----|--------|
| ← / → | Previous / Next image |
| ↑ / ↓ | Previous / Next image |
| Cmd + Scroll | Zoom in/out at mouse position |
| Mouse Drag | Pan zoomed image |
## License
GNU General Public License v3.0 — see [LICENSE](LICENSE) for details.