Skip to content

Commit 38fea52

Browse files
committed
Add readme
1 parent e74af14 commit 38fea52

1 file changed

Lines changed: 132 additions & 0 deletions

File tree

README.md

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# Josh's Dotfiles
2+
3+
A personal dotfiles repository managed by [chezmoi](https://www.chezmoi.io/), for managing configuration files across multiple machines.
4+
5+
## Overview
6+
7+
This repository contains configuration files for:
8+
- **Bash shell** - Shell configuration and aliases
9+
- **Git** - Git configuration and global gitignore
10+
- **Neovim** - Neovim editor setup (NvChad configuration included)
11+
- **Environment variables** - Custom environment setup
12+
13+
## Installation
14+
15+
### Prerequisites
16+
- [chezmoi](https://www.chezmoi.io/install/) installed on your machine
17+
- Git installed
18+
19+
### Quick Start
20+
21+
Initialize chezmoi with this repository:
22+
23+
```bash
24+
chezmoi init --apply https://github.com/joshjavier/dotfiles.git
25+
```
26+
27+
This will:
28+
1. Clone the repository to `~/.local/share/chezmoi`
29+
2. Apply all configurations to your home directory
30+
31+
If you don't want to apply all configurations automatically, remove the `--apply` flag.
32+
33+
### Manual Application
34+
35+
If you already have the repository cloned:
36+
37+
```bash
38+
chezmoi apply
39+
```
40+
41+
Or if you want to apply certain configs only:
42+
43+
```bash
44+
chezmoi apply ~/.bashrc
45+
chezmoi apply ~/.config/nvim
46+
```
47+
48+
## File Structure
49+
50+
```
51+
.
52+
├── dot_bashrc # Bash shell configuration
53+
├── dot_gitconfig # Git configuration
54+
├── dot_gitignore_global # Global Git ignore rules
55+
├── dot_env # Environment variables
56+
├── dot_config/ # User config directory (~/.config)
57+
│ ├── nvim/ # Neovim configuration
58+
│ └── nvim-nvchad/ # NvChad plugin configuration
59+
└── executable_dot_azotebg # Custom executable script
60+
```
61+
62+
### Dotfile Naming Convention
63+
64+
Files prefixed with `dot_` map to `~/.` in your home directory:
65+
- `dot_bashrc``~/.bashrc`
66+
- `dot_gitconfig``~/.gitconfig`
67+
- `dot_config/``~/.config/`
68+
69+
Files prefixed with `executable_` are installed with executable permissions.
70+
71+
## Usage
72+
73+
### Update Configurations
74+
75+
Edit files directly in this repository:
76+
77+
```bash
78+
chezmoi edit ~/.bashrc # Edit bashrc
79+
chezmoi edit ~/.gitconfig # Edit gitconfig
80+
```
81+
82+
### Apply Changes
83+
84+
After editing, apply changes to your home directory:
85+
86+
```bash
87+
chezmoi apply
88+
```
89+
90+
### View What Changed
91+
92+
Preview changes before applying:
93+
94+
```bash
95+
chezmoi diff
96+
```
97+
98+
### Adding Updates to Chezmoi
99+
100+
Alternatively, what I like to do is update the config files directly, then add the changes to chezmoi.
101+
For example, I update my neovim config directly, add the changes to chezmoi:
102+
103+
```bash
104+
chezmoi add ~/.config/nvim
105+
```
106+
107+
and then commit the changes to my dotfiles repo.
108+
109+
### Manage Multiple Machines
110+
111+
chezmoi supports machine-specific configurations. Use templating for machine-specific settings:
112+
113+
```bash
114+
chezmoi add --template ~/.bashrc
115+
```
116+
117+
## Features
118+
119+
- **Git integration** - Full git configuration and global ignore rules
120+
- **Shell aliases** - Custom aliases for ls and grep with color
121+
- **Git prompt** - Bash prompt shows current git branch
122+
- **History search** - Arrow keys search through bash history
123+
- **Neovim setup** - NvChad configuration for a modern vim experience
124+
- **Environment management** - Load custom environment variables from `~/.env`
125+
126+
## Contributing
127+
128+
Personal dotfiles repository. For use across your machines.
129+
130+
## License
131+
132+
Personal use only.

0 commit comments

Comments
 (0)