/igl

igl -- An OpenGL based bitmap image viewer.

Primary LanguageCMIT LicenseMIT

Stargazers Issues MIT License


Logo

IGL - Image GL

An OpenGL based image viewer!
Explore the docs »

View Demo 🚧 · Report Bug · Request Feature

Table of Contents

🖼️ IGL - Image GL

igl

igl is a bitmap image viewer aiming at being:

  • 🚀 fast!
  • 🧙‍♂️ smart/ahead image loading
  • 👷‍♀️ simple and intuitive functionality
  • ⌨️ keyboard friendly
  • 🕶️ awesome

And it's pronounced eagle.

🚧 Note: this is still work in progress, so please expect some uncaught exceptions and crashes.

⚒️ Dependencies

igl is built on top of amazing software:

In order to build the app also make sure you have:

  • 🧰 cmake 3.10
  • 🐍 python (optional: to install glad and fetch the latest loader source files)

🍼 Getting Started

For my fellow linux users, you may go straight to the releases page, fetch the latest binary (AppImage) and conveniently add it to your system without having to go through the building process:

$ wget https://github.com/gmagno/igl/releases/latest/download/igl-???????-x86_64.AppImage
$ chmod +x igl-*-x86_64.AppImage
$ sudo ln -s /path/to/igl-*-x86_64.AppImage /usr/local/bin/igl  # optional

📦 Installation

Apart from glad dependencies are managed as git submodules, don't forget to clone the repo recursively !

  1. Get the source:
$ git clone --recursive https://github.com/gmagno/igl && cd igl

You may, optionally, download the latest OpenGL Loader files with glad:

$ python3 -m venv .venv        # creates a python virtual environment
$ source .venv/bin/activate    # activate the virtual environment
$ python3 -m pip install glad  # installs glad with which we fetch the source
$ glad --generator c --out-path ext/glad  # overrides whatever is in ext/glad
  1. Build
$ mkdir build && cd build
$ cmake ..
$ make -j $(nproc)
  1. Install
$ sudo cp igl /usr/local/bin  # or wherever pleases you
  1. Enjoy! 🥳

🐾 Usage

The app accepts a single positional argument, a path to either an image file or a directory. Easy peasy lemon squeezy 🍋

$ igl path/to/awesome-image.png  # or igl path/to/dir/

The --help flag won't provide more info than that, but here it goes for completness anyway 🤓

$ igl -h
IGL - Image OpenGL
Usage: igl [OPTIONS] [path]

Positionals:
  path TEXT                   Path to image or directory

Options:
  -h,--help                   Request help

Once the app is launched you may press the h key on your keyboard to see the available shortcut keys:

igl

⌨️ Shortcut Keys

Function Key
👩‍🏫 Show the help window h
↕️↔️ Image panning drag while pressing the middle mouse button
w, a, s, d
[Shift +] mouse wheel
🔍 Image zoom in/out Ctrl + mouse wheel
Ctrl + =/-
🎯 Image recenter c
⏮️⏭️ Image select next/prev Alt + mouse wheel
j, k
📂 Show files list window e
🧹 Reset windows layout r
☀️🌑 Toggle theme {dark, light, classic} t
🚪 Quit q

✒️ Font

If you're wondering about the font used in the app, it's called Hermit and it is gorgeous! Kudos to @pcaro90 for the lovely work.

©️ License

Distributed under the MIT License. See LICENSE for more information.

✉️ Contact

Gonçalo Magno - @gmagno6 - goncalo.magno@gmail.com

Project Link: https://github.com/gmagno/igl