Skip to content

2075/glance

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

163 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Glance

All-in-one Quick Look plugin for macOS

Glance provides Quick Look previews for files that macOS doesn't support out of the box.

Note: This is a maintained fork of samuelmeuli/glance, which was archived by its original author. This fork updates the project to build and run on modern macOS versions (Ventura, Sonoma, Sequoia) with current Xcode, Swift, and Go toolchains. See Changes from upstream below for details.

Supported file types

  • Source code (with Chroma syntax highlighting): .cpp, .js, .json, .py, .swift, .yml and many more

  • Markdown (rendered using goldmark): .md, .markdown, .mdown, .mkdn, .mkd, .Rmd

  • Archive: .tar, .tar.gz, .zip

  • Jupyter Notebook: .ipynb

  • Tab-separated values (parsed using SwiftCSV): .tab, .tsv

Changes from upstream

This fork was created because the original project by Samuel Meuli was archived and no longer maintained, while the Quick Look extension remained useful and had no drop-in replacement. The following changes have been made:

  • macOS compatibility -- Updated deployment target, build settings, and APIs to support macOS 13+ (Ventura, Sonoma, Sequoia) on both Intel and Apple Silicon
  • Go toolchain -- Upgraded from Go 1.14 to a current release; updated all Go dependencies including the Chroma v0 to v2 migration
  • Jupyter Notebook support -- Replaced the archived nbtohtml dependency with a built-in converter
  • Swift dependencies -- Updated SwiftCSV, replaced swift-exec, and modernized Swift APIs
  • Deprecated APIs -- Replaced hardcoded system icon paths, WKWebView private API usage, and other deprecated patterns
  • Rebranded identifiers -- Bundle IDs moved to io.2075.Glance namespace for independent signing and distribution

Building

Xcode, Swift, and Go need to be installed to build the app locally.

# Clone the repo
git clone https://github.com/2075/glance.git
cd glance

# Open in Xcode
open Glance.xcodeproj

Build and run the Glance scheme. The Quick Look extension is embedded automatically.

Zoom / Scale

Web-based previews (Markdown, source code, Jupyter Notebooks) support zoom:

  • Pinch to zoom on a trackpad to scale the preview content
  • Cmd + + / Cmd + - to zoom in or out (0.5x -- 3.0x range)
  • Cmd + 0 to reset zoom to 100%

FAQ

Why does Glance require network permissions?

Glance renders some previews in a WKWebView. All assets are stored locally and network access is disabled, but web views unfortunately still need the com.apple.security.network.client entitlement to function.

Why are images in my Markdown files not loading?

Glance blocks remote assets. Furthermore, the app only has access to the file that's being previewed. Local image files referenced from Markdown are therefore not loaded.

Why isn't [file type] supported?

Feel free to open an issue or contribute! When opening an issue, please describe what kind of preview you'd expect for your file.

Please note that macOS doesn't allow the handling of some file types (e.g. .plist, .ts and .xml).

You claim to support [file type], but previews aren't showing up.

Please note that Glance skips previews for large files to avoid slowing down your Mac.

It's possible that your file's extension or UTI isn't associated with Glance. You can easily verify this:

  1. Check whether the file extension is matched to the correct class in PreviewVCFactory.swift.
  2. Find your file's UTI by running mdls -name kMDItemContentType /path/to/your/file. Check whether the UTI is listed under QLSupportedContentTypes in Info.plist.
  3. If an association is missing, please feel free to add it and submit a PR.

Contributing

Suggestions and contributions are always welcome! Please discuss larger changes (e.g. adding support for a new file type) via issue before submitting a pull request.

To add previews for a new file extension, please follow these steps:

  1. Create a new class for your file type in this directory. It should implement the Preview protocol. See the other files in the directory for examples.
  2. Match the file extension to your class in PreviewVCFactory.swift.
  3. Find your file's UTI by running mdls -name kMDItemContentType /path/to/your/file. Add it to QLSupportedContentTypes in Info.plist.
  4. Update this README and SupportedFilesWC.xib accordingly.

Credits

Originally created by Samuel Meuli. This fork is maintained by 2075.

Licensed under the MIT License.

About

๐Ÿ”Ž All-in-one Quick Look plugin

Resources

License

Stars

2 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages

  • Swift 64.2%
  • Go 17.1%
  • CSS 13.5%
  • Makefile 5.2%