My personal macOS dotfiles managed with GNU Stow.
Zsh configuration with Powerlevel10k. Neovim configuration with NvChad. Terminal emulator configs for Alacritty & Ghostty as well as Tmux configuration managed using TPM (Tmux Plugin Manager) with Gitmux and Catppuccin Tmux (Catppuccin theme for Tmux).
Finally, a Miniconda setup for Python environment (conda-env.yml)
Note
$HOMErefers to the user's home directory:/Users/your-username/or~.- Most configurations are now looked in for in
XDG_CONFIG_HOMEfollowing the XDG Base Directory Specification. XDG_CONFIG_HOMEdefaults to$HOME/.config/in this configuration.$(brew prefix <package>)returns the installation path of a Homebrew package (/opt/homebrew/opt/<package>on Mac).
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Install essential tools via Homebrew:
brew install \
git \
stow \
zsh \
neovim \
tmux \
fzf \
zoxide \
tree \
bash \
gawk \
coreutils \
gnu-sed \
git-lfs \
osx-cpu-temp \
btop \
bat \
eza \
vim --override-system-vi-
Clone the repository
git clone https://github.com/guntas-13/dotfiles.git $HOME/dotfiles cd $HOME/dotfiles
-
Set Zsh as the default shell
chsh -s $(which zsh)Restart your terminal for the changes to take effect.
-
Install Oh My Zsh
Install Oh My Zsh using the official installation script:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"When prompted, allow Oh My Zsh to set up the default configuration. You'll overwrite it in the next step.
-
Deploy dotfiles with Stow
cd $HOME/dotfiles stow --adopt .
After running
stow --adopt ., the following symlinks will be created:~/.zshrc -> ~/dotfiles/.zshrc ~/.p10k.zsh -> ~/dotfiles/.p10k.zsh ~/.config/nvim/ -> ~/dotfiles/.config/nvim/ ~/.config/alacritty/ -> ~/dotfiles/.config/alacritty/ ~/.config/tmux/ -> ~/dotfiles/.config/tmux/ ~/.config/ghostty/ -> ~/dotfiles/.config/ghostty/ -
Download Nerd Fonts
Download and install a Nerd Font from the Nerd Fonts repository or their website or use Homebrew:
brew install --cask font-<FONT NAME>-nerd-font
-
Download Alacritty and/or Ghostty
Visit Alacritty and/or Ghostty to download and install the latest release for macOS.
brew install --cask alacritty ghostty
-
Set up Conda environment
Download & Install from miniconda website or use the following commands:
# Download and install Miniconda curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh bash Miniconda3-latest-MacOSX-arm64.shInitialize conda (if not done during installation):
conda init zsh
Restart your terminal, then load the conda environment:
cd $HOME/dotfiles conda env create -f conda-env.yml conda activate <environment_name>
To update the
conda-env.ymlfile after installing new packages, run:conda env export --no-builds > $HOME/dotfiles/conda-env.yml
Important
Remove the below block from .zshrc file. This block was automatically added during past conda initialization and a new block will be appended during the above installation steps.
Remove this block!
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/Users/guntas13/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/Users/guntas13/miniconda3/etc/profile.d/conda.sh" ]; then
. "/Users/guntas13/miniconda3/etc/profile.d/conda.sh"
else
export PATH="/Users/guntas13/miniconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<-
Install Tmux Plugin Manager (TPM)
Follow instructions from the TPM repository:
git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm -
Install Gitmux Follow instructions from the Gitmux repository.
brew install gitmux
Save the default configuration to a new file:
gitmux -printcfg > $HOME/.gitmux.conf
-
Configure Powerlevel10k
p10k configure- Tmux Install Packages
# Start a new Tmux session
tmuxtmux source ~/.config/tmux/tmux.confNote
prefixis overwritten toCtrl + Spacein this configuration. Inside a Tmux session, pressprefix+I(capital i) to install Tmux plugins.Ctrl-Space + vto open a vertical split,Ctrl-Space + hto open a horizontal split.Ctrl + <hjkl>to switch between panes like vim.- In NeoChad,
Spaceis the leader key.Space + t hfor theme panel,Ctrl + norSpace + eto open file explorer.
Install and configure database servers if needed:
brew install postgresql@16
# Start PostgreSQL service
brew services start postgresql@16Install PgAdmin as a GUI tool for managing PostgreSQL databases.
psql postgrespostgres=# SHOW config_file;
postgres=# SHOW data_directory;
vim opt/homebrew/var/postgresql@16/postgresql.confcp -R /opt/homebrew/var/postgresql@16 <new_data_directory_path>sudo chown $(whoami):admin <new_data_directory_path>
chmod 700 <new_data_directory_path>To create a new database:
createdb -h localhost -p 5432 -U guntas13 <db_name>To restore a database from a dump file:
pg_restore -v -h localhost -p 5432 -U guntas13 -d <db_name> <.dump file>To create a dump of a database:
pg_dump -v -h localhost -p 5432 -U guntas13 -Fc -f <.dump flc> <db_name>brew tap mongodb/brew
brew install [email protected]
# Start MongoDB service
brew services start [email protected]Install NoSQLBooster as a GUI tool for managing MongoDB databases.
vim /opt/homebrew/etc/mongod.conf─────┬─────────────────────────────────────────────────────
│ File: mongod.conf
─────┼─────────────────────────────────────────────────────
1 │ systemLog:
2 │ destination: file
3 │ path: /opt/homebrew/var/log/mongodb/mongo.log
4 │ logAppend: true
5 │ storage:
6 │ dbPath: <new_data_directory_path>
7 │ net:
8 │ bindIp: 127.0.0.1, ::1
9 │ ipv6: true
─────┴─────────────────────────────────────────────────────
sudo chown $(whoami):admin <new_data_directory_path>
chmod 755 <new_data_directory_path>To restore a database from a dump file:
mongorestore --uri="mongodb://localhost:27017" --drop <dump_directory>or for a specific database:
mongorestore --db <db_name> --uri="mongodb://localhost:27017" --drop <dump_directory>/<db_name>To create a dump of a database:
mongodump --uri="mongodb://localhost:27017" --out <dump_directory>- Oh My Zsh - Zsh configuration framework
- Powerlevel10k - Zsh theme
- Alacritty - GPU-accelerated terminal emulator
- Ghostty - Another terminal emulator
- Zsh Plugins - Useful Zsh plugins for enhanced functionality
- Nerd Fonts - Font patches for Powerlevel10k and Neovim
- Neovim - Hyperextensible Vim-based text editor
- NvChad - Blazing fast Neovim config
- Tmux - Terminal multiplexer
- TPM - Tmux Plugin Manager
- Catppuccin Theme - A soothing pastel theme for Tmux
- Gitmux - Git repository status in Tmux status bar
- TMux Cheat Sheet - Handy reference for Tmux commands
- Vim Cheat Sheet - Handy reference for Vim commands
Thanks to the YouTube Channels: Dreams of Anatomy and Dreams of Code. Check out these vidoes:












