116 lines
2.5 KiB
Markdown
Executable file
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"
|
|
```
|