Metadata-Version: 2.4
Name: machineconfig
Version: 7.55
Summary: Dotfiles management package
Author-email: Alex Al-Saffar <programmer@usa.com>
License: Apache 2.0
Project-URL: Homepage, https://github.com/thisismygitrepo/machineconfig
Project-URL: Bug Tracker, https://github.com/thisismygitrepo/machineconfig/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.13
Description-Content-Type: text/markdown
Requires-Dist: cryptography>=44.0.2
Requires-Dist: fire>=0.7.0
Requires-Dist: joblib>=1.5.2
Requires-Dist: paramiko>=3.5.1
Requires-Dist: randomname>=0.2.1
Requires-Dist: requests>=2.32.5
Requires-Dist: rich>=14.0.0
Requires-Dist: tenacity>=9.1.2
Requires-Dist: psutil>=7.0.0
Requires-Dist: gitpython>=3.1.44
Requires-Dist: pyfzf>=0.3.1
Requires-Dist: rclone-python>=0.1.23
Requires-Dist: questionary>=2.1.1
Requires-Dist: typer-slim>=0.19.2
Requires-Dist: typer>=0.19.2
Provides-Extra: windows
Requires-Dist: pywin32; extra == "windows"
Provides-Extra: plot
Requires-Dist: sqlalchemy>=2.0.43; extra == "plot"
Requires-Dist: ipykernel>=6.30.1; extra == "plot"
Requires-Dist: ipython>=9.5.0; extra == "plot"
Requires-Dist: jupyterlab>=4.4.9; extra == "plot"
Requires-Dist: kaleido>=1.1.0; extra == "plot"
Requires-Dist: matplotlib>=3.10.6; extra == "plot"
Requires-Dist: nbformat>=5.10.4; extra == "plot"
Requires-Dist: numpy>=2.3.3; extra == "plot"
Requires-Dist: plotly>=6.3.0; extra == "plot"
Requires-Dist: polars>=1.33.1; extra == "plot"
Requires-Dist: python-magic>=0.4.27; extra == "plot"


<p align="center">

<a href="https://github.com/thisismygitrepo/machineconfig/commits">
<img src="https://img.shields.io/github/commit-activity/m/thisismygitrepo/machineconfig" />
</a>

</p>


# Welcome to machineconfig

Machineconfig is a package for managing configuration files (aka dotfiles). The idea is to collect those critical, time-consuming-files-to-setup in one directory and reference them via symbolic links from their original locations. Thus, when a new machine is to be setup, all that is required is to clone the repo in that machine and create the symbolic links.
Dotfiles are divided into private and public. Examples of private ones are, `~/.gitconfig`, `~/.ssh`, etc. Whereas public config files are ones like `lfrc`. The private dotfiles are placed @ `~/dotfiles`. The files therein are encrypted before backedup.

# Install On Windows:

```powershell
# install tool the tool only:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"  # Skip if UV is already installed
uv tool install --upgrade --python 3.14 machineconfig
# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
iex (iwr bit.ly/cfgwindows).Content  # Or, if UV is installed: iex (uvx machineconfig define)
# Quick install and configure (optionals are accepted by default):
iex (iwr bit.ly/cfgwq).Content
```

# Install On Linux and MacOS

```bash
# install tool the tool only:
curl -LsSf https://astral.sh/uv/install.sh | sh  # Skip if UV is already installed
uv tool install --upgrade --python 3.14 machineconfig
# interactive install of machineconfig and following on to run it and make basic machine configuration (RECOMMENDED):
. <(curl -L bit.ly/cfglinux) # Or, if UV is installed: . <(uvx machineconfig define)
```


# Author
Alex Al-Saffar. [email](mailto:programmer@usa.com)

# Contributor
Ruby Chan. [email](mailto:ruby.chan@sa.gov.au)


[![Alex's github activity graph](https://github-readme-activity-graph.vercel.app/graph?username=thisismygitrepo)](https://github.com/ashutosh00710/github-readme-activity-graph)

