Git Product home page Git Product logo

mpv-manga-reader's Introduction

mpv-manga-reader

mpv-manga-reader is a script aimed at making mpv a usable manga reader (it also works great with LN scans). mpv is almost unrivalled at opening images and archives thanks to its high quality rendering, scaling, and shading capabilities, but there's no way internally for it to have something like a double page mode that people expect from manga reading software. Therefore, I created this script to help alleviate those shortcomings and hopefully convince you to finally abandon mcomix.

Usage

Note: requires at least mpv 0.34 to function correctly. Just place manga-reader.lua in your scripts directory and then load up a directory of images or an archive. Non-images and archives are removed based on their extension. If you have some weird, special snowflake image/archive format, just let me know and I can add it to the array.

By default, starting mpv-manga-reader is bound to y. When turning the reader on, it will enter manga mode and single page mode (by default) and rebind some keys. Here are the defaults.

  • toggle-manga-reader: y
  • toggle-double-page: d
  • toggle-continuous-mode: c
  • toggle-manga-mode: m
  • next-page: LEFT
  • prev-page: RIGHT
  • next-single-page: Shift+LEFT
  • prev-single-page: Shift+RIGHT
  • skip-forward: Ctrl+LEFT
  • skip-backward: Ctrl+RIGHT
  • first-page: HOME
  • last-page: END
  • pan-up: UP
  • pan-down: DOWN
  • jump-page-mode: /
  • jump-page-go: ENTER
  • jump-page-quit: ctrl+[

Keybindings can all be changed in input.conf in the usual way (i.e. key script-message function-name). If manga mode is false, then the direction keys of the next-page and prev-page functions are reversed (i.e. next-page becomes RIGHT and so on).

jump-page

The jump-page functions work a little bit differently than the rest of the reader. Pressing jump-page-mode will do some key rebinds and then prompt the user with a message asking which page to move to. Simply press any combination of numbers followed by jump-page-go to move to the desired page. If the entered number is out of range, a message will be displayed. Either way, jump-page-mode will be ended. You can use jump-page-quit to quit jump-page-mode at any time.

Configuration

manga-reader.lua reads its configuration from manga-reader.conf in your script-opts directory. The format for the file is foo=value. Here are the available options and their defaults.

auto_start
Defaults to no. Automatically start the reader if valid images are detected.

continuous
Defaults to no. Tells the manga reader whether or not to start in continuous mode. This is mutually exclusive with double page mode.

continuous_size
Defaults to 8. This is the amount of pages stacked together for each chunk in continuous mode. Note that you will probably encounter a render error if you set the size too large.

double
Defaults to no. Tells the manga reader whether or not to start in double page mode. This is mutually exclusive with continuous mode.

manga
Defaults to yes. Tells the manga reader whether or not to start in manga mode (i.e. read right-to-left or left-to-right).

pan_size
Defaults to 0.05. Defines the magnitude of pan-up and pan-down.

similar_height_threshold
Defaults to 50. This is the threshold used for determining whether or not to to display two pages in double page mode. The lavfi-complex filter requires that both video streams be exactly the same height when stacking the videos horizontally. It is common for scans to have slightly differing sizes so internally a scale filter is used with the lavfi-complex filter. The default threshold here just means that two consecutive pages whose difference in height is within 50 pixels is considered a valid double page.

skip_size
Defaults to 10. This is the interval used by the skip-forward and skip-backward functions.

trigger_zone
Defaults to 0.05. When in continuous mode, the manga reader attempts to be smart and change pages for you once a pan value goes past a certain amount (determined by the page dimensions and the vertical alignment). The trigger_zone is an additional value added to this parameter. Basically, increasing the value will make it take longer for panning a page to change pages whereas decreasing does the opposite.

License

GPLv3

mpv-manga-reader's People

Contributors

dudemanguy avatar zettai-karen avatar ripose-jp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.