caffeine-ng 4.0.2
Tray bar app to temporarily inhibit screensaver and sleep mode.

Caffeine-ng
===========

.. image:: https://ci.codeberg.org/api/badges/WhyNotHugo/caffeine-ng/status.svg
  :target: https://ci.codeberg.org/WhyNotHugo/caffeine-ng/branches/main
  :alt: build status

.. image:: https://img.shields.io/pypi/v/caffeine-ng.svg
  :target: https://pypi.python.org/pypi/caffeine-ng
  :alt: version on pypi

.. image:: https://img.shields.io/pypi/l/caffeine-ng.svg
  :target: https://codeberg.org/WhyNotHugo/caffeine-ng/src/branch/main/LICENCE
  :alt: licence

Caffeine is a little daemon that sits in your systray, and prevents the
screensaver from showing up, or the system from going to sleep. It does so when
an application is fullscreened (eg: youtube), or when you click on the systray
icon (which you can do, when, eg: reading).

History
-------

Caffeing-ng (since 2014) started as a fork of `Caffeine 2.4`_, since the
original version dropped support for the systray icon in favour of only
automatic detection of fullscreen apps only, which turned to be a rather
`controversial`_ decision.

The intention of this fork is to also evolve on its own, not only fixing
issues, but also implemented missing features, when relevant.

Caffeine-ng was shortly know as Taurine, a play on its successor's name, since
taurine is a known stimulant, commonly found in energy drinks.  However, this
name did not last, since the artwork would not match adequately, and changing
it was undesirable.

.. _Caffeine 2.4: http://launchpad.net/caffeine/
.. _controversial: https://bugs.launchpad.net/caffeine/+bug/1321750

System requirements
-------------------

* Python 3.6 to 3.9 is required.

* ``caffeine-ng`` works with the following screensavers / screenlockers:

  * Anything that implements the ``org.freedesktop.ScreenSaver`` API (this
    includes KDE, amongst others)
  * gnome-screensaver
  * XSS
  * Xorg + DPMS
  * xautolock
  * xidlehook.

See ``setup.py`` for required python packages

Installation
------------

Generic installation
....................

To manually install caffeine-ng, run::

      python setup.py build
      sudo python setup.py install
      sudo glib-compile-schemas /usr/share/glib-2.0/schemas

Debian and derivatives
......................

First install all the required packages::

      apt install python-click python-ewmh python-setproctitle python-wheel python-xdg

And mark them auto if you wish::

      apt-mark auto python-click python-ewmh python-setproctitle python-wheel python-xdg

Then you need to build sources with::

      make clean
      make build

Create a package for your distribution::

      checkinstall --pkgname=caffeine-ng --pkgversion=3.4 --requires="python-click \(\>=0.6.2\),python-ewmh \(\>=0.1.4\),python-setproctitle \(\>=1.1.10\),python-wheel \(\>=0.29.0\),python-xdg \(\>=0.25\)" --conflicts="caffeine" --nodoc python ./setup.py install --install-layout=deb

Replace version string with correct version and append this command with
``--install=no`` should you wish to inspect created package before installing
it Replace ``python`` with ``python3`` in package names above if you wish to
build caffeine-ng with python 3

Replace ``python`` with ``python3`` in ``checkinstall`` invocation to use
specific python version to build caffeine-ng.

``checkinstall`` is available for various distributions, so you may follow
these steps adapting them to your distribution

ArchLinux
.........

On ArchLinux, caffeine-ng is available at the `AUR`_.

.. _AUR: https://aur.archlinux.org/packages/caffeine-ng/

Gentoo
......

Gentoo users may find `caffeine-ng <https://github.com/PF4Public/gentoo-overlay/tree/master/x11-misc/caffeine-ng>`_ in `::pf4public <https://github.com/PF4Public/gentoo-overlay>`_ Gentoo overlay

Instructions for packager
-------------------------

Generating a Python wheel for this will produce bogus results. Python wheels do
now allow for files outside python's site-packages (and things in /bin).

The Python ecosystem is deprecating the usage of `pip` and `setuptools` as
generic packaging tools. This project will likely migrate to `meson` in future,
which should ease shipping all the non-Python bits of it (desktop entry, icon,
translations, service files, etc).

Auto-start
----------

To have Caffeine-ng run on startup, add it to your System Settings => Startup
Programs list.

License
-------

Copyright (C) 2009 The Caffeine Developers
Copyright (C) 2014-2022 Hugo Osvaldo Barrera <hugo@barrera.io>

Caffeine-ng is distributed under the GNU General Public License, either version
3, or (at your option) any later version. See LICENCE for details.

The Caffeine-ng status icons are Copyright (C) 2014 mildmojo
(http://github.com/mildmojo), and distributed under the terms of the GNU Lesser
General Public License, either version 3, or (at your option) any later
version.  See LGPL.

The Caffeien-ng SVG shortcut icons are Copyright (C) 2009 Tommy Brunn
(http://www.blastfromthepast.se/blabbermouth), and distributed under the
terms of the GNU Lesser General Public License, either version 3, or (at
your option) any later version. See LGPL.

Hacking
-------

* To run: ``./bin/caffeine``
* To compile translations: ``./update_translations``

If you want to test out a translation without changing the language for the
whole session: "LANG=ru_RU.UTF-8 ./bin/caffeine" (Replace ru_RU.UTF-8
with whatever language you want to use. You will need to a language pack
for the specific language) Be aware that some stock items
will not be translated unless you log in with a given language.