Provided by: pympress_1.5.1+dfsg-3build1_all bug

NAME

       pympress - pympress documentation

CONTENTS

       #                                            ![Pympress                                           logo](‐
       https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is
       Pympress?

       Pympress is a little PDF reader written in Python using Poppler for PDF rendering and GTK+ for the GUI.

       It is designed to be a dual-screen reader used for presentations and public talks, with two displays: the
       Content window for a projector, and the Presenter window for your laptop. It is  portable  and  has  been
       tested on various Mac, Windows and Linux systems.

       It comes with many great features ([more below](#functionalities)): - supports embedded gifs and videos -
       text annotations displayed in the presenter window - natively supports beamer's notes on second screen!

       Pympress  is  a  free  software,  distributed  under  the terms of the GPL license (version 2 or, at your
       option, any later version).

       Pympress was originally  created  and  maintained  by  [Schnouki](https://github.com/Schnouki),  on  [his
       repo](https://github.com/Schnouki/pympress).

       Here  is  what  the 2 screen setup looks like, with a big notes slide next to 2 small slides (current and
       next)    on    the    presenter    side:    ![A    screenshot     with     Pympress’     2     screens](‐
       https://repository-images.githubusercontent.com/42637225/925da680-886b-11e9-9a12-28b48debbf19)

       # Installing

       • Linux,   macOS:   pip   install   pympress  −  requires  [python,  gtk+3,  poppler,  and  their  python
         bindings](#dependencies).

       • Windows: choco install pympress with [Chocolatey](https://chocolatey.org/) or  download  the  installer
         from the [latest Github release](https://github.com/Cimbali/pympress/releases/latest).

       ### Notes - To support playing embedded videos in the PDFs, your system must have VLC installed (with the
       same  bitness  as  pympress). VLC is not distributed with pympress, but it is certainly available in your
       system’s package manager and [on their website](https://www.videolan.org/vlc/).  - On  Linux  and  macOS,
       make  sure you have all [the dependencies](#dependencies), as they do not come via pip. (On Windows, they
       are included in the binary package.)  - Using pip, you may want to use python3 -m pip as the  command  if
       pip  points  to  the python 2.x pip. You may also want to install with the --user option, or install from
       github    or    downloaded    sources.    See    [the    python    documentation     on     installing](‐
       https://docs.python.org/3.7/installing/index.html) for more details.

       ### Troubleshooting - If your python environment lacks the Gobject Introspections module, try

          1. checking you have all [the dependencies](#dependencies),

          2. using            --system-site-packages            for           [virtual           environments](‐
             https://docs.python.org/3.7/library/venv.html),

          3. installing pygobject from pip (pip install pygobject, which requires the correct development/header
             packages.  See  [the   PyPI   installation   instructions   of   PyGObject   for   your   system](‐
             https://pygobject.readthedocs.io/en/latest/getting_started.html)).

       • For  manually  downloaded  installers,  if you get an error message along the lines of "MSVCP100.dll is
         missing",  get  the   Visual   C++   2010   redistributables   from   Microsoft   ([x86   (32   bit)](‐
         https://www.microsoft.com/en-in/download/details.aspx?id=5555)      or      [x64      (64      bits)](‐
         https://www.microsoft.com/en-us/download/details.aspx?id=14632)). Those libraries really should already
         be installed on your system.

       # Usage

       ## Opening a file Simply start Pympress and it will ask you what file you want to  open.   You  can  also
       start  pympress  from  the  command  line  with a file to open like so: pympress slides.pdf or python3 -m
       pympress slides.pdf

       ## Functionalities

       All functionalities are available from the menus of the window with slide previews. Don't  be  afraid  to
       experiment with them!

       Keyboard  shortcuts  are  also  listed in these menus. Some more usual shortcuts are often available, for
       example Ctrl`+`L, and F11 also toggle fullscreen, though the main shortcut is just F.

       A few of the fancier functionalities are listed here: - Two-screen display: See on your laptop or  tablet
       display the current slide, the next slide, the talk time and wall-clock time, and annotations (either PDF
       annotations,  or beamer notes on second slide). The position of the beamer notes in the slide is detected
       automatically and can be overridden via a menu option.  - Media support: supports playing  video,  audio,
       and  gif  files embedded in (or linked from) the PDF file.  - Highlight mode: Allows one to draw freehand
       on the slide currently on screen.  - Go To Slide: To jump to a selected slide  without  flashing  through
       the whole presentation on the projector, press G or click the "current  slide" box.
          Using  J  or clicking the slide label will allow you to navigate slide labels instead of page numbers,
          useful e.g. for multi-page slides from beamer pause.

          A spin box will appear, and you will be able to navigate through your slides in the  presenter  window
          only  by  scrolling  your  mouse, with the Home/Up/Down/End keys, with the + and - buttons of the spin
          box, or simply by typing in the number of the slide. Press Enter to validate going to the new slide or
          Esc to cancel.

       • Software pointer: Clicking on the slide (in either window) while  holding  ctrl  down  will  display  a
         software laser pointer on the slide. Or press L to permanently switch on the laser pointer.

       • Talk  time  breakdown:  The  Presentation > Timing Breakdown menu item displays a breakdown of how much
         time was spent on each slide, with a hierarchical breakdown per chapters/sections/etc. if available  in
         the PDF.

       • Automatic  file  reloading:  If the file is modified, pympress will reload it (and preserve the current
         slide, current time, etc.)

       • Big button mode: Add big buttons (duh) for touch displays.

       • Swap screens: If Pympress mixed up which screen is the projector and which is not, press SEstimated talk time: Click the Time estimation box and set your planned talk duration. The  color  will
         allow you to see at a glance how much time you have left.

       • Adjust screen centering: If your slides' form factor doesn't fit the projectors' and you don't want the
         slide centered in the window, use the "Screen Center" option in the "Presentation" menu.

       • Resize  Current/Next  slide: You can drag the bar between both slides on the Presenter window to adjust
         their relative sizes to your liking.

       • Preferences: Some of your  choices  are  saved  in  a  configuration  file,  in  ~/.config/pympress  or
         ~/.pympress on linux, and in %APPDATA%/pympress.ini on windows.

       • Caching:  For  efficiency, Pympress caches rendered pages (up to 200 by default). If this is too memory
         consuming for you, you can change this number in the configuration file.

       ## Command line arguments

       • -h, --help: Shows a list of all command line arguments.

       • -t mm[:ss], --talk-time=mm[:ss]: The estimated (intended) talk time in minutes and optionally seconds.

       • -n position, --notes=position: Set the position of notes on the pdf page (none, left,  right,  top,  or
         bottom). Overrides the detection from the file.

       • --log=level: Set level of verbosity in log file (DEBUG, INFO, WARNING, ERROR).

       # Dependencies

       Pympress  relies  on:  *  Python (version 3.x strongly recommended though 2.7 should still work fine).  *
       [Poppler](http://poppler.freedesktop.org/), the PDF rendering library.  * [Gtk+  3](http://www.gtk.org/),
       a     toolkit     for     creating     graphical    user    interfaces,    and    [its    dependencies](‐
       https://www.gtk.org/overview.php), specifically:

          • [Cairo](https://www.cairographics.org/) (and python bindings for cairo), the graphics library  which
            is used to pre-render and draw over PDF pages.

          • Gdk, a lower-level graphics library to handle icons.

       • [PyGi, the python bindings for Gtk+3](https://wiki.gnome.org/Projects/PyGObject). PyGi is also known as
         pygobject3,  just  pygobject  or  python3-gi.   *  Introspection  bindings  for  poppler may be shipped
         separately, ensure you have those as well (typelib-1_0-Poppler-0_18 on OpenSUSE, gir1.2-poppler-0.18 on
         Ubuntu)

       • optionally [VLC](https://www.videolan.org/vlc/), to play videos (with the same bitness as Python)

       ### On linux platforms The dependencies are often installed by default, or easily available through  your
       package  or software manager.  For example, on ubuntu, you can run the following as root to make sure you
       have all the prerequisites assuming you use python3:
          apt-get install python3 python3-pip libgtk-3-0  libpoppler-glib8  libcairo2  python3-gi  python3-cairo
          python3-gi-cairo  gobject-introspection  libgirepository-1.0-1  libgirepository1.0-dev  gir1.2-gtk-3.0
          gir1.2-poppler-0.18

       Different distributions might have different package naming conventions, for example  the  equivalent  on
       OpenSUSE would be:
          zypper    in    python3    python3-pip    libgtk-3-0    libpoppler-glib8   libcairo2   python3-gobject
          python3-gobject-Gdk python3-cairo python3-gobject-cairo typelib-1_0-GdkPixbuf-2_0  typelib-1_0-Gtk-3_0
          typelib-1_0-Poppler-0_18

       ### On macOS

       Dependencies can be installed using [Homebrew](https://brew.sh/):
          brew install gtk+3 poppler gobject-introspection pygobject3

       ###  On  windows  The  [binary  installer  for  windows](#installing)  comes  with  pympress  and all its
       dependencies packaged.

       Alternately, in order to install from pypi or from source on windows, there  are  two  ways  to  get  the
       dependencies:

       1. using MSYS2 (replace x86_64 with i686 if you're using a 32 bit machine).

          Warning:  this  can take a substantial amount of disk size as it requires a full software distribution
          and building platform.
                 pacman  -S  --needed  mingw-w64-x86_64-gtk3   mingw-w64-x86_64-cairo   mingw-w64-x86_64-poppler
                 mingw-w64-x86_64-python3    mingw-w64-x86_64-vlc    python3-pip    mingw-w64-x86_64-python3-pip
                 mingw-w64-x86_64-python3-gobject mingw-w64-x86_64-python3-cairo

             This    is    also    the    strategy    used    to     automate     [builds     on     appveyor](‐
             https://github.com/Cimbali/pympress/tree/master/scripts/build_msi_mingw.sh).

       2. Using  PyGobjectWin32.  Be  sure  to  check  the  supported  Python versions (up to 3.4 at the time of
          writing), they appear in the FEATURES list in the linked page.

          • Install native [python for windows](https://www.python.org/downloads/windows/)

          • Get  GTK+3,  Poppler   and   their   python   bindings   by   executing   [the   PyGi   installer](‐
            https://sourceforge.net/projects/pygobjectwin32/).   Be  sure to tick all the necessary dependencies
            in the installer (Poppler, Cairo, Gdk-Pixbuf).

       Alternately,  you  can  build  your  Gtk+3  stack  from  source  using  MSVC,  see  [the  Gnome   wiki](‐
       https://wiki.gnome.org/Projects/GTK+/Win32/MSVCCompilationOfGTKStack)   and   [this  python  script  that
       compiles the whole Gtk+3 stack](https://github.com/wingtk/gvsbuild/).  This strategy has  not  been  used
       successfully  yet,  due  to problems building Poppler with its introspection bidings (i.e. typelib) − see
       [#109](https://github.com/Cimbali/pympress/issues/109).

       # Contributing

       Feel free to clone this repo and use it, modify it, redistribute it, etc, under the GPLv2+.  Pympress has
       inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html),
       contains  rst  syntax),  and  the  [docs   folder](https://github.com/Cimbali/pympress/tree/master/docs/)
       contains   the   documentation   generated  from  it,  hosted  on  [the  github  pages  of  this  repo](‐
       https://cimbali.github.io/pympress/pympress.html).

       ## Translations

       If you want to add a translation, check if pympress/share/locale/<language>/pympress.po  already  exists.
       If                not,               take               [the               template               file](‐
       https://github.com/Cimbali/pympress/tree/master/pympress/share/locale/pympress.pot)    as    input    and
       translate  all  the  strings,  then  add  it to the repo in pympress/share/locale/<language>/pympress.po.
       Finally   pass   this   .po   file   to   msgfmt   and    add    the    output    to    the    repo    at
       pympress/share/locale/<language>/LC_MESSAGES/pympress.mo.

       ## Packages

       Official    releases    are    made   to   [PyPI](https://pypi.org/)   and   with   [github   releases](‐
       https://github.com/Cimbali/pympress/releases). The community maintains a  number  of  other  packages  or
       recipes   to   install   pympress   (and   more   can   be   added   to   this   list):  -  [@Jose1711](‐
       https://github.com/jose1711)         made         the          [AUR          pympress          package](‐
       https://aur.archlinux.org/packages/python-pympress/) - [@ComFreek](https://github.com/ComFreek) maintains
       the [Chocolatey pympress package](https://chocolatey.org/packages/pympress) # Pympress package

       This page contains the inline documentation, generated from the code using sphinx.

       The      code      is     documented     in     the     source     using     the     [Google     style](‐
       https://google.github.io/styleguide/pyguide.html)  for  docstrings.  Sphinx  has  gathered  a   [set   of
       examples](http://www.sphinx-doc.org/en/latest/ext/example_google.html)  which  serves  as  a better crash
       course than the full style reference.

       Retructured text (rst) can be used inside the comments and docstrings.

       ## Modules

       ``

       `
       eval_rst .. automodule:: pympress.__main__

          members

          undoc-members

          show-inheritance

   pympress.util -- various utility functions
       pympress.util.fileopen(f)
              Call the right function to open files, based on the platform.

              Parameters
                     f (str) -- path to the file to open

       pympress.util.get_default_config()
              Returns the path to the configuration file containing the defaults.

              Returns
                     The path to the portable configuration file.

              Return type
                     str

       pympress.util.get_icon_path(name)
              Load an image from pympress' resources in a Gdk Pixbuf.

              Parameters
                     name (str) -- The name of the icon to load

              Returns
                     The loaded icon

              Return type
                     Pixbuf

       pympress.util.get_locale_dir()
              Returns the path to the locale directory

              Returns
                     The path to the locale directory

              Return type
                     str

       pympress.util.get_log_path()
              Returns the appropriate path to the log file in the user app dirs.

              Returns
                     path to the log file.

              Return type
                     str

       pympress.util.get_portable_config()
              Returns the path to the configuration file for a portable install (i.e. in the install root).

              Returns
                     The path to the portable configuration file.

              Return type
                     str

       pympress.util.get_pympress_meta()
              Get metadata (version, etc) from pympress' __init__.py

       pympress.util.get_ui_resource_file(name)
              Load an UI definition file from pympress' resources.

              Parameters
                     name (str) -- The name of the UI to load

              Returns
                     The full path to the glade file

              Return type
                     str

       pympress.util.get_user_config()
              Returns the path to the configuration file in the user config directory.

              Returns
                     path to the user configuration file.

              Return type
                     str

       pympress.util.list_icons()
              List the icons from pympress' resources.

              Returns
                     The paths to the icons in the pixmaps directory

              Return type
                     list of str

       pympress.util.load_style_provider(style_provider)
              Load the css and in a style provider.

              Parameters
                     style_provider (CssProvider) -- The style provider in which to load CSS

              Returns
                     The style provider with CSS loaded

              Return type
                     CssProvider

       pympress.util.set_screensaver(must_disable, window)
              Enable or disable the screensaver.

              Parametersmust_disable (bool) --  if  True,  indicates  that  the  screensaver  must  be  disabled;
                       otherwise it will be enabled

                     • window (Window) -- The window on the screen where the screensaver is to be suspended.

       ``

       `

INDICES AND TABLES

       • genindex

       • modindex

AUTHOR

       Thomas Jost, Cimbali

COPYRIGHT

       2009-2020, Thomas Jost; 2015-2017 Cimbali

1.5.1                                           18 February, 2020                                    PYMPRESS(1)