{"id":18974530,"url":"https://github.com/m7a/bp-image-viewer","last_synced_at":"2026-04-08T15:30:20.060Z","repository":{"id":164554584,"uuid":"322719348","full_name":"m7a/bp-image-viewer","owner":"m7a","description":"Image Viewer Scripts, MDVL package mdvl-image-viewer","archived":false,"fork":false,"pushed_at":"2024-04-28T19:36:27.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-01T09:08:16.892Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/m7a.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-12-18T22:35:33.000Z","updated_at":"2024-04-28T19:36:30.000Z","dependencies_parsed_at":"2024-04-28T20:43:22.046Z","dependency_job_id":null,"html_url":"https://github.com/m7a/bp-image-viewer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbp-image-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbp-image-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbp-image-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/m7a%2Fbp-image-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/m7a","download_url":"https://codeload.github.com/m7a/bp-image-viewer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239972088,"owners_count":19727305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-11-08T15:15:21.328Z","updated_at":"2026-04-08T15:30:20.005Z","avatar_url":"https://github.com/m7a.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\nsection: 32\nx-masysma-name: image_viewer\ntitle: Image Viewer Scripts\ndate: 2020/12/18 22:59:34\nlang: en-US\nauthor: [\"Linux-Fan, Ma_Sys.ma (Ma_Sys.ma@web.de)\"]\nkeywords: [\"mdvl\", \"shell\", \"script\", \"linux\", \"python\", \"images\", \"plan_view\"]\nx-masysma-version: 1.0.0\nx-masysma-website: https://masysma.net/32/image_viewer.xhtml\nx-masysma-repository: https://www.github.com/m7a/bp-image-viewer\nx-masysma-owned: 1\nx-masysma-copyright: |\n  Copyright (c) 2020 Ma_Sys.ma.\n  For further info send an e-mail to Ma_Sys.ma@web.de.\n---\nIntroduction\n============\n\nThis repository provides Ma_Sys.ma _Image Viewer_ scripts. These are intended to\nsupplement more heavyweight applications like\n[eog(1)](https://manpages.debian.org/buster/eog/eog.1.en.html) by quick but\nfeature-reduced scripts.\n\nThe idea behind these scripts stems from having many scanned-in pages and\nthe need for some specific functions combined with keyboard-driven usage.\nAs a result, the first script `plan_view.py` is controlled entirely by keyboard\nand provides predefined zoom-levels (1:1, fit to window and fit to width) useful\nfor viewing scanned pages.\n\nAs `plan_view.py` was found to be slightly incomplete and also slow especially\nwrt. zooming, an attempt to reconstruct most of the functionality using an\nexisting image viewer `feh` was made. This is implemented in script\n`ma_plan_view_feh` which is the default “image viewer” on MDVL systems\n(cf. `vifmrc` from [conf-cli(32)](conf_cli.xhtml)).\n\nMa_Sys.ma Plan View `plan_view.py`\n==================================\n\n`plan_view.py` is invoked taking as argument a single directory which is scanned\nfor image files in a non-recursive manner. Afterwards, the first in list is\ndisplayed. Plan View can then be controlled by the following keybindings\n(copied from the help screen):\n\nKeys                         Action\n---------------------------  ------------------------------------------------\nF1                           Display this help\nF2                           Version information\nF5, CTRL-R                   Reload current file\nr                            Reload directory\nF10, ESC, q, CTRL-W, ALT-F4  Exit\nF11                          Toggle fullscreen mode\nPage Down                    Page down (next file if end of page reached)\nPage Up                      Page up (previous file if begin of page reached)\nHome                         Go to first file\nEnd                          Go to last file\nc                            _Center_, adjust image to fit page width\n$                            Zoom out until the whole image is visible\n0                            Restore original image size\no, g, d                      _open_, _goto_, _change_ dir: change directory\nCTRL-[SCROLL]                Zoom\nSpace, l, Right              Next file.\nBackspace, h, Left           Previous file.\np                            Display current filename.\nn                            Note filename to `planview_sel.txt`\ne                            Toggle honor exif information.\nm                            Toggle maximized.\nb                            Toggle dark background color.\n\nAn older version of `plan_view.py` can also be found on\n\u003chttps://pastebin.com/BbRES3Ve\u003e.\n\n## Notable Features\n\nNotable features include\n\n * The ability to navigate image contents as if it were pages by means of\n   the [Page Up] and [Page Down] keys.\n * The zoom to fit window width (key [c])\n * Shortcut [n] to save image file name to `planview_sel.txt` file.\n   This feature is very useful for non-scanned images to select either favorite\n   or to-be-deleted images (depending on user's choice). The contents of\n   `planview_sel.txt` can be processed manually or by supplementary script\n   `mvsel`.\n\n## OS Information\n\n`plan_view.py` has only ever been tested on Linux systems. However, given that\nit is Python and GTK it may as well work on Windows, too.\n\n## Script `mvsel`\n\nA common task when processing image files is to decide for some of the images\nto be further processed or deleted. To do this interactively, shortuct key [n]\nin Plan View can be used. Afterwards, script `mvsel` can process this file as\nfollows:\n\n`mvsel dir`\n:   Moves all of the selected files to directory `dir`.\n`mvsel -d`\n:   Deletes all of the selected files.\n\nFeh-based Image Viewing\n=======================\n\nAs [feh(1)](https://manpages.debian.org/buster/feh/feh.1.en.html) is quite\nversatile, it seemed that most of `plan_view.py`'s features could be implemented\nby providing a suitable configuration file. The following Plan View features\ndo not seem to be provided out-of-the box by `feh`:\n\n * Ability to note file names to `planview_sel.txt`\n * Ability to change directory interactively.\n\n`feh` can be extend  by custom “actions” which allow these features to be added\nby means of a controlling shell script. As a result, script\n`ma_plan_view_feh` was created. It invokes `feh` and maps two actions to\nthe specific functions described above.\n\nNote, that the shell script itself does _not_ implement Plan View-like\nkeybindings. Instead, it relies on a separate configuration file\n(from package `mdvl-conf-gui`) for configuring the keyboard shortcuts.\n\nAlso, from `plan_view.py` to `ma_plan_view_feh`, the following differences may\nbe observed:\n\n * Default mode is no longer `0`, but rather `$`.\n * Switching to different directory does not work as reliable as before.\n   (It is unclear why, but sometimes the `feh` instance from the previous\n   directory will not close).\n * `feh` acts recursively by default.\n\nReduced Features\n================\n\nWhile most image viewing tasks can be solved by means of the scripts provided\nhere, there are some special cases for which programs like `eog` are better:\n\n * zoom-intensive operations\n * printing image files to paper\n * animated images (e.g. `.gif` files)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbp-image-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fm7a%2Fbp-image-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fm7a%2Fbp-image-viewer/lists"}