Skip to main content

Protect your eyes from eye strain using this continuous breaks reminder.

Project description

Safe Eyes

Release PyPI version Debian AUR Flathub Translation status Awesome Humane Tech

Protect your eyes from eye strain using this simple and beautiful, yet extensible break reminder.

Visit the official site: https://slgobinath.github.io/SafeEyes/ for more details.

Safe Eyes command-line arguments

usage: safeeyes [-h] [-a | -d | -e | -q | -s | -t] [--debug] [--version]

Safe Eyes protects your eyes from eye strain (asthenopia) by reminding you to
take breaks while you're working long hours at the computer.

optional arguments:
  -h, --help        show this help message and exit
  -a, --about       show the about dialog
  -d, --disable     disable the currently running safeeyes instance
  -e, --enable      enable the currently running safeeyes instance
  -q, --quit        quit the running safeeyes instance and exit
  -s, --settings    show the settings dialog
  -t, --take-break  take a break now
  --debug           start safeeyes in debug mode
  --status          print the status of running safeeyes instance and exit
  --version         show program's version number and exit

Installation guide

Safe Eyes is available on the official repositories of many popular the distributions.

Packaging status

It is also available in Ubuntu PPA, Arch AUR, Gentoo and Python PyPI. You can choose any installation source and install on any Linux system with Python 3.

Ubuntu, Linux Mint and other Ubuntu Derivatives

The Official PPA for Safe Eyes hosts the latest version of safeeyes for Ubuntu 22.04 and above.

sudo add-apt-repository ppa:safeeyes-team/safeeyes
sudo apt update
sudo apt install safeeyes

On older versions of Ubuntu, an older version of Safe Eyes is available on the official repositories.

sudo apt install safeeyes

Arch

yay -S safeeyes

Gentoo

sudo emerge -av x11-misc/safeeyes

Debian

sudo apt-get install safeeyes

Fedora

sudo dnf install python3-psutil python3-packaging cairo-devel python3-devel gobject-introspection-devel cairo-gobject-devel
sudo pip3 install safeeyes
sudo gtk-update-icon-cache /usr/share/icons/hicolor

OpenSUSE Tumbleweed

sudo zypper refresh
sudo zypper install safeeyes

Alpine Linux

sudo apk add safeeyes

Flatpak

flatpak install flathub io.github.slgobinath.SafeEyes

Other Linux & Run from source

Ensure to meet the following dependencies:

  • gir1.2-notify-0.7
  • python3-babel
  • python3-croniter
  • python3-psutil
  • python3-packaging
  • python3-xlib
  • xprintidle (optional)
  • wlrctl (wayland optional)
  • Python 3.10+

To install Safe Eyes:

sudo pip3 install safeeyes

After installation, restart your system to update the icons,

To run from source:

git clone https://github.com/slgobinath/SafeEyes.git
cd SafeEyes
python3 -m safeeyes

Safe Eyes installers install the required icons to /usr/share/icons/hicolor. When you run Safe Eyes from source without, some icons may not appear.

Install in a virtual environment

Some Linux systems like CentOS do not have matching dependencies available in their repository. In such systems, you can install and use Safe Eyes in a Python virtual environment.

  1. Install the necessary dependencies for CentOS 7

    sudo yum install python3-devel dbus dbus-devel cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel gobject-introspection-devel cairo-gobject-devel
    
  2. Create a virtual environment in your home folder

    mkdir ~/safeeyes
    cd ~/safeeyes/
    
    python3 -m venv venv
    source venv/bin/activate
    pip3 install safeeyes
    
  3. Start Safe Eyes from the terminal

    cd ~/safeeyes & source venv/bin/activate
    python3 -m safeeyes
    

For more details, please check the issue: #329

Features

  • Remind you to take breaks with exercises to reduce RSI
  • Disable keyboard during breaks
  • Notification before and after breaks
  • Smart pause if system is idle
  • Multi-screen support
  • Customizable user interface
  • RPC API to control externally
  • Command-line arguments to control the running instance
  • Customizable using plug-ins

Third-party Plugins

Thirdparty plugins are available at another GitHub repository: safeeyes-plugins. More details about how to write your own plugin and how to install third-party plugin are available there.

How to Release?

  1. Run update-po.sh to generate new translation files (which will be eventually updated by translators). Commit and push the changes to the master branch.
  2. Checkout the latest commits from the master branch
  3. Run python3 -m safeeyes to make sure nothing is broken
  4. Update the Safe Eyes version in the following places (Open the project in VSCode and search for the current version):
  5. Update the changelog (for Ubuntu PPA release)
  6. Commit the changes to master
  7. Create a pull-request from master to release
  8. Merge the PR to release with merge commit (Important to merge with merge commit)

License

GNU General Public License v3

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

safeeyes-2.2.2.tar.gz (312.7 kB view details)

Uploaded Source

Built Distribution

safeeyes-2.2.2-py3-none-any.whl (469.0 kB view details)

Uploaded Python 3

File details

Details for the file safeeyes-2.2.2.tar.gz.

File metadata

  • Download URL: safeeyes-2.2.2.tar.gz
  • Upload date:
  • Size: 312.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.9

File hashes

Hashes for safeeyes-2.2.2.tar.gz
Algorithm Hash digest
SHA256 93f08dc4b49c6430978b02613f9aa1e470f95542a538b69857c202620cfa34a2
MD5 a6c96b88669af21f1a1149b4d223c4a7
BLAKE2b-256 e3494c40d9bf2e9162c23856750442c42f1198dafa42390e7159f320796077cd

See more details on using hashes here.

File details

Details for the file safeeyes-2.2.2-py3-none-any.whl.

File metadata

  • Download URL: safeeyes-2.2.2-py3-none-any.whl
  • Upload date:
  • Size: 469.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.9

File hashes

Hashes for safeeyes-2.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1752d64aa6f23ba2bad4951b7d8a944ef1b7b48b02097717ab97110305062a59
MD5 572adc919fa53da38a9f5069a680e847
BLAKE2b-256 6d011d64fd566e7933e50d1d04a8f838c3e8ef9e523378eb0c90fa83dc1236ac

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page