summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-pympress.spec873
-rw-r--r--sources1
3 files changed, 875 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..8b16a16 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pympress-1.8.2.tar.gz
diff --git a/python-pympress.spec b/python-pympress.spec
new file mode 100644
index 0000000..865f233
--- /dev/null
+++ b/python-pympress.spec
@@ -0,0 +1,873 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pympress
+Version: 1.8.2
+Release: 1
+Summary: A simple and powerful dual-screen PDF reader designed for presentations
+License: GPL-2.0-or-later
+URL: https://github.com/Cimbali/pympress/
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/08/3f/9fd254a40155c8f51b52b045f5df16a794d21d4c3dfeb8c5d379671e72f1/pympress-1.8.2.tar.gz
+BuildArch: noarch
+
+Requires: python3-watchdog
+Requires: python3-importlib-resources
+Requires: python3-babel
+Requires: python3-babelgladeextractor
+Requires: python3-Sphinx
+Requires: python3-myst-parser
+Requires: python3-sphinxcontrib-napoleon
+Requires: python3-sphinx-rtd-theme
+Requires: python3-vlc
+
+%description
+# ![Pympress logo](https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is Pympress?
+
+Pympress is a PDF presentation tool designed for dual-screen setups such as presentations and public talks.
+Highly configurable, fully-featured, and portable
+
+It comes with many great features ([more below](#functionalities)):
+- supports embedded gifs (out of the box), videos, and audios (with VLC or Gstreamer integration)
+- text annotations displayed in the presenter window
+- natively supports beamer's *notes on second screen*, as well as Libreoffice notes pages!
+
+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://pympress.github.io/resources/pympress-screenshot.png)
+
+# 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, beamer notes on second slide, or Libreoffice notes pages).
+ The position of the beamer or Libreoffice notes in the slide is detected automatically and can be overridden via a menu option.
+
+ If you do not want to use second-slide beamer notes but prefer to have notes on their own pages, you can enable auto-detection of these notes.
+ Use the following snippet that prefixes the page labels with `notes:` on notes pages:
+ ```latex
+ \addtobeamertemplate{note page}{}{\thispdfpagelabel{notes:\insertframenumber}}
+ ```
+- **Media support**: supports playing video, audio, and gif files embedded in (or linked from) the PDF file, with optional start/end times and looping.
+- **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.
+
+- **Deck Overview**: Pressing `D` will open an overview of your whole slide deck, and any slide can be opened from can simply clicking it.
+- **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 `S`
+- **Automatic full screen**: pympress will automatically put the content window fullscreen on your non-primay screen when:
+ - connecting a second screen,
+ - extending your desktop to a second screen that was mirroring your main screen,
+ - when starting pympress on a two-screen display.
+ To disable this behaviour, untick “Content fullscreen” under the “Starting configuration” menu.
+- **Estimated 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.
+- **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.
+- **Configurability**: Your preferences are saved in a configuration file, and many options are accessible there directly. These include:
+ - Customisable key bindings (or shortcuts),
+ - Configurable layout of the presenter window, with 1 to 16 next slides preview
+ - and many more.
+
+ See the [configuration file documentation](docs/options.md) for more details,
+- **Editable PDF annotations**: Annotations can be added, removed, or changed, and the modified PDF files can be saved
+- **Automatic next slide and looping**
+
+## 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).
+
+## Media and autoplay
+
+To enable media playback, you need to have either:
+- Gstreamer installed (enabled by default), with plugins gstreamer-good/-bad/-ugly based on which codecs you need, or
+- VLC installed (and the python-vlc module), with `enabled = on` under the `[vlc]` section of your config file.
+
+On macOS, issues with the gstreamer brew formula may require users to set `GST_PLUGIN_SYSTEM_PATH` manually. For default homebrew configurations the value should be `/opt/homebrew/lib/gstreamer-1.0/`. Make sure to set this environmental variable globally, or pympress might not pick it up.
+
+To produce PDFs with media inclusion, the ideal method is to use beamer’s multimedia package, always with `\movie`:
+
+```latex
+\documentclass{beamer}
+\usepackage{multimedia}
+
+\begin{frame}{Just a mp4 here}
+ \centering
+ \movie[width=0.3\textwidth]{\includegraphics[width=0.9\textwidth]{frame1.png}}{movie.mp4}
+
+ \movie[width=0.3\textwidth]{}{animation.gif}
+
+ \movie[width=0.3\textwidth]{}{ding.ogg}
+\end{frame}
+```
+
+If you desire autoplay, ensure you have pympress ≥ 1.7.0 and poppler ≥ 21.04, and use the `movie15` package as follows:
+
+```latex
+\documentclass{beamer}
+\usepackage{movie15}
+\begin{document}
+
+\begin{frame}
+ \begin{center}
+ \includemovie[attach=false,autoplay,text={%
+ \includegraphics{files/mailto.png}%
+ }]{0.4\linewidth}{0.3\linewidth}{files/random.mpg}
+ \end{center}
+\end{frame}
+
+\end{document}
+```
+
+# Dependencies
+
+Pympress relies on:
+* Python (version ≥ 3.4, python 2.7 is supported only until pympress 1.5.1, and 3.x < 3.4 until v1.6.4).
+* [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)
+ and the [python-vlc](https://pypi.org/project/python-vlc/) bindings.
+* optionally Gstreamer to play videos (which is a Gtk library)
+
+### 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*:
+
+```sh
+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:
+
+```sh
+zypper install 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 CentOS/RHEL/Fedora the dependencies would be:
+
+```sh
+yum install python36 python3-pip gtk3 poppler-glib cairo gdk-pixbuf2 python3-gobject python3-cairo
+```
+
+And on Arch Linux:
+
+```sh
+pacman -S --needed python python-pip gtk3 poppler cairo gobject-introspection poppler-glib python-gobject gst-plugin-gtk
+```
+
+
+### On macOS
+
+Dependencies can be installed using [Homebrew](https://brew.sh/):
+
+```sh
+brew install --only-dependencies pympress
+```
+
+### 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.
+
+ ```sh
+ 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+.
+A [number of contributors](https://github.com/Cimbali/pympress/graphs/contributors) have taken part in the development of pympress and submitted pull requests to improve it.
+
+**Be respectful of everyone and keep this community friendly, welcoming, and harrasment-free.
+Abusive behaviour will not be tolerated, and can be reported by email at me@cimba.li − wrongdoers may be permanently banned.**
+
+Pympress has inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html), contains rst syntax), and the [docs generated from it are hosted on the github pages of this repo](https://pympress.github.io/).
+
+## Translations
+
+![Chinese (simplified)](https://img.shields.io/poeditor/progress/301055/zh-Hans?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28simplified%29)
+![Chinese (traditional)](https://img.shields.io/poeditor/progress/301055/zh-Hant?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28traditional%29)
+![Czech](https://img.shields.io/poeditor/progress/301055/cs?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%BF%20Czech)
+![Hindi](https://img.shields.io/poeditor/progress/301055/hi?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B3%20Hindi)
+![Italian](https://img.shields.io/poeditor/progress/301055/it?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B9%20Italian)
+![Japanese](https://img.shields.io/poeditor/progress/301055/ja?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AF%F0%9F%87%B5%20Japanese)
+![Polish](https://img.shields.io/poeditor/progress/301055/pl?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%B5%F0%9F%87%B1%20Polish)
+![French](https://img.shields.io/poeditor/progress/301055/fr?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AB%F0%9F%87%B7%20French)
+![German](https://img.shields.io/poeditor/progress/301055/de?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A9%F0%9F%87%AA%20German)
+![Spanish](https://img.shields.io/poeditor/progress/301055/es?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AA%F0%9F%87%B8%20Spanish)
+<!-- https://poeditor.com/docs/languages -->
+
+We thank the many contributors of translations: <!-- translator list -->
+Agnieszka,
+atsuyaw,
+Cherrywoods,
+Dongwang,
+Estel-f,
+Fabio Pagnotta,
+Ferdinand Fichtner,
+Frederik. blome,
+FriedrichFröbel,
+He. yifan. xs,
+Jaroslav Svoboda,
+Jeertmans,
+Kristýna,
+Leonvincenterd,
+LogCreative,
+Lorenzo. pacchiardi,
+Luis Sibaja,
+Marcin Dohnalik,
+marquitul,
+Morfit,
+Mzn,
+Nico,
+Ogawa,
+Paul,
+Pierre BERTHOU,
+polaksta,
+Saulpierotti,
+Shebangmed,
+susobaco,
+Tapia,
+Tejas,
+Timo Zhang,
+Tkoyama010,
+Toton95,
+Vojta Netrh,
+Vulpeculus,
+and <!-- last translator --> Cimbali.
+
+If you also want to add or contribute to a translation, check [pympress’ page on POEditor](https://poeditor.com/join/project/nKfRxeN8pS).
+Note that old strings are kept and tagged `removed`, to give context and keep continuity between translations of succcessive versions.
+This means `removed` strings are unused and do not need translating.
+
+## 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 (see [Install section](#installing-)). Any additions welcome.
+
+
+%package -n python3-pympress
+Summary: A simple and powerful dual-screen PDF reader designed for presentations
+Provides: python-pympress
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pympress
+# ![Pympress logo](https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is Pympress?
+
+Pympress is a PDF presentation tool designed for dual-screen setups such as presentations and public talks.
+Highly configurable, fully-featured, and portable
+
+It comes with many great features ([more below](#functionalities)):
+- supports embedded gifs (out of the box), videos, and audios (with VLC or Gstreamer integration)
+- text annotations displayed in the presenter window
+- natively supports beamer's *notes on second screen*, as well as Libreoffice notes pages!
+
+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://pympress.github.io/resources/pympress-screenshot.png)
+
+# 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, beamer notes on second slide, or Libreoffice notes pages).
+ The position of the beamer or Libreoffice notes in the slide is detected automatically and can be overridden via a menu option.
+
+ If you do not want to use second-slide beamer notes but prefer to have notes on their own pages, you can enable auto-detection of these notes.
+ Use the following snippet that prefixes the page labels with `notes:` on notes pages:
+ ```latex
+ \addtobeamertemplate{note page}{}{\thispdfpagelabel{notes:\insertframenumber}}
+ ```
+- **Media support**: supports playing video, audio, and gif files embedded in (or linked from) the PDF file, with optional start/end times and looping.
+- **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.
+
+- **Deck Overview**: Pressing `D` will open an overview of your whole slide deck, and any slide can be opened from can simply clicking it.
+- **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 `S`
+- **Automatic full screen**: pympress will automatically put the content window fullscreen on your non-primay screen when:
+ - connecting a second screen,
+ - extending your desktop to a second screen that was mirroring your main screen,
+ - when starting pympress on a two-screen display.
+ To disable this behaviour, untick “Content fullscreen” under the “Starting configuration” menu.
+- **Estimated 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.
+- **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.
+- **Configurability**: Your preferences are saved in a configuration file, and many options are accessible there directly. These include:
+ - Customisable key bindings (or shortcuts),
+ - Configurable layout of the presenter window, with 1 to 16 next slides preview
+ - and many more.
+
+ See the [configuration file documentation](docs/options.md) for more details,
+- **Editable PDF annotations**: Annotations can be added, removed, or changed, and the modified PDF files can be saved
+- **Automatic next slide and looping**
+
+## 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).
+
+## Media and autoplay
+
+To enable media playback, you need to have either:
+- Gstreamer installed (enabled by default), with plugins gstreamer-good/-bad/-ugly based on which codecs you need, or
+- VLC installed (and the python-vlc module), with `enabled = on` under the `[vlc]` section of your config file.
+
+On macOS, issues with the gstreamer brew formula may require users to set `GST_PLUGIN_SYSTEM_PATH` manually. For default homebrew configurations the value should be `/opt/homebrew/lib/gstreamer-1.0/`. Make sure to set this environmental variable globally, or pympress might not pick it up.
+
+To produce PDFs with media inclusion, the ideal method is to use beamer’s multimedia package, always with `\movie`:
+
+```latex
+\documentclass{beamer}
+\usepackage{multimedia}
+
+\begin{frame}{Just a mp4 here}
+ \centering
+ \movie[width=0.3\textwidth]{\includegraphics[width=0.9\textwidth]{frame1.png}}{movie.mp4}
+
+ \movie[width=0.3\textwidth]{}{animation.gif}
+
+ \movie[width=0.3\textwidth]{}{ding.ogg}
+\end{frame}
+```
+
+If you desire autoplay, ensure you have pympress ≥ 1.7.0 and poppler ≥ 21.04, and use the `movie15` package as follows:
+
+```latex
+\documentclass{beamer}
+\usepackage{movie15}
+\begin{document}
+
+\begin{frame}
+ \begin{center}
+ \includemovie[attach=false,autoplay,text={%
+ \includegraphics{files/mailto.png}%
+ }]{0.4\linewidth}{0.3\linewidth}{files/random.mpg}
+ \end{center}
+\end{frame}
+
+\end{document}
+```
+
+# Dependencies
+
+Pympress relies on:
+* Python (version ≥ 3.4, python 2.7 is supported only until pympress 1.5.1, and 3.x < 3.4 until v1.6.4).
+* [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)
+ and the [python-vlc](https://pypi.org/project/python-vlc/) bindings.
+* optionally Gstreamer to play videos (which is a Gtk library)
+
+### 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*:
+
+```sh
+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:
+
+```sh
+zypper install 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 CentOS/RHEL/Fedora the dependencies would be:
+
+```sh
+yum install python36 python3-pip gtk3 poppler-glib cairo gdk-pixbuf2 python3-gobject python3-cairo
+```
+
+And on Arch Linux:
+
+```sh
+pacman -S --needed python python-pip gtk3 poppler cairo gobject-introspection poppler-glib python-gobject gst-plugin-gtk
+```
+
+
+### On macOS
+
+Dependencies can be installed using [Homebrew](https://brew.sh/):
+
+```sh
+brew install --only-dependencies pympress
+```
+
+### 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.
+
+ ```sh
+ 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+.
+A [number of contributors](https://github.com/Cimbali/pympress/graphs/contributors) have taken part in the development of pympress and submitted pull requests to improve it.
+
+**Be respectful of everyone and keep this community friendly, welcoming, and harrasment-free.
+Abusive behaviour will not be tolerated, and can be reported by email at me@cimba.li − wrongdoers may be permanently banned.**
+
+Pympress has inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html), contains rst syntax), and the [docs generated from it are hosted on the github pages of this repo](https://pympress.github.io/).
+
+## Translations
+
+![Chinese (simplified)](https://img.shields.io/poeditor/progress/301055/zh-Hans?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28simplified%29)
+![Chinese (traditional)](https://img.shields.io/poeditor/progress/301055/zh-Hant?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28traditional%29)
+![Czech](https://img.shields.io/poeditor/progress/301055/cs?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%BF%20Czech)
+![Hindi](https://img.shields.io/poeditor/progress/301055/hi?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B3%20Hindi)
+![Italian](https://img.shields.io/poeditor/progress/301055/it?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B9%20Italian)
+![Japanese](https://img.shields.io/poeditor/progress/301055/ja?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AF%F0%9F%87%B5%20Japanese)
+![Polish](https://img.shields.io/poeditor/progress/301055/pl?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%B5%F0%9F%87%B1%20Polish)
+![French](https://img.shields.io/poeditor/progress/301055/fr?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AB%F0%9F%87%B7%20French)
+![German](https://img.shields.io/poeditor/progress/301055/de?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A9%F0%9F%87%AA%20German)
+![Spanish](https://img.shields.io/poeditor/progress/301055/es?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AA%F0%9F%87%B8%20Spanish)
+<!-- https://poeditor.com/docs/languages -->
+
+We thank the many contributors of translations: <!-- translator list -->
+Agnieszka,
+atsuyaw,
+Cherrywoods,
+Dongwang,
+Estel-f,
+Fabio Pagnotta,
+Ferdinand Fichtner,
+Frederik. blome,
+FriedrichFröbel,
+He. yifan. xs,
+Jaroslav Svoboda,
+Jeertmans,
+Kristýna,
+Leonvincenterd,
+LogCreative,
+Lorenzo. pacchiardi,
+Luis Sibaja,
+Marcin Dohnalik,
+marquitul,
+Morfit,
+Mzn,
+Nico,
+Ogawa,
+Paul,
+Pierre BERTHOU,
+polaksta,
+Saulpierotti,
+Shebangmed,
+susobaco,
+Tapia,
+Tejas,
+Timo Zhang,
+Tkoyama010,
+Toton95,
+Vojta Netrh,
+Vulpeculus,
+and <!-- last translator --> Cimbali.
+
+If you also want to add or contribute to a translation, check [pympress’ page on POEditor](https://poeditor.com/join/project/nKfRxeN8pS).
+Note that old strings are kept and tagged `removed`, to give context and keep continuity between translations of succcessive versions.
+This means `removed` strings are unused and do not need translating.
+
+## 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 (see [Install section](#installing-)). Any additions welcome.
+
+
+%package help
+Summary: Development documents and examples for pympress
+Provides: python3-pympress-doc
+%description help
+# ![Pympress logo](https://raw.githubusercontent.com/Cimbali/pympress/master/pympress/share/pixmaps/pympress-32.png) What is Pympress?
+
+Pympress is a PDF presentation tool designed for dual-screen setups such as presentations and public talks.
+Highly configurable, fully-featured, and portable
+
+It comes with many great features ([more below](#functionalities)):
+- supports embedded gifs (out of the box), videos, and audios (with VLC or Gstreamer integration)
+- text annotations displayed in the presenter window
+- natively supports beamer's *notes on second screen*, as well as Libreoffice notes pages!
+
+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://pympress.github.io/resources/pympress-screenshot.png)
+
+# 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, beamer notes on second slide, or Libreoffice notes pages).
+ The position of the beamer or Libreoffice notes in the slide is detected automatically and can be overridden via a menu option.
+
+ If you do not want to use second-slide beamer notes but prefer to have notes on their own pages, you can enable auto-detection of these notes.
+ Use the following snippet that prefixes the page labels with `notes:` on notes pages:
+ ```latex
+ \addtobeamertemplate{note page}{}{\thispdfpagelabel{notes:\insertframenumber}}
+ ```
+- **Media support**: supports playing video, audio, and gif files embedded in (or linked from) the PDF file, with optional start/end times and looping.
+- **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.
+
+- **Deck Overview**: Pressing `D` will open an overview of your whole slide deck, and any slide can be opened from can simply clicking it.
+- **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 `S`
+- **Automatic full screen**: pympress will automatically put the content window fullscreen on your non-primay screen when:
+ - connecting a second screen,
+ - extending your desktop to a second screen that was mirroring your main screen,
+ - when starting pympress on a two-screen display.
+ To disable this behaviour, untick “Content fullscreen” under the “Starting configuration” menu.
+- **Estimated 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.
+- **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.
+- **Configurability**: Your preferences are saved in a configuration file, and many options are accessible there directly. These include:
+ - Customisable key bindings (or shortcuts),
+ - Configurable layout of the presenter window, with 1 to 16 next slides preview
+ - and many more.
+
+ See the [configuration file documentation](docs/options.md) for more details,
+- **Editable PDF annotations**: Annotations can be added, removed, or changed, and the modified PDF files can be saved
+- **Automatic next slide and looping**
+
+## 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).
+
+## Media and autoplay
+
+To enable media playback, you need to have either:
+- Gstreamer installed (enabled by default), with plugins gstreamer-good/-bad/-ugly based on which codecs you need, or
+- VLC installed (and the python-vlc module), with `enabled = on` under the `[vlc]` section of your config file.
+
+On macOS, issues with the gstreamer brew formula may require users to set `GST_PLUGIN_SYSTEM_PATH` manually. For default homebrew configurations the value should be `/opt/homebrew/lib/gstreamer-1.0/`. Make sure to set this environmental variable globally, or pympress might not pick it up.
+
+To produce PDFs with media inclusion, the ideal method is to use beamer’s multimedia package, always with `\movie`:
+
+```latex
+\documentclass{beamer}
+\usepackage{multimedia}
+
+\begin{frame}{Just a mp4 here}
+ \centering
+ \movie[width=0.3\textwidth]{\includegraphics[width=0.9\textwidth]{frame1.png}}{movie.mp4}
+
+ \movie[width=0.3\textwidth]{}{animation.gif}
+
+ \movie[width=0.3\textwidth]{}{ding.ogg}
+\end{frame}
+```
+
+If you desire autoplay, ensure you have pympress ≥ 1.7.0 and poppler ≥ 21.04, and use the `movie15` package as follows:
+
+```latex
+\documentclass{beamer}
+\usepackage{movie15}
+\begin{document}
+
+\begin{frame}
+ \begin{center}
+ \includemovie[attach=false,autoplay,text={%
+ \includegraphics{files/mailto.png}%
+ }]{0.4\linewidth}{0.3\linewidth}{files/random.mpg}
+ \end{center}
+\end{frame}
+
+\end{document}
+```
+
+# Dependencies
+
+Pympress relies on:
+* Python (version ≥ 3.4, python 2.7 is supported only until pympress 1.5.1, and 3.x < 3.4 until v1.6.4).
+* [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)
+ and the [python-vlc](https://pypi.org/project/python-vlc/) bindings.
+* optionally Gstreamer to play videos (which is a Gtk library)
+
+### 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*:
+
+```sh
+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:
+
+```sh
+zypper install 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 CentOS/RHEL/Fedora the dependencies would be:
+
+```sh
+yum install python36 python3-pip gtk3 poppler-glib cairo gdk-pixbuf2 python3-gobject python3-cairo
+```
+
+And on Arch Linux:
+
+```sh
+pacman -S --needed python python-pip gtk3 poppler cairo gobject-introspection poppler-glib python-gobject gst-plugin-gtk
+```
+
+
+### On macOS
+
+Dependencies can be installed using [Homebrew](https://brew.sh/):
+
+```sh
+brew install --only-dependencies pympress
+```
+
+### 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.
+
+ ```sh
+ 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+.
+A [number of contributors](https://github.com/Cimbali/pympress/graphs/contributors) have taken part in the development of pympress and submitted pull requests to improve it.
+
+**Be respectful of everyone and keep this community friendly, welcoming, and harrasment-free.
+Abusive behaviour will not be tolerated, and can be reported by email at me@cimba.li − wrongdoers may be permanently banned.**
+
+Pympress has inline sphinx documentation ([Google style](http://www.sphinx-doc.org/en/latest/ext/example_google.html), contains rst syntax), and the [docs generated from it are hosted on the github pages of this repo](https://pympress.github.io/).
+
+## Translations
+
+![Chinese (simplified)](https://img.shields.io/poeditor/progress/301055/zh-Hans?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28simplified%29)
+![Chinese (traditional)](https://img.shields.io/poeditor/progress/301055/zh-Hant?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%B3%20Chinese%20%28traditional%29)
+![Czech](https://img.shields.io/poeditor/progress/301055/cs?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A8%F0%9F%87%BF%20Czech)
+![Hindi](https://img.shields.io/poeditor/progress/301055/hi?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B3%20Hindi)
+![Italian](https://img.shields.io/poeditor/progress/301055/it?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AE%F0%9F%87%B9%20Italian)
+![Japanese](https://img.shields.io/poeditor/progress/301055/ja?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AF%F0%9F%87%B5%20Japanese)
+![Polish](https://img.shields.io/poeditor/progress/301055/pl?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%B5%F0%9F%87%B1%20Polish)
+![French](https://img.shields.io/poeditor/progress/301055/fr?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AB%F0%9F%87%B7%20French)
+![German](https://img.shields.io/poeditor/progress/301055/de?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%A9%F0%9F%87%AA%20German)
+![Spanish](https://img.shields.io/poeditor/progress/301055/es?token=7a666b44c0985d16a7b59748f488275c&label=%F0%9F%87%AA%F0%9F%87%B8%20Spanish)
+<!-- https://poeditor.com/docs/languages -->
+
+We thank the many contributors of translations: <!-- translator list -->
+Agnieszka,
+atsuyaw,
+Cherrywoods,
+Dongwang,
+Estel-f,
+Fabio Pagnotta,
+Ferdinand Fichtner,
+Frederik. blome,
+FriedrichFröbel,
+He. yifan. xs,
+Jaroslav Svoboda,
+Jeertmans,
+Kristýna,
+Leonvincenterd,
+LogCreative,
+Lorenzo. pacchiardi,
+Luis Sibaja,
+Marcin Dohnalik,
+marquitul,
+Morfit,
+Mzn,
+Nico,
+Ogawa,
+Paul,
+Pierre BERTHOU,
+polaksta,
+Saulpierotti,
+Shebangmed,
+susobaco,
+Tapia,
+Tejas,
+Timo Zhang,
+Tkoyama010,
+Toton95,
+Vojta Netrh,
+Vulpeculus,
+and <!-- last translator --> Cimbali.
+
+If you also want to add or contribute to a translation, check [pympress’ page on POEditor](https://poeditor.com/join/project/nKfRxeN8pS).
+Note that old strings are kept and tagged `removed`, to give context and keep continuity between translations of succcessive versions.
+This means `removed` strings are unused and do not need translating.
+
+## 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 (see [Install section](#installing-)). Any additions welcome.
+
+
+%prep
+%autosetup -n pympress-1.8.2
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-pympress -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Thu May 18 2023 Python_Bot <Python_Bot@openeuler.org> - 1.8.2-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..9c73449
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+b8a87b4d185f61c4c3346b0e1050515e pympress-1.8.2.tar.gz