Warning
This Readme can be outdated and my config can grow more. So you might look at the files yourself
My personal dotfiles.
This repo contains configuration files and setup scripts for Vim, Zsh, tmux, and other tools I use daily.
It also includes a Brewfile for optional package bootstrapping with Homebrew on Linux.
| File / Folder | Purpose |
|---|---|
Makefile |
Convenience wrapper for common tasks. |
init.vim |
Vim configuration. |
nvim/ |
Neovim configuration. |
emacs.el |
Main Emacs configuration. |
emacs.custom.el |
Custom Emacs settings (auto-generated or local tweaks). |
zshrc |
Zsh shell configuration. |
bashrc |
Bash shell configuration. |
bash/ |
Extra Bash configuration files. |
fish/ |
Fish shell configuration. |
tmux.conf |
tmux multiplexer configuration. |
alacritty.toml |
Alacritty terminal configuration. |
foot.ini |
Foot terminal configuration. |
ghostty-config |
Ghostty terminal configuration. |
wezterm.lua |
Wezterm terminal configuration. |
starship.toml |
Starship prompt configuration. |
betterfetch.toml |
Betterfetch configuration. |
fastfetch.jsonc |
Fastfetch configuration. |
wm/ |
Window manager configurations (Hyprland, Sway, etc.). |
apps/ |
Application specific configurations. |
Brewfile |
Optional package manifest for Homebrew. |
justfile |
Command runner configuration. |
setup.sh |
Script to symlink configs and set up the environment. |
- Linux (tested on Debian and Arch, should work on most distros)
- git
- Optional tools you’ll probably want:
- Zsh
- tmux
- Vim
- Neovim
- Emacs
Makefileandjustfileprovide convenience targets.Brewfileis optional and only needed if you want to bootstrap packages with Homebrew.
Clone the repo:
git clone https://github.com/DavidBalishyan/dotfiles.git
cd dotfilesBack up old configs if needed:
mv ~/.zshrc ~/.zshrc.bak
mv ~/.tmux.conf ~/.tmux.conf.bak
mv ~/.vimrc ~/.vimrc.bak
mv ~/.config/nvim ~/.config/nvim.bakInstall dotfiles using the wrapper or runner:
make setup
# or
just setupIf you want to bootstrap packages with Homebrew, optionally run:
brew bundle --file=BrewfileIf you want to inspect available commands:
make help
# or
just helpHere’s what gets installed when you run brew bundle:
| Package | Purpose |
|---|---|
neovim |
Modern Vim-based text editor. (Commented out by default) |
vim |
Classic text editor. (Commented out by default) |
httpie |
User-friendly command-line HTTP client. |
openssh |
OpenSSH connectivity tools (ssh, scp, etc.). |
rustup-init |
Rust toolchain installer. |
node |
JavaScript runtime (Node.js). |
nvm |
Node.js version manager. |
python@3.12 |
Python 3.12 and pip3. |
deno |
A modern runtime for JavaScript and TypeScript. |
go |
The Go programming language. |
ripgrep |
Fast search tool, like grep but better. |
fd |
User-friendly alternative to find. |
bat |
A better cat with syntax highlighting. |
eza |
Modern replacement for ls with more features. |
fzf |
Fuzzy finder for command-line search. |
btop |
Modern system monitor, alternative to top/htop. |
lsof |
List open files and the processes using them. |
xz |
Compression utilities (xz, lzma). |
jq |
Command-line JSON processor. |
yq |
Command-line YAML processor. |
gnupg |
GNU Privacy Guard, encryption and signing. |
openssl@3 |
OpenSSL cryptography library, version 3. |
- Emacs -> put overrides in
emacs.el - Vim -> edit
init.vimfor settings - Zsh -> add aliases/functions in
zshrc - Bash -> edit
bashrcor files inbash/ - Fish -> edit files in
fish/ - tmux -> tweak keybindings in
tmux.conf - Neovim -> Change config in
nvim/ - Terminals ->
alacritty.toml,foot.ini,ghostty-config,wezterm.lua - Window Managers -> Configs in
wm/
- Configs are tailored for Linux.
Brewfilemakes it easy to bootstrap a system with the same packages.- Some configs depend on CLI tools (
fzf,ripgrep,bat, etc.) - all included in theBrewfile.
MIT License - use and adapt freely.