Skip to main content

Alacritty time/sun based theme switch daemon

Project description

PyPI version AUR version

Alacritty Circadian

A cross-platform time based alacritty theme switcher inspired by the excellent circadian.el Emacs package by guidoschmidt, written in Python.

Installation

The package can be installed from multiple sources (other than Git releases):

Pip

$ pip install alacritty-circadian 

AUR

Using the yay AUR wrapper:

$ yay alacritty-circadian

This will also install the required system services, which have to be added manually when installing from pip. Read below for more info.

Git

Either download the release, or just clone the head. Then, cd into the directory and install the package locally.

$ python -m build
$ pip install .

You'll find some example config files in docs/

Note: the package has been made with setuptools and build

Configuration

The program parses a YAML file named circadian.yaml in ~/.config/alacritty/circadian.yaml.

It has the following fields:

#
# Choose whatever folder you like to store the themes
#
# If you are a *NIX user:
theme-folder: ~/.config/alacritty/themes
#
# If you are a WINDOWS user:
# Remember to escape special chars for Windows paths and surround them
# with double quotes if you are using environment variables, e.g.:
theme-folder: "%APPDATA%\\alacritty\\themes"

#
# If you want to use sun phases instead of time, put your coordinates in the
# config file:
coordinates:
  latitude: 40.684485
  longitude: -74.401383

# Themes are an associative array of the following format.
# Theme names MUST NOT use file extensions.
#
# 'time' values can either be:
#   - an HH:MM time format
#   - one of the following sun phases:
#       * dawn
#       * sunrise
#       * noon
#       * sunset
#       * dusk
themes:
  - time: sunset
    name: tokyo-night
  - time: 7:00
    name: pencil-light

Theme format

All themes should use the format commonly used for alacritty themes:

# Colors
colors:
  # Default Colors
  primary:
    background: '0xf1f1f1'
    foreground: '0x424242'
  # Normal colors
  normal:
    black:   '0x212121'
    ...

    # Other alacritty compatible fields

You can find a comprehensive list of them at alacritty-theme.

Usage

To start the service just run the CLI script:

$ alacritty-circadian

System Services

The intended way to use the utility is via a system service.

Linux (Systemd)

On a systemd init Linux this is attainable by adding the following service file to ~/.config/systemd/user/alacritty-circadian.service:

[Unit]
Description=Alacritty automatic theme switch

[Service]
ExecStart=alacritty-circadian

[Install]
WantedBy=default.target

Installing via the AUR will automate this process for you, leaving you to just enable the system services.

$ systemctl --user enable alacritty-circadian.service
$ systecmtl --user start alacritty-circadian.service

Windows (shell:startup)

Included in the releases are .exe binaries to use as a startup application, just download one and add a shortcut to it in the Startup Windows folder (Win + R 'shell:startup' to open it). After that you'll be able to see it in your task manager.

MacOS (launchd)

It should be quite easy to add a launchd service in ~/Library/LaunchAgents although you'll have to provide your own service file (i don't own a Mac).

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

alacritty-circadian-0.9.8.tar.gz (16.2 MB view details)

Uploaded Source

Built Distribution

alacritty_circadian-0.9.8-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file alacritty-circadian-0.9.8.tar.gz.

File metadata

  • Download URL: alacritty-circadian-0.9.8.tar.gz
  • Upload date:
  • Size: 16.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

File hashes

Hashes for alacritty-circadian-0.9.8.tar.gz
Algorithm Hash digest
SHA256 2366a11c149f0190dcf620ce82944252eb425e27185e47aa69e905ffae1c69ed
MD5 ada88e3c263ad883d64db1640dedafe3
BLAKE2b-256 cadbb550515d96bf5f2cdc3f43d0dc24885fd5b46b8925d9b63e9738cf813434

See more details on using hashes here.

File details

Details for the file alacritty_circadian-0.9.8-py3-none-any.whl.

File metadata

  • Download URL: alacritty_circadian-0.9.8-py3-none-any.whl
  • Upload date:
  • Size: 10.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.7

File hashes

Hashes for alacritty_circadian-0.9.8-py3-none-any.whl
Algorithm Hash digest
SHA256 b7da4b1151e9b6acf24a949b40af4fb929b136351f4606303f84a6f8aca7d25a
MD5 fc17da8fc16315c0b219a0a37e6672bb
BLAKE2b-256 2733686de17dffff838aea0b795742b7751338ba8c9d174213c8c562562a40bc

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