A clean, organized dotfiles setup with automatic tmux session management, Pure prompt, and comprehensive tool integration.## Getting Started
-
🖥️ Automatic tmux sessions - Every terminal automatically starts in tmuxThe install script backs up existing configuration files, but please read below before running it!
-
🎨 Pure prompt - Minimal, fast zsh promptRequirements:
-
⚡ Oh-My-Zsh - Powerful zsh framework with useful plugins
-
🪟 Window Management - Aerospace and skhd for macOS* git
-
💾 Session Persistence - tmux-resurrect and tmux-continuum* brew (on MacOS)
-
🎯 Organized Configuration - Clean, well-commented config files* zsh 5.0.5 minimum (otherwise some themes may not display colors correctly)
-
Tested on MacOS/Ubuntu/Debian/Centos
-
macOS (tested) or Linux
-
Git```bash
-
Homebrew (for macOS)git clone https://github.com/shaunniekins/dotfiles ~/.dotfiles
-
Curlcd ~/.dotfiles
./install.sh
# Clone the repository
git clone https://github.com/shaunniekins/dotfiles.git ~/.dotfiles* Fonts used "DejaVu Sans Mono for Powerline.ttf" and "Inconsolata for Powerline.otf" are in terminal/fonts folder
* Colors used "FrontEndDelight" are in terminal/colors folder (iterm2) for more colors or other terminal support, check: <https://github.com/mbadolato/iTerm2-Color-Schemes>
# Run installation script
cd ~/.dotfiles## About install.sh
chmod +x install.sh
./install.shThe repo contains all configuration I use with zsh, and skhd.
The install script does the following:
The installation script will:
-
Backup existing configuration files* Install required packages depending on OS (zsh/oh-my-zsh/neovim)
-
Install required packages* Install zsh plugins (zsh-syntax-highlighting)
-
Install Oh-My-Zsh and plugins* Set up Pure prompt
-
Setup Pure prompt* Symlink .zshrc, .skhdrc and other configuration files
-
Create symlinks for all config files
-
Configure tmux to auto-start## zsh with Pure prompt
📁 StructurePure is a minimal and fast ZSH prompt. For more info: https://github.com/sindresorhus/pure
.dotfiles/
├── install.sh # Main installation scriptSkhd for keyboard shortcuts.
├── zsh/
│ ├── zshrc.symlink # Main zsh configuration* skhd: <https://github.com/koekeishiya/skhd>
│ ├── setup_plugins.sh # Plugin installation script
│ └── setup_pure.sh # Pure prompt setup## To do
├── tmux/
│ └── tmux.conf.symlink # Tmux configuration* Add screenshots
├── skhd/
│ └── skhdrc.symlink # Keyboard shortcuts (macOS)Install TPM (if not already installed):
└── aerospace/
└── aerospace.toml # Window manager config (macOS)```bash
```git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
Every new terminal automatically starts tmux and attaches to the main session. This ensures:
- Persistent sessions across terminal closes
- Consistent working environment
- Session recovery after system restarts
All configuration files are organized by category and use clear section headers:
- Path configurations
- Plugin settings
- Key bindings
- External integrations
Window Management:
prefix + n- Next windowprefix + p- Previous windowprefix + [0-9]- Switch to window numberprefix + ,- Rename windowprefix + w- List windows
Pane Management:
prefix + h- Split horizontallyprefix + v- Split verticallyprefix + h/j/k/l- Navigate panes (vim-style)
Plugin Management:
prefix + I- Install pluginsprefix + U- Update pluginsprefix + alt + u- Uninstall removed plugins
Ctrl + R- Reverse history searchTab- Auto-completion menu
Edit zsh/zshrc.symlink:
plugins=(
git
z
zsh-syntax-highlighting
your-new-plugin # Add here
)Edit tmux/tmux.conf.symlink in the "PLUGIN CONFIGURATION" section.
Edit zsh/zshrc.symlink in the "PATH CONFIGURATION" or "ADDITIONAL PATH CONFIGURATIONS" sections.
cd ~/.dotfiles
git pull
./install.sh # Re-run if neededTo reload configurations without re-running the installer:
# Reload zsh
source ~/.zshrc
# Reload tmux (inside tmux)
tmux source ~/.tmux.confCheck that tmux is installed:
command -v tmuxVerify the symlink exists:
ls -la ~/.tmux.confReinstall plugins:
cd ~/.dotfiles
./zsh/setup_plugins.shReinstall Pure:
cd ~/.dotfiles
./zsh/setup_pure.shThen reload zsh:
source ~/.zshrc- neovim - Modern vim
- tmux - Terminal multiplexer
- zsh - Advanced shell
- tree - Directory viewer
- wget/curl - File downloaders
- skhd - Hotkey daemon (macOS)
- aerospace - Window manager (macOS)
Feel free to fork and customize for your needs!
MIT