An open API service indexing awesome lists of open source software.

https://github.com/caesar0301/dotfiles

Personal collection of dotfiles and configurations.
https://github.com/caesar0301/dotfiles

Last synced: 2 months ago
JSON representation

Personal collection of dotfiles and configurations.

Awesome Lists containing this project

README

          

# cool-dotfiles

Personal collection of dotfiles for a modern development environment.

![Screenshot](assets/screenshot.png)

## Quick Start

Clone this repository:

```bash
git clone --depth=1 https://github.com/caesar0301/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
```

## Installation Options

### Basic Installation (Recommended)

Install essential components: Zsh, development tools, Tmux, and Neovim:

```bash
./install_basics.sh
```

This automatically installs essential development tools (pyenv, fzf, ctags, cargo, Homebrew, utility scripts) as a prerequisite before installing other components.

### Full Installation

Install all modules including Emacs, Vifm, and misc configurations:

```bash
./install_all.sh
```

This automatically installs essential development tools with **optional version managers enabled** as a prerequisite before installing other components. AI code agents are always enabled by default (when supported by the system).

### Installation Flags

| Flag | Description |
|------|-------------|
| `-s` | Use symlinks (default) |
| `-f` | Force copy instead of symlinks |
| `-c` | Clean/remove configurations |
| `-m` | Install only selected modules/components (see examples below) |

## Modules

| Module | Description | Documentation |
|--------|-------------|---------------|
| `zsh/` | Zsh shell configuration with Zinit | [README](zsh/README.md) |
| `nvim/` | Neovim configuration with LSP support | [README](nvim/README.md) |
| `tmux/` | Tmux terminal multiplexer | [README](tmux/README.md) |
| `emacs/` | Emacs configuration | [README](emacs/README.md) |
| `vifm/` | Vi file manager | - |
| `misc/` | Kitty + Alacritty terminal configs, SBCL completions | - |

**Note:** Essential development tools (pyenv, fzf, ctags, cargo, Homebrew, utility scripts) are automatically installed as a prerequisite when running `install_basics.sh` or `install_all.sh`. Run `./lib/install-essentials.sh --help` or check the script header for usage details.

## Install Individual Modules

```bash
# Essential development tools (installed automatically as prerequisite)
# Can be run standalone to install/update essentials
./lib/install-essentials.sh

# Zsh configuration
sh zsh/install.sh

# Neovim (automatically installs essentials as prerequisite)
sh nvim/install.sh

# Tmux
sh tmux/install.sh

# Emacs
sh emacs/install.sh
```

### Targeted Installation Examples

```bash
# Full installer: install only selected components
./install_all.sh -m zsh,tmux,nvim

# Misc installer: install only selected misc modules
./misc/install.sh -m kitty,alacritty
```

## Optional Features

Essential development tools support optional features that can be enabled via environment variables:

```bash
# Install Java/Go/Node version managers
INSTALL_EXTRA_VENV=1 ./lib/install-essentials.sh
```

AI code agents are installed by default (when Node.js and npm are recent enough)
whenever `./lib/install-essentials.sh`, `./install_basics.sh`, or `./install_all.sh`
is run.

**Note:** `./install_all.sh` automatically enables `INSTALL_EXTRA_VENV=1` when
installing essentials as a prerequisite. `./install_basics.sh` uses default
settings (no extra version managers).

## Utility Scripts

The `dotme-xxx` series of custom tools are installed to `~/.local/bin`:

| Script | Description |
|--------|-------------|
| `dotme-google-java-format` | Enhanced Google Java Format wrapper |
| `dotme-gpg` | GPG helper with key alias support |
| `dotme-decrypt-zshenv` | Decrypt local environment files |
| `dotme-install-python` | Python installation helper |
| `dotme-rsync-parallel` | Parallel rsync wrapper |
| `dotme-run-container` | Docker container runner |

See [bin/README.md](bin/README.md) for detailed documentation.

## Network Proxy Setup (Mihomo in Docker)

A Docker-based Mihomo setup (without TUN mode) is available at `setups/mihomo`:

```bash
cd setups/mihomo
./start.sh -c ~/.config/mihomo
```

See [setups/mihomo/README.md](setups/mihomo/README.md) for details.

## License

MIT License