Code Monkey home page Code Monkey logo

alacritty-circadian's Introduction

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).

alacritty-circadian's People

Contributors

dr-dd avatar lyterk avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.