Metadata-Version: 2.4
Name: dotfiles-installer
Version: 0.1.0
Summary: A CLI tool to install dotfiles configurations from YAML
Project-URL: Homepage, https://github.com/riceriley59/dotfiles
Project-URL: Repository, https://github.com/riceriley59/dotfiles
Project-URL: Issues, https://github.com/riceriley59/dotfiles/issues
Author-email: Riley Rice <riceriley59@gmail.com>
License-Expression: Apache-2.0
License-File: LICENSE
Keywords: automation,cli,configuration,dotfiles,setup
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: pyyaml>=6.0
Provides-Extra: dev
Requires-Dist: mypy>=1.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=7.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

# dotfiles

[![PyPI version](https://badge.fury.io/py/dotfiles-installer.svg)](https://pypi.org/project/dotfiles-installer/)
[![CI](https://github.com/riceriley59/dotfiles/actions/workflows/ci.yaml/badge.svg)](https://github.com/riceriley59/dotfiles/actions/workflows/ci.yaml)
[![Coverage Status](https://coveralls.io/repos/github/riceriley59/dotfiles/badge.svg?branch=main)](https://coveralls.io/github/riceriley59/dotfiles?branch=main)
[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)

A CLI tool to install dotfiles configurations from YAML. Includes personal configs for Neovim, Tmux, Zsh, Ghostty, Kitty, i3, and Polybar.

## Installation

### From PyPI

```bash
pip install dotfiles-installer

# macOS
dotfiles configs/mac.yaml

# Linux
dotfiles configs/linux.yaml
```

### From Source

```bash
git clone https://github.com/riceriley59/dotfiles.git
cd dotfiles
pip install -e .

# macOS
dotfiles configs/mac.yaml

# Linux
dotfiles configs/linux.yaml
```

## Structure

```
├── configs/          # YAML configs (mac.yaml, linux.yaml)
├── dotfiles/         # Installer CLI package
├── files/            # Dotfiles to install
│   ├── config/       # ~/.config/* (nvim, ghostty, kitty, i3, polybar)
│   ├── zsh/          # ~/.zshrc, ~/.zsh_profile
│   ├── tmux/         # ~/.tmux.conf
│   └── bin/          # ~/.local/scripts
└── tests/            # Test suite
```

## What Gets Installed

| Config   | Destination | Notes |
|----------|-------------|-------|
| zsh      | `$HOME` | Requires [oh-my-zsh](https://ohmyz.sh/) |
| tmux     | `$HOME` | Requires [TPM](https://github.com/tmux-plugins/tpm) |
| nvim     | `~/.config/nvim` | Requires ripgrep |
| ghostty  | `~/.config/ghostty` | |
| kitty    | `~/.config/kitty` | |
| scripts  | `~/.local/scripts` | Requires fzf |
| i3       | `~/.config/i3` | Linux only |
| polybar  | `~/.config/polybar` | Linux only |

## Development

```bash
pip install -e ".[dev]"
pytest
```
