.dotfiles/README.md
2023-11-25 02:18:37 -05:00

116 lines
2.5 KiB
Markdown
Executable file

# Dotfiles
This repository contains my personal dotfiles. These configurations are tailored to suit my development environment and preferences.
## Repository Structure
- **bash**: Bash shell configurations.
- **bin**: Custom scripts and binaries.
- **nvim**: Neovim editor configurations.
- **tmux**: Tmux terminal multiplexer configurations.
- **git**: Git configurations.
- **skhd**: Skhd configurations.
- **yabai**: Yabai window manager configurations.
- **conda**: Conda configurations.
- **dask**: Dask configurations.
- **gh**: GitHub CLI configurations.
- **jupyter**: Jupyter configurations.
- **parallel**: GNU Parallel configurations.
- **tox**: Tox configurations.
- ... (add more directories as needed)
Feel free to extend the list of directories as your dotfiles collection evolves. Each directory is organized to hold specific configurations for various tools and utilities in your development environment.
## Setup
To use these dotfiles on your system:
1. **Clone the repository to your home directory:**
```bash
git clone https://github.com/your-username/.dotfiles.git ~/.dotfiles
cd ~/.dotfiles
```
2. **Run the setup script available in the repository.**
```bash
./setup.sh
```
## Installation Details
### Prerequisites
- **Git:** Ensure that Git is installed on your system.
```bash
if ! command -v git &> /dev/null; then
echo "Git is not installed. Aborting." >&2
exit 1
fi
```
### Submodules
Make sure to initialize and update any submodules:
```bash
git submodule init
git submodule update
```
## Stowing Configurations
The dotfiles are organized into categories:
### Base Configurations (Installable by All Users)
- zsh
- vim
- nvim
- tmux
- git
### User-Only Configurations (For Local Users)
- skhd (macOS Only)
- yabai (macOS Only)
- conda
- dask
- gh
- jupyter
- parallel
- tox
## Running Stow
To stow configurations, run the following commands for each directory:
```bash
echo "Stowing apps for user: ${USER}"
# Install apps available to local users and root
for app in "${base[@]}"; do
stowit "${HOME}" "${app}"
done
# Install useronly_macos folders only for macOS
if is_macos; then
for app in "${useronly_macos[@]}"; do
if [[ ! "$(whoami)" = "root" ]]; then
stowit "${HOME}" "${app}"
fi
done
fi
# Install useronly folders
for app in "${useronly[@]}"; do
if [[ ! "$(whoami)" = "root" ]]; then
stowit "${HOME}" "${app}"
fi
done
echo ""
echo "##### ALL DONE"
```