Skip to content

Personal Linux dotfiles managed in a single repo with symlinks for a fully reproducible setup. Includes terminal configs, Zsh + Powerlevel10k, Neovim (80+ plugins), helper scripts, health checks, and detailed documentation.

License

Notifications You must be signed in to change notification settings

Zayan-Mohamed/dot_files

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

31 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

dot_files

OS Shell Editor License

A fully reproducible Linux development environment built around symlinks.

This repository manages everything in ~/.config and essential dotfiles in ~, all tracked in one place and safely symlinked back to the system.
The goal is simple: clone the repo, run one script, and get your exact setup every time.

No manual copying. No drift. No mystery state.


What this repo gives you

  • A clean, versioned ~/.config
  • Predictable dotfiles in ~
  • Idempotent install and update scripts
  • Health checks to catch broken symlinks
  • A heavily tuned Neovim setup with documentation
  • A Zsh environment that feels fast, safe, and modern

⭐ Recent Enhancements

πŸš€ Starship Prompt Integration

This dotfiles setup now includes Starship, a blazing-fast, cross-shell prompt written in Rust! It works alongside Powerlevel10k, giving you the flexibility to switch between themes instantly.

Why Starship?

  • ⚑ Blazing Fast - Written in Rust for maximum performance
  • 🎨 Beautiful - Rich colors, icons, and 40+ language/tool detections
  • πŸ”§ Customizable - Simple TOML configuration
  • πŸ”€ Cross-Shell - Works with Zsh, Bash, Fish, PowerShell, and more
  • πŸ“¦ Comprehensive - Auto-detects Git, Docker, Cloud providers, and more

πŸ”„ Switching Between Prompts

Built-in toggle mechanism makes switching effortless:

Command Description
toggle Toggle between Starship and Powerlevel10k
toggle starship Switch to Starship
toggle p10k Switch to Powerlevel10k
check-prompt Check which prompt is currently active

Quick Start:

# Install Starship
curl -sS https://starship.rs/install.sh | sh

# Switch to Starship
toggle starship
exec zsh

# Switch back to Powerlevel10k anytime
toggle p10k
exec zsh

πŸ“˜ Full Guide: See STARSHIP_GUIDE.md for installation, configuration, and customization details


Structure

dot_files/
β”‚
β”œβ”€β”€ config/                 # mirrors ~/.config
β”‚   β”œβ”€β”€ alacritty/
β”‚   β”œβ”€β”€ kitty/
β”‚   β”œβ”€β”€ wezterm/
β”‚   β”œβ”€β”€ ghostty/
β”‚   β”œβ”€β”€ nvim/
β”‚   β”œβ”€β”€ starship.toml           # Starship prompt configuration
β”œβ”€β”€β”€β”œβ”€β”€ STARSHIP_GUIDE.md       # Starship configuration and usage guide
β”‚   └── ...                     # other app configs
β”‚
β”œβ”€β”€ home/                       # dotfiles in ~ (not ~/.config)
β”‚   β”œβ”€β”€ .bashrc
β”‚   β”œβ”€β”€ .zshrc
β”‚   β”œβ”€β”€ .p10k.zsh
β”‚   β”œβ”€β”€ .gitconfig
β”‚   β”œβ”€β”€ .aliases
β”‚   └── ...
β”‚
β”œβ”€β”€ scripts/                    # helper scripts
β”‚   β”œβ”€β”€ install.sh              # links all configs, dotfiles, and scripts; ensures Zsh plugins installed
β”‚   β”œβ”€β”€ update.sh               # syncs system configs and plugins back into the repo with backups
β”‚   β”œβ”€β”€ install_zsh_plugins.sh  # installs missing Zsh plugins (syntax highlighting, history search)
β”‚   β”œβ”€β”€ health_check.sh         # verifies symlinks and checks dependencies
β”‚   β”œβ”€β”€ check_tools.sh          # checks for recommended CLI tools
β”‚   └── fix_nested.sh           # flattens accidental nested directories
β”‚
β”œβ”€β”€ shell/                      # shell configuration
β”‚   β”œβ”€β”€ linux_aliases.sh        # custom aliases (linked to ~/.aliases)
β”‚   └── prompt_switcher.sh      # Starship/P10k toggle functions
β”‚
β”œβ”€β”€ QUICKSTART.md               # 5-minute setup guide
β”œβ”€β”€ DEPENDENCIES.md             # required and optional dependencies
β”œβ”€β”€ NVIM_STUDY_GUIDE.md         # comprehensive Neovim usage guide
└── README.md

Setup

Clone into your home directory:

git clone git@github.com:Zayan-Mohamed/dot_files.git ~/dot_files
cd ~/dot_files

Warning This repo is designed for your personal setup. Always review scripts before running them on a new machine.

1. Link configs

Run the main install script:

~/dot_files/scripts/install.sh

This will:

  • Symlink all ~/.config/* directories
  • Symlink home dotfiles in ~/dot_files/home/
  • Symlink your scripts folder to ~/scripts
  • Ensure required Oh My Zsh plugins (zsh-syntax-highlighting and zsh-history-substring-search) are installed
  • Safely remove any existing conflicting files or symlinks

2. Update repo from system

Whenever you make changes to your configs on the system, run:

~/dot_files/scripts/update.sh

This will:

  • Backup your current repo files to a timestamped folder in dot_files/backups/
  • Sync ~/.config/* and tracked dotfiles back into the repo
  • Sync Oh My Zsh custom plugins
  • Keep scripts and .p10k.zsh up-to-date


οΏ½ Quick Commands

Check System Health

~/scripts/health_check.sh    # Verify symlinks and essential tools
~/scripts/check_tools.sh     # Check for recommended modern CLI tools

Common Tasks

~/scripts/install.sh         # Initial setup or re-link configs
~/scripts/update.sh          # Sync changes back to repo
source ~/.zshrc              # Reload shell configuration

οΏ½πŸ“š Documentation

πŸ“– Guides

πŸ’‘ Prompt Freedom: Both Powerlevel10k and Starship are fully supported. Switch between them instantly with toggle!

Neovim Study Guide

A comprehensive guide to using the Neovim configuration efficiently is available at:

NVIM_STUDY_GUIDE.md

This guide includes:

  • Core Keybindings - Essential shortcuts and leader key mappings
  • File Navigation & Search - FZF-Lua fuzzy finding and nvim-tree usage
  • Text Editing Superpowers - vim-sandwich, commentary, yanky, and advanced motions
  • LSP & Code Intelligence - Code navigation, refactoring, and autocompletion
  • Git Integration - Gitsigns, Fugitive, and visual diff tools
  • Buffer & Window Management - Efficient multi-file workflows
  • Advanced Navigation - Hop.nvim, folding, and custom text objects
  • Productivity Plugins - Complete overview of all 80+ plugins
  • 6-Week Learning Path - Structured approach to mastery
  • Practice Exercises - Hands-on scenarios to build muscle memory

Perfect for both beginners learning Neovim and experienced users wanting to leverage the full power of this configuration.


🎯 Features

Terminals

  • Alacritty - GPU-accelerated, highly configurable
  • Kitty - Advanced features with ligatures
  • Ghostty - Modern, native terminal
  • WezTerm - GPU-accelerated with Lua scripting, pane/tab management, and modern keybindings

Shell (Zsh)

  • Dual Prompt Themes - Seamlessly switch between:
    • Starship - Rust-powered, 40+ language/tool detection, blazing fast
    • Powerlevel10k - Feature-rich Zsh theme with instant prompt
  • Syntax highlighting as you type
  • Autosuggestions from command history
  • Smart history shared across all sessions
  • Modern aliases for common tasks
  • One-command switching - Toggle prompts without conflicts

Editor (Neovim)

  • 80+ plugins pre-configured
  • LSP support for Python, Lua, Bash, YAML, Vim
  • Fuzzy finding with FZF-lua
  • Git integration with Fugitive, Gitsigns
  • Treesitter syntax highlighting
  • See full guide in NVIM_STUDY_GUIDE.md

Notes

  • The install script is idempotent β€” you can run it multiple times safely.
  • Plugin installer (install_zsh_plugins.sh) runs automatically during linking but only installs missing plugins.
  • Designed for fully reproducible setups on fresh machines.

About

Personal Linux dotfiles managed in a single repo with symlinks for a fully reproducible setup. Includes terminal configs, Zsh + Powerlevel10k, Neovim (80+ plugins), helper scripts, health checks, and detailed documentation.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published