Skip to content

A modern, powerful, and beautifully crafted development environment setup featuring Vim, Tmux, and Zsh configurations optimized for productivity and aesthetics.

Notifications You must be signed in to change notification settings

yomazini/dotfiles

Repository files navigation

πŸš€ Ultimate Developer Dotfiles

A modern, powerful, and beautifully crafted development environment setup featuring Vim, Tmux, and Zsh configurations optimized for productivity and aesthetics.

✨ Features

🎨 Beautiful Gruvbox Theme Everywhere

  • Consistent dark theme across Vim, Tmux, and terminal
  • Eye-friendly color scheme perfect for long coding sessions
  • Carefully crafted status bars and UI elements

⚑ Supercharged Vim IDE

  • Language Support: C/C++, Python, JavaScript, and more
  • Smart Autocompletion with ALE (Asynchronous Lint Engine)
  • File Explorer with NERDTree and icons
  • Fuzzy Finding with CtrlP
  • Git Integration with GitGutter
  • Code Formatting and linting
  • Quick Commands for common tasks

πŸ–₯️ Powerful Tmux Setup

  • Vim-like Navigation between panes
  • Session Management with custom scripts
  • Beautiful Status Bar with system info
  • Plugin Management with TPM
  • Session Persistence (resurrect & continuum)
  • Copy Mode optimized for productivity

🐚 Modern Zsh Environment

  • Powerlevel10k prompt with instant loading
  • Oh My Zsh with carefully selected plugins
  • Modern CLI Tools (eza, bat, ripgrep, fzf, zoxide)
  • Git Workflow enhancement functions
  • Productivity Aliases and functions
  • Interactive Tools for file management

πŸ”„ Smart Rollback System

  • One-Command Rollback - Restore any config file instantly with ./install.sh --rollback <vim|tmux|zsh|all>
  • Automatic Backups - Every installation creates timestamped backups of your existing configs
  • Safe Experimentation - Try new configurations without fear - rollback anytime to previous working state
  • Granular Control - Rollback individual configs (vim, tmux, zsh) or all at once
  • Tools Stay Intact - Rollback only affects configuration files, all installed tools remain
  • Backup History - View all available backups with ./install.sh --list-backups
  • Safety Net - Creates additional backup before rollback, ensuring you can never lose data

πŸ”§ Advanced Command Utilities

  • CURL & API Testing: Complete suite for API development and debugging
  • JQ JSON Processing: Parse, filter, and transform JSON with ease
  • Essential Functions: Universal archive extractor, backup system, instant HTTP server
  • Interactive Help System: Built-in terminal cheatsheet (cheat command)

πŸ€– AI-Powered Gemini Commands

  • Automate & Enhance: Go beyond aliases with powerful, pre-configured prompts for Gemini.
  • Expert Personas: Generate high-quality code, documentation, summaries, and more with a single command.
  • Streamlined Workflow: Integrate advanced AI capabilities directly into your terminal.

πŸš€ The Ultimate AI-Powered Terminal Command Playbook Agents: Your A-to-Z Guide for Gemini CLI Mastery

Imagine building a small to medium-sized application using only manual methodsβ€”no AI assistant, no optimized dotfiles, and no custom slash commands. Now, consider the hours spent on repetitive tasks like writing documentation, creating test cases, formatting commit messages, and building project plans from scratch.

πŸš€ The AI-Powered Terminal Command Playbook is designed to eliminate that friction entirely. By integrating this suite of custom agents directly into your terminal, you can automate these workflows, with each tool acting like a second brain that understands the specific context of your project's data, not just vague instructions.

This approach saves a minimum of five hours on any given project and boosts your productivity tenfold, all while delivering a more consistent and professional result.

πŸ› οΈ What's Included

πŸ“ Configuration Files

  • .vimrc - Complete Vim IDE setup
  • .tmux.conf - Feature-rich Tmux configuration
  • .zshrc - Modern shell environment with productivity tools

πŸ”§ Essential Tools

Development Tools:
β”œβ”€β”€ autopep8          # Python code formatter
β”œβ”€β”€ clangd           # C/C++ language server
β”œβ”€β”€ pylsp            # Python language server
└── pycodestyle      # Python style checker

File & Navigation:
β”œβ”€β”€ bat              # Modern cat with syntax highlighting
β”œβ”€β”€ eza              # Modern ls replacement
β”œβ”€β”€ fd               # Modern find replacement
β”œβ”€β”€ rg (ripgrep)     # Ultra-fast grep replacement
β”œβ”€β”€ fzf              # Fuzzy finder
β”œβ”€β”€ zoxide           # Smart cd replacement
└── ranger           # Terminal file manager

System & Productivity:
β”œβ”€β”€ glow             # Markdown viewer
β”œβ”€β”€ procs            # Modern ps replacement
β”œβ”€β”€ dust             # Disk usage analyzer
β”œβ”€β”€ btop             # System monitor
β”œβ”€β”€ termdown         # Terminal countdown timer
β”œβ”€β”€ tldr             # Simplified man pages
β”œβ”€β”€ todo.sh          # Command-line todo manager
└── jq               # JSON processor

Development Utilities:
β”œβ”€β”€ entr             # File watcher
β”œβ”€β”€ ipcalc           # IP calculator
β”œβ”€β”€ mc               # Midnight Commander
└── curl             # Data transfer tool

πŸš€ Quick Start

1️⃣ One-Line Installation

curl -fsSL https://raw.githubusercontent.com/yomazini/dotfiles/main/install.sh -o install.sh && chmod +x install.sh && ./install.sh

2️⃣ Manual Installation

# Clone the repository
git clone https://github.com/yomazini/dotfiles.git
cd dotfiles

# Run the installation script
chmod +x install.sh
./install.sh

3️⃣ What the installer does:

  • πŸ”„ Backs up your existing configurations
  • πŸ“¦ Installs all required tools and dependencies
  • πŸ”— Creates symbolic links to the new configurations
  • 🎨 Sets up plugins and themes
  • πŸ€– Installs Gemini AI commands (optional)
  • πŸ’» Sets up interactive help system
  • βœ… Verifies the installation

πŸ“– Usage Guide

🎯 Vim IDE Commands

Command Description
<Space>w Save file
<Space>q Quit
<Space>wq Save and quit
<Space>j Format JSON
<Space>d Show error details
Ctrl+n Toggle file tree
Ctrl+p Fuzzy file search
:Format Auto-format code
:GStatus Git status in split

πŸ–₯️ Tmux Power User Commands

Command Description
Ctrl+a Prefix key
Ctrl+a r Reload config
Ctrl+a e Edit config
Ctrl+a " Horizontal split
Ctrl+a % Vertical split
Ctrl+a hjkl Navigate panes
Ctrl+a HJKL Resize panes
Ctrl+a j Session switcher
Ctrl+a z Zoom pane (fullscreen)

🐚 Zsh Productivity Shortcuts

CURL & API Testing

cgetjson <url>              # GET JSON with pretty print
cpost <url> <data>          # POST JSON data
cput <url> <data>           # PUT JSON data
cdel <url>                  # DELETE request
chead <url>                 # Fetch headers only
cresolve <domain> <ip> <url> # Test DNS override

JQ JSON Processing

... | jval <key>            # Extract single value
... | jfield <key>          # Extract field from array
... | jfields <k1> <k2>     # Extract multiple fields as table
... | jfind <key> <value>   # Filter by exact match
... | jfind <key> <val> -c  # Filter by contains (partial)

Essential Functions

extract <archive>           # Universal archive extractor
gitignore <language>        # Generate .gitignore file
backup <file/dir>           # Create timestamped backup
serve [port]                # Start HTTP server (default: 8000)
pfind                       # Interactive process finder/killer
cat_exts [.ext ...]         # Cat all files by extension

Git Workflow

gia        # Interactive git add with preview
gco        # Interactive branch checkout
glo        # Beautiful git log with fzf
gs         # Git status
gd         # Git diff
gundo      # Undo last commit (keep changes)
gwip       # Quick WIP commit
gclean     # Delete merged branches

File Operations

vf         # Find and edit file with fzf
cf         # Find and view file with fzf
fgr        # Find in files and open in editor
fer        # Find recent files (last 24h)
del        # Interactive file deletion
mkcd dir   # Create and enter directory

Modern CLI

ll         # Detailed file listing with icons
tree       # Directory tree view
cat file   # Syntax highlighted file view
grep text  # Fast search with ripgrep
cd dir     # Smart directory jumping with zoxide

System & Productivity

todo       # Find TODO/FIXME in code
port 3000  # Check what's using a port
weather    # Get weather forecast
cpy file   # Copy to clipboard
myip       # Get your public IP
bigstuff   # Show large directories and files
btop       # System monitor dashboard
pfind      # Interactive process manager

πŸ“š Interactive Help System

Access the built-in terminal cheatsheet anytime:

cheat              # Interactive menu with all categories
cheat curl         # Jump directly to CURL commands
cheat git          # Jump directly to Git workflow
cheat search       # Search all commands (with FZF)
ch                 # Short alias for 'cheat'
chelp <command>    # Get help for specific command

# Examples:
chelp cgetjson     # Quick help for cgetjson
chelp jfind        # Quick help for jfind
cheat tmux         # Show all TMUX commands

Available categories:

  • curl - CURL & API Testing
  • jq - JQ JSON Processing
  • essential - Essential Functions
  • tmux - TMUX Commands
  • vim - VIM Commands
  • git - Git Workflow
  • files - File Operations
  • system - System Monitoring
  • docker - Docker Utilities
  • search - Search All Commands

πŸ€– Gemini Commands

These custom commands are designed to integrate the power of Google's Gemini directly into your command-line workflow, turning simple prompts into powerful, structured outputs. By using expert personas and predefined templates, they streamline common tasks, automate complex processes, and ensure high-quality, consistent results for everything from writing code to summarizing meetings.

The following custom commands are included to supercharge your workflow with Gemini. They are automatically installed into ~/.gemini/commands.

Command Category Command Name Description
Content content-summarize Provides a multi-format summary of any text.
email-draft Drafts professional emails based on context, tone, and purpose.
meeting-summary Summarizes meeting notes into actionable insights.
prompt-enhance Refines a raw user prompt into a highly effective instruction.
report-gen Generates comprehensive reports from data files.
Development code-refactor Refactors a piece of code based on a specific instruction.
debug-assistant Analyzes error logs and provides systematic debugging strategies.
doc-generate Generates professional, language-aware documentation for code.
docker-explain Explains a Dockerfile or docker-compose.yml in plain English.
git-commit Generates a Conventional Commit message from staged changes.
git-summarize Summarizes a git log into a human-readable changelog.
test-create Generates a complete, runnable test file for the provided code.
test-gen Automatically generates comprehensive test cases.
test-report Analyzes a test failure report and suggests fixes.
Media photo-rename Organizes and renames photos based on visual content and metadata.
Productivity flashcards-create Generates a set of 10 technical flashcards for Anki.
local-weather Provides a clean, natural-language summary of the weather.
search-advanced Activates an advanced search agent for up-to-date information.
task-prioritizer Creates organized, actionable task lists with time estimates.
ticket-create Formats a simple description into a structured bug report or ticket.
Security security-audit Performs a comprehensive security audit of code and dependencies.
System apt-find Searches APT repositories using natural language.
cleanup Identifies and suggests cleanup opportunities in a codebase.
file-organizer Intelligently organizes files in directories.
sys-health-check Provides a quick summary of system health (disk, memory, CPU).
sys-search Translates a natural language query into a ripgrep command.

🎨 Customization

🎭 Changing Themes

All configurations use the Gruvbox theme for consistency. To change:

Vim: Edit .vimrc and change colorscheme gruvbox

colorscheme your-theme-name

Tmux: Edit the color variables in .tmux.conf

bg1='#your-bg-color'
fg='#your-fg-color'
yellow='#your-accent-color'

⌨️ Custom Key Bindings

Add your own shortcuts to .vimrc:

nnoremap <leader>your-key :YourCommand<CR>

Or to .tmux.conf:

bind your-key your-command

πŸ”§ Adding Tools

To add new CLI tools, edit install.sh and .zshrc:

  1. Add installation command to install.sh
  2. Add aliases/functions to .zshrc
  3. Re-run the installer

πŸ”§ Troubleshooting

Common Issues

🐍 Python Tools Not Working?

# Ensure Python and pip are installed
python3 --version
pip3 --version

# Reinstall Python tools
pip3 install --user autopep8 python-lsp-server pycodestyle

🎨 Colors Not Showing?

# Check terminal color support
echo $TERM
# Should show: screen-256color or xterm-256color

# Test colors
curl -s https://gist.githubusercontent.com/HaleTom/89ffe32783f89f403bba96bd7bcd1263/raw/ | bash

πŸ”Œ Vim Plugins Failing?

# Reinstall vim-plug
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

# Reinstall plugins
vim +PlugInstall +qall

πŸ“¦ Tmux Plugins Not Loading?

# Install TPM
git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

# Install plugins: Ctrl+a + I

❓ Help System Not Working?

# Ensure functions are loaded
source ~/.zshrc

# Test the help system
cheat

# If FZF not working in search
# Install FZF: git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install

🩺 Health Check

Run this to verify your setup:

# Check essential tools
for tool in vim tmux zsh git fzf rg bat eza fd zoxide jq curl; do
    command -v $tool >/dev/null 2>&1 && echo "βœ… $tool" || echo "❌ $tool"
done

# Test custom functions
type cgetjson >/dev/null 2>&1 && echo "βœ… CURL functions loaded" || echo "❌ CURL functions missing"
type jfind >/dev/null 2>&1 && echo "βœ… JQ functions loaded" || echo "❌ JQ functions missing"
type cheat >/dev/null 2>&1 && echo "βœ… Help system loaded" || echo "❌ Help system missing"

πŸ“Š Productivity Metrics

Time saved per day: 45-60 minutes
Weekly savings: 5-7 hours
Monthly savings: 20-28 hours

Impact on Development

  • Commands saved: ~200 keystrokes/day
  • Context switches: Reduced by 60%
  • Setup time: From 1 hour to 5 minutes
  • Testing time: Reduced by 70%
  • Debugging time: Reduced by 50%

NOTE:

You may encounter some Problems in the install.sh. simply remove these lines from the script and do it manually

     print_step "Installinsg Zsh plugins..."
     
     # zsh-autosuggestions
-    if [ ! -d "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]; then
-        git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
-    else
-        print_success "zsh-autosuggestions already installed"
-    fi
-    
-    # zsh-syntax-highlighting
-    if [ ! -d "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]; then
-        git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
-    else
-        print_success "zsh-syntax-highlighting already installed"
-    fi
     
     print_success "Zsh plugins installed"

🀝 Contributing

Found a bug or have a suggestion? Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch: git checkout -b amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin amazing-feature
  5. Open a Pull Request

πŸ™ Acknowledgments

  • Oh My Zsh community for the amazing framework
  • Vim and Tmux communities for the incredible tools
  • 1337 / 42 School for the inspiration and learning environment

🎭 Author

Made with β˜•οΈβ˜•οΈβ˜•οΈ by Youssef Mazini (ymazini)


⭐ Star this repo if it helped you! ⭐

Built for developers, by developers πŸš€

About

A modern, powerful, and beautifully crafted development environment setup featuring Vim, Tmux, and Zsh configurations optimized for productivity and aesthetics.

Topics

Resources

Stars

Watchers

Forks