A collection of configuration files and setup scripts to replicate my development environment. This setup focuses on a terminal-centric workflow using Neovim, Tmux, and Zsh.
This repository manages configurations for:
- Neovim (
nvim/) - Clangd (
clangd/) - Tmux (
tmux/)
Below is a list of the tools included in this setup and why they are required.
| Tool | Purpose |
|---|---|
| Homebrew | The package manager used to install and manage the tools below. |
| Neovim | A hyperextensible Vim-based text editor. |
| Zsh | The default shell, configured for speed and interactivity. |
| Powerlevel10k | A fast, flexible, and visually pleasing Zsh theme. |
| fzf | Command-line fuzzy finder. Essential for navigating files and history quickly. |
| fd | A faster, user-friendly alternative to find. Used by Neovim for file searching. |
| bat | A cat clone with syntax highlighting and Git integration. |
| ripgrep | A line-oriented search tool that is significantly faster than grep. |
| eza | A modern replacement for ls with icons and colors. |
| lazygit | A simple terminal UI for git commands. |
| git-delta | A viewer for git and diff output with syntax highlighting. |
| Clang | Compiler front-end for C/C++, required for the LSP (clangd). |
| Tmux | Terminal multiplexer to manage sessions and split windows. |
| Shell Color Scripts | purely for aesthetics; prints random color scripts when the terminal opens. |
Follow these steps in order to set up a new system.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Install Neovim, shell utilities, and git enhancements.
brew install nvim fzf fd bat ripgrep eza lazygit git-deltaInstall Zsh using apt or other package manager system wide so that default shell can be changed. If installed using brew cannot be made default.
sudo apt install zshsh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"git clone --depth=1 https://github.com/romkatv/powerlevel10k.gitgit clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git] ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlightingZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-syntax-highlighting zsh-autosuggestions)This installs the latest stable version of LLVM/Clang.
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh <version>
# Example: sudo ./llvm.sh 17brew install tmuxgit clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmgit clone git@gitlab.com:dwt1/shell-color-scripts.git
cd shell-color-scripts
sudo make install
cd .. && rm -rf shell-color-scriptsOnce the tools are installed, link the configuration files from this repository to your system's ~/.config directory.
git clone https://github.com/csrohit/dotfiles.git ~/dotfiles# Ensure .config directory exists
mkdir -p ~/.config
# Neovim
ln -sf ~/dotfiles/nvim ~/.config/nvim
# Clangd
ln -sf ~/dotfiles/clangd ~/.config/clangd
# Tmux
# Creates the folder and links the config file specifically
mkdir -p ~/.config/tmux
ln -sf ~/dotfiles/tmux/tmux.conf ~/.config/tmux/tmux.conf- Tmux: Open a new tmux session (tmux) and press Prefix + I (default prefix is usually Ctrl+b or Ctrl+a) to install plugins.
- Neovim: Open nvim and let the package manager (Lazy.nvim or Packer) install dependencies.