Skip to main content

TL;DR: Automatically deploy dotfiles. Grouped into modules with dynamic behaviour.

What does it do?

Astrality is a flexible tool for managing configuration files, inspired by GNU Stow and Ansible.

Let’s begin with a list of some of Astrality’s key features:

  • Manage and deploy configuration files according to a central YAML config file.

  • Group related configuration into modules.

  • Conditionally enable modules based on environment variables, OS, installed programs and shell commands.

  • Copy and/or symlink files.

  • Execute shell commands.

  • Compile Jinja2 templates templates to target destinations.

  • Dynamically manipulate context values used during jinja2 compilation.

  • Automatically re-deploy dotfiles when source content is modified.

  • Subscribe to pre-defined events, such as local daylight, and execute actions accordingly.

  • Fetch modules from GitHub.

  • Restore files created and/or overwritten by modules.

Take a look at the tutorial for managing a dotfile repository, or see the full documentation for all available functionality. Feel free to drop by our Gitter room when getting started.

Here is gif demonstrating how Astrality is used to:

  1. Automatically change the desktop wallpaper based on the sun’s position in the sky.

  2. Dynamically change the font size, and implicitly the bar height, of polybar.

  3. Simultaneously change the color scheme of alacritty, kitty, and polybar at the same time.

https://user-images.githubusercontent.com/10655778/36535609-934488ec-17ca-11e8-860e-4af5e1464997.gif

Getting started

Prerequisites

Astrality requires python 3.6 or greater. Check your version by running python --version.

Installation

astrality-git is published on the AUR for ArchLinux users. Otherwise, you can install Astrality using pip:

Create a new virtualenv for python 3.6 (or use your system python 3.6 if you prefer). Install Astrality from PyPI like so:

$ python3.6 -m pip install astrality

You should now be able to start astrality from your command line, but first, let us create an example configuration:

$ astrality --create-example-config

Take a look at the generated example configuration at ~/.config/astrality. Now start astrality:

$ astrality

Configuration and further documentation

I recommend taking a look at the full documentation of Astrality hosted at Read the Docs.

Metadata

Release files for astrality 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for astrality 1.1.1
File Size Uploaded
astrality-1.1.1.tar.gz 2.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for astrality 1.1.1
File Interpreter ABI Platform
astrality-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 5.3 MB

Release files / astrality-1.1.1.tar.gz

Download URL astrality-1.1.1.tar.gz
Size 2.6 MB
Tags Source
SHA-256 checksum
How to use checksums
7df694b7a970ad38203e82b2e300194a1f3d1a89c6b4e512a7ebafd2901b8103
BLAKE2b-256 checksum
How to use checksums
e233a6ba106faa0ade9a89c06801e4a9172640c3aaa373b37c2c2baff4efdbfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

Release files / astrality-1.1.1-py3-none-any.whl

Download URL astrality-1.1.1-py3-none-any.whl
Size 2.7 MB
Tags Python 3
SHA-256 checksum
How to use checksums
eccec3d8a21223a2cd0ec6439bef67eb1bd4ba98b7a3128c3c5c7e80304d4dcb
BLAKE2b-256 checksum
How to use checksums
3ffb221186a6b8fa8112702abbc5faff33013e1eda68b906c50be774dd0947f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.6

2 release files

0.5.5

2 release files

0.5.4

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4

2 release files

0.3

2 release files

0.2

2 release files

0.1

2 release files

0.0.16

1 release file

0.0.15

1 release file

0.0.14

1 release file

0.0.13

1 release file

0.0.12

1 release file

0.0.11

1 release file

0.0.10

1 release file

0.0.9

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page