Modify README
This commit is contained in:
53
README.md
53
README.md
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
This repository contains my personal dotfiles, managed using [GNU Stow](https://www.gnu.org/software/stow/).
|
This repository contains my personal dotfiles, managed using [GNU Stow](https://www.gnu.org/software/stow/).
|
||||||
|
|
||||||
Instead of a custom installation script, configurations are organized into logical "packages". Using `stow` ensures that all configuration files are cleanly symlinked into your home directory, mirroring the structure inside the package folder.
|
Using `stow` ensures that all configuration files are cleanly symlinked into your home directory, mirroring the structure of this repository.
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
@@ -27,52 +27,47 @@ sudo pacman -S stow
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
To install a specific package (e.g., `nvim`), navigate to the root of this repository and run:
|
To install all configurations at once, navigate to the root of this repository and run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
stow nvim
|
stow .
|
||||||
```
|
|
||||||
|
|
||||||
To install all standard packages at once, run:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
stow bash zsh nvim starship tmux
|
|
||||||
```
|
```
|
||||||
|
|
||||||
This will automatically create the necessary symlinks in your `$HOME` directory pointing to the files in this repository.
|
This will automatically create the necessary symlinks in your `$HOME` directory pointing to the files in this repository.
|
||||||
|
|
||||||
### Removing a Package
|
### Removing Configurations
|
||||||
|
|
||||||
If you want to remove the symlinks for a specific package, use the `-D` flag:
|
If you want to remove the symlinks created by Stow, use the `-D` flag:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
stow -D nvim
|
stow -D .
|
||||||
```
|
```
|
||||||
|
|
||||||
## Directory Structure
|
## Directory Structure
|
||||||
|
|
||||||
To keep things modular and easy to manage, each folder acts as a "package" that represents an application or environment. The folder structure *inside* the package strictly mirrors its target destination relative to the home (`~/`) directory.
|
The folder structure directly mirrors its target destination relative to the home (`~/`) directory.
|
||||||
|
|
||||||
```text
|
```text
|
||||||
.
|
.
|
||||||
├── bash/
|
├── .bashrc # Symlinked to ~/.bashrc
|
||||||
│ └── .bashrc # Symlinked to ~/.bashrc
|
├── .config/ # Symlinked to ~/.config/
|
||||||
├── nvim/
|
│ ├── alacritty/
|
||||||
│ └── .config/
|
│ ├── kitty/
|
||||||
│ └── nvim/ # Symlinked to ~/.config/nvim/
|
│ ├── nvim/
|
||||||
├── starship/
|
│ ├── starship.toml
|
||||||
│ └── .config/
|
│ └── ...
|
||||||
│ └── starship.toml # Symlinked to ~/.config/starship.toml
|
├── .fonts/ # Symlinked to ~/.fonts/
|
||||||
├── tmux/
|
├── .tmux.conf # Symlinked to ~/.tmux.conf
|
||||||
│ ├── .tmux.conf # Symlinked to ~/.tmux.conf
|
├── .tmux.conf.local # Symlinked to ~/.tmux.conf.local
|
||||||
│ └── .tmux.conf.local # Symlinked to ~/.tmux.conf.local
|
├── .vimrc # Symlinked to ~/.vimrc
|
||||||
└── zsh/
|
├── .zshrc # Symlinked to ~/.zshrc
|
||||||
└── .zshrc # Symlinked to ~/.zshrc
|
├── scripts/ # Symlinked to ~/scripts/
|
||||||
|
├── shell/ # Symlinked to ~/shell/
|
||||||
|
└── wezterm.lua # Symlinked to ~/wezterm.lua
|
||||||
```
|
```
|
||||||
|
|
||||||
### Adding New Configurations
|
### Adding New Configurations
|
||||||
|
|
||||||
When you want to add a new tool:
|
When you want to add a new tool:
|
||||||
1. Create a new directory for it (e.g., `wezterm`).
|
1. Replicate the target directory structure inside this repository (e.g., `.config/new_tool/config.toml`).
|
||||||
2. Replicate the target directory structure inside this new folder (e.g., `wezterm/.config/wezterm/wezterm.lua`).
|
2. Run `stow .` from the root of this repository to link the new files.
|
||||||
3. Run `stow wezterm` from the root of this repository.
|
|
||||||
|
|||||||
Reference in New Issue
Block a user