Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gregorykogan/universal-home-builder
Build your home directory brick by brick
https://github.com/gregorykogan/universal-home-builder
configuration declarative dotfiles dotfiles-linux dotfiles-macos dotfiles-manager home-manager python3 toml
Last synced: 1 day ago
JSON representation
Build your home directory brick by brick
- Host: GitHub
- URL: https://github.com/gregorykogan/universal-home-builder
- Owner: GregoryKogan
- License: gpl-3.0
- Created: 2024-05-08T21:42:26.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-05-15T16:04:24.000Z (6 months ago)
- Last Synced: 2024-05-17T03:04:23.660Z (6 months ago)
- Topics: configuration, declarative, dotfiles, dotfiles-linux, dotfiles-macos, dotfiles-manager, home-manager, python3, toml
- Language: Python
- Homepage:
- Size: 41 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# universal-home-builder
## Installation
### Dependencies
This is a python script, so the only dependecy is `python3`.
### Download
Just clone the repo
```shell
git clone https://github.com/GregoryKogan/universal-home-builder.git ~/uhb
```## Usage
Inspired by nix's home-manager.
[example](https://github.com/GregoryKogan/dotfiles)With universal-home-builder you can configure your home directory with `.toml` files. **Each** file may have these options:
```toml
# import other toml files to make the whole system modular.
imports = [
"../modules/alacritty/config.toml"
]# symlink any files or directories. `dest` path is relative to home directory.
files = [
{src="zshrc-conf", dest=".zshrc"},
{src="../images", dest=".config/images"}
][scripts]
# build scripts run on each rebuild
build = ["install_software"]
# user scripts get symlinked to ~/.bin/. You should add it to your path to be able to run them by name.
user = ["say-hello"]
```### Run
Run `build` script with a single argument of a path to the entry point `.toml` file.
For example:```shell
~/uhb/build ~/dotfiles/hosts/arch.toml
```