Skip to main content

A FOSS image viewer built with PyQt6

Project description

Imaegete

A FOSS image viewer built with PyQt6.

Features

  • Fast keyboard-driven navigation
  • Zoom + pan
  • Animated GIF support
  • Slideshow with tap-tempo
  • On-disk metadata cache + in-memory pixmap cache
  • Folder watching (auto-refresh when files change)
  • Vim-inspired command mode (:) and filename search (/)
  • Category sorting (move current image into configured folders)

Floodfill + rapid slideshow demo

Install

# from PyPI
pip install imaegete

# from source (development)
git clone https://github.com/actx4gh/Imaegete.git
cd Imaegete
pip install -r requirements-dev.txt
pip install -e .

Usage

imaegete [options] [paths...]

Examples:

# scan a directory
imaegete ~/Pictures

# open a single file (also uses its parent directory as the effective root)
imaegete ~/Pictures/foo.jpg

# playlist/selection-only mode: open exactly these files (no directory scanning)
imaegete 0.jpg 1.jpg 2.jpg

Playlist mode (multi-select)

If you launch Imaegete with multiple file paths (for example via a file manager “Open With” multi-select), it runs in selection-only / playlist mode:

  • the image list is exactly the argv file list (deduped, order preserved)
  • folder scanning does not run
  • watchers may refresh/notice deletions, but will not inject unrelated files

Common options

  • --start_dirs DIR [DIR ...] scan one or more folders (default: .)
  • --categories CAT [CAT ...] category folder names (enables move-to-category keys)
  • --sort_dir DIR base directory to create category folders in (defaults to start_dirs)
  • --cache_dir DIR cache location (default: ~/.config/Imaegete/cache)
  • --cache_size MB cache size in MB
  • --clear_cache clear cache and exit

For the full CLI: imaegete --help

Controls

Keyboard shortcuts

All shortcuts below are active in normal mode (i.e. when you are not typing into the : or / bars). Press Esc to leave command/search and return to normal mode.

Action Key
Next image Right / j
Previous image Left / k
First image Home / gg
Last image End / G
Random image / toggle shuffle mode R
Toggle slideshow S
Slideshow/GIF/flood-zoom speed up ]
Slideshow/GIF/flood-zoom speed down [
Zoom in +
Zoom out -
Reset zoom (fit-to-window) =
Flood-zoom (auto-zoom) toggle \\
Toggle fullscreen F
Delete current image Delete
Undo last delete/move U
Move to category 1..9 (if configured) 19
Enter command mode :
Enter filename search /
Exit command/search bars Esc
Quit Q

Mouse

  • Zoom: mouse wheel
  • Pan: left-click + drag (only when zoomed in past “fit to window”)

Slideshow tap-tempo

While slideshow is running, manual navigation taps set the interval:

  • two taps establish a tempo; additional taps refine it
  • direction changes reset the tap sequence
  • taps time out after inactivity

Keys that count as taps: Right/j (next), Left/k (previous), R (random).

Category moves

If you pass --categories (or set categories in config), you can move the current image into a category folder:

  • press 1..9 to move to the corresponding category (first 9 only)
  • or use :m <category> / :m <N> in command mode

Vim-style modes

Command mode (:)

Type : to open the command bar, then press Enter.

  • :q / :quit / :exit — quit
  • :n / :next — next image
  • :p / :prev / :previous — previous image
  • :first / :last / :rand (:random) — jump
  • :del / :delete / :rm — delete current image
  • :u / :undo — undo last move/delete
  • :m <category> or :m <N> — move to category by name or 1-based index
  • :fs (:fullscreen) — toggle fullscreen
  • :ss (:slideshow) [on/off] — toggle or set slideshow
  • :<N> — jump to 1-based index (e.g. :12)

Filename search (/)

Type / to open the search bar.

  • start typing to live-filter the image list
  • select from the popup list (mouse or keyboard) and press Enter
  • Esc exits search without jumping

License

AGPLv3 (see LICENSE)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imaegete-0.1.4.tar.gz (100.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

imaegete-0.1.4-py3-none-any.whl (97.8 kB view details)

Uploaded Python 3

File details

Details for the file imaegete-0.1.4.tar.gz.

File metadata

  • Download URL: imaegete-0.1.4.tar.gz
  • Upload date:
  • Size: 100.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for imaegete-0.1.4.tar.gz
Algorithm Hash digest
SHA256 0b199bd5a099dc567f0afabbd708bfb60205c6c533c7f3defc41754334a08adf
MD5 906505a7f508340734daf192e0143e8a
BLAKE2b-256 b94fa99dae8ff9ee57ce631dc007c51deab8ba57e1fd3fe97c1d71e9f39f17c9

See more details on using hashes here.

Provenance

The following attestation bundles were made for imaegete-0.1.4.tar.gz:

Publisher: publish.yml on actx4gh/Imaegete

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file imaegete-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: imaegete-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 97.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for imaegete-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 611c826c35bde7392e4b1f205f6f790fd55b0e719b35d8dad2674d16ccb9ad8a
MD5 19e5c36a4a7f9b2487b39865432d648c
BLAKE2b-256 ad4f9f62c5642788bf0df207fcf34eab89544cdba5fee7ea2aa35e3e511bfead

See more details on using hashes here.

Provenance

The following attestation bundles were made for imaegete-0.1.4-py3-none-any.whl:

Publisher: publish.yml on actx4gh/Imaegete

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page