Skip to content

abhicodes07/dotfiles

Repository files navigation

🍡 Dotfiles

Static Badge Static Badge Static Badge Static Badge

neovim

🌺 About

Hey folks!πŸ‘‹

Welcome to my personal Dotfiles repository that helps me back up my configuration files on multiple machines.

I'm Abhinav❄️—I enjoy creating stuff with code. These dotfiles deliver a efficient, consistent and aesthetically pleasing dev experience that works seamlessly across WSL2, Linux and Windows based systemsπŸš€.

These configurations are designed for my personal use but can serve as a useful starting point for others looking to streamline their setups.

✨ Core Features

  • ❄️ Development Tools
  • >_ Sleek Terminal Config
  • 🎨 Oh My Posh Prompt Style
  • βš™οΈ WSL2 Integration
  • πŸ’« Beautiful Wallpapers
  • 🐈 Soothing themes everywhere
  • πŸ’€ Neovim config switcher

πŸ”§ Tools Suite

Lazyvim Yazi
FZF Btop
Lazygit Telescope find files

Here is all the information about my setup and tools:

Tip

Some of these tools have the config files included in the repo, which are marked with βš™οΈ, so you can Cherry-pick what you need.

🌟 Core Development
⛓️ Tool πŸ“ Description ✨ Features βš™οΈ Config
πŸ’€ Lazyvim Lazyvim configuration β€’ IDE-like features
β€’ Modern Tools
β€’ Soothing Multiple Themes
βš™οΈ Lazyvim
πŸš€ ohmyposh Cross-shell Prompt β€’ Nocturnal theme
β€’ Git status integration
β€’ Context-aware display
πŸ–₯️ Tmux Terminal multiplexer β€’ Custom key bindings
β€’ Catppuccin Theme
β€’ Nerd Icons
βš™οΈ tmux.conf
>_ Zsh Shell β€’ Smart shell detection and adaptation
β€’ Enhanced history with timestamps
β€’ Modern CLI tools integration
βš™οΈ .zshrc
🏠 Modern CLI/TUI Apps
⛓️ Tool πŸ“ Description ✨ Features βš™οΈ Config
🌱 FZF Fuzzy finder β€’ File searching
β€’ History exploration
β€’ Neovim Integration
πŸ“‚ Eza Modern ls β€’ Icon support
β€’ Multiple Themes
β€’ Custom Alias
βš™οΈ theme.yml
ℹ️ Bat Better cat β€’ Syntax highlighting
β€’ Multiple themes
β€’ Line numbers
πŸ“œ Fastfetch System Fetch βš™οΈ config.jsonc
🎨 Btop System Monitor βš™οΈ btop
πŸ“Š Git Versioning βš™οΈ .gitconfig
πŸ“š Lazygit Git TUI βš™οΈ config.yml
πŸ—ƒοΈ Yazi File Manager βš™οΈ yazi
🧩 Zoxide cd Replacement
πŸ” Other
πŸ“š Entry ✨ Apps
Colorschemes β€’ Catppuccin Mocha
β€’ Material Theme
β€’ One Dark
β€’ Oxocarbon
β€’ Solarized Osaka
β€’ Tokyodark
Fonts JetBrainsMono Nerd Font
Dotfiles Manager GNU Stow

πŸ”‘ Installing Nerd Fonts

Nerd Fonts are required for special icons display in the terminal for aesthetic look. Follow these steps to install them:

  1. Visit the Nerd Fonts website
  2. Download your preferred font (on windows)

✨ JetBrainsMono Nerd Font recommended

  1. Extract the downloaded zip file
  2. Install the fonts for WSL2:
    • On Windows: Select all .ttf file, Right-click on each and select "Install for all users"
  3. Configure your terminal to use the installed Nerd Font in Windows terminal settings.

For WSL2 users, make sure to set the Nerd Font in your Windows Terminal settings as well.

πŸ› οΈ Setup

Note

Ensure you have Git, GNU Stow, and the required tools installed on your system before proceeding.

πŸ“₯ Cloning the Repository
  • Clone the dotfiles repository along with its submodules:
git clone --recursive https://github.com/abhicodes07/dotfiles ~/dotfiles
  • If you have already cloned it without submodules initialized, run:
cd ~/dotfiles
git submodule init
git submodule update
πŸ—οΈ Setting Up Dotfiles Using GNU Stow
  • GNU Stow simplifies managing dotfiles across different directories. Each subdirectory of ~/dotfiles contains configurations for specific tools.

Step 1: Navigate to the Repository

cd ~/dotfiles

Step 2: Remove Existing Configuration Files

  • Before stowing files, ensure conflicting configuration files are removed or backed up:
rm -rf ~/.config/Lazyvim
rm -rf ~/.zshrc ~/.bashrc

Step 3: Symlink Dotfiles to Relevant Directories

  • Use GNU Stow to create symlinks for configuration files:
stow -t ~/ bash
stow -t ~/ zsh
stow -t ~/.config Lazyvim
  • Use the similar commands for the other configurations too.

Here:

  • -t specifies the target directory (e.g., ~/, or ~/.config).
πŸ”„ Updating Dotfiles and Submodules

Update Dotfiles Repository

  • Sync your dotfiles with the latest changes:
cd ~/dotfiles
git pull

Update Submodules (Lazyvim)

  • Fetch the latest changes to submodules:
cd ~/dotfiles
git submodule update --remote Lazyvim
🧹 Unstowing Dotfiles
  • If you want to remove all symlinks:
stow -D -t ~/ bash
stow -D -t ~/ zsh
stow -D -t ~/.config Lazyvim

πŸš€ Insights

🐚 Shell Environment

la          # Aesthetic file listing with beautiful icons
ls          # Simple file listing with icons
lg          # Git files
lta         # Tree file listing with icons
ltg         # Git tree files with icons
fzf         # Fuzzy finder
yazi        # file manager

πŸͺ„ Key Features:

  • Better tab completion with fuzzy finding
  • Directory jumping with z command and bookmarking system
  • Cross-platform environment variables and platform detection
  • Files, PDFs and image viewing using yazi
  • Aesthetic file listing with eza enabled aliases

πŸ’€ Neovim config switcher

  • Switch between multiple Neovim configurations using custom script and nvims command

πŸ“’ Discussions

Have a question, idea, or a cool setup to share? Or maybe you're running into an issue?
Head over to the Discussions section.

❓ FAQs and Notes

  1. Why Use GNU Stow?

    • Maintains a clean structure for your dotfiles repository.
    • Allows modular management of configurations by stowing specific folders only.
  2. Submodule Handling

    • Submodules must be cloned recursively and updated separately. Any changes to the Lazyvim folder must be committed in its own repository and tracked by the dotfiles.
  3. Clone Instructions for Fresh Installs

    • Ensure you always clone using --recursive or run the commands to initialize the submodule afterwards.

LICENSE

Copyright Β© 2026-present Abhi9av

Packages

No packages published