{"id":51238904,"url":"https://github.com/gen2brain/iv","last_synced_at":"2026-06-28T23:00:15.536Z","repository":{"id":366612100,"uuid":"1277027785","full_name":"gen2brain/iv","owner":"gen2brain","description":"Small and simple image viewer","archived":false,"fork":false,"pushed_at":"2026-06-22T15:34:26.000Z","size":260,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-06-22T16:22:33.136Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/gen2brain.png","metadata":{"files":{"readme":"README.md","changelog":null,"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-06-22T14:11:21.000Z","updated_at":"2026-06-22T15:17:53.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/gen2brain/iv","commit_stats":null,"previous_names":["gen2brain/iv"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/gen2brain/iv","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gen2brain%2Fiv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gen2brain%2Fiv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gen2brain%2Fiv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gen2brain%2Fiv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gen2brain","download_url":"https://codeload.github.com/gen2brain/iv/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gen2brain%2Fiv/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34906700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-28T02:00:05.809Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-28T23:00:12.427Z","updated_at":"2026-06-28T23:00:15.436Z","avatar_url":"https://github.com/gen2brain.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## iv\n[![Build Status](https://github.com/gen2brain/iv/actions/workflows/build.yml/badge.svg)](https://github.com/gen2brain/iv/actions)\n[![Go Reference](https://pkg.go.dev/badge/github.com/gen2brain/iv.svg)](https://pkg.go.dev/github.com/gen2brain/iv)\n\nSmall and simple image viewer.\n\n![screenshot](cmd/iv/resources/screenshot.jpg)\n\n### Features\n\n* **Platforms:** Linux (X11, Wayland, DRM), Windows (Win32), macOS (Cocoa), BSDs (X11)\n* **Formats:** JPEG, GIF, PNG, BMP, WEBP, AVIF, JXL, HEIC, ICO, PCX, TIFF, PNM/PBM/PGM/PPM, SVG, PSD, PSP, MPO, QOI\n* **Animation:** GIF, PNG, WEBP, AVIF, JXL\n* **URLs:** HTTP arguments, and image scraping from HTML pages\n* **Auto-reload:** when the current image is modified or its directory changes\n* **Single instance:** open files in an already-running window\n* **Self-contained:** no external runtime dependencies, single static binary \\*\n \n### Download\n\nDownload the latest binaries from the [releases](https://github.com/gen2brain/iv/releases).\n\n\\* Release binaries use `CGO_ENABLED=0`; Linux/BSD binaries are built with `nodynamic` tag (no libc).\nNote that without `nodynamic` even with `CGO_ENABLED=0` the binary will still link to libc.\n\n### Installation\n\n`go install github.com/gen2brain/iv/cmd/iv@latest`\n\nThis command will install `iv` in `GOBIN`, you can point `GOBIN` to e.g. `/usr/local/bin` or `~/.local/bin`.\nAdd `-ldflags \"-s -w\"` to strip debug symbols.\n\n### Build tags\n\n* `minimal` - build support only for JPEG, GIF and PNG (stdlib only)\n* `nodynamic` - decode WEBP, AVIF, JXL and HEIC with Go decoders instead of the system shared libraries (`libwebp`, `libavif`, `libjxl`, `libheif`)\n* `x11` - use X11 in macOS or Windows (e.g., via [XQuartz](https://en.wikipedia.org/wiki/XQuartz) or [Xming](https://en.wikipedia.org/wiki/Xming))\n\n### Keybindings\n\n*Next image*\n* `j` / `Right` / `Space` / `Scroll Down`\n\n*Previous image*\n* `k` / `Left` / `BackSpace` / `Scroll Up`\n\n*Toggle Fullscreen*\n* `f` / `F11` / `Double-click`\n\n*Toggle Slideshow*\n* `s`\n\n*Go 10 images back*\n* `[` / `PageUp`\n\n*Go 10 images forward*\n* `]` / `PageDown`\n\n*Go to the first image*\n* `,` / `Home`\n\n*Go to the last image*\n* `.` / `End`\n\n*Jump to image number*\n* `\u003cnumber\u003e` then `G` (e.g. `12G`)\n\n*Zoom In, Zoom Out, Original Size, Fit*\n* `+` / `Ctrl+Scroll Up`, `-` / `Ctrl+Scroll Down`, `Shift+9`, `Shift+0`\n\n*Adjust Contrast*\n* `Shift+1`, `Shift+2`\n\n*Adjust Brightness*\n* `Shift+3`, `Shift+4`\n\n*Adjust Gamma*\n* `Shift+5`, `Shift+6`\n\n*Adjust Saturation*\n* `Shift+7`, `Shift+8`\n\n*Rotate (clockwise / counterclockwise)*\n* `r` / `Shift+r`\n\n*Flip (horizontal / vertical)*\n* `h` / `v`\n\n*Quit*\n* `q` / `Escape`\n\n*Print current image path to stdout*\n* `Enter`\n\n### Examples\n\n* View all images in a directory\n\n    `iv /media/images/`\n\n* View all JPEGs in all subdirectories\n\n    `find . -iname \"*.jpg\" | iv`\n\n* Delete current image when enter is pressed\n\n    `iv *.jpg | xargs rm -f`\n\n* Rotate the current image when enter is pressed\n\n    `iv *.jpg | xargs -i convert -rotate 90 {} {}`\n\n### Usage\n```\nUsage: iv [\u003cflags\u003e] [file1 dir1 url1 ... fileOrDirN]\n  --width\n    \tWindow width [IV_WIDTH]. (default \"1024\")\n  --height\n    \tWindow height [IV_HEIGHT]. (default \"768\")\n  --device\n    \tDRM device index [IV_DEVICE]. (default \"0\")\n  --filter\n    \t0=NearestNeighbor, 1=Linear, 2=Bicubic [IV_FILTER]. (default \"0\")\n  --title\n    \tShow window title [IV_TITLE]. (default \"true\")\n  --slideshow\n    \tStart slideshow [IV_SLIDESHOW]. (default \"false\")\n  --slideshow-interval\n    \tSlideshow interval (in seconds) [IV_SLIDESHOW_INTERVAL]. (default \"4\")\n  --recursive\n    \tProcess subdirectories recursively [IV_RECURSIVE]. (default \"false\")\n  --fullscreen\n    \tStart in fullscreen [IV_FULLSCREEN]. (default \"false\")\n  --browse\n    \tLoad all images from the image directory [IV_BROWSE]. (default \"true\")\n  --loop\n    \tWrap around at the first/last image [IV_LOOP]. (default \"false\")\n  --sort\n    \t0=No sort, 1=Name (natural order), 2=Modification time, 3=Size, 4=Shuffle [IV_SORT]. (default \"0\")\n  --text-color\n    \tText color [IV_TEXT_COLOR]. (default \"#FFFFFF\")\n  --background-color\n    \tWindow background color [IV_BACKGROUND_COLOR]. (default \"#000000\")\n  --zoom\n    \tInitial zoom level (1, 1000) [IV_ZOOM]. (default \"0\")\n  --contrast\n    \tAdjust contrast (-100, 100) [IV_CONTRAST]. (default \"0\")\n  --brightness\n    \tAdjust brightness (-100, 100) [IV_BRIGHTNESS]. (default \"0\")\n  --gamma\n    \tAdjust gamma (1, 100) [IV_GAMMA]. (default \"100\")\n  --saturation\n    \tAdjust saturation (-100, 100) [IV_SATURATION]. (default \"0\")\n  --single\n    \tSingle instance; send files to a running window [IV_SINGLE]. (default \"false\")\n  --wait\n    \tOpen a blank window and wait for images (use with --single) [IV_WAIT]. (default \"false\")\n```\n\nOn Linux, you can also use `IV_DRIVER` env var, i.e. `IV_DRIVER=x11` will force X11 compatibility mode on Wayland.\nTo use a config file, create file `$XDG_CONFIG_HOME/iv/config`, see [example](cmd/iv/resources/config.example).\n\n### Library usage\n```\nruntime.LockOSThread()\n\nview, err := iv.New()\nif err != nil {\n    panic(err)\n}\n\nview.Display(context.Background(), img)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgen2brain%2Fiv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgen2brain%2Fiv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgen2brain%2Fiv/lists"}